#!/bin/sh SOURCE="src/dvadmin.c src/dvbuild.c src/dvdatabase.c src/dvgenerate.c src/dvgenc.c src/dvgenh.c src/dvlexwrap.c src/dvmain.c src/dvparse.c src/dvread.c src/dvscan.c src/dvutil.c" if [ "$CC" = "" ]; then CC=gcc fi CFLAGS="${CFLAGS} -Iutil" LIBS="util/ddutil-dbg.a" if [ "`uname -m`" = x86_64 ]; then CFLAGS="$CFLAGS -m64" fi PREFIX="/usr/local" while [ $# != 0 ]; do if [ "${1%=*}" = "--prefix" ]; then PREFIX=${1#*=} echo "Configuring to install into $PREFIX" elif [ "$1" = "--dmalloc" ]; then LIBS="$LIBS -ldmalloc" CFLAGS="$CFLAGS -DMALLOC" useDmalloc=true elif [ "${1%=*}" = "CFLAGS" ]; then CFLAGS="${1#*=} -Iutil" echo "Configuring compilation flags to $CFLAGS" elif [ "${1%=*}" = "LDFLAGS" ]; then LDFLAGS=${1#*=} echo "Configuring linking flags to $LDFLAGS" else echo "Unknown option $1. IGNORING." fi shift done if [ ! -d obj ]; then mkdir obj fi echo "Building utility Makefile..." cd util if [ "$useDemalloc" = "true" ]; then ./configure --prefix=$PREFIX --dmalloc else ./configure --prefix=$PREFIX fi cd .. flex -f -Pdvlex -osrc/dvscan.c src/dvscan.l bison -d -p dv -o src/dvparse.c -b dv src/dvparse.y echo "CC=$CC CFLAGS=$CFLAGS LIBS=$LIBS PREFIX=$PREFIX " > Makefile echo "OBJECTS=\\" >> Makefile for sourceFile in $SOURCE; do objFile="obj/`basename $sourceFile | sed 's/\.c$/.o/'`" echo "$objFile\\" >> Makefile done echo " datadraw: \$(OBJECTS) util/ddutil-dbg.a \$(CC) \$(CFLAGS) \$(OBJECTS) \$(LIBS) -o datadraw clean: rm -f \$(OBJECTS) gmake -C util clean install: datadraw install -d \$(PREFIX)/bin install datadraw \$(PREFIX)/bin gmake -C util PREFIX=\$(PREFIX) install deb: fakeroot debian/rules binary && sudo dpkg -i ../*.deb # Special targets src/dvparse.c src/dvparse.h: src/dvparse.y src/dv.h bison -d -p dv -o src/dvparse.c -b dv src/dvparse.y src/dvscan.c: src/dvscan.l src/dvparse.h src/dv.h flex -f -Pdvlex -osrc/dvscan.c src/dvscan.l src/dvdatabase.h src/dvdatabase.c: src/Database.dd datadraw src/Database.dd util/ddutil-dbg.a: gmake -C util " >> Makefile for sourceFile in $SOURCE; do objFile="obj/`basename $sourceFile | sed 's/\.c$/.o/'`" echo "$objFile: $sourceFile \$(CC) -c \$(CFLAGS) $sourceFile -o $objFile " >> Makefile done $CC -M $CFLAGS $SOURCE | sed 's/^\([^ ].*\.o:\)/obj\/\1/' >> Makefile # This causes datadraw not to run on the first make touch src/dvdatabase*.[ch]