mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-06-19 15:53:49 +00:00
Refactor testing and (cross)compile.
With the update to diesel 2.0.0-rc0, it is now possible to cross-compile without emulation. Note that during each (cross)compile, we have to install libpq-dev for the target platform, as only one version can be installed at a time (e.g. libpq-dev:amd64 conflicts with libpq-dev:armhf).
This commit is contained in:
@ -1,29 +1,107 @@
|
||||
.PHONY: debug release release-deb test test-server dbshell dist
|
||||
.PHONY: dist
|
||||
|
||||
TARGET_ARCH := $(shell rustc --print cfg |grep target_arch |sed 's/target_arch="\(.*\)"/\1/')
|
||||
PKG_VERSION := $(shell cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')
|
||||
|
||||
debug:
|
||||
debug-amd64:
|
||||
apt update && apt install -y libpq-dev:amd64
|
||||
cargo build
|
||||
|
||||
release:
|
||||
debug-armv7hf:
|
||||
# We can not install this by default, as only one libpq-dev version can be
|
||||
# installed at a time.
|
||||
apt update && apt install -y libpq-dev:armhf
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/arm-linux-gnueabihf" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/arm-linux-gnueabihf" \
|
||||
cargo build --target armv7-unknown-linux-gnueabihf
|
||||
|
||||
debug-arm64:
|
||||
apt update && apt install -y libpq-dev:arm64
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/aarch64-linux-gnu" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/aarch64-linux-gnu" \
|
||||
cargo build --target aarch64-unknown-linux-gnu
|
||||
|
||||
release-amd64:
|
||||
apt update && apt install -y libpq-dev:amd64
|
||||
cargo build --release
|
||||
|
||||
dist: release-deb release-rpm release-targz
|
||||
release-armv7hf:
|
||||
apt update && apt install -y libpq-dev:armhf
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/arm-linux-gnueabihf" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/arm-linux-gnueabihf" \
|
||||
cargo build --target armv7-unknown-linux-gnueabihf --release
|
||||
|
||||
release-deb:
|
||||
release-arm64:
|
||||
apt update && apt install -y libpq-dev:arm64
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/aarch64-linux-gnu" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/aarch64-linux-gnu" \
|
||||
cargo build --target aarch64-unknown-linux-gnu --release
|
||||
|
||||
dist: release-deb-amd64 \
|
||||
release-deb-armv7hf \
|
||||
release-deb-arm64 \
|
||||
release-rpm-amd64 \
|
||||
release-rpm-armv7hf \
|
||||
release-rpm-arm64 \
|
||||
release-targz-amd64 \
|
||||
release-targz-armv7hf \
|
||||
release-targz-arm64 \
|
||||
|
||||
release-deb-amd64:
|
||||
apt update && apt install -y libpq-dev:amd64
|
||||
mkdir -p /chirpstack/dist
|
||||
cargo deb
|
||||
cp /target/debian/*.deb /chirpstack/dist
|
||||
cp ../target/debian/*.deb /chirpstack/dist
|
||||
|
||||
release-rpm:
|
||||
release-deb-armv7hf:
|
||||
apt update && apt install -y libpq-dev:armhf
|
||||
mkdir -p /chirpstack/dist
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/arm-linux-gnueabihf" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/arm-linux-gnueabihf" \
|
||||
cargo deb --target armv7-unknown-linux-gnueabihf
|
||||
cp ../target/armv7-unknown-linux-gnueabihf/debian/*.deb /chirpstack/dist
|
||||
|
||||
release-deb-arm64:
|
||||
apt update && apt install -y libpq-dev:arm64
|
||||
mkdir -p /chirpstack/dist
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/aarch64-linux-gnu" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/aarch64-linux-gnu" \
|
||||
cargo deb --target aarch64-unknown-linux-gnu
|
||||
cp ../target/aarch64-unknown-linux-gnu/debian/*.deb /chirpstack/dist
|
||||
|
||||
release-rpm-amd64:
|
||||
apt update && apt install -y libpq-dev:amd64
|
||||
mkdir -p /chirpstack/dist
|
||||
cargo rpm build
|
||||
find /target/release/rpmbuild/RPMS -type f -exec cp {} /chirpstack/dist \;
|
||||
find ../target/release/rpmbuild/RPMS -type f -exec cp {} /chirpstack/dist \;
|
||||
|
||||
release-targz:
|
||||
release-rpm-armv7hf:
|
||||
apt update && apt install -y libpq-dev:armhf
|
||||
mkdir -p /chirpstack/dist
|
||||
tar -czvf /chirpstack/dist/chirpstack_$(PKG_VERSION)_$(TARGET_ARCH).tar.gz -C /target/release chirpstack
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/arm-linux-gnueabihf" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/arm-linux-gnueabihf" \
|
||||
cargo rpm build --target armv7-unknown-linux-gnueabihf
|
||||
find ../target/armv7-unknown-linux-gnueabihf/release/rpmbuild/RPMS -type f -exec cp {} /chirpstack/dist \;
|
||||
|
||||
release-rpm-arm64:
|
||||
apt update && apt install -y libpq-dev:arm64
|
||||
mkdir -p /chirpstack/dist
|
||||
BINDGEN_EXTRA_CLANG_ARGS="--sysroot=/usr/aarch64-linux-gnu" \
|
||||
PKG_CONFIG_SYSROOT_DIR="/usr/aarch64-linux-gnu" \
|
||||
cargo rpm build --target aarch64-unknown-linux-gnu
|
||||
find ../target/aarch64-unknown-linux-gnu/release/rpmbuild/RPMS -type f -exec cp {} /chirpstack/dist \;
|
||||
|
||||
release-targz-amd64: release-amd64
|
||||
mkdir -p /chirpstack/dist
|
||||
tar -czvf /chirpstack/dist/chirpstack_$(PKG_VERSION)_amd64.tar.gz -C ../target/release chirpstack
|
||||
|
||||
release-targz-armv7hf: release-armv7hf
|
||||
mkdir -p /chirpstack/dist
|
||||
tar -czvf /chirpstack/dist/chirpstack_$(PKG_VERSION)_armv7hf.tar.gz -C ../target/armv7-unknown-linux-gnueabihf/release chirpstack
|
||||
|
||||
release-targz-arm64: release-arm64
|
||||
mkdir -p /chirpstack/dist
|
||||
tar -czvf /chirpstack/dist/chirpstack_$(PKG_VERSION)_arm64.tar.gz -C ../target/aarch64-unknown-linux-gnu/release chirpstack
|
||||
|
||||
test:
|
||||
cargo fmt --check
|
||||
@ -33,8 +111,8 @@ test:
|
||||
test-lrwn:
|
||||
cd ../lrwn && make test
|
||||
|
||||
test-server: debug configuration/certs/ca.pem
|
||||
/target/debug/chirpstack -c ./configuration
|
||||
test-server: debug-amd64 configuration/certs/ca.pem
|
||||
../target/debug/chirpstack -c ./configuration
|
||||
|
||||
dbshell:
|
||||
psql -h postgres -U chirpstack chirpstack
|
||||
|
Reference in New Issue
Block a user