##// END OF EJS Templates
lpc17XX Rules OK, Makefile generator OK
lpc17XX Rules OK, Makefile generator OK

File last commit:

r1:b5a74c12efe8 default
r1:b5a74c12efe8 default
Show More
libucmake
121 lines | 3.6 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
#-------------------------------------------------------------------------------*/
TEMPLATE=""
ARCH=""
TARGET=""
SRCFILES=""
INCLUDES=""
LIBRARIES=""
HEADERSINSTALLPATH=""
TARGETINSTALLPATH=""
function getFilesList {
sed ':a;N;$!ba;s/\\\n/ /g' $1 | sed ':a;N;$!ba;s/\\ \n/ /g' | grep -i $2 | sed 's/\t//g'
}
function Template {
TEMPLATE=`more $1 | grep -i "TEMPLATE " | sed s/TEMPLATE// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'`
}
function Arch {
ARCH=`more $1 | grep -i "ARCH " | sed s/ARCH// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'`
}
function Target {
TARGET=`more $1 | grep -i "TARGET " | sed s/TARGET// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'`
}
function Libs_Inc {
INCLUDEStmp=`more $1 | grep -i "LIBS " | sed s/LIBS// |sed s/+//|sed s/=//| sed 's/^[ \t]*//;s/[ \t]*$//'`
for FILES in $INCLUDEStmp
do
INCLUDES+='$('"LIBUC_INC_DIR_$FILES) "
done
}
function Libs_Link {
LIBRARIEStmp=`more $1 | grep -i "LIBS " | sed s/LIBS// |sed s/+//|sed s/=//| sed 's/^[ \t]*//;s/[ \t]*$//'`
for FILES in $LIBRARIEStmp
do
LIBRARIES+='$('"LIBUC_LIBS_DIR_$FILES) "'$('"LIBUC_LIBS_$FILES) "
done
}
function HeadersInstallPath {
HEADERSINSTALLPATH=`more $1 | grep -i "HEADERSINSTALLPATH" | sed s/HEADERSINSTALLPATH// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'`
}
function TargetInstallPath {
TARGETINSTALLPATH=`more $1 | grep -i "TARGETINSTALLPATH" | sed s/TARGETINSTALLPATH// | sed s/=// | sed 's/^[ \t]*//;s/[ \t]*$//'`
}
Template $1
Target $1
Arch $1
Libs_Inc $1
Libs_Link $1
HeadersInstallPath $1
TargetInstallPath $1
echo $SRCFILES > Makefile
getFilesList $1 HEADERS >> Makefile
getFilesList $1 SOURCES >> Makefile
echo 'PROJECTDIR = `pwd`'>> Makefile
echo 'OBJECTFILES = $(SOURCES:.c=.o)'>> Makefile
echo "LIBUC = $libuc2" >> Makefile
echo "ARCH = "'$(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 'include $(ARCH)/rules.mk' >> Makefile
if(echo $TEMPLATE|grep -i app); then
echo '' >> Makefile
echo 'all:bin' >> Makefile
echo " @echo Code compiled" >> Makefile
else
if(echo $TEMPLATE|grep -i lib); then
echo '' >> Makefile
echo 'all:lib' >> Makefile
echo " @echo Code compiled" >> Makefile
else
if(echo $TEMPLATE|grep -i dir); then
echo '' >> Makefile
echo 'all:subdir' >> Makefile
echo " @echo Code compiled" >> Makefile
fi
fi
fi
echo $TEMPLATE
echo $TARGET
echo $ARCH