dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-AC_INIT([altos], 1.4.0.1)
+AC_INIT([altos], 1.9.4)
+ANDROID_VERSION=27
AC_CONFIG_SRCDIR([src/kernel/ao.h])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
+RELEASE_DATE=2020-07-02
+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)
dnl ==========================================================================
dnl Java library versions
-ALTOSUILIB_VERSION=3
-ALTOSLIB_VERSION=5
+ALTOSUILIB_VERSION=14
+ALTOSLIB_VERSION=14
AC_SUBST(ALTOSLIB_VERSION)
AC_DEFINE(ALTOSLIB_VERSION,$ALTOSLIB_VERSION,[Version of the AltosLib package])
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)]),
fi
fi
+ANDROID_RELEASE=no
if test "x$ANDROID_SDK" != "xno"; then
HAVE_ANDROID_SDK="yes"
+ ANDROID_RELEASE=yes
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)
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"])
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"`'"'
+ GOOGLEKEY=`cat "$GOOGLEKEYFILE"`
HAVE_GOOGLE_KEY="yes"
else
GOOGLEKEY='null'
HAVE_GOOGLE_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_PROG_CC
AC_PROG_LIBTOOL
PKG_PROG_PKG_CONFIG
-CFLAGS="-g"
WARN_CFLAGS=""
if test "x$GCC" = "xyes"; then
WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
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
#
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"
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
#
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@:>@])],
xx86_64|xi*86)
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
- LIBS="-lbluetooth"
+ LIBS="-ldl"
CFLAGS="-m64"
AC_MSG_CHECKING([if ]$CC[ ]$CFLAGS[ can link programs])
AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
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([INSTALL_SHARED_MIME_INFO], [test x$INSTALL_SHARED_MIME_INFO = xyes])
+
AC_OUTPUT([
Makefile
src/Makedefs
+src/chaoskey-v1.0/org.altusmetrum.ChaosKey.metainfo.xml
+doc/Makefile
altoslib/Makefile
+altoslib/AltosVersion.java
icon/Makefile
altosuilib/Makefile
-altosuilib/AltosUIVersion.java
altosui/Makefile
altosui/Info.plist
altosui/altos-windows.nsi
telegps/telegps-windows.nsi
altosdroid/Makefile
altosdroid/local.properties
+altosdroid/app/src/main/AndroidManifest.xml
+altosdroid/app/build.gradle
ao-tools/Makefile
ao-tools/lib/Makefile
ao-tools/ao-rawload/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-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 ""
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 " 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}"
if test x${ANDROID_SDK} != "xno"; then
echo ""
echo " Android path"