From 02555facd141463ddb299fd63571157fcebefe97 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Thu, 22 Nov 2018 16:10:25 +0000 Subject: [PATCH] Initial version. --- .gitignore | 1 + bin/mdw-cross | 38 ++++++++++++++++++++++++++++++++++++++ etc/android-arm-config.site | 15 +++++++++++++++ etc/android-arm-setup.sh | 5 +++++ etc/android-arm64-config.site | 15 +++++++++++++++ etc/android-arm64-setup.sh | 5 +++++ etc/android-x86-config.site | 15 +++++++++++++++ etc/android-x86-setup.sh | 5 +++++ etc/android-x86_64-config.site | 15 +++++++++++++++ etc/android-x86_64-setup.sh | 5 +++++ etc/android.sh | 37 +++++++++++++++++++++++++++++++++++++ etc/arm64-config.site | 12 ++++++++++++ etc/arm64-setup.sh | 3 +++ etc/armel-config.site | 12 ++++++++++++ etc/armel-setup.sh | 3 +++ etc/armhf-config.site | 12 ++++++++++++ etc/armhf-setup.sh | 3 +++ 17 files changed, 201 insertions(+) create mode 100644 .gitignore create mode 100755 bin/mdw-cross create mode 100644 etc/android-arm-config.site create mode 100644 etc/android-arm-setup.sh create mode 100644 etc/android-arm64-config.site create mode 100644 etc/android-arm64-setup.sh create mode 100644 etc/android-x86-config.site create mode 100644 etc/android-x86-setup.sh create mode 100644 etc/android-x86_64-config.site create mode 100644 etc/android-x86_64-setup.sh create mode 100644 etc/android.sh create mode 100644 etc/arm64-config.site create mode 100644 etc/arm64-setup.sh create mode 100644 etc/armel-config.site create mode 100644 etc/armel-setup.sh create mode 100644 etc/armhf-config.site create mode 100644 etc/armhf-setup.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc64fe3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +inst.*/ diff --git a/bin/mdw-cross b/bin/mdw-cross new file mode 100755 index 0000000..61c2456 --- /dev/null +++ b/bin/mdw-cross @@ -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 index 0000000..88e5929 --- /dev/null +++ b/etc/android-arm-config.site @@ -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 index 0000000..6a4912b --- /dev/null +++ b/etc/android-arm-setup.sh @@ -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 index 0000000..c8919a5 --- /dev/null +++ b/etc/android-arm64-config.site @@ -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 index 0000000..3be7950 --- /dev/null +++ b/etc/android-arm64-setup.sh @@ -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 index 0000000..8336b84 --- /dev/null +++ b/etc/android-x86-config.site @@ -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 index 0000000..3fec185 --- /dev/null +++ b/etc/android-x86-setup.sh @@ -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 index 0000000..4b1d822 --- /dev/null +++ b/etc/android-x86_64-config.site @@ -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 index 0000000..e599727 --- /dev/null +++ b/etc/android-x86_64-setup.sh @@ -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 index 0000000..5e1f1b0 --- /dev/null +++ b/etc/android.sh @@ -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 index 0000000..393ce77 --- /dev/null +++ b/etc/arm64-config.site @@ -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 index 0000000..22eb452 --- /dev/null +++ b/etc/arm64-setup.sh @@ -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 index 0000000..9cfac77 --- /dev/null +++ b/etc/armel-config.site @@ -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 index 0000000..8caf1cd --- /dev/null +++ b/etc/armel-setup.sh @@ -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 index 0000000..4a6c34b --- /dev/null +++ b/etc/armhf-config.site @@ -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 index 0000000..01bdf3a --- /dev/null +++ b/etc/armhf-setup.sh @@ -0,0 +1,3 @@ +#! /bin/sh + +QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf; export QEMU_LD_PREFIX -- 2.11.0