Added linux aarch64
This commit is contained in:
parent
e10da1c7dd
commit
9c79e3a99e
2 changed files with 51 additions and 16 deletions
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
|
|
@ -34,9 +34,15 @@ jobs:
|
||||||
- name: Build release linux x86_64 binary
|
- name: Build release linux x86_64 binary
|
||||||
run:
|
run:
|
||||||
rustup target install x86_64-unknown-linux-gnu &&
|
rustup target install x86_64-unknown-linux-gnu &&
|
||||||
make release-linux &&
|
make release-linux-x86_64 &&
|
||||||
mv target/x86_64-unknown-linux-gnu/release/rqbit target/release/rqbit-linux-static-x86_64
|
mv target/x86_64-unknown-linux-gnu/release/rqbit target/release/rqbit-linux-static-x86_64
|
||||||
|
|
||||||
|
- name: Build release linux aarch64 binary
|
||||||
|
run:
|
||||||
|
rustup target install aarch64-unknown-linux-gnu &&
|
||||||
|
make release-linux-aarch64 &&
|
||||||
|
mv target/aarch64-unknown-linux-gnu/release/rqbit target/release/rqbit-linux-static-aarch64
|
||||||
|
|
||||||
- name: Build release OSX universal binary
|
- name: Build release OSX universal binary
|
||||||
run:
|
run:
|
||||||
rustup target install aarch64-apple-darwin &&
|
rustup target install aarch64-apple-darwin &&
|
||||||
|
|
|
||||||
59
Makefile
59
Makefile
|
|
@ -1,5 +1,11 @@
|
||||||
|
OPENSSL_VERSION=3.0.3
|
||||||
|
|
||||||
all: sign-release sign-debug
|
all: sign-release sign-debug
|
||||||
|
|
||||||
|
@PHONY: clean
|
||||||
|
clean:
|
||||||
|
rm -rf target
|
||||||
|
|
||||||
@PHONY: sign-debug
|
@PHONY: sign-debug
|
||||||
sign-debug:
|
sign-debug:
|
||||||
codesign -f --entitlements resources/debugging.entitlements -s - target/debug/rqbit
|
codesign -f --entitlements resources/debugging.entitlements -s - target/debug/rqbit
|
||||||
|
|
@ -34,31 +40,55 @@ release-windows:
|
||||||
# brew install mingw-w64
|
# brew install mingw-w64
|
||||||
cargo build --target x86_64-pc-windows-gnu --release
|
cargo build --target x86_64-pc-windows-gnu --release
|
||||||
|
|
||||||
target/openssl-linux/lib/libssl.a:
|
target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz:
|
||||||
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/ && \
|
mkdir -p target/openssl-linux
|
||||||
mkdir -p "$${OPENSSL_ROOT}"/src && \
|
curl -L https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz -o $@
|
||||||
cd "$${OPENSSL_ROOT}"/src/ && \
|
|
||||||
curl -LO https://www.openssl.org/source/openssl-3.0.0.tar.gz && \
|
target/openssl-linux/x86_64/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz
|
||||||
tar xf openssl-3.0.0.tar.gz && \
|
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/x86_64/ && \
|
||||||
cd openssl-3.0.0 && \
|
mkdir -p $${OPENSSL_ROOT}/src && \
|
||||||
|
cd $${OPENSSL_ROOT}/src/ && \
|
||||||
|
tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \
|
||||||
|
cd openssl-$(OPENSSL_VERSION) && \
|
||||||
./Configure linux-generic64 --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared --cross-compile-prefix=x86_64-unknown-linux-gnu- && \
|
./Configure linux-generic64 --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared --cross-compile-prefix=x86_64-unknown-linux-gnu- && \
|
||||||
make -j && \
|
make -j && \
|
||||||
make install_sw
|
make install_sw
|
||||||
|
|
||||||
|
target/openssl-linux/aarch64/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz
|
||||||
|
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/aarch64/ && \
|
||||||
|
mkdir -p $${OPENSSL_ROOT}/src && \
|
||||||
|
cd $${OPENSSL_ROOT}/src/ && \
|
||||||
|
tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \
|
||||||
|
cd openssl-$(OPENSSL_VERSION) && \
|
||||||
|
./Configure linux-aarch64 --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared --cross-compile-prefix=aarch64-unknown-linux-gnu- && \
|
||||||
|
make -j && \
|
||||||
|
make install_sw
|
||||||
|
|
||||||
@PHONY: release-linux
|
@PHONY: release-linux
|
||||||
release-linux: target/openssl-linux/lib/libssl.a
|
release-linux: release-linux-x86_64 release-linux-aarch64
|
||||||
# prereqs:
|
|
||||||
# brew tap messense/macos-cross-toolchains
|
@PHONY: release-linux-x86_64
|
||||||
# brew install x86_64-unknown-linux-gnu
|
release-linux-x86_64: target/openssl-linux/x86_64/lib/libssl.a
|
||||||
# cross-compile openssl with "no-shared", e.g.
|
# prereqs:
|
||||||
# ./Configure linux-generic64 --prefix=$(PWD)/target/openssl-linux/ --openssldir=$(PWD)/target/openssl-linux/ --cross-compile-prefix=x86_64-unknown-linux-gnu- no-shared
|
# brew tap messense/macos-cross-toolchains
|
||||||
|
# brew install x86_64-unknown-linux-gnu armv7-unknown-linux-gnueabihf aarch64-unknown-linux-gnu
|
||||||
|
# cross-compile openssl with "no-shared", see above
|
||||||
CC_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-gcc \
|
CC_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-gcc \
|
||||||
CXX_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-g++ \
|
CXX_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-g++ \
|
||||||
AR_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-ar \
|
AR_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-ar \
|
||||||
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-unknown-linux-gnu-gcc \
|
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-unknown-linux-gnu-gcc \
|
||||||
OPENSSL_DIR=$(PWD)/target/openssl-linux/ \
|
OPENSSL_DIR=$(PWD)/target/openssl-linux/x86_64/ \
|
||||||
cargo build --release --target=x86_64-unknown-linux-gnu
|
cargo build --release --target=x86_64-unknown-linux-gnu
|
||||||
|
|
||||||
|
@PHONY: release-linux-aarch64
|
||||||
|
release-linux-aarch64: target/openssl-linux/aarch64/lib/libssl.a
|
||||||
|
CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-gcc \
|
||||||
|
CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-g++ \
|
||||||
|
AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-ar \
|
||||||
|
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-unknown-linux-gnu-gcc \
|
||||||
|
OPENSSL_DIR=$(PWD)/target/openssl-linux/aarch64/ \
|
||||||
|
cargo build --release --target=aarch64-unknown-linux-gnu
|
||||||
|
|
||||||
|
|
||||||
@PHONY: release-all
|
@PHONY: release-all
|
||||||
release-all: release-windows release-linux release-macos-universal
|
release-all: release-windows release-linux release-macos-universal
|
||||||
|
|
@ -67,5 +97,4 @@ release-all: release-windows release-linux release-macos-universal
|
||||||
cp ./target/x86_64-pc-windows-gnu/release/rqbit.exe /tmp/rqbit-release
|
cp ./target/x86_64-pc-windows-gnu/release/rqbit.exe /tmp/rqbit-release
|
||||||
cp ./target/x86_64-apple-darwin/release/rqbit-osx-universal /tmp/rqbit-release
|
cp ./target/x86_64-apple-darwin/release/rqbit-osx-universal /tmp/rqbit-release
|
||||||
cp ./target/x86_64-unknown-linux-gnu/release/rqbit /tmp/rqbit-release/rqbit-linux-x86_64
|
cp ./target/x86_64-unknown-linux-gnu/release/rqbit /tmp/rqbit-release/rqbit-linux-x86_64
|
||||||
|
|
||||||
echo "The release was built in /tmp/rqbit-release"
|
echo "The release was built in /tmp/rqbit-release"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue