##// END OF EJS Templates
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...
Multi target feature added, It's now possible to generate differents outputs from the same inputs files with differents options...

File last commit:

r9:4ce02a06b2a6 default
r9:4ce02a06b2a6 default
Show More
libucmake-app
122 lines | 5.2 KiB | text/plain | TextLexer
#!/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 {
Targets $PROJECTFILE
if [ -z "$TARGETS" ] ; then
echo "Single Target"
Target $PROJECTFILE
Arch $PROJECTFILE
Libs_Inc $PROJECTFILE
Libs_Link $PROJECTFILE
HeadersInstallPath $PROJECTFILE
TargetInstallPath $PROJECTFILE
getBSP $PROJECTFILE
echo "Current BSP is $BSP"
echo $SRCFILES >> Makefile
getFilesList $PROJECTFILE HEADERS >> Makefile
getFilesList $PROJECTFILE SOURCES | sed 's/SOURCES/APPSOURCES/' >> Makefile
echo "========================================================================="
echo " M A K E F I L E G E N E R A T I O N "
echo "-------------------------------------------------------------------------"
echo " Template = application "
echo " Architecture = $ARCH "
echo " Current Board Support package is $BSP "
echo " Output file = $TARGET "
echo "========================================================================="
echo ""
echo " Start Writing Makefile ..."
echo 'OBJECTFILES = $(APPSOURCES:.c=.o)'>> Makefile
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
echo '' >> Makefile
echo 'all:bin' >> Makefile
echo " @echo Code compiled" >> Makefile
echo '' >> Makefile
echo " Makefile writing finished"
echo ""
echo "========================================================================="
echo ""
else
echo "Multi targets"
echo "" >> Makefile
echo "all:" >> Makefile
for ITEMS in $TARGETS
do
echo 'PROJECTDIR = `pwd`'> $ITEMS.mk
echo "LIBUC = $libuc2" >> $ITEMS.mk
Target $PROJECTFILE $ITEMS
Arch $PROJECTFILE $ITEMS
Libs_Inc $PROJECTFILE $ITEMS
Libs_Link $PROJECTFILE $ITEMS
HeadersInstallPath $PROJECTFILE $ITEMS
TargetInstallPath $PROJECTFILE $ITEMS
getBSP $PROJECTFILE $ITEMS
echo "Current BSP is $BSP"
echo $SRCFILES >> $ITEMS.mk
getFilesList $PROJECTFILE $ITEMS.HEADERS | sed s/$ITEMS'\.'// >> $ITEMS.mk
getFilesList $PROJECTFILE $ITEMS.SOURCES | sed s/$ITEMS'\.'SOURCES/LIBSOURCES/ >> $ITEMS.mk
echo "========================================================================="
echo " M A K E F I L E G E N E R A T I O N "
echo "-------------------------------------------------------------------------"
echo " Template = application "
echo " Architecture = $ARCH "
echo " Current Board Support package is $BSP "
echo " Output file = $TARGET "
echo "========================================================================="
echo ""
echo " Start Writing Makefile ..."
echo 'OBJECTFILES = $(APPSOURCES:.c=.o)'>> $ITEMS.mk
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
echo '' >> $ITEMS.mk
echo 'all:bin' >> $ITEMS.mk
echo " @echo Code compiled" >> $ITEMS.mk
echo '' >> $ITEMS.mk
echo " Makefile writing finished"
echo ""
echo "========================================================================="
echo ""
echo " make -f $ITEMS.mk" >> Makefile
done
fi
}