altos/test: Adjust CRC error rate after FEC fix
[fw/altos] / configure.ac
index 0fc946f21831ee0ba525b9ea7de810a6b39b28f6..9e3db4945f7ec483aab787b6db737864637048c7 100644 (file)
@@ -18,12 +18,19 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([altos], 1.6.8)
-ANDROID_VERSION=13
+AC_INIT([altos], 1.9.17)
+ANDROID_VERSION=37
 AC_CONFIG_SRCDIR([src/kernel/ao.h])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
 
+RELEASE_DATE=2023-08-30
+AC_SUBST(RELEASE_DATE)
+
+DOC_DATE=`LC_ALL=C date -d $RELEASE_DATE +'%d %b %Y'`
+
+AC_SUBST(DOC_DATE)
+
 VERSION_DASH=`echo $VERSION | sed 's/\./-/g'`
 AC_SUBST(VERSION_DASH)
 AC_SUBST(ANDROID_VERSION)
@@ -31,8 +38,8 @@ AC_SUBST(ANDROID_VERSION)
 dnl ==========================================================================
 dnl Java library versions
 
-ALTOSUILIB_VERSION=11
-ALTOSLIB_VERSION=11
+ALTOSUILIB_VERSION=14
+ALTOSLIB_VERSION=14
 
 AC_SUBST(ALTOSLIB_VERSION)
 AC_DEFINE(ALTOSLIB_VERSION,$ALTOSLIB_VERSION,[Version of the AltosLib package])
@@ -61,27 +68,41 @@ AC_ARG_WITH(jcommon, AS_HELP_STRING([--with-jcommon=PATH],
 
 AC_SUBST(JCOMMON)
 
-AC_ARG_WITH(jvm, AS_HELP_STRING([--with-jvm-include=PATH],
-       [Set jvm include path for jni builds (default searches in /usr/lib/jvm)]),
-       [JVM_INCLUDE=$withval], [JVM_INCLUDE=auto])
+AC_ARG_WITH(jvm, AS_HELP_STRING([--with-jvm=PATH],
+       [Set jvm path for java builds (default searches in /usr/lib/jvm)]),
+       [JVM=$withval], [JVM=auto])
 
-if test "x$JVM_INCLUDE" = "xauto"; then
-       AC_MSG_CHECKING([JVM include files])
-       for jvm in default-java java-6-openjdk java-6-sun; do
-               if test "x$JVM_INCLUDE" = "xauto"; then
+if test "x$JVM" = "xauto"; then
+       AC_MSG_CHECKING([JVM])
+       for jvm in default-java java-6-openjdk java-7-openjdk java-8-openjdk java-9-openjdk java-10-openjdk java-11-openjdk java-12-openjdk java-13-openjdk java-6-sun java-8-openjdk-amd64; do
+               if test "x$JVM" = "xauto"; then
                        INCLUDE="/usr/lib/jvm/$jvm/include"
                        if test -f "$INCLUDE"/jni.h; then
-                               JVM_INCLUDE="$INCLUDE"
+                               JVM=/usr/lib/jvm/"$jvm"
                        fi
                fi
        done
-       if test "x$JVM_INCLUDE" = "xauto"; then
-               AC_MSG_ERROR([no JVM include files found])
+       if test "x$JVM" = "xauto"; then
+               AC_MSG_ERROR([no JVM files found])
        fi
-       AC_MSG_RESULT([$JVM_INCLUDE])
+       AC_MSG_RESULT([$JVM])
 fi
 
+AC_ARG_WITH(java-version, AS_HELP_STRING([--with-java-version=7],
+                                        [Set java language compatibility version (default is 7)]),
+          [JAVA_VERSION=$withval], [JAVA_VERSION=7])
+
+JAVAC="$JVM"/bin/javac
+JAVA="$JVM"/bin/java
+JVM_INCLUDE="$JVM"/include
+JAVAC_VERSION_FLAGS="-target 1.$JAVA_VERSION -source 1.$JAVA_VERSION"
+
+AC_SUBST(JAVAC)
+AC_SUBST(JAVA)
+AC_SUBST(JVM)
 AC_SUBST(JVM_INCLUDE)
+AC_SUBST(JAVAC_VERSION_FLAGS)
+
 
 AC_ARG_WITH(android, AS_HELP_STRING([--with-android=PATH],
        [Set android SDK path (default searches in a variety of places)]),
@@ -149,9 +170,7 @@ fi
 ANDROID_RELEASE=no
 if test "x$ANDROID_SDK" != "xno"; then
        HAVE_ANDROID_SDK="yes"
-       if test -f "$HOME/altusmetrumllc/google-play-release.keystore" -a -f "$HOME/altusmetrumllc/google-play-passphrase"; then
-               ANDROID_RELEASE=yes
-       fi
+       ANDROID_RELEASE=yes
 else
        HAVE_ANDROID_SDK="no"
 fi
@@ -162,7 +181,7 @@ AM_CONDITIONAL([ANDROID_RELEASE], [test x$ANDROID_RELEASE = xyes])
 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)]),
