summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac36
-rw-r--r--src/Makedefs.in4
-rw-r--r--src/Makefile9
-rw-r--r--src/lpc/Makefile-lpc.defs4
-rw-r--r--src/stm/Makefile.defs4
5 files changed, 45 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index 1d80376c..b6e17355 100644
--- a/configure.ac
+++ b/configure.ac
@@ -238,6 +238,25 @@ 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"
@@ -253,10 +272,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;])],
@@ -264,9 +279,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"
@@ -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 " Local pdclib................: ${HAVE_PDCLIB}"
echo ""
echo " Java paths"
echo " freetts.....................: ${FREETTS}"
diff --git a/src/Makedefs.in b/src/Makedefs.in
index 6dc9ab0f..d4ef28be 100644
--- a/src/Makedefs.in
+++ b/src/Makedefs.in
@@ -1,6 +1,10 @@
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@
diff --git a/src/Makefile b/src/Makefile
index bdd3307a..2ba59d94 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -42,6 +42,10 @@ AVRDIRS=\
SUBDIRS=
+ifeq ($(strip $(HAVE_PDCLIB)),yes)
+PDCLIB=pdclib
+endif
+
ifeq ($(strip $(HAVE_SDCC)),yes)
SUBDIRS+=$(SDCCDIRS)
endif
@@ -92,7 +96,7 @@ uninstall:
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 $< > $@
@@ -108,3 +112,6 @@ ao_whiten.h: make-whiten
clean-local:
rm -f altitude.h ao_kalman.h
+
+pdclib:
+ cd ../pdclib && make && make prefix=`pwd`/opt install
diff --git a/src/lpc/Makefile-lpc.defs b/src/lpc/Makefile-lpc.defs
index fbd413b0..3d55cf67 100644
--- a/src/lpc/Makefile-lpc.defs
+++ b/src/lpc/Makefile-lpc.defs
@@ -26,12 +26,12 @@ endif
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
-LIBS=-lpdclib-cortex-m0 -lgcc
+LIBS=$(PDCLIB_LIBS_M0) -lgcc
V=0
# The user has explicitly enabled quiet compilation.
diff --git a/src/stm/Makefile.defs b/src/stm/Makefile.defs
index b1998f93..9adcfeb3 100644
--- a/src/stm/Makefile.defs
+++ b/src/stm/Makefile.defs
@@ -22,9 +22,9 @@ endif
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