makeApp.tpl 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. # I release this sample under the MIT license: free for any use, provided
  2. # you hold me harmless from any such use you make, and you retain my
  3. # copyright on the actual sources.
  4. # Copyright 2005 Jon Watte.
  5. # App Template
  6. APPNAME := {$projectOffset}../../{$gameFolder}/{$projOutName}
  7. {assign var="dirWalk" value=$fileArray}
  8. SOURCES := {foreach from=$dirWalk item=file key=key}
  9. {include file="make_fileRecurse.tpl" dirWalk=$file}
  10. {/foreach}
  11. LDFLAGS := -g -m32
  12. LDLIBS := -lstdc++ -lm -lpthread -lrt
  13. {foreach item=def from=$projLibs}LDLIBS += -l{$def}
  14. {/foreach}
  15. CFLAGS := -MMD -I. -Wfatal-errors -m32 -msse -mmmx -march=i686 -pipe
  16. {foreach item=def from=$projIncludes}CFLAGS += -I{$def}
  17. {/foreach}
  18. CFLAGS += -DUNICODE
  19. CFLAGS += -DLINUX
  20. {foreach item=def from=$projDefines}CFLAGS += -D{$def}
  21. {/foreach}
  22. CFLAGS_DEBUG := $(CFLAGS) -ggdb
  23. CFLAGS_DEBUG += -DTORQUE_DEBUG
  24. CFLAGS_DEBUG += -DTORQUE_DEBUG_GUARD
  25. CFLAGS_DEBUG += -DTORQUE_NET_STATS
  26. CFLAGS += -O0
  27. CC := gcc
  28. LD := gcc
  29. APP_TARGETS += $(APPNAME)
  30. APP_TARGETS_DEBUG += $(APPNAME)_DEBUG
  31. OBJS_{$projName} := $(patsubst ../../../../Engine/source/%,Release/{$projName}/%.o,$(SOURCES))
  32. OBJS_{$projName} += $(patsubst ../../source/%, Release/{$projName}/%.o,$(SOURCES))
  33. OBJS_{$projName} := $(filter %.o, $(OBJS_{$projName}))
  34. OBJS_{$projName}_DEBUG := $(patsubst ../../../../Engine/source/%,Debug/{$projName}/%.o,$(SOURCES))
  35. OBJS_{$projName}_DEBUG += $(patsubst ../../source/%, Debug/{$projName}/%.o,$(SOURCES))
  36. OBJS_{$projName}_DEBUG := $(filter %.o, $(OBJS_{$projName}_DEBUG))
  37. # Deriving the actual prerequisite list name to use from the target
  38. # name in the shell command is the "secret sauce" that makes this all
  39. # work.
  40. #
  41. $(APPNAME): $(OBJS_{$projName}) $(LIB_TARGETS)
  42. $(LD) $(LDFLAGS) -o $@ $(OBJS_{$projName}) $(LIB_TARGETS) $(LDLIBS)
  43. $(APPNAME)_DEBUG: $(OBJS_{$projName}_DEBUG) $(LIB_TARGETS_DEBUG)
  44. $(LD) $(LDFLAGS) -o $@ $(OBJS_{$projName}_DEBUG) $(LIB_TARGETS_DEBUG) $(LDLIBS)
  45. Release/{$projName}/%.asm.o: ../../../../Engine/source/%.asm
  46. @mkdir -p $(dir $@)
  47. nasm -f elf $< -o $@
  48. Release/{$projName}/%.o: ../../../../Engine/source/%
  49. @mkdir -p $(dir $@)
  50. $(CC) -c $(CFLAGS) $< -o $@
  51. Release/{$projName}/%.o: ../../source/%
  52. @mkdir -p $(dir $@)
  53. $(CC) -c $(CFLAGS) $< -o $@
  54. Debug/{$projName}/%.asm.o: ../../../../Engine/source/%.asm
  55. @mkdir -p $(dir $@)
  56. nasm -f elf $< -o $@
  57. Debug/{$projName}/%.o: ../../../../Engine/source/%
  58. @mkdir -p $(dir $@)
  59. $(CC) -c $(CFLAGS_DEBUG) $< -o $@
  60. Debug/{$projName}/%.o: ../../source/%
  61. @mkdir -p $(dir $@)
  62. $(CC) -c $(CFLAGS_DEBUG) $< -o $@
  63. release_{$projName}: $(APPNAME)
  64. debug_{$projName}: $(APPNAME)_DEBUG
  65. .PHONY: debug_{$projName} release_{$projName}
  66. DEPS += $(patsubst %.o,%.d,$(OBJS_{$projName}))
  67. DEPS += $(patsubst %.o,%.d,$(OBJS_{$projName}_DEBUG))
  68. APPNAME :=
  69. SOURCES :=