summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRasmus Thomsen <oss@cogitri.dev>2020-05-19 12:02:03 +0200
committerTimo Teräs <timo.teras@iki.fi>2020-10-09 16:09:19 +0300
commit7f4591333d8f5cb1813aee7fbaafd10e82c10958 (patch)
tree831395ca74075a7966e039dea3b38644757ee879
parentf6795011cab8da4fbf8e719f71d2028de1ca389e (diff)
downloadapk-tools-7f4591333d8f5cb1813aee7fbaafd10e82c10958.tar.gz
apk-tools-7f4591333d8f5cb1813aee7fbaafd10e82c10958.tar.bz2
apk-tools-7f4591333d8f5cb1813aee7fbaafd10e82c10958.tar.xz
apk-tools-7f4591333d8f5cb1813aee7fbaafd10e82c10958.zip
scripts: add script to generate APK cross file
-rwxr-xr-xscripts/generate-meson-crossfile.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/generate-meson-crossfile.sh b/scripts/generate-meson-crossfile.sh
new file mode 100755
index 0000000..31fc0e0
--- /dev/null
+++ b/scripts/generate-meson-crossfile.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+set -eu
+
+_target_endianess=little
+_target_cpu="$CARCH"
+
+case "$CARCH" in
+ mips*)
+ _target_endianness=big
+ _target_cpu_family=mips
+ ;;
+ arm*)
+ _target_cpu_family=arm
+ ;;
+ ppc64le)
+ _target_cpu_family=ppc64
+ ;;
+ aarch64|x86*)
+ # $CARCH maps 1:1 to _cpu_family for meson for these arches
+ _target_cpu_family="$CARCH"
+ ;;
+esac
+
+# Keep in mind that CC, CXX etc. are the binaries to compile from host
+# to target, not from host to host!
+cat > apk.cross <<EOF
+[binaries]
+c = '${CC}'
+cpp = '${CXX}'
+ar = '${AR}'
+nm = '${NM}'
+ld = '${LD}'
+strip = '${STRIP}'
+readelf = '${READELF}'
+objcopy = '${OBJCOPY}'
+pkgconfig = 'pkg-config'
+[properties]
+needs_exe_wrapper = true
+c_args = ['$(echo ${CFLAGS} | sed -r "s/\s+/','/g")']
+c_link_args = ['$(echo ${LDFLAGS} | sed -r "s/\s+/','/g")']
+cpp_args = ['$(echo ${CXXFLAGS} | sed -r "s/\s+/','/g")']
+cpp_link_args = ['$(echo ${LDFLAGS} | sed -r "s/\s+/','/g")']
+[host_machine]
+system = 'linux'
+cpu_family = '${_target_cpu_family}'
+cpu = '${_target_cpu}'
+endian = '${_target_endianess}'
+EOF
+
+echo "Generating crossfile is done. You can invoke meson with the cross file with 'meson --cross apk.cross' now."