aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2006-08-22 15:12:20 +0000
committerMike Buland <eichlan@xagasoft.com>2006-08-22 15:12:20 +0000
commitf5cf5725026ecb2fa63d729fb6745b4da15e69d8 (patch)
treeaf48e59cc29dcea1218221dbb6ed9f0cd7f19989 /Makefile
parentee98faf71642cf351d5cda241679b094aeec65ce (diff)
downloadbuild-f5cf5725026ecb2fa63d729fb6745b4da15e69d8.tar.gz
build-f5cf5725026ecb2fa63d729fb6745b4da15e69d8.tar.bz2
build-f5cf5725026ecb2fa63d729fb6745b4da15e69d8.tar.xz
build-f5cf5725026ecb2fa63d729fb6745b4da15e69d8.zip
Started on the crazy process of building the stage one compiled data. It's
going pretty quickly, we'll see how the targets go, they'll be the only tricky part.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile143
1 files changed, 104 insertions, 39 deletions
diff --git a/Makefile b/Makefile
index 0be9792..9cba6a0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,54 +1,119 @@
1SRC:=$(wildcard src/*.cpp) 1.PHONY: all clean parser-header lexer-header build-header
2OBJS:=$(patsubst %.cpp,%.o,$(SRC))
3VER:=r$(shell svn info | grep "Revision" | cut -d\ -f2)
4LIBS:=bu++
5LIBDIRS:=$(patsubst %,lib%,$(LIBS))
6LIBFILES:=$(foreach dir,$(LIBDIRS),$(dir)/$(dir).a)
7DEPFILES:=$(patsubst %.o,%.d,$(OBJS))
8 2
9.PHONY: all clean dist checklibs 3.SILENT: all clean parser-header src/build.tab.c src/build.tab.o parser lexer-header src/build.yy.c src/build.yy.o lexer build-header src/builder.o src/main.o src/perform.o src/performfactory.o src/functionregexp.o src/functioncommandtolist.o src/performcommand.o src/functionfilesin.o src/functionfactory.o src/function.o src/functiontostring.o src/viewer.o src/functiondirectoriesin.o build
10 4
11all: checklibs src/version.h build 5all: parser-header parser lexer-header lexer build-header build
12 6
13checklibs: 7parser-header:
14 for ldir in $(LIBDIRS); do make -C $$ldir; done 8 echo "--- parser ---"
15 9
16-include $(DEPFILES) 10src/build.tab.c: src/build.y
11 echo " comp: src/build.tab.c"
12 cd src; bison ../src/build.y; cd ..
17 13
18src/version.h: .svn 14src/build.tab.o: src/build.tab.c
19 echo "#define SVNREV \"$(VER)\"" > src/version.h 15 echo " comp: src/build.tab.o"
16 g++ -c src/build.tab.c -ggdb -Ilibbu++/src -Isrc -o src/build.tab.o
20 17
21%.o: %.cpp %.d 18parser: src/build.tab.o
22 g++ -ggdb $(CXXFLAGS) -Isrc $(patsubst %,-I%/src,$(LIBDIRS)) -c -o $@ $< 19 echo " stupid: parser"
20
23 21
24clean: 22lexer-header:
25 -rm $(foreach dir,src,$(wildcard $(dir)/*.o)) build src/version.h 23 echo
24 echo "--- lexer ---"
25
26src/build.yy.c: src/build.l
27 echo " comp: src/build.yy.c"
28 flex --bison-bridge --bison-locations -o src/build.yy.c src/build.l
29
30src/build.yy.o: src/build.yy.c
31 echo " comp: src/build.yy.o"
32 g++ -c src/build.yy.c -ggdb -Ilibbu++/src -Isrc -o src/build.yy.o
33
34lexer: src/build.yy.o
35 echo " stupid: lexer"
36
37
38build-header:
39 echo
40 echo "--- build ---"
41
42src/builder.o: src/builder.cpp
43 echo " comp: src/builder.o"
44 g++ -c src/builder.cpp -ggdb -Ilibbu++/src -Isrc -o src/builder.o
45
46src/main.o: src/main.cpp
47 echo " comp: src/main.o"
48 g++ -c src/main.cpp -ggdb -Ilibbu++/src -Isrc -o src/main.o
26 49
27depclean: 50src/perform.o: src/perform.cpp
28 -rm $(foreach dir,src src/lib $(TOOLDIRS),$(wildcard $(dir)/*.d)) 51 echo " comp: src/perform.o"
52 g++ -c src/perform.cpp -ggdb -Ilibbu++/src -Isrc -o src/perform.o
29 53
30%.d: %.cpp 54src/performfactory.o: src/performfactory.cpp
31 g++ -Isrc -Isrc/lib $(CXXFLAGS) $(patsubst %,-I%/src,$(LIBDIRS)) -M $(CPPFLAGS) $< | sed 's,\($(patsubst src/%,%,$*)\)\.o[:]*,src/\1.o $@:,g' > $@ 55 echo " comp: src/performfactory.o"
56 g++ -c src/performfactory.cpp -ggdb -Ilibbu++/src -Isrc -o src/performfactory.o
32 57
33$(LIBFILES): 58src/functionregexp.o: src/functionregexp.cpp
34 make -C $(dir $@) $(notdir $@) 59 echo " comp: src/functionregexp.o"
60 g++ -c src/functionregexp.cpp -ggdb -Ilibbu++/src -Isrc -o src/functionregexp.o
35 61
36test: 62src/functioncommandtolist.o: src/functioncommandtolist.cpp
37 -build 63 echo " comp: src/functioncommandtolist.o"
64 g++ -c src/functioncommandtolist.cpp -ggdb -Ilibbu++/src -Isrc -o src/functioncommandtolist.o
38 65
39build: $(LIBFILES) $(OBJS) 66src/performcommand.o: src/performcommand.cpp
40 g++ -ggdb $(OBJS) -o build $(patsubst %,-L%,$(LIBDIRS)) $(patsubst %,-l%,$(LIBS)) 67 echo " comp: src/performcommand.o"
68 g++ -c src/performcommand.cpp -ggdb -Ilibbu++/src -Isrc -o src/performcommand.o
41 69
42api: $(LIBSRC) $(TOOLSRC) 70src/functionfilesin.o: src/functionfilesin.cpp
43 sed 's/PROJECT_NUMBER.*/PROJECT_NUMBER = $(VER)/' < Doxyfile > Doxyfile.tmp 71 echo " comp: src/functionfilesin.o"
44 doxygen Doxyfile.tmp 72 g++ -c src/functionfilesin.cpp -ggdb -Ilibbu++/src -Isrc -o src/functionfilesin.o
45 rm Doxyfile.tmp
46 make -C api/latex
47 73
48dist: clean src/version.h 74src/functionfactory.o: src/functionfactory.cpp
49 mkdir build-$(VER) 75 echo " comp: src/functionfactory.o"
50 cp -a --target-directory=build-$(VER) Makefile src 76 g++ -c src/functionfactory.cpp -ggdb -Ilibbu++/src -Isrc -o src/functionfactory.o
51 tar --exclude=\.svn -c build-$(VER) | bzip2 -9 > build-$(VER).tar.bz2 77
52 rm -Rf build-$(VER) 78src/function.o: src/function.cpp
53 -for dir in $(LIBDIRS); do make -C $$dir dist; done 79 echo " comp: src/function.o"
80 g++ -c src/function.cpp -ggdb -Ilibbu++/src -Isrc -o src/function.o
81
82src/functiontostring.o: src/functiontostring.cpp
83 echo " comp: src/functiontostring.o"
84 g++ -c src/functiontostring.cpp -ggdb -Ilibbu++/src -Isrc -o src/functiontostring.o
85
86src/viewer.o: src/viewer.cpp
87 echo " comp: src/viewer.o"
88 g++ -c src/viewer.cpp -ggdb -Ilibbu++/src -Isrc -o src/viewer.o
89
90src/functiondirectoriesin.o: src/functiondirectoriesin.cpp
91 echo " comp: src/functiondirectoriesin.o"
92 g++ -c src/functiondirectoriesin.cpp -ggdb -Ilibbu++/src -Isrc -o src/functiondirectoriesin.o
93
94build: src/functionfactory.o src/functiontostring.o src/perform.o src/functiondirectoriesin.o src/viewer.o src/main.o src/performcommand.o src/functionregexp.o src/builder.o src/build.yy.o src/functionfilesin.o src/function.o src/performfactory.o src/functioncommandtolist.o src/build.tab.o
95 echo " exe: build"
96 g++ src/functionfactory.o src/functiontostring.o src/perform.o src/functiondirectoriesin.o src/viewer.o src/main.o src/performcommand.o src/functionregexp.o src/builder.o src/build.yy.o src/functionfilesin.o src/function.o src/performfactory.o src/functioncommandtolist.o src/build.tab.o -Llibbu++ -lbu++ -ldl -o build
97
98clean:
99 -if [ -f src/build.tab.c ] ; then echo " rm: src/build.tab.c" ; rm src/build.tab.c ; fi
100 -if [ -f src/build.tab.o ] ; then echo " rm: src/build.tab.o" ; rm src/build.tab.o ; fi
101 -if [ -f parser ] ; then echo " rm: parser" ; rm parser ; fi
102 -if [ -f src/build.yy.c ] ; then echo " rm: src/build.yy.c" ; rm src/build.yy.c ; fi
103 -if [ -f src/build.yy.o ] ; then echo " rm: src/build.yy.o" ; rm src/build.yy.o ; fi
104 -if [ -f lexer ] ; then echo " rm: lexer" ; rm lexer ; fi
105 -if [ -f src/builder.o ] ; then echo " rm: src/builder.o" ; rm src/builder.o ; fi
106 -if [ -f src/main.o ] ; then echo " rm: src/main.o" ; rm src/main.o ; fi
107 -if [ -f src/perform.o ] ; then echo " rm: src/perform.o" ; rm src/perform.o ; fi
108 -if [ -f src/performfactory.o ] ; then echo " rm: src/performfactory.o" ; rm src/performfactory.o ; fi
109 -if [ -f src/functionregexp.o ] ; then echo " rm: src/functionregexp.o" ; rm src/functionregexp.o ; fi
110 -if [ -f src/functioncommandtolist.o ] ; then echo " rm: src/functioncommandtolist.o" ; rm src/functioncommandtolist.o ; fi
111 -if [ -f src/performcommand.o ] ; then echo " rm: src/performcommand.o" ; rm src/performcommand.o ; fi
112 -if [ -f src/functionfilesin.o ] ; then echo " rm: src/functionfilesin.o" ; rm src/functionfilesin.o ; fi
113 -if [ -f src/functionfactory.o ] ; then echo " rm: src/functionfactory.o" ; rm src/functionfactory.o ; fi
114 -if [ -f src/function.o ] ; then echo " rm: src/function.o" ; rm src/function.o ; fi
115 -if [ -f src/functiontostring.o ] ; then echo " rm: src/functiontostring.o" ; rm src/functiontostring.o ; fi
116 -if [ -f src/viewer.o ] ; then echo " rm: src/viewer.o" ; rm src/viewer.o ; fi
117 -if [ -f src/functiondirectoriesin.o ] ; then echo " rm: src/functiondirectoriesin.o" ; rm src/functiondirectoriesin.o ; fi
118 -if [ -f build ] ; then echo " rm: build" ; rm build ; fi
54 119