diff --git a/Android.mk b/Android.mk index c5bc6fc9b..b8f3a0ea0 100644 --- a/Android.mk +++ b/Android.mk @@ -1,15 +1,37 @@ # Google Android makefile for curl and libcurl +# # Place the curl source (including this makefile) into external/curl/ in the # Android source tree. Then build them with 'make curl' or just 'make libcurl' -# from the Android root. +# from the Android root. Tested with Android 1.5 # # Note: you must first create a curl_config.h file by running configure in the -# Android environment. I haven't found an easy way to do this yet. If there is -# no easy way, a static config-android.h may need to be created and checked in -# to the libcurl source tree. +# Android environment. The only way I've found to do this is tricky. Perform a +# normal Android build with libcurl in the source tree, providing the target +# "showcommands" to make. The build will eventually fail (because curl_config.h +# doesn't exist yet), but the compiler commands used to build curl will be +# shown. Now, from the external/curl/ directory, run curl's normal configure +# command with flags that match what Android itself uses. This will mean +# putting the compiler directory into the PATH, putting the -I, -isystem and +# -D options into CPPFLAGS, putting the -m, -f, -O and -nostdlib options into +# CFLAGS, and putting the -Wl, -L and -l options into LIBS, along with the path +# to the files libgcc.a, crtbegin_dynamic.o, and ccrtend_android.o. Remember +# that the paths must be absolute since you will not be running configure from +# the same directory as the Android make. The normal cross-compiler options +# must also be set. +# +# The end result will be a configure command that looks something like this +# (the environment variable A is set to the Android root path): +# +# A=`realpath ../..` && \ +# PATH="$A/prebuilt/linux-x86/toolchain/arm-eabi-X/bin:$PATH" \ +# ./configure --host=arm-linux CC=arm-eabi-gcc \ +# CPPFLAGS="-I $A/system/core/include ..." \ +# CFLAGS="-fno-exceptions -Wno-multichar ..." \ +# LIB="$A/prebuilt/linux-x86/toolchain/arm-eabi-X/lib/gcc/arm-eabi/X\ +# /interwork/libgcc.a ..." \ # # Dan Fandrich -# July 2009 +# September 2009 LOCAL_PATH:= $(call my-dir)