-inst.*/
+/inst.*/
+/etc/*-setup.sh
+
--- /dev/null
+### -*-makefile-*-
+
+.SECONDEXPANSION: #sorry
+all::
+
+FLAVOURS += linux
+linux_ARCHS = armel armhf arm64
+linux/armel_ARCH = arm-linux-gnueabi
+linux/armhf_ARCH = arm-linux-gnueabihf
+linux/arm64_ARCH = aarch64-linux-gnu
+
+FLAVOURS += android
+android_ARCHS = arm arm64 x86 x86_64
+android/arm_ARCH = arm-linux-androideabi
+android/arm64_ARCH = aarch64-linux-android
+android/x86_ARCH = i686-linux-android
+android/x86_64_ARCH = x86_64-linux-android
+
+V = 0
+v_tag = $(call v_tag_$V,$1)
+v_tag_0 = @printf " %-8s %s\n" "$1" "$@";
+
+SETUPS = \
+ $(foreach f,$(FLAVOURS),\
+ $(foreach a,$($f_ARCHS),etc/$f-$a-setup.sh))
+TARGETS += $(SETUPS)
+setup-flavour = $(word 1,$(subst -, ,$1))
+setup-arch = $(word 2,$(subst -, ,$1))
+
+$(SETUPS): etc/%-setup.sh: $$(call setup-flavour,$$*)-cross-setup.sh.in Makefile
+ $(call v_tag,GEN)sed 's/@arch@/$($(call setup-flavour,$*)/$(call setup-arch,$*)_ARCH)/g' $< >$@.new && mv $@.new $@
+
+all:: $(TARGETS)
+
+CLEANFILES += $(TARGETS)
+clean::; rm -f $(CLEANFILES)
--- /dev/null
+### -*-sh-*-
+
+ANDROID_NDK_TARGETARCH=@arch@
+. $CROSSDIR/etc/android.sh
+CONFIG_SITE=$CROSSDIR/etc/android-cross-config.site
+PATH=$PATH:$ANDROID_NDK_TOOLS
--- /dev/null
+#! /bin/sh -ex
+
+tool=${0##*/cross-}
+xtool=$(printf %s "$tool" | tr -c a-zA-Z0-9 x)
+eval flags=\$CROSS_${xtool}_FLAGS
+exec $CROSS_COMPILER_PREFIX $CROSS_ARCH-$tool $flags "$@"
echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2
fi
+p=$PATH CROSS_COMPILER_PREFIX=""
+while :; do
+ case $p in
+ "") break ;;
+ *:*) d=${p%%:*} p=${p#*:} ;;
+ *) d=$p p="" ;;
+ esac
+ if [ -e "$d/ccache" ]; then CROSS_COMPILER_PREFIX="ccache "; break; fi
+done
+export CROSS_COMPILER_PREFIX
+
MDW_BUILDENV=$env; export MDW_BUILDENV
-if [ -f "$CROSSDIR/etc/$env-config.site" ]; then
- CONFIG_SITE=$CROSSDIR/etc/$env-config.site; export CONFIG_SITE
+
+if [ -f "$CROSSDIR/etc/$env-config.site" ]
+then CONFIG_SITE=$CROSSDIR/etc/$env-config.site
+else CONFIG_SITE=$CROSSDIR/etc/common-cross-config.site
fi
+export CONFIG_SITE
+
CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX
. "$CROSSDIR/etc/$env-setup.sh"
+
+case ${CROSS_ARCH+t} in
+ t) ;;
+ *) echo 2>&1 "${0##*/}: setup script didn't set \`CROSS_ARCH'"; exit 2 ;;
+esac
+export CROSS_ARCH
+
+case :$PATH: in
+ *:"$CROSSDIR/tools:"*) ;;
+ *) PATH=$CROSSDIR/tools:$PATH ;;
+esac
+
exec "$@"
+++ /dev/null
-### -*-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
+++ /dev/null
-#! /bin/sh
-
-ANDROID_NDK_TARGETARCH=arm-linux-androideabi
-. $CROSSDIR/etc/android.sh
-PATH=$PATH:$ANDROID_NDK_TOOLS
+++ /dev/null
-### -*-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
+++ /dev/null
-#! /bin/sh
-
-ANDROID_NDK_TARGETARCH=aarch64-linux-android
-. $CROSSDIR/etc/android.sh
-PATH=$PATH:$ANDROID_NDK_TOOLS
--- /dev/null
+### -*-sh-*-
+
+ANDROID_NDK_TARGETARCH=$CROSS_ARCH
+. $CROSSDIR/etc/android.sh
+. $CROSSDIR/etc/common-cross-config.site
+
+CROSS_gcc_FLAGS=" --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"
+CROSS_gxx_FLAGS=$CROSS_gcc_FLAGS
+export CROSS_gcc_FLAGS
+
+CC="$CROSS_ARCH-gcc $CROSS_gcc_FLAGS"
+CXX="$CROSS_ARCH-g++ $CROSS_gxx_FLAGS"
+++ /dev/null
-### -*-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
+++ /dev/null
-#! /bin/sh
-
-ANDROID_NDK_TARGETARCH=i686-linux-android
-. $CROSSDIR/etc/android.sh
-PATH=$PATH:$ANDROID_NDK_TOOLS
+++ /dev/null
-### -*-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
+++ /dev/null
-#! /bin/sh
-
-ANDROID_NDK_TARGETARCH=x86_64-linux-android
-. $CROSSDIR/etc/android.sh
-PATH=$PATH:$ANDROID_NDK_TOOLS
### -*-sh-*-
+CROSS_ARCH=$ANDROID_NDK_TARGETARCH
+
: ${ANDROID_SDK=/usr/local/android/sdk}
: ${ANDROID_NDK=$ANDROID_SDK/ndk-bundle}
: ${ANDROID_NDK_TOOLVER=4.9}
ANDROID_NDK_TARGETSHORTARCH=x86_64
: ${ANDROID_NDK_TARGETVER=21}
;;
+ *)
+ echo 2>&1 "${0##*/}: unexpected Android arch \`$ANDROID_NDK_TARGETARCH'"
+ exit 2
+ ;;
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"
+++ /dev/null
-#! /bin/sh
-
-QEMU_LD_PREFIX=/usr/aarch64-linux-gnu; export QEMU_LD_PREFIX
+++ /dev/null
-### -*-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
+++ /dev/null
-#! /bin/sh
-
-QEMU_LD_PREFIX=/usr/arm-linux-gnueabi; export QEMU_LD_PREFIX
+++ /dev/null
-### -*-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
+++ /dev/null
-#! /bin/sh
-
-QEMU_LD_PREFIX=/usr/arm-linux-gnueabihf; export QEMU_LD_PREFIX
libexecdir=\${exec_prefix}/lib
sysconfdir=\${prefix}/etc
-host=aarch64-linux-gnu; host_alias=$host
+host_alias=$CROSS_ARCH
cross_compiling=yes
-CC="ccache aarch64-linux-gnu-gcc"
+CC="$CROSS_COMPILER_PREFIX$CROSS_ARCH-gcc$CROSS_CFLAGS"
PKG_CONFIG_PATH=$prefix/lib/pkgconfig:/usr/lib/pkgconfig
export PKG_CONFIG_PATH
--- /dev/null
+### -*-sh-*-
+
+CROSS_ARCH=@arch@
+QEMU_LD_PREFIX=/usr/$CROSS_ARCH; export QEMU_LD_PREFIX
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file
--- /dev/null
+../bin/crosstool
\ No newline at end of file