1 .SILENT: user-is-insane
5 echo "The Makefile build method is deprecated and intended for use only in"; \
6 echo "unusual circumstances. To build openc2e:"; \
8 echo "mkdir build; cd build; cmake ..; make"; \
13 CXXFILES = $(wildcard *.cpp) $(wildcard tools/*.cpp)
14 CFILES = $(wildcard *.c) $(wildcard tools/*.c)
16 SOURCES = $(CXXFILES) $(CFILES)
17 HEADERS = $(wildcard *.h)
18 EVERYTHING = $(SOURCES) $(HEADERS)
20 SOURCEDEPS = $(patsubst %.cpp,.deps/%.dpp,$(CXXFILES)) \
21 $(patsubst %.c,.deps/%.d,$(CFILES))
108 SERIALIZATION = caosVM_ser_real.o
109 SERSTUB = caosVM_ser_stub.o
110 OPENC2E = $(OPENC2E_CORE) $(SERSTUB) main.o
111 OPENC2E_S = $(OPENC2E_CORE) $(SERIALIZATION) main.o
113 DEBUGFLAGS=-ggdb3 -O2
114 CFLAGS += -W -Wall -Wno-conversion -Wno-unused -pthread -D_REENTRANT -DYYERROR_VERBOSE -DOPENAL_SUPPORT
115 XLDFLAGS=$(LDFLAGS) -lboost_program_options-mt -lboost_serialization-mt -lboost_filesystem-mt -lboost_thread-mt -lSDL -lz -lm -lSDL_net -lSDL_gfx -lpthread -lopenal -lalut -lboost_regex-mt
116 COREFLAGS=$(DEBUGFLAGS) -I/usr/include/SDL -I/usr/include/AL -I.
117 XCFLAGS=$(CFLAGS) $(COREFLAGS)
118 XCPPFLAGS=$(COREFLAGS) $(CPPFLAGS) $(CFLAGS)
120 default: user-is-insane openc2e tools/praydumper docs
121 all: openc2e tools/mngtest tools/filetests tools/praydumper docs tools/pathtest tools/memstats tools/wildtest
125 commandinfo.yml: $(wildcard caosVM_*.cpp) parsedocs.pl
126 perl parsedocs.pl $(wildcard caosVM_*.cpp) > commandinfo.yml
128 docs.html: writehtml.pl commandinfo.yml
129 perl writehtml.pl commandinfo.yml > docs.html
131 cmddata.cpp: commandinfo.yml writecmds.pl
132 perl writecmds.pl commandinfo.yml > cmddata.cpp
134 lex.mng.cpp lex.mng.h: mng.l
135 flex -+ --prefix=mng -d -o lex.mng.cpp --header-file=lex.mng.h mng.l
137 catalogue.lex.cpp catalogue.lex.h: catalogue.l catalogue.tab.hpp
138 flex -+ --prefix=catalogue -d -o catalogue.lex.cpp --header-file=catalogue.lex.h catalogue.l
140 mngfile.o: lex.mng.cpp
142 mngparser.tab.cpp mngparser.tab.hpp: mngparser.ypp
143 bison -d --name-prefix=mng mngparser.ypp
145 catalogue.tab.cpp catalogue.tab.hpp: catalogue.ypp
146 bison -d --name-prefix=cata catalogue.ypp
148 lex.yy.cpp lex.yy.h: caos.l
149 flex -+ -d -o lex.yy.cpp --header-file=lex.yy.h --prefix=c2e caos.l
151 lex.c2.cpp lex.c2.h: c2caos.l
152 flex -+ -d -o lex.c2.cpp --header-file=lex.c2.h --prefix=c2 c2caos.l
154 ## lex.yy.h deps aren't detected evidently
155 caosScript.o: lex.yy.h lex.yy.cpp lex.c2.h lex.c2.cpp
157 ## based on automake stuff
159 mkdir -p .deps/`dirname $<` && \
160 $(CXX) $(XCPPFLAGS) -MP -MD -MF .deps/$<.Td -o $@ -c $< && \
161 mv .deps/$<.Td .deps/$<.d
164 mkdir -p .deps/`dirname $<` && \
165 $(CC) $(XCFLAGS) -MP -MD -MF .deps/$<.Td -o $@ -c $< && \
166 mv .deps/$<.Td .deps/$<.d
168 include $(shell find .deps -name '*.d' -type f 2>/dev/null || true)
169 Catalogue.o: catalogue.lex.h catalogue.tab.hpp
170 lex.mng.o: mngparser.tab.hpp
172 Creature_standalone.o: Creature.cpp Creature.o
173 $(CC) $(XCFLAGS) -D_CREATURE_STANDALONE -o $@ -c $<
176 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
178 openc2e_s: $(OPENC2E_S)
179 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
181 tools/filetests: tools/filetests.o genomeFile.o streamutils.o Catalogue.o catalogue.lex.o catalogue.tab.o
182 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
184 tools/praydumper: tools/praydumper.o pray.o
185 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
187 tools/mngtest: tools/mngtest.o mngfile.o mngparser.tab.o lex.mng.o
188 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
190 tools/pathtest: tools/pathtest.o PathResolver.o
191 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
193 tools/wildtest: tools/wildtest.o PathResolver.o
194 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
196 tools/memstats: tools/memstats.o $(OPENC2E_CORE) $(SERSTUB)
197 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
199 tools/serialtest: tools/serialtest.o $(OPENC2E_CORE) $(SERIALIZATION)
200 $(CXX) -o $@ $^ $(XLDFLAGS) $(XCXXFLAGS)
202 tools/braininavat/braininavat: Creature_standalone.o c2eBrain.o streamutils.o genomeFile.o
203 cd tools/braininavat && \
204 (qmake-qt4 || qmake) && \
208 rm -f *.o openc2e openc2e_s filetests praydumper tools/*.o
210 rm -f commandinfo.yml lex.yy.cpp lex.yy.h lex.c2.cpp lex.c2.h lex.mng.cpp lex.mng.h mngparser.tab.cpp mngparser.tab.hpp cmddata.cpp
211 rm -f tools/filetests tools/memstats tools/mngtest tools/pathtest tools/praydumper tools/serialtest
212 rm -f headerdeps.dot headerdeps.png
214 rm -f tools/braininavat/Makefile tools/braininavat/*.o tools/braininavat/moc_*.cpp tools/braininavat/braininavat
215 rm -f catalogue.lex.cpp catalogue.lex.h catalogue.tab.cpp catalogue.tab.hpp docs.html
220 headerdeps.dot: $(wildcard *.h) $(wildcard *.hpp) $(wildcard ser/*.h) mngparser.tab.hpp catalogue.tab.hpp lex.mng.h lex.yy.h catalogue.lex.h
221 tools/depgraph.sh $^ > $@
223 headerdeps.png: headerdeps.dot
226 generated: catalogue.tab.hpp lex.yy.h lex.c2.h mngparser.tab.hpp catalogue.lex.h lex.mng.h docs.html cmddata.cpp
228 .PHONY: clean all dep docs test