2023-07-11 20:35:27 +01:00
|
|
|
OPENSSL_VERSION=3.1.1
|
2022-05-23 21:33:12 +01:00
|
|
|
|
2023-11-21 13:47:48 +00:00
|
|
|
# I'm lazy to type "webui-build" so made it default
|
|
|
|
|
all: webui-build
|
2021-06-28 20:40:13 +01:00
|
|
|
|
2023-12-05 13:16:16 +00:00
|
|
|
@PHONY: webui-deps
|
|
|
|
|
webui-deps:
|
|
|
|
|
cd desktop && npm install
|
|
|
|
|
cd crates/librqbit/webui && npm install
|
|
|
|
|
|
2023-11-20 22:10:01 +00:00
|
|
|
@PHONY: webui-dev
|
2023-12-05 13:16:16 +00:00
|
|
|
webui-dev: webui-deps
|
2023-11-20 22:10:01 +00:00
|
|
|
cd crates/librqbit/webui && \
|
2023-11-21 12:56:07 +00:00
|
|
|
npm run dev
|
|
|
|
|
|
|
|
|
|
@PHONY: webui-build
|
2023-12-05 13:16:16 +00:00
|
|
|
webui-build: webui-deps
|
2023-11-21 12:56:07 +00:00
|
|
|
cd crates/librqbit/webui && \
|
|
|
|
|
npm run build
|
2023-11-20 22:10:01 +00:00
|
|
|
|
2023-12-05 13:16:16 +00:00
|
|
|
@PHONY: devserver
|
|
|
|
|
devserver:
|
2023-12-07 22:48:14 +00:00
|
|
|
echo -n '' > /tmp/rqbit-log
|
|
|
|
|
CORS_DEBUG=1 cargo run --release -- --log-file /tmp/rqbit-log server start /tmp/scratch/
|
2023-12-05 13:16:16 +00:00
|
|
|
|
2022-05-23 21:33:12 +01:00
|
|
|
@PHONY: clean
|
|
|
|
|
clean:
|
|
|
|
|
rm -rf target
|
|
|
|
|
|
2021-07-31 13:13:04 +01:00
|
|
|
@PHONY: sign-debug
|
2021-06-28 20:40:13 +01:00
|
|
|
sign-debug:
|
|
|
|
|
codesign -f --entitlements resources/debugging.entitlements -s - target/debug/rqbit
|
|
|
|
|
|
2021-07-31 13:13:04 +01:00
|
|
|
@PHONY: sign-release
|
2021-06-28 20:40:13 +01:00
|
|
|
sign-release:
|
2021-06-28 21:06:00 +01:00
|
|
|
codesign -f --entitlements resources/debugging.entitlements -s - target/release/rqbit
|
|
|
|
|
|
2021-07-31 13:13:04 +01:00
|
|
|
@PHONY: build-release
|
2021-06-28 21:06:00 +01:00
|
|
|
build-release:
|
|
|
|
|
cargo build --release
|
|
|
|
|
|
2021-07-31 13:13:04 +01:00
|
|
|
@PHONY: install
|
2021-06-28 21:06:00 +01:00
|
|
|
install: build-release
|
2021-06-28 22:21:21 +01:00
|
|
|
$(MAKE) build-release
|
|
|
|
|
$(MAKE) sign-release
|
2021-10-17 13:50:46 +01:00
|
|
|
install target/release/rqbit "$(HOME)/bin/"
|
|
|
|
|
|
2021-10-17 18:17:50 +01:00
|
|
|
@PHONY: release-macos-universal
|
|
|
|
|
release-macos-universal:
|
2023-11-20 16:16:25 +00:00
|
|
|
cargo build --target aarch64-apple-darwin --profile release-github
|
|
|
|
|
cargo build --target x86_64-apple-darwin --profile release-github
|
2021-10-17 18:17:50 +01:00
|
|
|
lipo \
|
2023-11-20 16:16:25 +00:00
|
|
|
./target/aarch64-apple-darwin/release-github/rqbit \
|
|
|
|
|
./target/x86_64-apple-darwin/release-github/rqbit \
|
2021-10-17 18:17:50 +01:00
|
|
|
-create \
|
2023-11-20 16:16:25 +00:00
|
|
|
-output ./target/x86_64-apple-darwin/release-github/rqbit-osx-universal
|
2021-10-17 18:17:50 +01:00
|
|
|
|
|
|
|
|
@PHONY: release-windows
|
|
|
|
|
release-windows:
|
|
|
|
|
# prereqs:
|
|
|
|
|
# brew install mingw-w64
|
2023-11-20 16:16:25 +00:00
|
|
|
cargo build --target x86_64-pc-windows-gnu --profile release-github
|
2021-10-17 13:50:46 +01:00
|
|
|
|
2022-05-23 21:33:12 +01:00
|
|
|
target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz:
|
|
|
|
|
mkdir -p target/openssl-linux
|
|
|
|
|
curl -L https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz -o $@
|
|
|
|
|
|
2023-07-11 20:35:27 +01:00
|
|
|
target/openssl-linux/$(TARGET)/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz
|
|
|
|
|
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/$(TARGET)/ && \
|
2022-05-23 21:33:12 +01:00
|
|
|
mkdir -p $${OPENSSL_ROOT}/src && \
|
|
|
|
|
cd $${OPENSSL_ROOT}/src/ && \
|
|
|
|
|
tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \
|
|
|
|
|
cd openssl-$(OPENSSL_VERSION) && \
|
2023-07-11 20:35:27 +01:00
|
|
|
./Configure $(OPENSSL_CONFIGURE_NAME) --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared \
|
|
|
|
|
--cross-compile-prefix=$(CROSS_COMPILE_PREFIX)- && \
|
2023-07-11 15:03:28 +01:00
|
|
|
make install_dev -j
|
2021-10-18 16:39:54 +01:00
|
|
|
|
2023-07-11 20:35:27 +01:00
|
|
|
@PHONY: release-linux-current-target
|
|
|
|
|
release-linux-current-target: target/openssl-linux/$(TARGET)/lib/libssl.a
|
|
|
|
|
CC_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-gcc \
|
|
|
|
|
CXX_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-g++ \
|
|
|
|
|
AR_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-ar \
|
|
|
|
|
CARGO_TARGET_$(TARGET_SNAKE_UPPER_CASE)_LINKER=$(CROSS_COMPILE_PREFIX)-gcc \
|
|
|
|
|
OPENSSL_DIR=$(PWD)/target/openssl-linux/$(TARGET)/ \
|
2023-11-20 16:16:25 +00:00
|
|
|
cargo build --profile release-github --target=$(TARGET)
|
2023-05-07 15:00:32 +00:00
|
|
|
|
2021-10-17 18:17:50 +01:00
|
|
|
@PHONY: release-linux
|
2023-11-26 10:26:49 +00:00
|
|
|
release-linux: release-linux-x86_64 release-linux-aarch64 release-linux-armv6 release-linux-armv7
|
2022-05-23 21:33:12 +01:00
|
|
|
|
|
|
|
|
@PHONY: release-linux-x86_64
|
2023-07-11 20:35:27 +01:00
|
|
|
release-linux-x86_64:
|
|
|
|
|
TARGET=x86_64-unknown-linux-gnu \
|
|
|
|
|
TARGET_SNAKE_CASE=x86_64_unknown_linux_gnu \
|
|
|
|
|
TARGET_SNAKE_UPPER_CASE=X86_64_UNKNOWN_LINUX_GNU \
|
|
|
|
|
CROSS_COMPILE_PREFIX=x86_64-unknown-linux-gnu \
|
|
|
|
|
OPENSSL_CONFIGURE_NAME=linux-generic64 \
|
|
|
|
|
$(MAKE) release-linux-current-target
|
2021-10-17 18:17:50 +01:00
|
|
|
|
2022-05-23 21:33:12 +01:00
|
|
|
@PHONY: release-linux-aarch64
|
2023-07-11 20:35:27 +01:00
|
|
|
release-linux-aarch64:
|
|
|
|
|
TARGET=aarch64-unknown-linux-gnu \
|
|
|
|
|
TARGET_SNAKE_CASE=aarch64_unknown_linux_gnu \
|
|
|
|
|
TARGET_SNAKE_UPPER_CASE=AARCH64_UNKNOWN_LINUX_GNU \
|
|
|
|
|
CROSS_COMPILE_PREFIX=aarch64-unknown-linux-gnu \
|
|
|
|
|
OPENSSL_CONFIGURE_NAME=linux-aarch64 \
|
|
|
|
|
$(MAKE) release-linux-current-target
|
2022-05-23 21:33:12 +01:00
|
|
|
|
2023-05-07 15:00:32 +00:00
|
|
|
@PHONY: release-linux-armv6
|
2023-07-11 20:35:27 +01:00
|
|
|
release-linux-armv6:
|
|
|
|
|
TARGET=arm-unknown-linux-gnueabihf \
|
|
|
|
|
TARGET_SNAKE_CASE=arm_unknown_linux_gnueabihf \
|
|
|
|
|
TARGET_SNAKE_UPPER_CASE=ARM_UNKNOWN_LINUX_GNUEABIHF \
|
|
|
|
|
CROSS_COMPILE_PREFIX=arm-linux-gnueabihf \
|
|
|
|
|
OPENSSL_CONFIGURE_NAME=linux-generic32 \
|
|
|
|
|
LDFLAGS=-latomic \
|
|
|
|
|
$(MAKE) release-linux-current-target
|
2023-05-07 15:00:32 +00:00
|
|
|
|
2023-11-26 10:26:49 +00:00
|
|
|
# armv7-unknown-linux-gnueabihf
|
|
|
|
|
@PHONY: release-linux-armv7
|
|
|
|
|
release-linux-armv7:
|
|
|
|
|
TARGET=armv7-unknown-linux-gnueabihf \
|
|
|
|
|
TARGET_SNAKE_CASE=armv7_unknown_linux_gnueabihf \
|
|
|
|
|
TARGET_SNAKE_UPPER_CASE=ARMV7_UNKNOWN_LINUX_GNUEABIHF \
|
|
|
|
|
CROSS_COMPILE_PREFIX=armv7-linux-gnueabihf \
|
|
|
|
|
OPENSSL_CONFIGURE_NAME=linux-generic32 \
|
|
|
|
|
$(MAKE) release-linux-current-target
|
|
|
|
|
|
2021-10-17 18:17:50 +01:00
|
|
|
|
|
|
|
|
@PHONY: release-all
|
|
|
|
|
release-all: release-windows release-linux release-macos-universal
|
2021-10-17 13:50:46 +01:00
|
|
|
rm -rf /tmp/rqbit-release
|
|
|
|
|
mkdir -p /tmp/rqbit-release
|
2023-11-20 16:16:25 +00:00
|
|
|
cp ./target/x86_64-pc-windows-gnu/release-github/rqbit.exe /tmp/rqbit-release
|
|
|
|
|
cp ./target/x86_64-apple-darwin/release-github/rqbit-osx-universal /tmp/rqbit-release
|
|
|
|
|
cp ./target/x86_64-unknown-linux-gnu/release-github/rqbit /tmp/rqbit-release/rqbit-linux-x86_64
|
2021-10-17 13:50:46 +01:00
|
|
|
echo "The release was built in /tmp/rqbit-release"
|