mobile: add android platform to the build scripts

This allows enables building of ECL for android platform.
Based on work of Sylvain Ageneau.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
This commit is contained in:
Daniel Kochmański 2015-09-24 09:03:21 +02:00
parent 5b0a9fe6c5
commit fe68809a34
4 changed files with 93 additions and 2 deletions

23
src/aclocal.m4 vendored
View file

@ -253,6 +253,21 @@ clibs=''
SONAME=''
SONAME_LDFLAGS=''
case "${host_os}" in
linux-androideabi)
thehost='android'
THREAD_CFLAGS='-D_THREAD_SAFE'
# THREAD_LIBS='-lpthread'
SHARED_LDFLAGS="-shared ${LDFLAGS}"
BUNDLE_LDFLAGS="-shared ${LDFLAGS}"
ECL_LDRPATH='-Wl,--rpath,~A'
clibs="-ldl"
# Maybe CFLAGS="-D_ISOC99_SOURCE ${CFLAGS}" ???
CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DANDROID -DPLATFORM_ANDROID -DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING -DAO_REQUIRE_CAS ${CFLAGS}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
ECL_ADD_FEATURE([android])
;;
# libdir may have a dollar expression inside
linux*)
thehost='linux'
@ -432,6 +447,14 @@ case "${host_os}" in
shared="no"
;;
esac
case "${host}" in
i686*-android*)
THREAD_LIBS=''
CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DANDROID -DPLATFORM_ANDROID -DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING -DNO_GETCONTEXT -DHAVE_GETTIMEOFDAY -DHAVE_SIGPROCMASK ${CFLAGS}"
ECL_ADD_FEATURE([android])
esac
case "${host_cpu}" in
alpha*)
CFLAGS="${CFLAGS} -mieee";;

View file

@ -23,7 +23,11 @@
#if defined(ECL_MS_WINDOWS_HOST)
#include <winsock.h>
#else
#ifdef __ANDROID__
#include <errno.h>
#else
extern int errno;
#endif
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>

55
src/configure vendored
View file

@ -4872,6 +4872,23 @@ clibs=''
SONAME=''
SONAME_LDFLAGS=''
case "${host_os}" in
linux-androideabi)
thehost='android'
THREAD_CFLAGS='-D_THREAD_SAFE'
# THREAD_LIBS='-lpthread'
SHARED_LDFLAGS="-shared ${LDFLAGS}"
BUNDLE_LDFLAGS="-shared ${LDFLAGS}"
ECL_LDRPATH='-Wl,--rpath,~A'
clibs="-ldl"
# Maybe CFLAGS="-D_ISOC99_SOURCE ${CFLAGS}" ???
CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DANDROID -DPLATFORM_ANDROID -DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING -DAO_REQUIRE_CAS ${CFLAGS}"
SONAME="${SHAREDPREFIX}ecl.${SHAREDEXT}.SOVERSION"
SONAME_LDFLAGS="-Wl,-soname,SONAME"
LSP_FEATURES="(cons :android ${LSP_FEATURES})"
;;
# libdir may have a dollar expression inside
linux*)
thehost='linux'
@ -5051,6 +5068,16 @@ case "${host_os}" in
shared="no"
;;
esac
case "${host}" in
i686*-android*)
THREAD_LIBS=''
CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DANDROID -DPLATFORM_ANDROID -DUSE_GET_STACKBASE_FOR_MAIN -DIGNORE_DYNAMIC_LOADING -DNO_GETCONTEXT -DHAVE_GETTIMEOFDAY -DHAVE_SIGPROCMASK ${CFLAGS}"
LSP_FEATURES="(cons :android ${LSP_FEATURES})"
esac
case "${host_cpu}" in
alpha*)
CFLAGS="${CFLAGS} -mieee";;
@ -6905,7 +6932,7 @@ done
for ac_header in sys/resource.h sys/utsname.h float.h pwd.h dlfcn.h link.h \
mach-o/dyld.h ulimit.h dirent.h sys/ioctl.h sys/select.h \
mach-o/dyld.h dirent.h sys/ioctl.h sys/select.h \
sys/wait.h semaphore.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
@ -6921,6 +6948,24 @@ done
for ac_header in ulimit.h
do :
ac_fn_c_check_header_compile "$LINENO" "ulimit.h" "ac_cv_header_ulimit_h" "#ifdef HAVE_ULIMIT_H
# include <ulimit.h>
#endif
"
if test "x$ac_cv_header_ulimit_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_ULIMIT_H 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
if ${ac_cv_c_const+:} false; then :
@ -9447,6 +9492,14 @@ else
CLX_INFO=""
fi
if test "${with_tcp}" = "builtin"; then
LSP_FEATURES="(cons :builtin-sockets ${LSP_FEATURES})"
with_tcp=yes
fi
if test "${with_tcp}" = "yes"; then
$as_echo "#define TCP 1" >>confdefs.h

View file

@ -634,9 +634,16 @@ AC_CHECK_HEADERS( [fcntl.h limits.h netdb.h netinet/in.h] \
dnl !!! end autoscan
AC_CHECK_HEADERS( [sys/resource.h sys/utsname.h float.h pwd.h dlfcn.h link.h] \
[mach-o/dyld.h ulimit.h dirent.h sys/ioctl.h sys/select.h] \
[mach-o/dyld.h dirent.h sys/ioctl.h sys/select.h] \
[sys/wait.h semaphore.h] )
AC_CHECK_HEADERS([ulimit.h], [], [],
[[#ifdef HAVE_ULIMIT_H
# include <ulimit.h>
#endif
]])
dnl =====================================================================
dnl Checks for typedefs, structures, and compiler characteristics.
@ -802,6 +809,10 @@ else
CLX_INFO=""
fi
if test "${with_tcp}" = "builtin"; then
ECL_ADD_BUILTIN_MODULE([sockets])
with_tcp=yes
fi
if test "${with_tcp}" = "yes"; then
AC_DEFINE(TCP, [1], [Network streams])
EXTRA_OBJS="${EXTRA_OBJS} tcp.${OBJEXT}"