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 17KB

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