diff --git a/bin/libucmake b/bin/libucmake --- a/bin/libucmake +++ b/bin/libucmake @@ -28,6 +28,7 @@ INCLUDES="" LIBRARIES="" HEADERSINSTALLPATH="" TARGETINSTALLPATH="" +BSP="generic" function getFilesList { sed ':a;N;$!ba;s/\\\n/ /g' $1 | sed ':a;N;$!ba;s/\\ \n/ /g' | grep -i $2 | sed 's/\t//g' @@ -69,6 +70,10 @@ function TargetInstallPath { TARGETINSTALLPATH=`more $1 | grep -i "TARGETINSTALLPATH" | sed s/TARGETINSTALLPATH// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'` } +function getBSP { + BSP=`more $1 | grep -i "BSP" | sed s/BSP// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'` +} + if [ -z "$1" ] ; then echo "try to find a project file ..." TMP=`ls *.pro` @@ -91,23 +96,26 @@ fi CURRENTDIR=`pwd` Template $PROJECTFILE +echo "Template = $TEMPLATE" echo '' > Makefile echo 'PROJECTDIR = `pwd`'>> Makefile echo "LIBUC = $libuc2" >> Makefile -if(echo $TEMPLATE|grep -i 'dir'); then +if(echo $TEMPLATE | grep -i 'dir'); then echo 'include $(LIBUC)/rules/common/rules.mk' >> Makefile SUBDIRS=`getFilesList $PROJECTFILE SUBDIRS | sed 's/SUBDIRS//' | sed 's/=//' | sed 's/+//' ` CURRENTDIR=`pwd` - echo $CURRENTDIR echo "" >> Makefile echo 'all:subdir' >> Makefile for DIRS in $SUBDIRS do + echo "enter $DIRS" cd $DIRS + echo "run $0" $0 cd $CURRENTDIR + echo "exit $DIRS" if [ -e "$DIRS/Makefile" ]; then echo " make -C $DIRS">> Makefile fi @@ -121,6 +129,7 @@ else Libs_Link $PROJECTFILE HeadersInstallPath $PROJECTFILE TargetInstallPath $PROJECTFILE + getBSP $PROJECTFILE echo $SRCFILES >> Makefile getFilesList $PROJECTFILE HEADERS >> Makefile getFilesList $PROJECTFILE SOURCES >> Makefile @@ -131,6 +140,7 @@ else echo "LIBUC_LIBRARIES=$LIBRARIES">> Makefile echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> Makefile echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> Makefile + echo "BSP=$BSP">> Makefile echo 'include $(ARCH)/rules.mk' >> Makefile if(echo $TEMPLATE|grep -i app); then @@ -146,9 +156,6 @@ else fi fi -echo $TEMPLATE -echo $TARGET -echo $ARCH diff --git a/rules/lpc17XX-arm-noabi-gcc/rules.mk b/rules/lpc17XX-arm-noabi-gcc/rules.mk --- a/rules/lpc17XX-arm-noabi-gcc/rules.mk +++ b/rules/lpc17XX-arm-noabi-gcc/rules.mk @@ -86,6 +86,15 @@ LIBUC_INC_DIR_SPI = -I $(LIBUC_ LIBUC_INC_DIR_IIC = -I $(LIBUC_INC_DIR)/IIC LIBUC_INC_DIR_ADC = -I $(LIBUC_INC_DIR)/ADC + +#--------------------------------------------------------------------------------- +# BOARD SUPORT PACKAGES +#--------------------------------------------------------------------------------- +LIBUC_BSP_DIR=$(LIBUC)/bsp +LIBUC_BSP_BIN_DIR= $(LIBUC_BSP_DIR)/bin +LIBUC_BSP_INC_DIR= $(LIBUC_BSP_DIR)/includes +LIBUC_BSP = -L $(LIBUC_BSP_BIN_DIR)/$(BSP) -lbsp +LIBUC_BSP_INC = -I $(LIBUC_BSP_INC_DIR)/$(BSP) #--------------------------------------------------------------------------------- # DEVICE SPECIAL FILES #--------------------------------------------------------------------------------- @@ -114,12 +123,12 @@ lib: $(TARGET).a %.o: %.c - $(LIBUC_CC) -I $(LPC17XX_INCDIR) $(LIBUC_INCLUDES) -MM $< -MF $*.d -MP - $(LIBUC_CC) -I $(LPC17XX_INCDIR) $(LIBUC_INCLUDES) -c $(LIBUC_CFLAGS) $< -o $@ + $(LIBUC_CC) -I $(LPC17XX_INCDIR) $(LIBUC_INCLUDES) $(LIBUC_BSP_INC) -MM $< -MF $*.d -MP + $(LIBUC_CC) -I $(LPC17XX_INCDIR) $(LIBUC_INCLUDES) $(LIBUC_BSP_INC) -c $(LIBUC_CFLAGS) $< -o $@ %.elf: $(LINKER_SCRIPT) $(OBJECTFILES) - $(LIBUC_LD) -Map $(@:.elf=.map) $(LIBUC_LDFLAGS) $(LIBUC_LIBRARIES) -T $^ -o $@ + $(LIBUC_LD) -Map $(@:.elf=.map) $(LIBUC_LDFLAGS) $(LIBUC_LIBRARIES) $(LIBUC_BSP) -T $^ -o $@ $(LIBUC_OBJDUMP) $(LIBUC_ODFLAGS) $@ > $(@:.elf=.dump) $(LIBUC_SIZE) $@