altos: Build pdclib locally if necessary
authorKeith Packard <keithp@keithp.com>
Wed, 18 Dec 2013 18:01:29 +0000 (10:01 -0800)
committerKeith Packard <keithp@keithp.com>
Wed, 18 Dec 2013 18:01:29 +0000 (10:01 -0800)
Signed-off-by: Keith Packard <keithp@keithp.com>
configure.ac
src/Makedefs.in
src/Makefile
src/lpc/Makefile-lpc.defs
src/stm/Makefile.defs

index 1d80376cc14f22342078277a700284ab4cfad932..b6e17355a496c1ddc5451698b7f4c282f9d67af2 100644 (file)
@@ -238,6 +238,25 @@ fi
 AC_SUBST(HAVE_ARM_CC)
 AC_SUBST(ARM_CC)
 
 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"
 if test "x$HAVE_ARM_CC" = "xyes"; then
        save_CC="$CC"
        save_CFLAGS="$CFLAGS"
@@ -253,10 +272,6 @@ if test "x$HAVE_ARM_CC" = "xyes"; then
                          [HAVE_ARM_M0_CC=no])
         AC_MSG_RESULT([$HAVE_ARM_M0_CC])
 
                          [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;])],
        CFLAGS="-mthumb -mcpu=cortex-m3"
        AC_MSG_CHECKING([if ]$ARM_CC[ supports cortex-m3])
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int i;])],
@@ -264,9 +279,15 @@ if test "x$HAVE_ARM_CC" = "xyes"; then
                          [HAVE_ARM_M3_CC=no])
         AC_MSG_RESULT([$HAVE_ARM_M3_CC])
 
                          [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"
 
        AC_LANG_POP([C])
        LIBS="$save_LIBS"
@@ -459,6 +480,7 @@ 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 "    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 ""
 echo "  Java paths"
 echo "    freetts.....................: ${FREETTS}"
index 6dc9ab0fd8bf3429dc24bafd4fbd911b8022f2b3..d4ef28be0122d598589662aa36d29cc0ba9c45ab 100644 (file)
@@ -1,6 +1,10 @@
 ARM_CC=@ARM_CC@
 HAVE_ARM_M3_CC=@HAVE_ARM_M3_CC@
 HAVE_ARM_M0_CC=@HAVE_ARM_M0_CC@
 ARM_CC=@ARM_CC@
 HAVE_ARM_M3_CC=@HAVE_ARM_M3_CC@
 HAVE_ARM_M0_CC=@HAVE_ARM_M0_CC@
+PDCLIB_INCLUDES=@PDCLIB_INCLUDES@
+PDCLIB_LIBS_M0=@PDCLIB_LIBS_M0@
+PDCLIB_LIBS_M3=@PDCLIB_LIBS_M3@
+HAVE_PDCLIB=@HAVE_PDCLIB@
 
 SDCC=@SDCC@
 HAVE_SDCC=@HAVE_SDCC@
 
 SDCC=@SDCC@
 HAVE_SDCC=@HAVE_SDCC@
index bdd3307a1a9df579dbf3144e685f53be62dd629f..2ba59d9454914459f5cc573191b9c8f5a4446d84 100644 (file)
@@ -42,6 +42,10 @@ AVRDIRS=\
 
 SUBDIRS=
 
 
 SUBDIRS=
 
+ifeq ($(strip $(HAVE_PDCLIB)),yes)
+PDCLIB=pdclib
+endif
+
 ifeq ($(strip $(HAVE_SDCC)),yes)
 SUBDIRS+=$(SDCCDIRS)
 endif
 ifeq ($(strip $(HAVE_SDCC)),yes)
 SUBDIRS+=$(SDCCDIRS)
 endif
@@ -92,7 +96,7 @@ uninstall:
 
 all-recursive: all-local
 
 
 all-recursive: all-local
 
-all-local: altitude.h altitude-pa.h ao_kalman.h ao_whiten.h
+all-local: altitude.h altitude-pa.h ao_kalman.h ao_whiten.h $(PDCLIB)
 
 altitude.h: make-altitude
        nickle $< > $@
 
 altitude.h: make-altitude
        nickle $< > $@
@@ -108,3 +112,6 @@ ao_whiten.h: make-whiten
 
 clean-local:
        rm -f altitude.h ao_kalman.h
 
 clean-local:
        rm -f altitude.h ao_kalman.h
+
+pdclib:
+       cd ../pdclib && make && make prefix=`pwd`/opt install
index fbd413b0bc0d3f785555e3a7ed307b97d376b71a..3d55cf67c4c735af6a9178d36037a353880ddbdb 100644 (file)
@@ -26,12 +26,12 @@ endif
 ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
 CC=$(ARM_CC)
 
 ELFTOHEX=$(TOPDIR)/../ao-tools/ao-elftohex/ao-elftohex
 CC=$(ARM_CC)
 
-AO_CFLAGS=-I. -I$(TOPDIR)/lpc -I$(TOPDIR)/core -I$(TOPDIR)/drivers -I$(TOPDIR)/product -I$(TOPDIR)
+AO_CFLAGS=-I. -I$(TOPDIR)/lpc -I$(TOPDIR)/core -I$(TOPDIR)/drivers -I$(TOPDIR)/product -I$(TOPDIR) $(PDCLIB_INCLUDES) 
 LPC_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m0 -mthumb -ffreestanding -nostdlib $(AO_CFLAGS)
 
 NICKLE=nickle
 
 LPC_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m0 -mthumb -ffreestanding -nostdlib $(AO_CFLAGS)
 
 NICKLE=nickle
 
-LIBS=-lpdclib-cortex-m0 -lgcc
+LIBS=$(PDCLIB_LIBS_M0) -lgcc
 
 V=0
 # The user has explicitly enabled quiet compilation.
 
 V=0
 # The user has explicitly enabled quiet compilation.
index b1998f93661bd541455fc304d7eb9d327a2a6e13..9adcfeb3c2bb76fc3969986a6ce3bf33171c8640 100644 (file)
@@ -22,9 +22,9 @@ endif
 include $(TOPDIR)/Makedefs
 
 CC=$(ARM_CC)
 include $(TOPDIR)/Makedefs
 
 CC=$(ARM_CC)
-LIBS=-lpdclib-cortex-m3 -lgcc
+LIBS=$(PDCLIB_LIBS_M3) -lgcc
 
 
-AO_CFLAGS=-I. -I../stm -I../core -I../drivers -I../math -I..
+AO_CFLAGS=-I. -I../stm -I../core -I../drivers -I../math -I.. $(PDCLIB_INCLUDES)
 STM_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m3 -mthumb -ffreestanding -nostdlib $(AO_CFLAGS)
 
 LDFLAGS=-L../stm -Wl,-Taltos.ld
 STM_CFLAGS=-std=gnu99 -mlittle-endian -mcpu=cortex-m3 -mthumb -ffreestanding -nostdlib $(AO_CFLAGS)
 
 LDFLAGS=-L../stm -Wl,-Taltos.ld