# TOP LEVEL MAKEFILE # This makefile will figure out what platform we're on, then # call a minimakefile to set the OS-specific flags, which then re-calls # this Makefile to do the compile. Got that? # THIS ALL ASSUMES WE'RE IN THE src DIRECTORY... # If that weren't enough - genmake generates all the minimakefiles # for all the platforms. This should make keeping all the makefiles # in sync a whole lot easier. # Globals defaults SHELL = /bin/sh MAKE = make CC = gcc # # BBDIR is for the server # BBCDIR is for the client. Client can't be in the same dir as server # because of the same named files BBDIR=bb1.9i-btf BBCDIR=bbc1.9i-btf BBDEFS = `./minimake/genbbdefs` OS = `./minimake/bbmachine` MACHINE = `./minimake/bbmachine OS` BBMACHINE = `./${BBDIR}/src/minimake/bbmachine OS` ID = `./${BBDIR}/src/minimake/getid` ################################################################# # BB LOCAL COMPILE TIME FLAGS ################################################################# # -DDEBUG DUMP TRACE CODE IN BBOUT # -DZOMBIE PREVENT ZOMBIE PROCESS CREATION # -DREGEXEC USE PROPER REG EXPR LIBRARY CODE # -DREGEX # -DRE_EXEC # -DTIMEH THIS OS CAN HANDLE time.h # -DGETTIMEOFDAY ADD STATS TO TEST (NEEDS gettimeofday()) # -DSIGSETJMP # # AS WELL AS THE PRECEEDING FLAGS # USE BBFLAGS FOR -g, -pg AND OTHER STANDARD COMPILER OPTIONS. # (THAT'S BECAUSE CFLAGS GETS REWRITTEN) BBFLAGS= ${BBDEFS} -g all: @ if test ! -d ../bin.${MACHINE}; then mkdir ../bin.${MACHINE};fi @ rm -f *.o @ BBFLAGS="${BBFLAGS}"; export BBFLAGS; minimake/genmake ${OS} @ make -f minimake/makefile.${OS} ################################################################# # ACTUAL COMPILING STARTS HERE - NO CHANGES SHOULD BE NEEDED BELOW ################################################################# %.o: %.c bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o $@ -c $< bball: bb touchtime getipaddr bbrun bb: bb.o bbsend.o utils.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ bb.o bbsend.o utils.o ${LIBS} # # SMM FORCE INCLUSION OF #defines FOR THE .h FILES LISTED IN BBFLAGS... # FOR bbpage AND bbrun # #bbpage.o: bbpage.c bb.h # ${CC} ${CFLAGS} ${BBFLAGS} -c bbpage.c #bbrun.o: bbrun.c bb.h # ${CC} ${CFLAGS} ${BBFLAGS} -c bbrun.c bbd: dohostsvc.o utils.o bbd.o bbpage.o bbsend.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ bbd.o dohostsvc.o bbpage.o bbsend.o utils.o ${LIBS} bbstat: bbstat.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ bbstat.o ${LIBS} bbnet: bbnet.o utils.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ bbnet.o utils.o ${LIBS} touchtime: touchtime.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ touchtime.o ${LIBS} dumphostsvc: dohostsvc.o utils.o dumphostsvc.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ dumphostsvc.o dohostsvc.o utils.o ${LIBS} getipaddr: utils.o getipaddr.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ getipaddr.o utils.o ${LIBS} bbrun: utils.o bbrun.o bb.h ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ bbrun.o utils.o ${LIBS} mkbbline: mkbbline.o ${CC} ${CFLAGS} ${BBFLAGS} -o ../bin.${MACHINE}/$@ mkbbline.o # # SMM... A LITTLE DIFFERENT HERE.... DUNNO WHAT TO DO. # install: @ rm -f *.o @ if test ! -d ../bin.${MACHINE}; then mkdir ../bin.${MACHINE}; fi @ strip ../bin.${MACHINE}/* @ cd ../bin.${MACHINE}; cp bb touchtime getipaddr bbrun ../bin clean: @ rm -f *.o bb touchtime getipaddr bbrun @ rm -f *.o ../bin.${MACHINE}/* @ cd ../bin; rm -f bb touchtime getipaddr bbrun bbserver: @ cd ../..; tar cvf ../../btf-archives/BBSVR-${BBDIR}.tar `cat ${BBDIR}/src/minimake/bbsvr-list | sed "s/^BBDIR/${BBDIR}/g"` ; \ echo "Created archive `pwd`/btf-archives/BBSVR-${BBDIR}.tar" # # Client must go into its own directory # bbclient: @ cd ../../; rm -f "${BBCDIR}" ; ln -s ${BBDIR} ${BBCDIR}; \ touch "${BBCDIR}/src/minimake/client"; \ tar cvf ../../btf-archives/BBCLT-${BBCDIR}.tar `cat ${BBCDIR}/src/minimake/bbclt-list | sed "s/^BBCDIR/${BBCDIR}/g"` ; \ rm -f "${BBCDIR}" ; rm -f "${BBCDIR}/src/minimake/client"; \ echo "Created archive `pwd`/btf-archives/BBCLT-${BBCDIR}.tar"