##// END OF EJS Templates
Generic lib clean target bug fixed
Generic lib clean target bug fixed

File last commit:

r17:24654bf85fa1 default
r17:24654bf85fa1 default
Show More
libucmake-lib
178 lines | 6.8 KiB | text/plain | TextLexer
Libuc make templates extracted from main script, to make it more modular
r7 #!/bin/bash
#/*------------------------------------------------------------------------------
#-- This file is a part of the libuc, microcontroler library
#-- Copyright (C) 2011, Alexis Jeandet
#--
#-- This program is free software; you can redistribute it and/or modify
#-- it under the terms of the GNU General Public License as published by
#-- the Free Software Foundation; either version 3 of the License, or
#-- (at your option) any later version.
#--
#-- This program is distributed in the hope that it will be useful,
#-- but WITHOUT ANY WARRANTY; without even the implied warranty of
#-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#-- GNU General Public License for more details.
#--
#-- You should have received a copy of the GNU General Public License
#-- along with this program; if not, write to the Free Software
#-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#-------------------------------------------------------------------------------
#-- Author : Alexis Jeandet
#-- Mail : alexis.jeandet@gmail.com
#-------------------------------------------------------------------------------*/
function template-run {
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 Targets $PROJECTFILE
if [ -z "$TARGETS" ] ; then
echo "Single Target"
Target $PROJECTFILE
Arch $PROJECTFILE
just backup
r12 Objdir $PROJECTFILE
Bindir $PROJECTFILE
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 Libs_Inc $PROJECTFILE
Libs_Link $PROJECTFILE
HeadersInstallPath $PROJECTFILE
TargetInstallPath $PROJECTFILE
getBSP $PROJECTFILE
jeandet@pc-de-jeandet3.lab-lpp.local
improved PDF generation
r15 ExtractCFLAGS $PROJECTFILE
ExtractLDFLAGS $PROJECTFILE
ExtractODFLAGS $PROJECTFILE
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo "Current BSP is $BSP"
echo $SRCFILES >> Makefile
getFilesList $PROJECTFILE HEADERS >> Makefile
getFilesList $PROJECTFILE SOURCES | sed 's/SOURCES/LIBSOURCES/' >> Makefile
echo "========================================================================="
echo " M A K E F I L E G E N E R A T I O N "
echo "-------------------------------------------------------------------------"
echo " Template = library "
echo " Architecture = $ARCH "
echo " Output file = $TARGET "
echo "========================================================================="
echo ""
echo " Start Writing Makefile ..."
just backup
r12 echo "OBJDIR = $OBJDIR" >> Makefile
echo "BINDIR = $BINDIR" >> Makefile
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo 'OBJECTFILES = $(LIBSOURCES:.c=.o)'>> Makefile
just backup
r12 echo 'OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES))'>> Makefile
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo "ARCH = $ARCH" >> Makefile
echo "ARCHFOLDER = "'$(LIBUC)'"/rules/$ARCH" >> Makefile
echo "TARGET=$TARGET">> Makefile
echo "LIBUC_INCLUDES=$INCLUDES">> Makefile
echo "LIBUC_LIBRARIES=$LIBRARIES">> Makefile
echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> Makefile
echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> Makefile
echo "BSP=$BSP">> Makefile
echo 'include $(ARCHFOLDER)/rules.mk' >> Makefile
jeandet@pc-de-jeandet3.lab-lpp.local
improved PDF generation
r15 echo "$CFLAGS" >> Makefile
echo "$LDFLAGS" >> Makefile
echo "$ODFLAGS" >> Makefile
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo '' >> Makefile
echo 'all:lib' >> Makefile
echo " @echo Code compiled" >> Makefile
just backup
r12 echo '' >> Makefile
jeandet@PC-DE-JEANDET.lpp.polytechnique.fr
Added STM32F4 target, improved rules files, added additional Include folder var...
r14 echo 'libclean:' >> Makefile
just backup
r12 echo ' rm -f $(TARGETINSTALLPATH)/*.a' >> Makefile
echo ' rm -f $(HEADERSINSTALLPATH)/*.h' >> Makefile
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo " Makefile writing finished"
echo ""
echo "========================================================================="
echo ""
else
echo "Multi targets"
for ITEMS in $TARGETS
do
echo 'PROJECTDIR = `pwd`'> $ITEMS.mk
echo "LIBUC = $libuc2" >> $ITEMS.mk
Target $PROJECTFILE $ITEMS
Arch $PROJECTFILE $ITEMS
just backup
r12 Objdir $PROJECTFILE
Bindir $PROJECTFILE
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 Libs_Inc $PROJECTFILE $ITEMS
Libs_Link $PROJECTFILE $ITEMS
HeadersInstallPath $PROJECTFILE $ITEMS
TargetInstallPath $PROJECTFILE $ITEMS
getBSP $PROJECTFILE $ITEMS
jeandet@pc-de-jeandet3.lab-lpp.local
improved PDF generation
r15 ExtractCFLAGS $PROJECTFILE $ITEMS
ExtractLDFLAGS $PROJECTFILE $ITEMS
ExtractODFLAGS $PROJECTFILE $ITEMS
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo "Current BSP is $BSP"
echo $SRCFILES >> $ITEMS.mk
jeandet@pc-de-jeandet3.lab-lpp.local
improved PDF generation
r15 TEMP=`getFilesList $PROJECTFILE $ITEMS.HEADERS`
if [ -z "$TEMP" ] ; then
getFilesList $PROJECTFILE '*'.HEADERS | sed 's/*\.'// >> $ITEMS.mk
else
getFilesList $PROJECTFILE $ITEMS.HEADERS | sed s/$ITEMS'\.'// >> $ITEMS.mk
fi
TEMP=`getFilesList $PROJECTFILE $ITEMS.SOURCES`
if [ -z "$TEMP" ] ; then
getFilesList $PROJECTFILE '*'.SOURCES | sed 's/*\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
else
getFilesList $PROJECTFILE $ITEMS.SOURCES | sed s/$ITEMS'\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
fi
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo "========================================================================="
echo " M A K E F I L E G E N E R A T I O N "
echo "-------------------------------------------------------------------------"
echo " Template = library "
echo " Architecture = $ARCH "
echo " Output file = $TARGET "
echo "========================================================================="
echo ""
echo " Start Writing Makefile ..."
just backup
r12 echo "OBJDIR = $OBJDIR" >> $ITEMS.mk
echo "BINDIR = $BINDIR" >> $ITEMS.mk
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo 'OBJECTFILES = $(LIBSOURCES:.c=.o)'>> $ITEMS.mk
just backup
r12 echo 'OBJECTFILES := $(addprefix $(OBJDIR)/,$(OBJECTFILES))'>> $ITEMS.mk
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo "ARCH = $ARCH" >> $ITEMS.mk
echo "ARCHFOLDER = "'$(LIBUC)'"/rules/$ARCH" >> $ITEMS.mk
echo "TARGET=$TARGET">> $ITEMS.mk
echo "LIBUC_INCLUDES=$INCLUDES">> $ITEMS.mk
echo "LIBUC_LIBRARIES=$LIBRARIES">> $ITEMS.mk
echo "TARGETINSTALLPATH=$TARGETINSTALLPATH">> $ITEMS.mk
echo "HEADERSINSTALLPATH=$HEADERSINSTALLPATH">> $ITEMS.mk
echo "BSP=$BSP">> $ITEMS.mk
echo 'include $(ARCHFOLDER)/rules.mk' >> $ITEMS.mk
jeandet@pc-de-jeandet3.lab-lpp.local
improved PDF generation
r15 echo "$CFLAGS" >> $ITEMS.mk
echo "$LDFLAGS" >> $ITEMS.mk
echo "$ODFLAGS" >> $ITEMS.mk
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo '' >> $ITEMS.mk
echo 'all:lib' >> $ITEMS.mk
echo " @echo Code compiled" >> $ITEMS.mk
just backup
r12 echo '' >> $ITEMS.mk
jeandet@PC-DE-JEANDET.lpp.polytechnique.fr
Added STM32F4 target, improved rules files, added additional Include folder var...
r14 echo 'libclean:' >> $ITEMS.mk
just backup
r12 echo ' rm -f $(TARGETINSTALLPATH)/*.a' >> $ITEMS.mk
jeandet@pc-de-jeandet3.lab-lpp.local
Generic lib clean target bug fixed
r17 if [ -z "$HEADERSINSTALLPATH" ] ; then
echo ""
else
echo ' rm -f $(HEADERSINSTALLPATH)/*.h' >> $ITEMS.mk
fi
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo " Makefile writing finished"
echo ""
echo "========================================================================="
echo ""
just backup
r12 done
echo "" >> Makefile
echo "all:" >> Makefile
for ITEMS in $TARGETS
do
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 echo " make -f $ITEMS.mk" >> Makefile
done
just backup
r12 echo "" >> Makefile
echo "clean:" >> Makefile
for ITEMS in $TARGETS
do
echo " make clean -f $ITEMS.mk" >> Makefile
done
jeandet@PC-DE-JEANDET.lpp.polytechnique.fr
Added STM32F4 target, improved rules files, added additional Include folder var...
r14 echo "" >> Makefile
echo "distclean:" >> Makefile
for ITEMS in $TARGETS
do
echo " make distclean -f $ITEMS.mk" >> Makefile
jeandet@pc-de-jeandet3.lab-lpp.local
Cleaned source tree....
r16 echo " rm -f $ITEMS.mk" >> Makefile
jeandet@PC-DE-JEANDET.lpp.polytechnique.fr
Added STM32F4 target, improved rules files, added additional Include folder var...
r14 done
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
r9 fi
Libuc make templates extracted from main script, to make it more modular
r7 }