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