Open Source Tomb Raider Engine
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508
  1. ###############################################################
  2. # Mongoose <stu7440@westga.edu>
  3. ###############################################################
  4. # + Cleaner clean
  5. # + Add new include tree
  6. # + Add new flags
  7. # + Install/Uninstall
  8. # + Debian and Redhat packaging
  9. # + Lots of misc new features
  10. ###############################################################
  11. BUILD_SELECT=debug
  12. NAME=OpenRaider
  13. NAME_DEB=openraider
  14. MAJOR_VERSION=0
  15. MINOR_VERSION=1
  16. MICRO_VERSION=2
  17. BUILD_ID=$(shell date "+%Y%m%d")
  18. PRE=
  19. VERSION=$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION)$(PRE)
  20. VERSION_DEB=$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION).$(BUILD_ID)
  21. BUILD_HOST=$(shell uname -s -n -r -m)
  22. ARCH=$(shell uname -m)
  23. UNAME=$(shell uname -s)
  24. ###############################################################
  25. # -DUSING_OPENAL Add OpenAL sound support
  26. # -DMULTITEXTURE Add OpenGL multitexturing
  27. # -DUNICODE_SUPPORT Add unicode/internation keyboard support
  28. # -DUSING_EMITTER_IN_GAME Run particle test in game
  29. BASE_DEFS=$(shell sdl-config --cflags) -Isrc -DSDL_INTERFACE \
  30. -DUSING_OPENGL -DZLIB_SUPPORT -DUSING_EMITTER \
  31. -DUSING_OPENAL -DUSING_MTK_TGA -DUSING_PTHREADS \
  32. -DUSING_HEL -DHAVE_SDL_TTF
  33. BASE_LIBS=$(shell sdl-config --libs) -lz -lstdc++ \
  34. -lpthread -lSDL_ttf
  35. # -DDEBUG_GL
  36. DEBUG_DEFS=-DDEBUG -DEXPERIMENTAL
  37. DEBUG_OBJ=
  38. ifeq ($(UNAME),Darwin)
  39. AUDIO_LIBS += -lalut
  40. AUDIO_LIBS += -framework OpenAL
  41. AUDIO_LIBS += -L/usr/local/lib
  42. AUDIO_DEFS += -I/usr/local/include
  43. BASE_LIBS += -L/opt/local/lib
  44. BASE_DEFS += -I/opt/local/include
  45. BASE_LIBS += -framework OpenGL
  46. BASE_LIBS += -framework GLUT
  47. else
  48. AUDIO_LIBS += -lopenal
  49. BASE_LIBS += -L/usr/local/lib
  50. BASE_DEFS += -I/usr/local/include
  51. endif
  52. BASE_LIBS += $(AUDIO_LIBS)
  53. BASE_DEFS += $(AUDIO_DEFS)
  54. # libferit, File transfer via HTTP/FTP/etc support
  55. LIBFERIT_LIB=/usr/local/lib/libferit.so
  56. LIBFERIT=$(shell if test -e $(LIBFERIT_LIB) > /dev/null; then echo yes; fi)
  57. ifeq ($(LIBFERIT), yes)
  58. BASE_DEFS += -DHAVE_LIBFERIT
  59. BASE_LIBS += -lferit
  60. endif
  61. ###############################################################
  62. TREE_DIR=OpenRaider
  63. BUILD_DEBUG_DIR=bin/debug
  64. BUILD_RELEASE_DIR=bin/release
  65. BUILD_PROF_DIR=bin/prof
  66. BUILD_TEST_DIR=bin/test
  67. BUILD_MEM_DIR=bin/mem
  68. BUILD_INSTALL_DIR=bin/$(BUILD_SELECT)
  69. DEB_DIR=/tmp/$(NAME).deb
  70. # Edited for Debian GNU/Linux.
  71. DESTDIR =
  72. INSTALL_BIN=$(DESTDIR)/usr/games
  73. INSTALL_LIB=$(DESTDIR)/usr/lib
  74. INSTALL_DOC=$(DESTDIR)/usr/share/doc/$(NAME)
  75. INSTALL_SHARE=$(DESTDIR)/usr/share/$(NAME)
  76. INSTALL_INCLUDE=$(DESTDIR)/usr/include
  77. ###############################################################
  78. CC=gcc
  79. BASE_CFLAGS=-Wall $(BASE_DEFS) \
  80. -DVERSION=\"\\\"$(NAME)-$(VERSION)-$(BUILD_ID)\\\"\" \
  81. -DBUILD_HOST=\"\\\"$(BUILD_HOST)\\\"\"
  82. LD_FLAGS=-L/usr/X11/lib -lXmu -lXt -lSM -lICE -lXext -lX11 -lXi \
  83. -lm $(BASE_LIBS)
  84. ifneq ($(UNAME),Darwin)
  85. LD_FLAGS+=-lGL -lGLU
  86. endif
  87. RELEASE_CFLAGS=$(BASE_CFLAGS) -ffast-math -funroll-loops \
  88. -fomit-frame-pointer -O2
  89. DEBUG_CFLAGS=$(BASE_CFLAGS) -g -O0 $(DEBUG_DEFS)
  90. ################################################################
  91. DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
  92. DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
  93. TARGETS=$(BUILDDIR)/$(NAME)
  94. ################################################################
  95. auto: $(BUILD_SELECT)
  96. run: $(BUILD_SELECT)
  97. bin/$(BUILD_SELECT)/OpenRaider
  98. targets: $(TARGETS)
  99. bundle: release
  100. mac_dist/bundle.sh
  101. mac_dist/plist.sh $(NAME) $(VERSION) $(BUILD_ID) > bin/OpenRaider.app/Contents/Info.plist
  102. mac_dist/frameworks.sh
  103. bundle-image: bundle
  104. mac_dist/image.sh
  105. bundle-archive: bundle
  106. mac_dist/archive.sh
  107. all: debug release prof
  108. debug:
  109. @-mkdir -p $(BUILD_DEBUG_DIR)
  110. $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) \
  111. CFLAGS="$(DEBUG_CFLAGS)" \
  112. LD_FLAGS="$(LD_FLAGS)"
  113. prof:
  114. @-mkdir -p $(BUILD_PROF_DIR)
  115. $(MAKE) targets BUILDDIR=$(BUILD_PROF_DIR) \
  116. CFLAGS="$(DEBUG_CFLAGS) -pg" \
  117. LD_FLAGS="$(LD_FLAGS) -pg"
  118. release:
  119. @-mkdir -p $(BUILD_RELEASE_DIR)
  120. $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) \
  121. CFLAGS="$(RELEASE_CFLAGS)" \
  122. LD_FLAGS="$(LD_FLAGS)"
  123. #####################################
  124. ded:
  125. @-mkdir -p $(BUILD_DEBUG_DIR)/ded
  126. $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR)/ded \
  127. CFLAGS="$(DEBUG_CFLAGS) -DDEDICATED_SERVER" \
  128. LD_FLAGS="$(LD_FLAGS)"
  129. # -DDEBUG_MEMEORY_VERBOSE
  130. # -DDEBUG_MEMEORY
  131. memory:
  132. @-mkdir -p $(BUILD_MEM_DIR)
  133. $(MAKE) targets BUILDDIR=$(BUILD_MEM_DIR) \
  134. DEBUG_OBJ="$(BUILD_MEM_DIR)/memory_test.o" \
  135. CFLAGS="$(DEBUG_CFLAGS) -DDEBUG_MEMEORY" \
  136. LD_FLAGS="$(LD_FLAGS)"
  137. depend:
  138. @-echo "Making deps..."
  139. @-echo "# Autogenerated dependency file" > depend
  140. @-find ./src -name "*.cpp" -exec ./deps.sh $(BASE_DEFS) {} \; >> depend
  141. @-echo "[DONE]"
  142. ################################################################
  143. # Later hel will become a seperate library once it matures
  144. HEL_OBJ = \
  145. $(BUILDDIR)/Mass.o \
  146. $(BUILDDIR)/Simulation.o \
  147. $(BUILDDIR)/Vector3d.o \
  148. $(BUILDDIR)/Matrix.o \
  149. $(BUILDDIR)/ViewVolume.o \
  150. $(BUILDDIR)/CollisionObject.o \
  151. $(BUILDDIR)/BoundingVolume.o \
  152. $(BUILDDIR)/Quaternion.o \
  153. $(BUILDDIR)/math.o \
  154. $(BUILDDIR)/Entity.o
  155. #$(BUILDDIR)/Spring.o
  156. OBJS = \
  157. $(DEBUG_OBJ) \
  158. $(HEL_OBJ) \
  159. $(BUILDDIR)/mtk_tga.o \
  160. $(BUILDDIR)/System.o \
  161. $(BUILDDIR)/SDLSystem.o \
  162. $(BUILDDIR)/OpenRaider.o \
  163. $(BUILDDIR)/World.o \
  164. $(BUILDDIR)/TombRaider.o \
  165. $(BUILDDIR)/GLString.o \
  166. $(BUILDDIR)/Camera.o \
  167. $(BUILDDIR)/OpenGLMesh.o \
  168. $(BUILDDIR)/Render.o \
  169. $(BUILDDIR)/Sound.o \
  170. $(BUILDDIR)/Network.o \
  171. $(BUILDDIR)/Texture.o \
  172. $(BUILDDIR)/Emitter.o \
  173. $(BUILDDIR)/Particle.o \
  174. $(BUILDDIR)/SkeletalModel.o \
  175. $(BUILDDIR)/Light.o
  176. $(BUILDDIR)/$(NAME) : $(OBJS)
  177. $(CC) $(CFLAGS) $(LD_FLAGS) -o $@ $(OBJS)
  178. #################################################################
  179. clean: clean-small clean-dep
  180. clean-small: clean-emacs clean-build clean-test clean-obj
  181. @-rm -rf bin/OpenRaider.app
  182. @-rm -rf bin/OpenRaider.dmg
  183. @-rm -rf bin/OpenRaider.zip
  184. clean-dep:
  185. @-echo "Cleaning dependencies "
  186. @-rm -f depend
  187. @-echo "[DONE]"
  188. clean-test:
  189. @-echo "Cleaning test builds "
  190. @-rm -f $(BUILD_TEST_DIR)/*.o
  191. @-rm -f $(BUILD_TEST_DIR)/*.test
  192. @-rm -rf $(BUILD_TEST_DIR)/*.build
  193. @-echo "[DONE]"
  194. clean-obj:
  195. @-echo "Cleaning objects "
  196. @-rm -f $(BUILD_PROF_DIR)/*.o
  197. @-rm -f $(BUILD_DEBUG_DIR)/*.o
  198. @-rm -f $(BUILD_RELEASE_DIR)/*.o
  199. @-rm -f $(BUILD_TEST_DIR)/*.o
  200. @-rm -f $(BUILD_MEM_DIR)/*.o
  201. @-echo "[DONE]"
  202. clean-emacs:
  203. @-echo "Cleaning emacs files "
  204. @-rm -f `find . -name "*~" -print`
  205. @-echo "[DONE]"
  206. clean-build:
  207. @-echo "Cleaning builds "
  208. @-rm -f $(BUILD_PROF_DIR)/$(NAME)
  209. @-rm -f $(BUILD_DEBUG_DIR)/$(NAME)
  210. @-rm -f $(BUILD_RELEASE_DIR)/$(NAME)
  211. @-rm -f $(BUILD_MEM_DIR)/$(NAME)
  212. @-echo "[DONE]"
  213. clean-deb:
  214. @-echo "Cleaning DEBs "
  215. @-rm -rf $(DEB_DIR)
  216. @-echo "[DONE]"
  217. #################################################################
  218. -include depend
  219. #################################################################
  220. docs:
  221. doxygen
  222. cp -R doc/html/* ../apache/ # My local test webserver
  223. redhat:
  224. cd $(DEB_DIR) && \
  225. alien --to-rpm $(NAME_DEB)_$(VERSION_DEB)-1_$(ARCH).deb
  226. debian:
  227. $(MAKE) tarball
  228. $(MAKE) clean-deb
  229. mkdir -p $(DEB_DIR)
  230. cp ../$(NAME_DEB)-$(VERSION_DEB).tar.gz $(DEB_DIR)
  231. cd $(DEB_DIR) && tar zxvf $(NAME_DEB)-$(VERSION_DEB).tar.gz && mv $(TREE_DIR) $(NAME_DEB)-$(VERSION_DEB) && cd $(NAME_DEB)-$(VERSION_DEB) && make deb-init && make deb
  232. deb-init:
  233. dh_make -c gpl -s \
  234. -e mongoose@icculus.org -f ../$(NAME_DEB)-$(VERSION_DEB).tar.gz
  235. @-cp debian/control debian/control.old
  236. @-sed -e "s/<insert up to 60 chars description>/Open source Tomb Raider series clone/g" debian/control.old > debian/control
  237. @-rm -f debian/control.old
  238. @-cp debian/control debian/control.old
  239. @-sed -e "s/<insert long description, indented with spaces>/OpenRaider is an open source multiplayer and single player Tomb Raider clone for linux and Playstation 2. It uses the game data such as models, sound, levels, and animation from the popular 3d series Tomb Raider by Core Design./g" debian/control.old > debian/control
  240. @-rm -f debian/control.old
  241. deb:
  242. dpkg-buildpackage -rfakeroot
  243. apt:
  244. cd $(DEB_DIR) && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
  245. cd $(DEB_DIR) && dpkg-scansources . /dev/null | gzip -9c > Sources.gz
  246. apt-upload:
  247. scp $(DEB_DIR)/Packages.gz \
  248. $(DEB_DIR)/Sources.gz \
  249. $(DEB_DIR)/$(NAME_DEB)*.diff.gz \
  250. $(DEB_DIR)/$(NAME_DEB)*.deb \
  251. $(DEB_DIR)/$(NAME_DEB)*.dsc \
  252. $(DEB_DIR)/$(NAME_DEB)*.orig.tar.gz \
  253. orbital.sf.net:~/openraider/htdocs/debian/
  254. install:
  255. mkdir -p $(INSTALL_SHARE)/data
  256. cp setup.sh $(INSTALL_SHARE)
  257. cp data/* $(INSTALL_SHARE)/data
  258. mkdir -p $(INSTALL_DOC)
  259. cp README ChangeLog BUGS TODO $(INSTALL_DOC)
  260. mkdir -p $(INSTALL_BIN)
  261. cp bin/$(BUILD_SELECT)/OpenRaider $(INSTALL_BIN)
  262. bin-tarball:
  263. $(MAKE) clean-obj
  264. @-cd .. && tar zcvf $(NAME_DEB)-$(VERSION_DEB)-$(ARCH).tar.gz \
  265. $(TREE_DIR)/Makefile $(TREE_DIR)/data \
  266. $(TREE_DIR)/bin/$(BUILD_SELECT)/OpenRaider \
  267. $(TREE_DIR)/README $(TREE_DIR)/ChangeLog \
  268. $(TREE_DIR)/BUGS $(TREE_DIR)/TODO
  269. tarball:
  270. @-echo "Making tarball "
  271. @-cd .. && tar zcvf $(NAME_DEB)-$(VERSION_DEB).tar.gz \
  272. $(TREE_DIR) --exclude old --exclude models \
  273. --exclude semantic.cache --exclude TAGS \
  274. --exclude bin --exclude CVS --exclude *~
  275. @-echo "[DONE]"
  276. backup:
  277. $(MAKE) tarball
  278. @-cd .. && cp $(NAME)-$(VERSION)-$(BUILD_ID).tar.gz ~/Backup
  279. #################################################################
  280. # Unit Test builds
  281. #################################################################
  282. TEST_FLAGS=-Wall -g -O0 -DDEBUG -lstdc++
  283. TEST_MAP_TR5=~/projects/Data/models/tombraider/tr5/demo.trc
  284. TEST_MAP_TR4=~/projects/Data/models/tombraider/tr4/angkor1.tr4
  285. TEST_MAP_TR3=~/projects/Data/models/tombraider/tr3/scotland.tr2
  286. TEST_MAP_TR2=~/projects/Data/models/tombraider/tr2/unwater.tr2
  287. TEST_MAP_TR1=~/projects/Data/models/tombraider/tr1/level1.phd
  288. TombRaider.reg_test:
  289. $(MAKE) TombRaider.test
  290. $(BUILD_TEST_DIR)/TombRaider.test load $(TEST_MAP_TR1) > /tmp/log.tr1
  291. $(BUILD_TEST_DIR)/TombRaider.test load $(TEST_MAP_TR2) > /tmp/log.tr2
  292. $(BUILD_TEST_DIR)/TombRaider.test load $(TEST_MAP_TR3) > /tmp/log.tr3
  293. $(BUILD_TEST_DIR)/TombRaider.test load $(TEST_MAP_TR4) > /tmp/log.tr4
  294. $(BUILD_TEST_DIR)/TombRaider.test load $(TEST_MAP_TR5) > /tmp/log.tr5
  295. TombRaider.test:
  296. @-mkdir -p $(BUILD_TEST_DIR)
  297. $(MAKE) targets NAME=TombRaider.test BUILDDIR=$(BUILD_TEST_DIR) \
  298. OBJS="$(BUILD_TEST_DIR)/TombRaider.o $(BUILD_TEST_DIR)/mtk_tga.o $(BUILD_TEST_DIR)/memeory_test.o" \
  299. CFLAGS="$(BASE_CFLAGS) -g -D__TOMBRAIDER_TEST__ -D__TEST_TR5_DUMP_TGA -D__TEST_32BIT_TEXTILES -DDEBUG_MEMEORY" \
  300. LD_FLAGS="-lz -lstdc++"
  301. #################################################################
  302. ifeq ($(UNAME),Darwin)
  303. GLString.test:
  304. mkdir -p $(BUILD_TEST_DIR)
  305. $(CC) -Wall -Isrc -D__TEST__ -DHAVE_MTK -DHAVE_SDL -DUSING_MTK_TGA \
  306. $(shell sdl-config --cflags) $(shell sdl-config --libs) \
  307. -I/opt/local/include -I/usr/local/include \
  308. -framework OpenGL \
  309. -framework GLUT \
  310. -lm -lstdc++ \
  311. src/Texture.cpp src/mtk_tga.cpp \
  312. src/GLString.cpp -o $(BUILD_TEST_DIR)/GLString.test
  313. else
  314. GLString.test:
  315. mkdir -p $(BUILD_TEST_DIR)
  316. $(CC) -Wall -Isrc -D__TEST__ -DHAVE_MTK -DHAVE_SDL -DUSING_MTK_TGA \
  317. $(shell sdl-config --cflags) $(shell sdl-config --libs) \
  318. -lGL -lGLU -lm \
  319. src/Texture.cpp src/mtk_tga.cpp \
  320. src/GLString.cpp -o $(BUILD_TEST_DIR)/GLString.test
  321. endif
  322. #################################################################
  323. # CollisionObject and HeightCollisionObject seem to be missing?
  324. # -- xythobuz, 2014-01-04
  325. SIMULATION_CFLAGS=-Wall -O0 -g -Isrc $(shell sdl-config --cflags) \
  326. -I/opt/local/include \
  327. -DUSING_OPENGL -DUSING_HEL -DUSING_MTK_TGA \
  328. -DUNIT_TEST_SIMULATION
  329. SIMULATION_OBJS=$(BUILD_TEST_DIR)/mtk_tga.o $(BUILD_TEST_DIR)/Texture.o \
  330. $(BUILD_TEST_DIR)/Mass.o \
  331. $(BUILD_TEST_DIR)/CollisionObject.o \
  332. $(BUILD_TEST_DIR)/Simulation.o \
  333. $(BUILD_TEST_DIR)/Vector3d.o \
  334. $(BUILD_TEST_DIR)/Matrix.o \
  335. $(BUILD_TEST_DIR)/ViewVolume.o \
  336. $(BUILD_TEST_DIR)/BoundingVolume.o \
  337. $(BUILD_TEST_DIR)/Quaternion.o \
  338. $(BUILD_TEST_DIR)/math.o
  339. Simulation.test:
  340. mkdir -p $(BUILD_TEST_DIR)
  341. $(MAKE) targets NAME=Simulation.test BUILDDIR=$(BUILD_TEST_DIR) \
  342. OBJS="$(SIMULATION_OBJS)" \
  343. CFLAGS="$(SIMULATION_CFLAGS)" \
  344. LD_FLAGS="-lm -lstdc++ -lSDL_ttf -lSDL -lGL -lGLU $(shell sdl-config --libs)"
  345. #################################################################
  346. # Spring files seem to be missing?
  347. # -- xythobuz, 2014-01-04
  348. HEL_PARTICLE_CFLAGS=-Wall -O0 -g -Isrc $(shell sdl-config --cflags) \
  349. -I/opt/local/include \
  350. -DUSING_OPENGL -DUSING_HEL -DUSING_MTK_TGA \
  351. -DUNIT_TEST_SPRING -DHAVE_SDL_TTF
  352. HEL_PARTICLE_OBJS=$(BUILD_TEST_DIR)/mtk_tga.o $(BUILD_TEST_DIR)/Texture.o \
  353. $(BUILD_TEST_DIR)/Mass.o \
  354. $(BUILD_TEST_DIR)/Spring.o \
  355. $(BUILD_TEST_DIR)/CollisionObject.o \
  356. $(BUILD_TEST_DIR)/Simulation.o \
  357. $(BUILD_TEST_DIR)/Vector3d.o \
  358. $(BUILD_TEST_DIR)/Matrix.o \
  359. $(BUILD_TEST_DIR)/ViewVolume.o \
  360. $(BUILD_TEST_DIR)/BoundingVolume.o \
  361. $(BUILD_TEST_DIR)/Quaternion.o \
  362. $(BUILD_TEST_DIR)/math.o
  363. Spring.test:
  364. mkdir -p $(BUILD_TEST_DIR)
  365. $(MAKE) targets NAME=Spring.test BUILDDIR=$(BUILD_TEST_DIR) \
  366. OBJS="$(HEL_PARTICLE_OBJS)" \
  367. CFLAGS="$(HEL_PARTICLE_CFLAGS)" \
  368. LD_FLAGS="-lm -lstdc++ -lSDL_ttf-lGL -lGLU $(shell sdl-config --libs)"
  369. #################################################################
  370. Hel.test: Quaternion.test Matrix.test Math.test
  371. Matrix.test:
  372. @-echo "Building Matrix unit test"
  373. mkdir -p $(BUILD_TEST_DIR)
  374. $(CC) -Wall -g -DMATRIX_UNIT_TEST -lm -lstdc++ -Isrc \
  375. src/hel/Matrix.cpp src/hel/Quaternion.cpp src/hel/Vector3d.cpp \
  376. -o $(BUILD_TEST_DIR)/Matrix.test
  377. @-echo "================================================="
  378. @-echo "Running Matrix unit test"
  379. $(BUILD_TEST_DIR)/Matrix.test
  380. Quaternion.test:
  381. @-echo "Building Quaternion unit test"
  382. mkdir -p $(BUILD_TEST_DIR)
  383. $(CC) -Wall -g -DUNIT_TEST_QUATERNION -lm -lstdc++ -Isrc \
  384. src/hel/Quaternion.cpp -o $(BUILD_TEST_DIR)/Quaternion.test
  385. @-echo "================================================="
  386. @-echo "Running Quaternion unit test"
  387. $(BUILD_TEST_DIR)/Quaternion.test
  388. Math.test:
  389. @-echo "Building Math unit test"
  390. mkdir -p $(BUILD_TEST_DIR)
  391. $(CC) -Wall -g -DMATH_UNIT_TEST -lm -lstdc++ -Isrc \
  392. src/hel/math.cpp src/hel/Vector3d.cpp -o $(BUILD_TEST_DIR)/Math.test
  393. @-echo "================================================="
  394. @-echo "Running hel unit test"
  395. $(BUILD_TEST_DIR)/Math.test
  396. #################################################################
  397. Memory.test:
  398. mkdir -p $(BUILD_TEST_DIR)
  399. $(CC) -Wall -g -D__TEST__ -lstdc++ \
  400. -DDEBUG_MEMEORY -DDEBUG_MEMEORY_ERROR \
  401. src/memeory_test.cpp -o $(BUILD_TEST_DIR)/memory_test.test
  402. #################################################################
  403. Network.test:
  404. mkdir -p $(BUILD_TEST_DIR)
  405. $(CC) $(TEST_FLAGS) -DUNIT_TEST_NETWORK \
  406. src/Network.cpp -o $(BUILD_TEST_DIR)/Network.test
  407. #################################################################
  408. Sound.test:
  409. mkdir -p $(BUILD_TEST_DIR)
  410. $(CC) $(TEST_FLAGS) -DUNIT_TEST_SOUND \
  411. -DUSING_OPENAL $(AUDIO_LIBS) \
  412. src/Sound.cpp -o $(BUILD_TEST_DIR)/Sound.test
  413. ifeq ($(UNAME),Darwin)
  414. install_name_tool -change libalut.0.1.0.dylib /opt/local/lib/libalut.0.1.0.dylib $(BUILD_TEST_DIR)/Sound.test
  415. endif
  416. #################################################################