rqbit/Makefile

160 lines
5.1 KiB
Makefile
Raw Normal View History

all:
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:
2024-08-21 22:27:58 +01:00
echo -n '' > /tmp/rqbit-log && CORS_ALLOW_REGEXP=".*" \
cargo run -- \
--log-file /tmp/rqbit-log \
--log-file-rust-log=debug,librqbit=trace,upnp_serve=trace \
2024-08-21 22:27:58 +01:00
--http-api-listen-addr 0.0.0.0:3030 \
2024-08-25 15:21:16 +01:00
--upnp-server-hostname "$(shell hostname)" \
--upnp-server-friendly-name rqbit-dev \
2024-08-21 13:22:22 +01:00
server start /tmp/scratch/
2023-12-05 13:16:16 +00:00
2024-08-25 15:21:16 +01:00
@PHONY: devserver-release
devserver-profile:
cargo run --release -- \
--http-api-listen-addr 0.0.0.0:3030 \
--upnp-server-hostname "$(shell hostname)" \
--upnp-server-friendly-name rqbit-dev \
server start /tmp/scratch/
2024-08-15 14:18:55 +01:00
@PHONY: devserver
devserver-postgres:
2024-08-21 22:27:58 +01:00
echo -n '' > /tmp/rqbit-log && CORS_ALLOW_REGEXP=".*" \
cargo run -- \
2024-08-15 14:18:55 +01:00
--log-file /tmp/rqbit-log \
--log-file-rust-log=debug,librqbit=trace \
2024-08-20 22:57:08 +01:00
server start --fastresume --persistence-config postgres:///rqbit /tmp/scratch/
2024-08-15 14:18:55 +01: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
sign-debug:
codesign -f --entitlements resources/debugging.entitlements -s - target/debug/rqbit
2021-07-31 13:13:04 +01:00
@PHONY: sign-release
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
install target/release/rqbit "$(HOME)/bin/"
@PHONY: test
test:
ulimit -n unlimited && cargo test
@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
lipo \
2023-11-20 16:16:25 +00:00
./target/aarch64-apple-darwin/release-github/rqbit \
./target/x86_64-apple-darwin/release-github/rqbit \
-create \
2023-11-20 16:16:25 +00:00
-output ./target/x86_64-apple-darwin/release-github/rqbit-osx-universal
@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
2023-07-11 20:35:27 +01:00
@PHONY: release-linux-current-target
release-linux-current-target:
2023-07-11 20:35:27 +01:00
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 \
cargo build --profile release-github --target=$(TARGET) --features=openssl-vendored
2023-05-07 15:00:32 +00:00
@PHONY: release-linux
2024-04-23 22:17:24 +01:00
release-linux: release-linux-x86_64 release-linux-aarch64 release-linux-armv6 release-linux-armv7 release-linux-armv7-musl
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:
2024-08-26 12:14:44 +01:00
TARGET=x86_64-unknown-linux-musl \
TARGET_SNAKE_CASE=x86_64_unknown_linux_musl \
TARGET_SNAKE_UPPER_CASE=X86_64_UNKNOWN_LINUX_MUSL \
CROSS_COMPILE_PREFIX=x86_64-unknown-linux-musl \
2023-07-11 20:35:27 +01:00
$(MAKE) release-linux-current-target
2024-08-26 15:42:38 +01:00
@PHONY: create-target-docker
create-target-docker:
mkdir -p target/docker/linux/amd64 target/docker/linux/arm64 target/docker/linux/arm/v7 && \
2024-08-26 16:29:58 +01:00
cp -lf target/x86_64-unknown-linux-musl/release-github/rqbit target/docker/linux/amd64/rqbit && \
cp -lf target/aarch64-unknown-linux-musl/release-github/rqbit target/docker/linux/arm64/rqbit && \
cp -lf target/armv7-unknown-linux-musleabihf/release-github/rqbit target/docker/linux/arm/v7/rqbit && \
2024-08-26 15:42:38 +01:00
cp docker/Dockerfile target/Docker
@PHONE: docker-build-prereqs
docker-build-prereqs: release-linux-aarch64 release-linux-x86_64 release-linux-armv7
2024-08-26 15:42:38 +01:00
@PHONY: docker-build
docker-build: create-target-docker
2024-08-26 12:33:32 +01:00
docker build \
2024-08-26 15:42:38 +01:00
-f target/docker/Dockerfile \
-t ikatson/rqbit:$(shell git describe --tags) \
--platform linux/amd64,linux/arm64,linux/arm/v7 \
target/docker/
2024-08-26 12:33:32 +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:
2024-08-26 15:42:38 +01:00
TARGET=aarch64-unknown-linux-musl \
TARGET_SNAKE_CASE=aarch64_unknown_linux_musl \
TARGET_SNAKE_UPPER_CASE=AARCH64_UNKNOWN_LINUX_MUSL \
CROSS_COMPILE_PREFIX=aarch64-unknown-linux-musl \
2023-07-11 20:35:27 +01:00
$(MAKE) release-linux-current-target
2022-05-23 21:33:12 +01:00
2024-08-26 15:42:38 +01:00
# TODO: couldn't figure out how to compile this one with musl
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 \
LDFLAGS=-latomic \
$(MAKE) release-linux-current-target
2023-05-07 15:00:32 +00:00
2023-11-26 10:26:49 +00:00
@PHONY: release-linux-armv7
release-linux-armv7:
2024-04-23 22:17:24 +01:00
TARGET=armv7-unknown-linux-musleabihf \
TARGET_SNAKE_CASE=armv7_unknown_linux_musleabihf \
TARGET_SNAKE_UPPER_CASE=ARMV7_UNKNOWN_LINUX_MUSLEABIHF \
CROSS_COMPILE_PREFIX=armv7-linux-musleabihf \
$(MAKE) release-linux-current-target
@PHONY: release-all
release-all: release-windows release-linux release-macos-universal
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
echo "The release was built in /tmp/rqbit-release"