submodule madness
[fw/altos] / configure.ac
index a2a22063d3e78db216a7cc0f0e7d051a7d34e9a7..addaad0c61c2e2bb75338f0bd5fd29943baa4b61 100644 (file)
@@ -18,20 +18,21 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([altos], 1.2.9.4)
-AC_CONFIG_SRCDIR([src/core/ao.h])
+AC_INIT([altos], 1.6.2)
+ANDROID_VERSION=10
+AC_CONFIG_SRCDIR([src/kernel/ao.h])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
 VERSION_DASH=`echo $VERSION | sed 's/\./-/g'`
 AC_SUBST(VERSION_DASH)
-
+AC_SUBST(ANDROID_VERSION)
 
 dnl ==========================================================================
 dnl Java library versions
 
-ALTOSUILIB_VERSION=1
-ALTOSLIB_VERSION=2
+ALTOSUILIB_VERSION=9
+ALTOSLIB_VERSION=9
 
 AC_SUBST(ALTOSLIB_VERSION)
 AC_DEFINE(ALTOSLIB_VERSION,$ALTOSLIB_VERSION,[Version of the AltosLib package])
@@ -145,13 +146,18 @@ if test "x$ANDROID_SDK" != "xno"; then
        fi
 fi
 
+ANDROID_RELEASE=no
 if test "x$ANDROID_SDK" != "xno"; then
        HAVE_ANDROID_SDK="yes"
+       if test -f "$HOME/altusmetrumllc/release.keystore" -a -f "$HOME/altusmetrumllc/Passphrase"; then
+               ANDROID_RELEASE=yes
+       fi
 else
        HAVE_ANDROID_SDK="no"
 fi
 
 AM_CONDITIONAL([ANDROID], [test x$ANDROID_SDK != xno])
+AM_CONDITIONAL([ANDROID_RELEASE], [test x$ANDROID_RELEASE = xyes])
 
 AC_SUBST(ANDROID_SDK)
 
@@ -163,6 +169,20 @@ AM_CONDITIONAL(FATINSTALL, [test "x$FATDIR" != "xnone"])
 
 AC_SUBST(FATDIR)
 
+AC_ARG_WITH(google-key, AS_HELP_STRING([--with-google-key=PATH],
+           [Set the file to read the google maps API key from (defaults to ~/altusmetrumllc/google-maps-api-key)]),
+           [GOOGLEKEYFILE=$withval], [GOOGLEKEYFILE=$HOME/altusmetrumllc/google-maps-api-key])
+
+if test -r "$GOOGLEKEYFILE" -a -s "$GOOGLEKEYFILE"; then
+       GOOGLEKEY='"'`cat "$GOOGLEKEYFILE"`'"'
+       HAVE_GOOGLE_KEY="yes"
+else
+       GOOGLEKEY='null'
+       HAVE_GOOGLE_KEY="no"
+fi
+
+AC_SUBST(GOOGLEKEY)
+
 AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_LN_S
@@ -239,6 +259,27 @@ fi
 AC_SUBST(HAVE_ARM_CC)
 AC_SUBST(ARM_CC)
 
+if test -d pdclib -a x"$HAVE_ARM_CC" = xyes; then
+       PDCLIB_ROOT='$(TOPDIR)/../pdclib-root'
+       PDCLIB_INCLUDES='-I$(TOPDIR)/../pdclib-root/include'
+       PDCLIB_LIBS_M0='-L$(TOPDIR)/../pdclib-root/lib -lpdclib-cortex-m0'
+       PDCLIB_LIBS_M3='-L$(TOPDIR)/../pdclib-root/lib -lpdclib-cortex-m3'
+       HAVE_PDCLIB=yes
+else
+       PDCLIB_INCLUDES=''
+       PDCLIB_LIBS_M0='-lpdclib-cortex-m0'
+       PDCLIB_LIBS_M3='-lpdclib-cortex-m3'
+       HAVE_PDCLIB=no
+fi
+
+AM_CONDITIONAL(PDCLIB, [test x$HAVE_PDCLIB = xyes])
+
+AC_SUBST(PDCLIB_INCLUDES)
+AC_SUBST(PDCLIB_LIBS_M0)
+AC_SUBST(PDCLIB_LIBS_M3)
+AC_SUBST(PDCLIB_ROOT)
+AC_SUBST(HAVE_PDCLIB)
+
 if test "x$HAVE_ARM_CC" = "xyes"; then
        save_CC="$CC"
        save_CFLAGS="$CFLAGS"
