blob: 2046a2a7ff45f272878373c70287138756de5a67 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 | LIBBU:=$(foreach f,paramproc.h paramproc.cpp fstring.h fstring.cpp exceptionbase.cpp exceptionbase.h archive.cpp archive.h archival.cpp archival.h plugger.h plugger.cpp singleton.h hash.cpp hash.h file.h file.cpp stream.h stream.cpp list.h list.cpp set.h set.cpp trace.h trace.cpp util.h fbasicstring.cpp fbasicstring.h,src/$f)
SRC:=$(sort $(wildcard src/*.cpp) $(patsubst src/%,src/bu/%,$(filter %.cpp,$(LIBBU))))
OBJ:=src/build.yy.o src/build.tab.o $(patsubst %.cpp,%.o,$(SRC)) 
REV:=$(shell svn info | grep "Revision" | cut -d\  -f2)
VER:=r$(REV)
PKG:=build-$(VER).tar.bz2
.PHONY: all extern clean distclean package
# .SILENT:
all: extern build
package: clean distclean extern $(PKG)
$(PKG):
	mkdir build-$(VER)
	mkdir build-$(VER)/src
	mkdir build-$(VER)/src/bu
	cp -a src/*.{cpp,h,y,l} build-$(VER)/src
	cp -a src/bu/*.{cpp,h} build-$(VER)/src/bu
	cp -a build.conf build-$(VER)
	cp -a Makefile.slim build-$(VER)/Makefile
	tar -c build-$(VER) | bzip2 -9 > $(PKG)
	rm -Rf build-$(VER)
clean:
	-rm -Rf build $(OBJ)
distclean:
	-rm -Rf $(LIBBU)
	-rm -Rf src/bu
extern: $(LIBBU)
$(LIBBU):
	mkdir -p src/bu
	wget -nv -Psrc/bu http://svn.xagasoft.com/libbu++/trunk/$@
build: src/build.yy.c src/build.tab.c $(OBJ)
	g++ -ggdb -ldl -o build $(OBJ)
%.o: %.cpp
	g++ -ggdb -Isrc -c -o $@ $<
%.o: %.c
	g++ -ggdb -Isrc -c -o $@ $<
%.yy.c: %.l
	flex --bison-bridge --bison-locations -o $@ $<
%.tab.c: %.y
	bison -v -b$(patsubst %.tab.c,%,$@) $<
 |