view examples/tank/Makefile @ 130:3a4d6179e6a9

change mb_c_source.m4 and mb_c_header.m4 to specify parent for SVG object
author Thinker K.F. Li <thinker@branda.to>
date Tue, 16 Sep 2008 21:23:34 +0800
parents 3895d2224e67
children 6749f6639924
line wrap: on
line source

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