+           [Set the directory to install the 'fat-install' distribution files to (defaults to no such target)]),
            [FATDIR=$withval], [FATDIR=none])
 
 AM_CONDITIONAL(FATINSTALL, [test "x$FATDIR" != "xnone"])
@@ -170,8 +189,8 @@ 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])
+           [Set the file to read the AltosDroid maps API key from (defaults to ~/altusmetrumllc/google-altosdroid-maps-api-key)]),
+           [GOOGLEKEYFILE=$withval], [GOOGLEKEYFILE=$HOME/altusmetrumllc/google-altosdroid-maps-api-key])
 
 if test -r "$GOOGLEKEYFILE" -a -s "$GOOGLEKEYFILE"; then
        GOOGLEKEY=`cat "$GOOGLEKEYFILE"`
@@ -181,7 +200,35 @@ else
        HAVE_GOOGLE_KEY="no"
 fi
 
+AC_ARG_WITH(windows-key, AS_HELP_STRING([--with-windows-key=PATH],
+            [Set the file containing the Windows installer signing key (defaults to ~/altusmetrumllc/ssl.com/altus_metrum,_llc.p12)]),
+           [WINDOWSKEYFILE="$withval"], [WINDOWSKEYFILE=$HOME/altusmetrumllc/ssl.com/altus_metrum,_llc.p12])
+
+AC_ARG_WITH(windows-key-pass, AS_HELP_STRING([--with-windows-key-pass=PATH],
+            [Set the file containing the Windows installer signing key password (defaults to ~/altusmetrumllc/ssl.com/password)]),
+           [WINDOWSKEYPASSFILE="$withval"], [WINDOWSKEYPASSFILE=$HOME/altusmetrumllc/ssl.com/password])
+
+AC_CHECK_PROG(jsign, jsign, "yes", "no")
+
+if test -s "$WINDOWSKEYFILE" -a -s "$WINDOWSKEYPASSFILE" -a "$jsign" = yes; then
+       HAVE_WINDOWS_KEY="yes"
+else
+       HAVE_WINDOWS_KEY="no"
+fi
+
+WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs"
+AC_SUBST(WARN_CFLAGS)
+
+AC_ARG_ENABLE(faketime, AS_HELP_STRING([--enable-faketime],
+              [Use faketime program to ensure pdf files are reproducible (default=no)]),
+             [FAKETIME=$enableval], [FAKETIME=no])
+
+AM_CONDITIONAL(FAKETIME, [test x$FAKETIME = xyes])
+
 AC_SUBST(GOOGLEKEY)
+AC_SUBST(WINDOWSKEYFILE)
+AC_SUBST(WINDOWSKEYPASSFILE)
+AC_SUBST(HAVE_WINDOWS_KEY)
 
 AC_PROG_CC
 AC_PROG_INSTALL
@@ -189,7 +236,6 @@ AC_PROG_LN_S
 AC_PROG_LIBTOOL
 PKG_PROG_PKG_CONFIG
 
