#!/bin/bash CONF="/etc/bake.conf" CLL1CC=`which gcc` CFLAGS="-std=c99 -Wall" DEBUG=n function debugecho { if [ $DEBUG == y ] then echo $1 fi } if [ "$1" == "" ] || [ "$EXE" == "$1" ] then echo "Usage: bake source.c or bake target" exit else while [ "$1" != "" ] do EXE=`basename $1 .c` if [ $1 == $EXE ] then SRC=$EXE.c else SRC=$1 fi debugecho "Filename: $SRC" LIBNAMES=`grep "^#define" $SRC|grep USE_LIBRARY_|cut -f 2 -d " "` if ! [ -z "$LIBNAMES" ] then debugecho "Libraries: $LIBNAMES" LIBS="" for F in $LIBNAMES do LIBS="$LIBS `grep $F $CONF|cut -f 2 -d \ `" done fi PRENAMES=`grep "^#define" $SRC|grep USE_PREPROCESSOR_|cut -f 2 -d " "` if ! [ -z "$PRENAMES" ] then debugecho "Precompilers: $PRENAMES" for F in $PRENAMES do CMD=`grep $F $CONF|cut -f 2 -d " "` gecho "$CMD" $CMD done fi CMD="$CLL1CC $SRC -o $EXE $CFLAGS $LIBS" echo "$CMD" $CMD shift done fi