@@ -254,10 +295,6 @@ if test "x$HAVE_ARM_CC" = "xyes"; then
                          [HAVE_ARM_M0_CC=no])
         AC_MSG_RESULT([$HAVE_ARM_M0_CC])
 
-       AC_CHECK_LIB(pdclib-cortex-m0,memcpy,
-                    [],
-                    [HAVE_ARM_M0_CC=no])
-
        CFLAGS="-mthumb -mcpu=cortex-m3"
        AC_MSG_CHECKING([if ]$ARM_CC[ supports cortex-m3])
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int i;])],
@@ -265,9 +302,15 @@ if test "x$HAVE_ARM_CC" = "xyes"; then
                          [HAVE_ARM_M3_CC=no])
         AC_MSG_RESULT([$HAVE_ARM_M3_CC])
 
-       AC_CHECK_LIB(pdclib-cortex-m3,memcpy,
-                    [],
-                    [HAVE_ARM_M3_CC=no])
+       if test x$HAVE_PDCLIB != xyes; then
+               AC_CHECK_LIB(pdclib-cortex-m0,memcpy,
+                            [],
+                            [HAVE_ARM_M0_CC=no])
+
+               AC_CHECK_LIB(pdclib-cortex-m3,memcpy,
+                            [],
+                            [HAVE_ARM_M3_CC=no])
+        fi
 
        AC_LANG_POP([C])
        LIBS="$save_LIBS"
@@ -365,23 +408,117 @@ if test "x$HAVE_NICKLE" = "xno"; then
        AC_MSG_ERROR([Please install nickle to build AltOs])
 fi
 
-AC_CHECK_LIB(readline, readline)
+AC_ARG_WITH([readline],
+           [AS_HELP_STRING([--with-readline],
+                             [enable readline functionality in ao-dbg @<:@default=auto@:>@])],
+             [],
+             [with_readline=auto])
+                             
+LIBREADLINE_LIBS=
+
+if test x"$with_readline" != "xno"; then
+       AC_CHECK_LIB([readline], [main],
+                      [AC_SUBST([LIBREADLINE], ["-lreadline -lncurses"])
+                      AC_DEFINE([HAVE_LIBREADLINE], [1],
+                         [Define if you have libreadline])],
+                     [if test "x$with_readline" != xauto; then
+                        AC_MSG_ERROR([--with-readline was given, but test for readline failed])
+                      fi],
+                      -lncurses)
+fi
 
 PKG_CHECK_MODULES([LIBUSB], [libusb-1.0])
 
 AC_CHECK_HEADERS(libelf.h libelf/libelf.h, [break])
 AC_CHECK_HEADERS(gelf.h libelf/gelf.h, [break])
 
-PKG_CHECK_MODULES([LIBSTLINK], [stlink], [HAVE_STLINK=yes], [HAVE_STLINK=no])
+AC_ARG_WITH([stlink],
+           [AS_HELP_STRING([--with-stlink],
+                           [Build tools that use the stlink library (default: auto)])],
+           [],
+           [with_stlink=auto])
+
+if test x"$with_stlink" != "xno"; then
+       PKG_CHECK_MODULES([STLINK], [stlink], [HAVE_STLINK=yes], [HAVE_STLINK=no])
+       if test x"$HAVE_STLINK" = "xno" -a x"$with_stlink" != "xauto"; then
+               AC_MSG_ERROR([--with-stlink was given, but stlink was not found])
+       fi
+else
+       HAVE_STLINK=no
+fi
+
+if test x"$HAVE_STLINK" = "xyes"; then
+       AC_DEFINE(HAVE_STLINK,1,[Using STlink library])
+fi
+
+AM_CONDITIONAL([LIBSTLINK], [test x$HAVE_STLINK = xyes])
+
+AC_ARG_ENABLE([multi-arch],
+             [AS_HELP_STRING([--enable-multi-arch],
+                             [enable building both i386 and amd64 libraries (default=auto)])],
+             [MULTI_ARCH=$enableval],
+             [MULTI_ARCH=auto])
+
+case x"$MULTI_ARCH" in
+xauto)
+       arch=`uname -m`
+       case x"$arch" in
+       xx86_64|xi*86)
+               save_CFLAGS="$CFLAGS"
+               save_LIBS="$LIBS"
+               LIBS="-ldl"
+               CFLAGS="-m64"
+               AC_MSG_CHECKING([if ]$CC[ ]$CFLAGS[ can link programs])
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
+                               [M64_LINK=yes],
+                               [M64_LINK=no])
+               AC_MSG_RESULT([$M64_LINK])
+               CFLAGS="-m32"
+               AC_MSG_CHECKING([if ]$CC[ ]$CFLAGS[ can link programs])
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
+                               [M32_LINK=yes],
+                               [M32_LINK=no])
+               AC_MSG_RESULT([$M32_LINK])
+               CFLAGS="$save_CFLAGS"
+               LIBS="$save_LIBS"
+               case x"$M64_LINK"x"$M32_LINK" in
+               xyesxyes)
+                       MULTI_ARCH=yes
+                       ;;
+               *)
+                       MULTI_ARCH=no
+                       ;;
+               esac
+               ;;
+       *)
+               MULTI_ARCH=no
+               ;;
+       esac
+       ;;
+xyes|xno)
+       ;;
+*)
+       MULTI_ARCH="no"
+       ;;
+esac
+       
+AM_CONDITIONAL([MULTI_ARCH], [test x$MULTI_ARCH = xyes])
+
+AC_ARG_ENABLE([install-shared-mime-info],
+             [AS_HELP_STRING([--disable-install-shared-mime-info],
+                             [disable installing shared mime info files (default=yes)])],
+             [INSTALL_SHARED_MIME_INFO=$enableval],
+             [INSTALL_SHARED_MIME_INFO=yes])
 
