view examples/tank/Makefile.pmake @ 1401:2fc1f54a1a3b

Mainly fix the clone_from_subtree to update the children of the parent node. We need to clearify all related codes in the future to make the logic more clear.
author wycc
date Sun, 03 Apr 2011 18:12:42 +0800
parents a7358d9127c8
children
line wrap: on
line source

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