fix for make.sh for android (#1523)

* fix for make.sh for android

* remove commented line
This commit is contained in:
Cen Zhang 2019-07-27 00:16:01 +08:00 committed by Nguyen Anh Quynh
parent 66808143db
commit f6f87ebec5
3 changed files with 21 additions and 7 deletions

3
.gitignore vendored
View File

@ -119,3 +119,6 @@ capstone_get_setup
*.s *.s
cstool/cstool cstool/cstool
# android
android-ndk-*

View File

@ -22,6 +22,11 @@ endif
ifeq ($(CROSS),) ifeq ($(CROSS),)
RANLIB ?= ranlib RANLIB ?= ranlib
else ifeq ($(ANDROID), 1)
CC = $(CROSS)/../../bin/clang
AR = $(CROSS)/ar
RANLIB = $(CROSS)/ranlib
STRIP = $(CROSS)/strip
else else
CC = $(CROSS)gcc CC = $(CROSS)gcc
AR = $(CROSS)ar AR = $(CROSS)ar
@ -437,6 +442,7 @@ clean:
rm -f $(LIBOBJ) rm -f $(LIBOBJ)
rm -f $(BLDIR)/lib$(LIBNAME).* $(BLDIR)/$(LIBNAME).pc rm -f $(BLDIR)/lib$(LIBNAME).* $(BLDIR)/$(LIBNAME).pc
rm -f $(PKGCFGF) rm -f $(PKGCFGF)
[ ${ANDROID} -eq 1 ] && rm -rf android-ndk-*
$(MAKE) -C cstool clean $(MAKE) -C cstool clean
ifeq (,$(findstring yes,$(CAPSTONE_BUILD_CORE_ONLY))) ifeq (,$(findstring yes,$(CAPSTONE_BUILD_CORE_ONLY)))

19
make.sh
View File

@ -15,6 +15,7 @@ build_android() {
echo "ERROR! Please set \$NDK to point at your Android NDK directory." echo "ERROR! Please set \$NDK to point at your Android NDK directory."
exit 1 exit 1
fi fi
HOSTOS=$(uname -s | tr 'LD' 'ld') HOSTOS=$(uname -s | tr 'LD' 'ld')
HOSTARCH=$(uname -m) HOSTARCH=$(uname -m)
@ -24,13 +25,11 @@ build_android() {
case "$TARGARCH" in case "$TARGARCH" in
arm) arm)
[ -n "$APILEVEL" ] || APILEVEL="android-14" # default to ICS [ -n "$APILEVEL" ] || APILEVEL="android-14" # default to ICS
[ -n "$GCCVER" ] || GCCVER="4.8" CROSS=arm-linux-androideabi
CROSS=arm-linux-androideabi-
;; ;;
arm64) arm64)
[ -n "$APILEVEL" ] || APILEVEL="android-21" # first with arm64 [ -n "$APILEVEL" ] || APILEVEL="android-21" # first with arm64
[ -n "$GCCVER" ] || GCCVER="4.9" CROSS=aarch64-linux-android
CROSS=aarch64-linux-android-
;; ;;
*) *)
@ -39,10 +38,16 @@ build_android() {
;; ;;
esac esac
TOOLCHAIN="$NDK/toolchains/$CROSS$GCCVER/prebuilt/$HOSTOS-$HOSTARCH" STANDALONE=`realpath android-ndk-${TARGARCH}-${APILEVEL}`
PLATFORM="$NDK/platforms/$APILEVEL/arch-$TARGARCH"
CROSS="$TOOLCHAIN/bin/$CROSS" CFLAGS="--sysroot=$PLATFORM" LDFLAGS="--sysroot=$PLATFORM" ${MAKE} $* [ -d $STANDALONE ] || {
python ${NDK}/build/tools/make_standalone_toolchain.py \
--arch ${TARGARCH} \
--api ${APILEVEL##*-} \
--install-dir ${STANDALONE}
}
ANDROID=1 CROSS="${STANDALONE}/${CROSS}/bin" CFLAGS="--sysroot=${STANDALONE}/sysroot" ${MAKE} $*
} }
# build iOS lib for all iDevices, or only specific device # build iOS lib for all iDevices, or only specific device