X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=configure.ac;h=b6e17355a496c1ddc5451698b7f4c282f9d67af2;hp=448df6a4a965e9c7ebebe7f62960c308447b33b5;hb=90386115204bd3bfa55deb5ebe1972bacdba725a;hpb=2120d362cefceba69e75996b6391d9558978c01d diff --git a/configure.ac b/configure.ac index 448df6a4..b6e17355 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ dnl dnl Process this file with autoconf to create configure. AC_PREREQ(2.57) -AC_INIT([altos], 1.2) +AC_INIT([altos], 1.3) AC_CONFIG_SRCDIR([src/core/ao.h]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE @@ -26,12 +26,11 @@ 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 +ALTOSLIB_VERSION=2 AC_SUBST(ALTOSLIB_VERSION) AC_DEFINE(ALTOSLIB_VERSION,$ALTOSLIB_VERSION,[Version of the AltosLib package]) @@ -86,10 +85,8 @@ 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}]) -echo ANDROID_SDK set to $ANDROID_SDK - if test "x$ANDROID_SDK" = "xauto"; then - AC_MSG_CHECKING([Android SDK files]) + 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" @@ -104,6 +101,54 @@ if test "x$ANDROID_SDK" = "xauto"; then 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]) @@ -134,29 +179,260 @@ if test "x$GCC" = "xyes"; then fi AC_SUBST(WARN_CFLAGS) -AC_CHECK_PROG([HAVE_SDCC], [sdcc], yes, no) +# +# 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_ERROR([Please install sdcc to build AltOs]) + 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_ARG_WITH([arm-cc], + [AS_HELP_STRING([--with-arm-cc], + [Name of ARM C compiler])], + [], + [with_arm_cc=auto]) + +if test "x$with_arm_cc" != "xno"; then + if test "x$with_arm_cc" = "xauto"; then + with_arm_cc="arm-none-eabi-gcc" + AC_CHECK_PROG([HAVE_ARM_CC],[$with_arm_cc], yes, no) + else + HAVE_ARM_CC=yes + fi +else + HAVE_ARM_CC=no +fi + +if test "x$HAVE_ARM_CC" = "xno"; then + AC_MSG_WARN([Arm compiler not found, ARM binaries will not be built]) +else + ARM_CC=$with_arm_cc +fi +AC_SUBST(HAVE_ARM_CC) +AC_SUBST(ARM_CC) + +if test -d pdclib -a x"$HAVE_ARM_CC" = xyes; then + PDCLIB_INCLUDES='-I$(TOPDIR)/../pdclib/opt/include' + PDCLIB_LIBS_M0='-L$(TOPDIR)/../pdclib/opt/lib -lpdclib-cortex-m0' + PDCLIB_LIBS_M3='-L$(TOPDIR)/../pdclib/opt/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(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" + AC_LANG_PUSH([C]) + + AC_MSG_CHECKING([if ]$ARM_CC[ supports cortex-m0]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int i;])], + [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;])], + [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" + CC="$save_CC" +else + HAVE_ARM_M3_CC=no + HAVE_ARM_M0_CC=no +fi +AC_SUBST(HAVE_ARM_M3_CC) +AC_SUBST(HAVE_ARM_M0_CC) + +if test "x$HAVE_ARM_M3_CC" = "xno"; then + AC_MSG_WARN([No cortex-m3 arm compiler found, STM32L binaries will not be built]) +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]) +fi + +# +# Configure AVR compiler +# + +AC_ARG_WITH([avr-cc], + [AS_HELP_STRING([--with-avr-cc], + [Name of AVR C compiler])], + [], + [with_avr_cc=auto]) + +if test "x$with_avr_cc" != "xno"; then + if test "x$with_avr_cc" = "xauto"; then + with_avr_cc="avr-gcc" + AC_CHECK_PROG([HAVE_AVR_CC],[$with_avr_cc], yes, no) + else + HAVE_AVR_CC=yes + fi +else + HAVE_AVR_CC=no +fi + +AC_ARG_WITH([avr-objcopy], + [AS_HELP_STRING([--with-avr-objcopy], + [Name of AVR objcopy])], + [], + [with_avr_objcopy=auto]) + +if test "x$with_avr_objcopy" != "xno"; then + if test "x$with_avr_objcopy" = "xauto"; then + with_avr_objcopy="avr-objcopy" + AC_CHECK_PROG([HAVE_AVR_OBJCOPY],[$with_avr_objcopy], yes, no) + else + HAVE_AVR_OBJCOPY=yes + fi +else + HAVE_AVR_OBJCOPY=no +fi + +if test "x$HAVE_AVR_CC" = "xno" -o "x$HAVE_AVR_OBJCOPY" = "xno"; then + AC_MSG_WARN([AVR compiler and objcopy not found, atmel binaries will not be built]) + HAVE_AVR_CC=no +else + save_CC="$CC" + save_CFLAGS="$CFLAGS" + save_LIBS="$LIBS" + + CC="$with_avr_cc" + CFLAGS="-mmcu=attiny85" + AC_LANG_PUSH([C]) + AC_MSG_CHECKING([if ]$with_avr_cc[ can link programs]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([])], + [AVR_LINK=yes], + [AVR_LINK=no]) + AC_MSG_RESULT([$AVR_LINK]) + AC_LANG_POP([C]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + CC="$save_CC" + + if test "x$AVR_LINK" = xyes; then + AVR_CC=$with_avr_cc + AVR_OBJCOPY=$with_avr_objcopy + else + HAVE_AVR_CC=no; + fi +fi + +AC_SUBST(AVR_CC) +AC_SUBST(AVR_OBJCOPY) +AC_SUBST(HAVE_AVR_CC) + AC_CHECK_PROG([HAVE_NICKLE], [nickle], yes, no) 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]) -AM_CONDITIONAL([LIBSTLINK], [test x$HAVE_STLINK != xno]) +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_OUTPUT([ Makefile +src/Makedefs altoslib/Makefile altosuilib/Makefile altosuilib/AltosUIVersion.java @@ -181,6 +457,39 @@ 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-tools/ao-elftohex/Makefile +ao-tools/ao-usbload/Makefile +ao-tools/ao-flash/Makefile ao-utils/Makefile src/Version ]) + +echo "" +echo " Package: ${PACKAGE_NAME} ${PACKAGE_VERSION}" +echo "" +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 " STlink support..............: ${HAVE_STLINK}" +echo " Local pdclib................: ${HAVE_PDCLIB}" +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 ""