summaryrefslogtreecommitdiff
path: root/Android.mk
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2009-09-15 22:35:49 +0000
committerDan Fandrich <dan@coneharvesters.com>2009-09-15 22:35:49 +0000
commite3049e98d89ed2ec4d470164029048c689b7f044 (patch)
tree26159f231a245d4db8d8c94adef7530fad50ad59 /Android.mk
parent86f91687973e5b50654141fba13d4caf65346a92 (diff)
downloadcurl-e3049e98d89ed2ec4d470164029048c689b7f044.tar.gz
Provide instructions on creating curl_config.h
Diffstat (limited to 'Android.mk')
-rw-r--r--Android.mk32
1 files changed, 27 insertions, 5 deletions
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)