diff options
author | Mike Buland <eichlan@xagasoft.com> | 2006-06-29 05:50:44 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2006-06-29 05:50:44 +0000 |
commit | 937d960d2677c87ac6d68dc5445be115ac001d3e (patch) | |
tree | 35b33aebb0cab5073fc0778f13f2425d3e18278f /Makefile.legacy | |
parent | dcd914665f6e8ea6ea4e648f7357f1c842273d87 (diff) | |
download | libbu++-937d960d2677c87ac6d68dc5445be115ac001d3e.tar.gz libbu++-937d960d2677c87ac6d68dc5445be115ac001d3e.tar.bz2 libbu++-937d960d2677c87ac6d68dc5445be115ac001d3e.tar.xz libbu++-937d960d2677c87ac6d68dc5445be115ac001d3e.zip |
Completely switched over to the much simpler, nicer pymake. Things look great,
and the old Makefile may soon fall into disrepair. To use the old one, which
should almost always be able to build at least thi library, call:
make -f Makefile.legacy
The new Makefile just calls pymake
Diffstat (limited to '')
-rw-r--r-- | Makefile.legacy | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Makefile.legacy b/Makefile.legacy new file mode 100644 index 0000000..0afb4a0 --- /dev/null +++ b/Makefile.legacy | |||
@@ -0,0 +1,78 @@ | |||
1 | OBJS:=$(patsubst %.cpp,%.o,$(wildcard src/*.cpp)) | ||
2 | USRCS:=$(wildcard src/unit/*.cpp) | ||
3 | UOBJS:=$(patsubst %.cpp,%.o,$(USRCS)) | ||
4 | UNIT:=$(foreach ut,$(patsubst %.cpp,%,$(wildcard src/unit/*.cpp)),unit/$(notdir $(ut))) | ||
5 | TOBJS:=$(patsubst %.cpp,%.o,$(wildcard src/test/*.cpp)) | ||
6 | TDIRS:=$(filter-out %.o %.cpp %.h %.d,$(wildcard src/test/*)) | ||
7 | TESTS:=$(patsubst src/test/%.o,tests/%,$(TOBJS)) $(patsubst src/test/%,tests/%,$(TDIRS)) | ||
8 | ATOBJS:=$(TOBJS) $(patsubst %.cpp,%.o,$(foreach dr,$(TDIRS),$(wildcard $(dr)/*.cpp))) | ||
9 | LIB:=libbu++.a | ||
10 | DATE:=$(shell date +%F) | ||
11 | |||
12 | TXTCPP:="\ g++:\ \ \ " | ||
13 | TXTLNK:="\ \ ld:\ \ \ " | ||
14 | TXTDEP:="\ dep:\ \ \ " | ||
15 | TXTARC:="\ \ ar:\ \ \ " | ||
16 | |||
17 | .PHONY: all clean dist tests depclean cleanapi | ||
18 | .SILENT: clean $(OBJS) $(TOBJS) $(ATOBJS) $(UNIT) $(UOBJS) $(TESTS) $(patsubst %.o,%.d,$(OBJS) $(TOBJS) $(ATOBJS) $(UOBJS) $(TESTS)) $(LIB) | ||
19 | |||
20 | all: libbu++.a | ||
21 | |||
22 | depclean: | ||
23 | -rm $(patsubst %.o,%.d,$(OBJS) $(ATOBJS) $(UOBJS)) | ||
24 | |||
25 | -include $(patsubst %.o,%.d,$(OBJS) $(ATOBJS) $(UOBJS)) | ||
26 | |||
27 | clean: | ||
28 | -rm $(OBJS) $(ATOBJS) $(UOBJS) $(TESTS) $(LIB) | ||
29 | |||
30 | # This bit I cribbed from the docs, seems to work great though! | ||
31 | %.d: %.cpp | ||
32 | echo "$(TXTDEP)$@" | ||
33 | g++ $(CXXFLAGS) -Isrc -M $(CPPFLAGS) $< | sed 's,\($(notdir $*)\)\.o[: ]*,$(dir $*)\1.o $@: ,g' > $@ | ||
34 | |||
35 | %.o: %.cpp | ||
36 | echo "$(TXTCPP)$@" | ||
37 | g++ -fPIC $(CXXFLAGS) -Isrc $(foreach dr,$(filter $(dir $@),$(foreach ddr,$(TDIRS),$(ddr)/)),-I$(dr)) -ggdb -c -o $@ $< | ||
38 | |||
39 | $(LIB): $(OBJS) | ||
40 | echo "$(TXTARC)$@" | ||
41 | ar cr $(LIB) $(OBJS) | ||
42 | |||
43 | $(TESTS): $(ATOBJS) $(LIB) | ||
44 | echo "$(TXTLNK)$@" | ||
45 | g++ $(LDFLAGS) -ggdb $(filter %$(patsubst tests/%,%,$@).o, $(TOBJS) ) $(patsubst %.cpp,%.o,$(wildcard $(filter %$(patsubst tests/%,%,$@), $(TDIRS))/*.cpp)) -L. -lbu++ -ldl -o $@ | ||
46 | |||
47 | $(UNIT): $(USRCS) $(LIB) | ||
48 | echo "$(TXTLNK)$@" | ||
49 | g++ $(LDFLAGS) -ggdb -Isrc -Isrc/unit src/$@.cpp -L. -lbu++ -lcpptest -o $@ | ||
50 | |||
51 | tests: $(TESTS) | ||
52 | |||
53 | unit: $(UNIT) | ||
54 | |||
55 | dist: clean depclean | ||
56 | mkdir libbu++-$(DATE) | ||
57 | cp -a --target-directory=libbu++-$(DATE) Makefile src | ||
58 | tar --exclude=\.svn -c libbu++-$(DATE) | bzip2 -9 > libbu++-$(DATE).tar.bz2 | ||
59 | rm -Rf libbu++-$(DATE) | ||
60 | |||
61 | install: libbu++.a | ||
62 | cat src/*.h | grep -v "#include \"" - > libbu++.h | ||
63 | cp -a libbu++.a $(PREFIX)/lib | ||
64 | cp -a libbu++.h $(PREFIX)/include | ||
65 | |||
66 | cleanapi: | ||
67 | -rm -Rf api | ||
68 | |||
69 | api: $(SRC) | ||
70 | -rm -Rf api | ||
71 | doxygen | ||
72 | make -C api/latex | ||
73 | |||
74 | #tests: $(TOBJS) $(LIB) | ||
75 | # for file in $(patsubst src/test/%.o,%,$(TOBJS)); \ | ||
76 | # do g++ -o $$file src/test/$$file.o -L. -lbu++; \ | ||
77 | # done | ||
78 | |||