Merge branch 'master' into new-state
[fw/altos] / configure.ac
index 78f5adbb82a7580791eae1fe13b4fa30c625b766..4d0a2ef68119872a6376139b2cbf33a39e498a10 100644 (file)
@@ -18,14 +18,26 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([altos], 0.9.4.2)
-AC_CONFIG_SRCDIR([src/ao.h])
+AC_INIT([altos], 1.2.9.2)
+AC_CONFIG_SRCDIR([src/core/ao.h])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
 VERSION_DASH=`echo $VERSION | sed 's/\./-/g'`
 AC_SUBST(VERSION_DASH)
 
+
+dnl ==========================================================================
+dnl Java library versions
+
+ALTOSUILIB_VERSION=1
+ALTOSLIB_VERSION=1
+
+AC_SUBST(ALTOSLIB_VERSION)
+AC_DEFINE(ALTOSLIB_VERSION,$ALTOSLIB_VERSION,[Version of the AltosLib package])
+AC_SUBST(ALTOSUILIB_VERSION)
+AC_DEFINE(ALTOSUILIB_VERSION,$ALTOSUILIB_VERSION,[Version of the AltosUILib package])
+
 dnl ==========================================================================
 
 AM_CONFIG_HEADER(config.h)
@@ -70,6 +82,79 @@ fi
 
 AC_SUBST(JVM_INCLUDE)
 
+AC_ARG_WITH(android, AS_HELP_STRING([--with-android=PATH],
+       [Set android SDK path (default searches in a variety of places)]),
+       [ANDROID_SDK=$withval], [ANDROID_SDK=${ANDROID_SDK:-auto}])
+
+if test "x$ANDROID_SDK" = "xauto"; then
+       AC_MSG_CHECKING([Android SDK])
+       for sdk in ../android/android-sdk-linux ../android/android-sdk ../android-sdk ../android-sdk-linux $HOME/android; do
+               if test "x$ANDROID_SDK" = "xauto"; then
+                       SDK="$sdk"
+                       if test -f "$SDK/SDK Readme.txt"; then
+                               ANDROID_SDK=`readlink -m "$SDK"`
+                       fi
+               fi
+       done
+       if test "x$ANDROID_SDK" = "xauto"; then
+               AC_MSG_NOTICE([no Android SDK found])
+               ANDROID_SDK=no
+       fi
+       AC_MSG_RESULT([$ANDROID_SDK])
+fi
+if test "x$ANDROID_SDK" != "xno"; then
+       AC_MSG_CHECKING([Android SDK version])
+       SDK_VERSION=`grep -i '^Pkg.Revision=' $ANDROID_SDK/tools/source.properties | cut -f2- -d= | sed s/^r//`
+       SDK_MAJOR_VERSION="`echo $SDK_VERSION | sed 's/[[^0-9]].*//'`"
+       if test "$SDK_MAJOR_VERSION" -lt 17 ; then
+               AC_MSG_NOTICE([SDK version $SDK_VERSION is too old. Need >= r17])
+               ANDROID_SDK=no
+       else
+               AC_MSG_RESULT([$SDK_VERSION])
+       fi
+fi
+if test "x$ANDROID_SDK" != "xno"; then
+       AC_MSG_CHECKING([Android SDK API Level])
+       if test -f "$ANDROID_SDK/platforms/android-10/source.properties"; then
+               API_LEVEL=`sed -ne 's/^AndroidVersion.ApiLevel=//p' $ANDROID_SDK/platforms/android-10/source.properties`
+               if test "$API_LEVEL" = "10"; then
+                       AC_MSG_RESULT([$API_LEVEL])
+               else
+                       AC_MSG_NOTICE([API Level 10 not installed correctly.])
+                       ANDROID_SDK=no
+               fi
+       else
+               AC_MSG_NOTICE([API Level 10 not installed, but is required.])
+               ANDROID_SDK=no
+       fi
+fi
+if test "x$ANDROID_SDK" != "xno"; then
+       AC_MSG_CHECKING([Android SDK required extras])
+       if test -f "$ANDROID_SDK/extras/android/support/source.properties"; then
+               ANDROID_SUPPORT_LIB_NAME=`sed -ne 's/^Extra.NameDisplay=//p' $ANDROID_SDK/extras/android/support/source.properties`
+               if test -f "$ANDROID_SDK/extras/google/google_play_services/source.properties"; then
+                       GOOGLE_PLAY_SERVICES_NAME=`sed -ne 's/^Extra.NameDisplay=//p' $ANDROID_SDK/extras/google/google_play_services/source.properties`
+                       AC_MSG_RESULT([$ANDROID_SUPPORT_LIB_NAME, $GOOGLE_PLAY_SERVICES_NAME])
+               else
+                       AC_MSG_NOTICE([Google Play Services library not installed.])
+                       ANDROID_SDK=no
+               fi
+       else
+               AC_MSG_NOTICE([Android Support Library not installed.])
+               ANDROID_SDK=no
+       fi
+fi
+
+if test "x$ANDROID_SDK" != "xno"; then
+       HAVE_ANDROID_SDK="yes"
+else
+       HAVE_ANDROID_SDK="no"
+fi
+
+AM_CONDITIONAL([ANDROID], [test x$ANDROID_SDK != xno])
+
+AC_SUBST(ANDROID_SDK)
+
 AC_ARG_WITH(fat-dir, AS_HELP_STRING([--with-fat-dir=PATH],
            [Set the directory to install the 'fat' distribution files to (defaults to not installing)]),
            [FATDIR=$withval], [FATDIR=none])
