Mercurial > MadButterfly
diff examples/tank/Makefile @ 115:3895d2224e67
Tank
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sun, 14 Sep 2008 02:17:57 +0800 |
parents | |
children | 6749f6639924 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/tank/Makefile Sun Sep 14 02:17:57 2008 +0800 @@ -0,0 +1,54 @@ +SVGS = brick.svg bullet.svg bush.svg mud.svg rock.svg \ + tank1.svg tank2.svg tank_en.svg +SVGHS = $(SVGS:C/\.svg/.h/) +SVGCS = $(SVGS:C/\.svg/.c/) +SVGOS = $(SVGS:C/\.svg/.o/) +MBS = $(SVGS:C/\.svg/.mb/) +SVG2CODE= svg2code.py +M4 = m4 +M4FLAGS = -I /usr/local/share/mb +LDFLAGS += +LIBS += -lmbfly -lX11 -L/usr/local/lib `pkg-config --libs cairo` +CFLAGS += -I/usr/local/include `pkg-config --cflags cairo` +BIN = tank + +all: tank + +tank: tank_main.o $(SVGOS) + $(CC) $(LDFLAGS) -o $@ $(.ALLSRC) $(LIBS) + +tank_main.o: tank_main.c svgs.h + $(CC) $(CFLAGS) -c tank_main.c + +svgs.h: $(SVGHS) + echo "#ifndef __SVGS_H_" > $@ + echo "#define __SVGS_H_" >> $@ + echo >> $@ + for H in $(SVGHS); do \ + echo "#include \"$$H\"" >> $@; \ + done + echo >> $@ + echo "#endif /* __SVGS_H_ */" >> $@ + +.for SVG in $(SVGS) +$(SVG:C/\.svg/.o/): $(SVG:C/.svg/.c/) + $(CC) $(CFLAGS) -c -o $@ $(.ALLSRC) + +$(SVG:C/\.svg/.mb/): $(SVG) + $(SVG2CODE) $(SVG) $@ + +$(SVG:C/\.svg/.h/): $(SVG:C/\.svg/.mb/) + $(M4) $(M4FLAGS) mb_c_header.m4 $(.ALLSRC) > $@ + +$(SVG:C/\.svg/.c/): $(SVG:C/\.svg/.mb/) + $(M4) $(M4FLAGS) mb_c_source.m4 $(.ALLSRC) > $@ + +.endfor + +clean: + @for f in svgs.h $(SVGHS) $(SVGCS) $(SVGOS) $(MBS) \ + *~ *.core tank tank_main.o; do \ + if [ -e $$f ]; then \ + echo "delete $$f"; rm -f $$f; \ + fi; \ + done