-CFLAGS="-g"
 WARN_CFLAGS=""
 if test "x$GCC" = "xyes"; then
        WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
@@ -200,36 +246,6 @@ if test "x$GCC" = "xyes"; then
 fi
 AC_SUBST(WARN_CFLAGS)
 
-#
-# Configure SDCC
-#
-
-AC_ARG_WITH([sdcc],
-           [AS_HELP_STRING([--with-sdcc],
-                           [Name of SDCC])],
-           [],
-           [with_sdcc=auto])
-
-if test "x$with_sdcc" != "xno"; then       
-       if test "x$with_sdcc" = "xauto"; then
-               with_sdcc="sdcc"
-               AC_CHECK_PROG([HAVE_SDCC],[$with_sdcc], yes, no)
-       else
-               HAVE_SDCC=yes
-       fi
-else
-       HAVE_SDCC=no
-fi
-
-if test "x$HAVE_SDCC" = "xno"; then
-       AC_MSG_WARN([SDCC not found, cc1111 binaries will not be built])
-else
-       SDCC=$with_sdcc
-fi
-
-AC_SUBST(SDCC)
-AC_SUBST(HAVE_SDCC)
-
 #
 # Configure ARM compiler for STM32L and LPC11U14
 #
@@ -259,59 +275,28 @@ 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"
        save_LIBS="$LIBS"
        CC="$ARM_CC"
        CFLAGS="-mthumb -mcpu=cortex-m0"
-       LIBS="-ffreestanding -nostdlib"
+       LIBS="--specs=picolibc.specs"
        AC_LANG_PUSH([C])
 
        AC_MSG_CHECKING([if ]$ARM_CC[ supports cortex-m0])
-       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int i;])],
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
                          [HAVE_ARM_M0_CC=yes],
                          [HAVE_ARM_M0_CC=no])
         AC_MSG_RESULT([$HAVE_ARM_M0_CC])
 
        CFLAGS="-mthumb -mcpu=cortex-m3"
        AC_MSG_CHECKING([if ]$ARM_CC[ supports cortex-m3])
-       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int i;])],
+       AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
                          [HAVE_ARM_M3_CC=yes],
                          [HAVE_ARM_M3_CC=no])
         AC_MSG_RESULT([$HAVE_ARM_M3_CC])
 
-       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"
        CFLAGS="$save_CFLAGS"
@@ -328,9 +313,11 @@ if test "x$HAVE_ARM_M3_CC" = "xno"; then
 fi
 
 if test "x$HAVE_ARM_M0_CC" = "xno"; then
-       AC_MSG_WARN([No cortex-m0 arm compiler found, LPC11U14 binaries will not be built])
+       AC_MSG_WARN([No cortex-m0 arm compiler found, LPC11U14 and STM32F0 binaries will not be built])
 fi
 
+
+
 #
 # Configure AVR compiler
 #
@@ -408,6 +395,33 @@ if test "x$HAVE_NICKLE" = "xno"; then
        AC_MSG_ERROR([Please install nickle to build AltOs])
 fi
 
