Further prettify makefile

This commit is contained in:
Igor Katson 2023-07-11 20:35:27 +01:00
parent 78ccb9465b
commit 80f069589a
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5

View file

@ -1,4 +1,4 @@
OPENSSL_VERSION=3.0.3 OPENSSL_VERSION=3.1.1
all: sign-release sign-debug all: sign-release sign-debug
@ -44,63 +44,55 @@ target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz:
mkdir -p target/openssl-linux mkdir -p target/openssl-linux
curl -L https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz -o $@ curl -L https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz -o $@
target/openssl-linux/x86_64/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz target/openssl-linux/$(TARGET)/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/x86_64/ && \ export OPENSSL_ROOT=$(PWD)/target/openssl-linux/$(TARGET)/ && \
mkdir -p $${OPENSSL_ROOT}/src && \ mkdir -p $${OPENSSL_ROOT}/src && \
cd $${OPENSSL_ROOT}/src/ && \ cd $${OPENSSL_ROOT}/src/ && \
tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \ tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \
cd openssl-$(OPENSSL_VERSION) && \ cd openssl-$(OPENSSL_VERSION) && \
./Configure linux-generic64 --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared --cross-compile-prefix=x86_64-unknown-linux-gnu- && \ ./Configure $(OPENSSL_CONFIGURE_NAME) --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared \
--cross-compile-prefix=$(CROSS_COMPILE_PREFIX)- && \
make install_dev -j make install_dev -j
target/openssl-linux/aarch64/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz @PHONY: release-linux-current-target
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/aarch64/ && \ release-linux-current-target: target/openssl-linux/$(TARGET)/lib/libssl.a
mkdir -p $${OPENSSL_ROOT}/src && \ CC_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-gcc \
cd $${OPENSSL_ROOT}/src/ && \ CXX_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-g++ \
tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \ AR_$(TARGET_SNAKE_CASE)=$(CROSS_COMPILE_PREFIX)-ar \
cd openssl-$(OPENSSL_VERSION) && \ CARGO_TARGET_$(TARGET_SNAKE_UPPER_CASE)_LINKER=$(CROSS_COMPILE_PREFIX)-gcc \
./Configure linux-aarch64 --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared --cross-compile-prefix=aarch64-unknown-linux-gnu- && \ OPENSSL_DIR=$(PWD)/target/openssl-linux/$(TARGET)/ \
make install_dev -j cargo build --release --target=$(TARGET)
target/openssl-linux/armv6/lib/libssl.a: target/openssl-linux/openssl-$(OPENSSL_VERSION).tar.gz
export OPENSSL_ROOT=$(PWD)/target/openssl-linux/armv6/ && \
mkdir -p $${OPENSSL_ROOT}/src && \
cd $${OPENSSL_ROOT}/src/ && \
tar xf ../../openssl-$(OPENSSL_VERSION).tar.gz && \
cd openssl-$(OPENSSL_VERSION) && \
LDFLAGS=-latomic ./Configure linux-generic32 --prefix="$${OPENSSL_ROOT}" --openssldir="$${OPENSSL_ROOT}" no-shared --cross-compile-prefix=arm-linux-gnueabihf- && \
make install_dev -j
@PHONY: release-linux @PHONY: release-linux
release-linux: release-linux-x86_64 release-linux-aarch64 release-linux: release-linux-x86_64 release-linux-aarch64 release-linux-armv6
@PHONY: release-linux-x86_64 @PHONY: release-linux-x86_64
release-linux-x86_64: target/openssl-linux/x86_64/lib/libssl.a release-linux-x86_64:
# prereqs: TARGET=x86_64-unknown-linux-gnu \
# brew tap messense/macos-cross-toolchains TARGET_SNAKE_CASE=x86_64_unknown_linux_gnu \
# brew install x86_64-unknown-linux-gnu arm-unknown-linux-gnueabihf aarch64-unknown-linux-gnu TARGET_SNAKE_UPPER_CASE=X86_64_UNKNOWN_LINUX_GNU \
# cross-compile openssl with "no-shared", see above CROSS_COMPILE_PREFIX=x86_64-unknown-linux-gnu \
CC_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-gcc \ OPENSSL_CONFIGURE_NAME=linux-generic64 \
CXX_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-g++ \ $(MAKE) release-linux-current-target
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 \
OPENSSL_DIR=$(PWD)/target/openssl-linux/x86_64/ \
cargo build --release --target=x86_64-unknown-linux-gnu
@PHONY: release-linux-aarch64 @PHONY: release-linux-aarch64
release-linux-aarch64: target/openssl-linux/aarch64/lib/libssl.a release-linux-aarch64:
CC_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-gcc \ TARGET=aarch64-unknown-linux-gnu \
CXX_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-g++ \ TARGET_SNAKE_CASE=aarch64_unknown_linux_gnu \
AR_aarch64_unknown_linux_gnu=aarch64-unknown-linux-gnu-ar \ TARGET_SNAKE_UPPER_CASE=AARCH64_UNKNOWN_LINUX_GNU \
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-unknown-linux-gnu-gcc \ CROSS_COMPILE_PREFIX=aarch64-unknown-linux-gnu \
OPENSSL_DIR=$(PWD)/target/openssl-linux/aarch64/ \ OPENSSL_CONFIGURE_NAME=linux-aarch64 \
cargo build --release --target=aarch64-unknown-linux-gnu $(MAKE) release-linux-current-target
@PHONY: release-linux-armv6 @PHONY: release-linux-armv6
release-linux-armv6: target/openssl-linux/armv6/lib/libssl.a release-linux-armv6:
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \ TARGET=arm-unknown-linux-gnueabihf \
OPENSSL_DIR=$(PWD)/target/openssl-linux/armv6/ \ TARGET_SNAKE_CASE=arm_unknown_linux_gnueabihf \
cargo build --release --target=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
@PHONY: release-all @PHONY: release-all