-AM_CONDITIONAL([LIBSTLINK], [test x$HAVE_STLINK != xno])
+AM_CONDITIONAL([INSTALL_SHARED_MIME_INFO], [test x$INSTALL_SHARED_MIME_INFO = xyes])
 
 AC_OUTPUT([
 Makefile
 src/Makedefs
 altoslib/Makefile
+altoslib/AltosVersion.java
+icon/Makefile
 altosuilib/Makefile
-altosuilib/AltosUIVersion.java
 altosui/Makefile
 altosui/Info.plist
 altosui/altos-windows.nsi
@@ -389,8 +526,12 @@ libaltos/Makefile
 micropeak/Makefile
 micropeak/Info.plist
 micropeak/micropeak-windows.nsi
+telegps/Makefile
+telegps/Info.plist
+telegps/telegps-windows.nsi
 altosdroid/Makefile
 altosdroid/local.properties
+altosdroid/AndroidManifest.xml
 ao-tools/Makefile
 ao-tools/lib/Makefile
 ao-tools/ao-rawload/Makefile
@@ -409,6 +550,13 @@ ao-tools/ao-dump-up/Makefile
 ao-tools/ao-elftohex/Makefile
 ao-tools/ao-usbload/Makefile
 ao-tools/ao-flash/Makefile
+ao-tools/ao-test-igniter/Makefile
+ao-tools/ao-test-baro/Makefile
+ao-tools/ao-test-flash/Makefile
+ao-tools/ao-cal-accel/Makefile
+ao-tools/ao-cal-freq/Makefile
+ao-tools/ao-test-gps/Makefile
+ao-tools/ao-usbtrng/Makefile
 ao-utils/Makefile
 src/Version
 ])
@@ -425,13 +573,18 @@ echo "    CC1111 support..............: ${HAVE_SDCC}"
 echo "    AVR compiler................: ${AVR_CC} ${AVR_OBJCOPY}"
 echo "    AVR support.................: ${HAVE_AVR_CC}"
 echo "    Android support.............: ${HAVE_ANDROID_SDK}"
+echo "    Android release support.....: ${ANDROID_RELEASE}"
 echo "    STlink support..............: ${HAVE_STLINK}"
+echo "    Local pdclib................: ${HAVE_PDCLIB}"
+echo "    i386 and amd64 libaltos.....: ${MULTI_ARCH}"
+echo "    install shared mime info....: ${INSTALL_SHARED_MIME_INFO}"
 echo ""
-echo "  Java paths"
+echo "  Java"
 echo "    freetts.....................: ${FREETTS}"
 echo "    jfreechart..................: ${JFREECHART}"
 echo "    jcommon.....................: ${JCOMMON}"
 echo "    JVM include.................: ${JVM_INCLUDE}"
+echo "    Google maps API key.........: ${HAVE_GOOGLE_KEY}"
 if test x${ANDROID_SDK} != "xno"; then
 echo ""
 echo "  Android path"