@@ -95,23 +180,19 @@ if test "x$GCC" = "xyes"; then
 fi
 AC_SUBST(WARN_CFLAGS)
 
-AC_CHECK_HEADERS(flite/flite.h,HAVE_FLITE_H=yes,HAVE_FLITE_H=no)
-AC_CHECK_LIB(flite, flite_init,HAVE_LIBFLITE=yes,HAVE_LIBFLITE=no,-lasound -lm)
-
-if test "x$HAVE_FLITE_H" = "xyes" -a "x$HAVE_LIBFLITE" = "xyes"; then
-       AC_DEFINE(HAVE_FLITE,1,[Define if the flite library is usable])
-       AC_SUBST(FLITE_LIBS,"-lflite_cmu_us_kal16 -lflite_usenglish -lflite_cmulex -lflite -lasound -lm")
-       AC_SUBST(FLITE_INCS,-Iflite)
-       save_LIBS="$LIBS"
-       LIBS="$LIBS $FLITE_LIBS"
-       AC_CHECK_FUNCS([register_cmu_us_kal16 register_cmu_us_kal],break)
-       LIBS="$save_LIBS"
-fi
-AM_CONDITIONAL(USE_FLITE,test "x$HAVE_FLITE_H" = "xyes" -a "x$HAVE_LIBFLITE" = "xyes")
-
 AC_CHECK_PROG([HAVE_SDCC], [sdcc], yes, no)
 if test "x$HAVE_SDCC" = "xno"; then
-       AC_MSG_ERROR([Please install sdcc to build AltOs])
+       AC_MSG_WARN([No sdcc found, cc1111 binaries will not be built])
+fi
+
+AC_CHECK_PROG([HAVE_ARM_GCC],[arm-none-eabi-gcc], yes, no,[/opt/cortex/bin])
+if test "x$HAVE_ARM_GCC" = "xno"; then
+       AC_MSG_WARN([No summon toolchain arm compiler found, STM32L binaries will not be built])
+fi
+
+AC_CHECK_PROG([HAVE_ARM_M0_GCC], [arm-none-eabi-gcc], yes, no,[/usr/bin])
+if test "x$HAVE_ARM_M0_GCC" = "xno"; then
+       AC_MSG_WARN([No linaro toolchain arm cortex-m0 compiler found, LPC11U14 binaries will not be built])
 fi
 
 AC_CHECK_PROG([HAVE_NICKLE], [nickle], yes, no)
@@ -121,32 +202,66 @@ fi
 
 AC_CHECK_LIB(readline, readline)
 
-PKG_CHECK_MODULES([GNOME], [gtk+-2.0 libglade-2.0 gconf-2.0])
-
 PKG_CHECK_MODULES([LIBUSB], [libusb-1.0])
 
-PKG_CHECK_MODULES([ALSA], [alsa])
+AC_CHECK_HEADERS(libelf.h libelf/libelf.h, [break])
+AC_CHECK_HEADERS(gelf.h libelf/gelf.h, [break])
 
-PKG_CHECK_MODULES([PLPLOT], [plplotd])
+PKG_CHECK_MODULES([LIBSTLINK], [stlink], [HAVE_STLINK=yes], [HAVE_STLINK=no])
 
-PKG_CHECK_MODULES([SNDFILE], [sndfile])
+AM_CONDITIONAL([LIBSTLINK], [test x$HAVE_STLINK != xno])
 
 AC_OUTPUT([
 Makefile
+altoslib/Makefile
+altosuilib/Makefile
+altosuilib/AltosUIVersion.java
 altosui/Makefile
-altosui/AltosVersion.java
-altosui/libaltos/Makefile
+altosui/Info.plist
+altosui/altos-windows.nsi
+libaltos/Makefile
+micropeak/Makefile
+micropeak/Info.plist
+micropeak/micropeak-windows.nsi
+altosdroid/Makefile
+altosdroid/local.properties
 ao-tools/Makefile
 ao-tools/lib/Makefile
 ao-tools/ao-rawload/Makefile
 ao-tools/ao-dbg/Makefile
-ao-tools/ao-dumplog/Makefile
 ao-tools/ao-bitbang/Makefile
 ao-tools/ao-eeprom/Makefile
 ao-tools/ao-list/Makefile
 ao-tools/ao-load/Makefile
-ao-tools/ao-postflight/Makefile
-ao-tools/ao-view/Makefile
+ao-tools/ao-telem/Makefile
+ao-tools/ao-stmload/Makefile
+ao-tools/ao-send-telem/Makefile
+ao-tools/ao-sky-flash/Makefile
+ao-tools/ao-dumpflash/Makefile
+ao-tools/ao-edit-telem/Makefile
+ao-tools/ao-dump-up/Makefile
 ao-utils/Makefile
 src/Version
 ])
+
+echo ""
+echo "  Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}"
+echo ""
+echo "  Configuration"
+echo "    STM32L support..............: ${HAVE_ARM_GCC}"
+echo "    LPC11U14 support............: ${HAVE_ARM_M0_GCC}"
+echo "    CC1111 support..............: ${HAVE_SDCC}"
+echo "    Android support.............: ${HAVE_ANDROID_SDK}"
+echo "    STlink support..............: ${HAVE_STLINK}"
+echo ""
+echo "  Java paths"
+echo "    freetts.....................: ${FREETTS}"
+echo "    jfreechart..................: ${JFREECHART}"
+echo "    jcommon.....................: ${JCOMMON}"
+echo "    JVM include.................: ${JVM_INCLUDE}"
+if test x${ANDROID_SDK} != "xno"; then
+echo ""
+echo "  Android path"
+echo "    Android SDK.................: ${ANDROID_SDK}"
+fi
+echo ""