+AC_CHECK_PROG([HAVE_ASCIIDOCTOR_PDF], [asciidoctor-pdf], yes, no)
+if test "x$HAVE_ASCIIDOCTOR_PDF" = "xno"; then
+       AC_MSG_WARN([asciidoctor-pdf not found, PDF docs will not be built])
+fi
+AM_CONDITIONAL([ASCIIDOCTOR_PDF], [test x$HAVE_ASCIIDOCTOR_PDF != xno])
+
+AC_ARG_WITH([strip-nondeterminism],
+           [AS_HELP_STRING([--with-strip-nondeterminism],
+                           [Name of non-deterministic build data stripping tool])],
+           [],
+           [with_strip_nondeterminism=auto])
+
+if test "x$with_strip_nondeterminism" != "xno"; then
+       if test "x$with_strip_nondeterminism" = "xauto"; then
+               with_strip_nondeterminism="strip-nondeterminism"
+               AC_CHECK_PROG([HAVE_STRIP_NONDETERMINISM],[$with_strip_nondeterminism], yes, no)
+       else
+               HAVE_STRIP_NONDETERMINISM=yes
+       fi
+else
+       HAVE_STRIP_NONDETERMINISM=no
+fi
+AM_CONDITIONAL([STRIP_NONDETERMINISM], [test x$HAVE_STRIP_NONDETERMINISM != xno])
+AC_SUBST(STRIP_NONDETERMINISM, "$with_strip_nondeterminism")
+
+PKG_CHECK_MODULES([JANSSON], [jansson])
+
 AC_ARG_WITH([readline],
            [AS_HELP_STRING([--with-readline],
                              [enable readline functionality in ao-dbg @<:@default=auto@:>@])],
@@ -461,39 +475,20 @@ AC_ARG_ENABLE([multi-arch],
 
 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=yes
+       for arch in i686-linux-gnu x86_64-linux-gnu aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf; do
+               crossgcc="$arch"-gcc
+               AC_CHECK_PROG(ARCH_SUPPORTED,$crossgcc,yes,no)
+               case "$ARCH_SUPPORTED" in
+               yes)
                        ;;
                *)
                        MULTI_ARCH=no
                        ;;
                esac
-               ;;
-       *)
-               MULTI_ARCH=no
-               ;;
-       esac
+       done
+       AC_MSG_CHECKING([MULTI_ARCH])
+       AC_MSG_RESULT([$MULTI_ARCH])
        ;;
 xyes|xno)
        ;;
@@ -515,6 +510,8 @@ AM_CONDITIONAL([INSTALL_SHARED_MIME_INFO], [test x$INSTALL_SHARED_MIME_INFO = xy
 AC_OUTPUT([
 Makefile
 src/Makedefs
+src/chaoskey-v1.0/org.altusmetrum.ChaosKey.metainfo.xml
+doc/Makefile
 altoslib/Makefile
 altoslib/AltosVersion.java
 icon/Makefile
@@ -531,7 +528,8 @@ telegps/Info.plist
 telegps/telegps-windows.nsi
 altosdroid/Makefile
 altosdroid/local.properties
-altosdroid/AndroidManifest.xml
+altosdroid/app/src/main/AndroidManifest.xml
+altosdroid/app/build.gradle
 ao-tools/Makefile
 ao-tools/lib/Makefile
 ao-tools/ao-rawload/Makefile
@@ -553,14 +551,17 @@ 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-test-pressure/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-tools/ao-chaosread/Makefile
 ao-tools/ao-makebin/Makefile
 ao-utils/Makefile
-src/Version
+map-server/Makefile
+map-server/altos-mapd/Makefile
+map-server/altos-map/Makefile
+map-server/altos-mapj/Makefile
 ])
 
 echo ""
@@ -570,23 +571,22 @@ echo "  Configuration"
 echo "    Arm compiler................: ${ARM_CC}"
 echo "    STM32L support..............: ${HAVE_ARM_M3_CC}"
 echo "    LPC11U14 support............: ${HAVE_ARM_M0_CC}"
-echo "    SDCC........................: ${SDCC}"
-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 "    multi-arch libaltos.........: ${MULTI_ARCH}"
 echo "    install shared mime info....: ${INSTALL_SHARED_MIME_INFO}"
+echo "    Strip jar timestamps........: ${STRIP_NONDETERMINISM}"
 echo ""
 echo "  Java"
 echo "    freetts.....................: ${FREETTS}"
 echo "    jfreechart..................: ${JFREECHART}"
 echo "    jcommon.....................: ${JCOMMON}"
 echo "    JVM include.................: ${JVM_INCLUDE}"
-echo "    Google maps API key.........: ${HAVE_GOOGLE_KEY}"
+echo "    AltosDroid maps API key.....: ${HAVE_GOOGLE_KEY}"
+echo "    Windows installer key.......: ${HAVE_WINDOWS_KEY}"
 if test x${ANDROID_SDK} != "xno"; then
 echo ""
 echo "  Android path"