Mercurial > MadButterfly
diff examples/tank/Makefile.pmake @ 188:a7358d9127c8
autotoolize examples/tank
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Fri, 07 Nov 2008 15:18:22 +0800 |
parents | examples/tank/Makefile@c490796f6c82 |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/tank/Makefile.pmake Fri Nov 07 15:18:22 2008 +0800 @@ -0,0 +1,60 @@ +SVGS = brick.svg bullet.svg bush.svg mud.svg rock.svg \ + tank1.svg tank2.svg tank_en.svg bang.svg +SVGHS = $(SVGS:C/\.svg/.h/) +SVGCS = $(SVGS:C/\.svg/.c/) +SVGOS = $(SVGS:C/\.svg/.o/) +MBS = $(SVGS:C/\.svg/.mb/) +SVG2CODE= svg2code.py +MB_C_HEADER= mb_c_header.m4 +MB_C_SOURCE= mb_c_source.m4 +M4 = m4 +PREFIX?= /usr/local +M4MACRODIR?= $(PREFIX)/share/mb +M4FLAGS ?= -I $(M4MACRODIR) +LDFLAGS += +INCDIR?= $(PREFIX)/include +LIBDIR?= $(PREFIX)/lib +LIBS += -lmbfly -lX11 -L$(LIBDIR) `pkg-config --libs cairo` +CFLAGS += -I$(INCDIR) `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) $(.ALLSRC) > $@ + +$(SVG:C/\.svg/.c/): $(SVG:C/\.svg/.mb/) + $(M4) $(M4FLAGS) $(MB_C_SOURCE) $(.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