Skip to content

Commit fe9f93a

Browse files
committed
Added back armv5 build script
1 parent 48bca80 commit fe9f93a

File tree

3 files changed

+116
-2
lines changed

3 files changed

+116
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ There are no sources and no patches - everything is done with magical build scri
99
just run build.sh and enjoy.
1010
Don't forget to strip them, because they are huge with debug info included.
1111

12-
There are no armv5 and mips builds, because there are very few devices using these architectures in the wild.
12+
There is no mips architecture, because there are very few devices using this architecture in the wild.
1313

1414
If you need libintl, you may download it here:
1515
https://github.com/pelya/commandergenius/tree/sdl_android/project/jni/intl

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ NDK=`readlink -f $NDK`
1313

1414
export CLANG=1
1515

16-
for ARCH in armeabi-v7a arm64-v8a x86 x86_64; do
16+
for ARCH in armeabi armeabi-v7a arm64-v8a x86 x86_64; do
1717

1818
cd $BUILDDIR
1919

setCrossEnvironment-armeabi.sh

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#!/bin/sh
2+
3+
IFS='
4+
'
5+
6+
MYARCH=linux-x86_64
7+
if uname -s | grep -i "linux" > /dev/null ; then
8+
MYARCH=linux-x86_64
9+
fi
10+
if uname -s | grep -i "darwin" > /dev/null ; then
11+
MYARCH=darwin-x86_64
12+
fi
13+
if uname -s | grep -i "windows" > /dev/null ; then
14+
MYARCH=windows-x86_64
15+
fi
16+
17+
NDK=`which ndk-build`
18+
NDK=`dirname $NDK`
19+
NDK=`readlink -f $NDK`
20+
21+
#echo NDK $NDK
22+
GCCPREFIX=arm-linux-androideabi
23+
[ -z "$NDK_TOOLCHAIN_VERSION" ] && NDK_TOOLCHAIN_VERSION=4.9
24+
[ -z "$PLATFORMVER" ] && PLATFORMVER=android-14
25+
LOCAL_PATH=`dirname $0`
26+
if which realpath > /dev/null ; then
27+
LOCAL_PATH=`realpath $LOCAL_PATH`
28+
else
29+
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
30+
fi
31+
ARCH=armeabi
32+
33+
34+
APP_MODULES=
35+
APP_SHARED_LIBS=
36+
MISSING_INCLUDE=
37+
MISSING_LIB=
38+
39+
CFLAGS="\
40+
-fpic -ffunction-sections -funwind-tables -fstack-protector-strong \
41+
-no-canonical-prefixes -march=armv5te -mtune=xscale -msoft-float \
42+
-mthumb -O2 -g -DNDEBUG \
43+
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=300 \
44+
-DANDROID -Wall -Wno-unused -Wa,--noexecstack -Wformat -Werror=format-security \
45+
-isystem$NDK/platforms/$PLATFORMVER/arch-arm/usr/include \
46+
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include \
47+
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH/include \
48+
-isystem$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/include/backward \
49+
-isystem$LOCAL_PATH/../sdl-1.2/include \
50+
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-isystem$LOCAL_PATH/../\1/include@g\"` \
51+
$MISSING_INCLUDE $CFLAGS"
52+
53+
UNRESOLVED="-Wl,--no-undefined"
54+
if [ -n "$BUILD_EXECUTABLE" ]; then
55+
SHARED="-Wl,--gc-sections -Wl,-z,nocopyreloc -pie"
56+
fi
57+
if [ -n "$NO_SHARED_LIBS" ]; then
58+
APP_SHARED_LIBS=
59+
fi
60+
if [ -n "$ALLOW_UNRESOLVED_SYMBOLS" ]; then
61+
UNRESOLVED=
62+
fi
63+
64+
LDFLAGS="\
65+
$SHARED \
66+
--sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
67+
-L$LOCAL_PATH/../../obj/local/$ARCH \
68+
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/$ARCH/lib\1.so@g\"` \
69+
-L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \
70+
-lc -lm -ldl -llog -lz \
71+
-L$NDK/sources/cxx-stl/gnu-libstdc++/$NDK_TOOLCHAIN_VERSION/libs/$ARCH \
72+
-lgnustl_static \
73+
-no-canonical-prefixes $UNRESOLVED -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now \
74+
-Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings \
75+
-lsupc++ \
76+
$MISSING_LIB $LDFLAGS"
77+
78+
CC="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc"
79+
CXX="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-g++"
80+
CPP="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS"
81+
82+
if [ -n "$CLANG" ]; then
83+
84+
CFLAGS="\
85+
-gcc-toolchain $NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH \
86+
-target armv5te-none-linux-androideabi -Wno-invalid-command-line-argument -Wno-unused-command-line-argument \
87+
$CFLAGS"
88+
89+
LDFLAGS="$LDFLAGS \
90+
-lgcc \
91+
-latomic \
92+
-gcc-toolchain $NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH \
93+
-target armv5te-none-linux-androideabi"
94+
95+
CC="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang"
96+
CXX="$NDK/toolchains/llvm/prebuilt/$MYARCH/bin/clang++"
97+
CPP="$CC -E $CFLAGS"
98+
99+
fi
100+
101+
env PATH=$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \
102+
CFLAGS="$CFLAGS" \
103+
CXXFLAGS="$CXXFLAGS $CFLAGS -frtti -fexceptions" \
104+
LDFLAGS="$LDFLAGS" \
105+
CC="$CC" \
106+
CXX="$CXX" \
107+
RANLIB="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \
108+
LD="$CC" \
109+
AR="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \
110+
CPP="$CPP" \
111+
NM="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \
112+
AS="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \
113+
STRIP="$NDK/toolchains/$GCCPREFIX-$NDK_TOOLCHAIN_VERSION/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \
114+
"$@"

0 commit comments

Comments
 (0)