chiark / gitweb /
Initial version.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 22 Nov 2018 16:10:25 +0000 (16:10 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 22 Nov 2018 17:18:24 +0000 (17:18 +0000)
17 files changed:
.gitignore [new file with mode: 0644]
bin/mdw-cross [new file with mode: 0755]
etc/android-arm-config.site [new file with mode: 0644]
etc/android-arm-setup.sh [new file with mode: 0644]
etc/android-arm64-config.site [new file with mode: 0644]
etc/android-arm64-setup.sh [new file with mode: 0644]
etc/android-x86-config.site [new file with mode: 0644]
etc/android-x86-setup.sh [new file with mode: 0644]
etc/android-x86_64-config.site [new file with mode: 0644]
etc/android-x86_64-setup.sh [new file with mode: 0644]
etc/android.sh [new file with mode: 0644]
etc/arm64-config.site [new file with mode: 0644]
etc/arm64-setup.sh [new file with mode: 0644]
etc/armel-config.site [new file with mode: 0644]
etc/armel-setup.sh [new file with mode: 0644]
etc/armhf-config.site [new file with mode: 0644]
etc/armhf-setup.sh [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..fc64fe3
--- /dev/null
@@ -0,0 +1 @@
+inst.*/
diff --git a/bin/mdw-cross b/bin/mdw-cross
new file mode 100755 (executable)
index 0000000..61c2456
--- /dev/null
@@ -0,0 +1,38 @@
+#! /bin/sh -e
+
+case $# in
+  0) echo 2>&1 "usage: ${0##*/} ENV [CMD [ARGS ...]]"; exit 2 ;;
+esac
+env=$1; shift
+case $# in
+  0) set -- "$SHELL" ;;
+esac
+
+case ${CROSSDIR+t} in
+  t) ;;
+  *)
+    dir=$(pwd)
+    p=$0
+    while :; do
+      case $p in */*) f=${p##*/} p=${p%/*};; *) f=$p p=. ;; esac
+      cd $p
+      if ! [ -L "$f" ]; then break; fi
+      p=$(readlink "$f")
+    done
+    p=$(pwd)
+    CROSSDIR=${p%/bin}; export CROSSDIR
+    cd "$dir"
+    ;;
+esac
+
+if ! [ -f "$CROSSDIR/etc/$env-setup.sh" ]; then
+  echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2
+fi
+
+MDW_BUILDENV=$env; export MDW_BUILDENV
+if [ -f "$CROSSDIR/etc/$env-config.site" ]; then
+  CONFIG_SITE=$CROSSDIR/etc/$env-config.site; export CONFIG_SITE
+fi
+CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX
+. "$CROSSDIR/etc/$env-setup.sh"
+exec "$@"
diff --git a/etc/android-arm-config.site b/etc/android-arm-config.site
new file mode 100644 (file)
index 0000000..88e5929
--- /dev/null
@@ -0,0 +1,15 @@
+### -*-sh-*-
+
+ANDROID_NDK_TARGETARCH=arm-linux-androideabi
+. $CROSSDIR/etc/android.sh
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=$ANDROID_NDK_TARGETARCH; host_alias=$host
+cross_compiling=yes
+CC="ccache $ANDROID_CC"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/android-arm-setup.sh b/etc/android-arm-setup.sh
new file mode 100644 (file)
index 0000000..6a4912b
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+ANDROID_NDK_TARGETARCH=arm-linux-androideabi
+. $CROSSDIR/etc/android.sh
+PATH=$PATH:$ANDROID_NDK_TOOLS
diff --git a/etc/android-arm64-config.site b/etc/android-arm64-config.site
new file mode 100644 (file)
index 0000000..c8919a5
--- /dev/null
@@ -0,0 +1,15 @@
+### -*-sh-*-
+
+ANDROID_NDK_TARGETARCH=aarch64-linux-android
+. $CROSSDIR/etc/android.sh
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=$ANDROID_NDK_TARGETARCH; host_alias=$host
+cross_compiling=yes
+CC="ccache $ANDROID_CC"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/android-arm64-setup.sh b/etc/android-arm64-setup.sh
new file mode 100644 (file)
index 0000000..3be7950
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+ANDROID_NDK_TARGETARCH=aarch64-linux-android
+. $CROSSDIR/etc/android.sh
+PATH=$PATH:$ANDROID_NDK_TOOLS
diff --git a/etc/android-x86-config.site b/etc/android-x86-config.site
new file mode 100644 (file)
index 0000000..8336b84
--- /dev/null
@@ -0,0 +1,15 @@
+### -*-sh-*-
+
+ANDROID_NDK_TARGETARCH=i686-linux-android
+. $CROSSDIR/etc/android.sh
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=$ANDROID_NDK_TARGETARCH; host_alias=$host
+cross_compiling=yes
+CC="ccache $ANDROID_CC"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/android-x86-setup.sh b/etc/android-x86-setup.sh
new file mode 100644 (file)
index 0000000..3fec185
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+ANDROID_NDK_TARGETARCH=i686-linux-android
+. $CROSSDIR/etc/android.sh
+PATH=$PATH:$ANDROID_NDK_TOOLS
diff --git a/etc/android-x86_64-config.site b/etc/android-x86_64-config.site
new file mode 100644 (file)
index 0000000..4b1d822
--- /dev/null
@@ -0,0 +1,15 @@
+### -*-sh-*-
+
+ANDROID_NDK_TARGETARCH=x86_64-linux-android
+. $CROSSDIR/etc/android.sh
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=$ANDROID_NDK_TARGETARCH; host_alias=$host
+cross_compiling=yes
+CC="ccache $ANDROID_CC"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/android-x86_64-setup.sh b/etc/android-x86_64-setup.sh
new file mode 100644 (file)
index 0000000..e599727
--- /dev/null
@@ -0,0 +1,5 @@
+#! /bin/sh
+
+ANDROID_NDK_TARGETARCH=x86_64-linux-android
+. $CROSSDIR/etc/android.sh
+PATH=$PATH:$ANDROID_NDK_TOOLS
diff --git a/etc/android.sh b/etc/android.sh
new file mode 100644 (file)
index 0000000..5e1f1b0
--- /dev/null
@@ -0,0 +1,37 @@
+### -*-sh-*-
+
+: ${ANDROID_SDK=/usr/local/android/sdk}
+: ${ANDROID_NDK=$ANDROID_SDK/ndk-bundle}
+: ${ANDROID_NDK_TOOLVER=4.9}
+: ${ANDROID_NDK_HOSTARCH=linux-x86_64}
+case $ANDROID_NDK_TARGETARCH in
+  arm-linux-androideabi)
+    ANDROID_NDK_TARGETARCHDIR=arm-linux-androideabi
+    ANDROID_NDK_TARGETSHORTARCH=arm
+    : ${ANDROID_NDK_TARGETVER=15}
+    ;;
+  aarch64-linux-android)
+    ANDROID_NDK_TARGETARCHDIR=aarch64-linux-android
+    ANDROID_NDK_TARGETSHORTARCH=arm64
+    : ${ANDROID_NDK_TARGETVER=21}
+    ;;
+  i686-linux-android)
+    ANDROID_NDK_TARGETARCHDIR=x86
+    ANDROID_NDK_TARGETSHORTARCH=x86
+    : ${ANDROID_NDK_TARGETVER=15}
+    ;;
+  x86_64-linux-android)
+    ANDROID_NDK_TARGETARCHDIR=x86_64
+    ANDROID_NDK_TARGETSHORTARCH=x86_64
+    : ${ANDROID_NDK_TARGETVER=21}
+    ;;
+esac
+: ${ANDROID_NDK_TOOLS=$ANDROID_NDK/toolchains/$ANDROID_NDK_TARGETARCHDIR-$ANDROID_NDK_TOOLVER/prebuilt/$ANDROID_NDK_HOSTARCH/bin}
+: ${ANDROID_NDK_SYSROOT=$ANDROID_NDK/platforms/android-$ANDROID_NDK_TARGETVER/arch-$ANDROID_NDK_TARGETSHORTARCH}
+
+ANDROID_CC="$ANDROID_NDK_TARGETARCH-gcc \
+       --sysroot=$ANDROID_NDK_SYSROOT \
+       -D__ANDROID_API__=$ANDROID_NDK_TARGETVER \
+       -isystem $ANDROID_NDK/sysroot/usr/include \
+       -isystem $ANDROID_NDK/sysroot/usr/include/$ANDROID_NDK_TARGETARCH \
+       -fPIE -pie"
diff --git a/etc/arm64-config.site b/etc/arm64-config.site
new file mode 100644 (file)
index 0000000..393ce77
--- /dev/null
@@ -0,0 +1,12 @@
+### -*-sh-*-
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=aarch64-linux-gnu; host_alias=$host
+cross_compiling=yes
+CC="ccache aarch64-linux-gnu-gcc"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/arm64-setup.sh b/etc/arm64-setup.sh
new file mode 100644 (file)
index 0000000..22eb452
--- /dev/null
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+QEMU_LD_PREFIX=/usr/aarch64-linux-gnu; export QEMU_LD_PREFIX
diff --git a/etc/armel-config.site b/etc/armel-config.site
new file mode 100644 (file)
index 0000000..9cfac77
--- /dev/null
@@ -0,0 +1,12 @@
+### -*-sh-*-
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=arm-linux-gnueabi; host_alias=$host
+cross_compiling=yes
+CC="ccache arm-linux-gnueabi-gcc"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/armel-setup.sh b/etc/armel-setup.sh
new file mode 100644 (file)
index 0000000..8caf1cd
--- /dev/null
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+QEMU_LD_PREFIX=/usr/arm-linux-gnueabi; export QEMU_LD_PREFIX
diff --git a/etc/armhf-config.site b/etc/armhf-config.site
new file mode 100644 (file)
index 0000000..4a6c34b
--- /dev/null
@@ -0,0 +1,12 @@
+### -*-sh-*-
+
+prefix=$CROSS_PREFIX
+libexecdir=\${exec_prefix}/lib
+sysconfdir=\${prefix}/etc
+
+host=arm-linux-gnueabihf; host_alias=$host
+cross_compiling=yes
+CC="ccache arm-linux-gnueabihf-gcc"
+
+PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
+export PKG_CONFIG_PATH
diff --git a/etc/armhf-setup.sh b/etc/armhf-setup.sh
new file mode 100644 (file)
index 0000000..01bdf3a
--- /dev/null
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf; export QEMU_LD_PREFIX