Torque2D.mk 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. APPNAME := ../../../Torque2D
  2. 2D_SOURCES := $(shell find ../../source/2d/ -name "*.cc") + \
  3. $(shell find ../../source/2d/ -name "*.cpp")
  4. ALGORITHM_SOURCES := $(shell find ../../source/algorithm/ -name "*.cc")
  5. ASSETS_SOURCES := $(shell find ../../source/assets/ -name "*.cc")
  6. AUDIO_SOURCES := $(shell find ../../source/audio/ -name "*.cc")
  7. BITMAPFONT_SOURCES := $(shell find ../../source/bitmapFont/ -name "*.cc")
  8. BOX2D_SOURCES := $(shell find ../../source/Box2D/ -name "*.cpp")
  9. COLLECTION_SOURCES := $(shell find ../../source/collection/ -name "*.cc")
  10. COMPONENT_SOURCES := $(shell find ../../source/component/ -name "*.cpp")
  11. CONSOLE_SOURCES := $(shell find ../../source/console/ -name "*.cc")
  12. DEBUG_SOURCES := $(shell find ../../source/debug/ -name "*.cc")
  13. DELEGATES_SOURCES := $(shell find ../../source/delegates/ -name "*.cc")
  14. GAME_SOURCES := $(shell find ../../source/game/ -name "*.cc")
  15. GRAPHICS_SOURCES := $(shell find ../../source/graphics/ -name "*.cc")
  16. GUI_SOURCES := $(shell find ../../source/gui/ -name "*.cc")
  17. INPUT_SOURCES := $(shell find ../../source/input/ -name "*.cc")
  18. IO_SOURCES := $(shell find ../../source/io/ -name "*.cc")
  19. MATH_SOURCES := $(shell find ../../source/math/ -name "*.cc") + \
  20. $(shell find ../../source/math/ -name "*.cpp")
  21. MEMORY_SOURCES := $(shell find ../../source/memory/ -name "*.cc")
  22. MESSAGING_SOURCES := $(shell find ../../source/messaging/ -name "*.cc")
  23. MODULE_SOURCES := $(shell find ../../source/module/ -name "*.cc")
  24. NETWORK_SOURCES := $(shell find ../../source/network/ -name "*.cc")
  25. PERSISTENCE_SOURCES := $(shell find ../../source/persistence/ -name "*.cc") + \
  26. $(shell find ../../source/persistence/ -name "*.cpp")
  27. PLATFORM_SOURCES := $(shell find ../../source/platform/ -name "*.cc") + \
  28. $(shell find ../../source/platform/ -name "*.cpp")
  29. PLATFORM_UNIX_SOURCES := $(shell find ../../source/platformX86UNIX/ -name "*.cc")
  30. SIM_SOURCES := $(shell find ../../source/sim/ -name "*.cc") + \
  31. $(shell find ../../source/sim/ -name "*.cpp")
  32. STRING_SOURCES := $(shell find ../../source/string/ -name "*.cc") + \
  33. $(shell find ../../source/string/ -name "*.cpp")
  34. SOURCES := $(2D_SOURCES) + \
  35. $(ALGORITHM_SOURCES) + \
  36. $(ASSETS_SOURCES) + \
  37. $(AUDIO_SOURCES) + \
  38. $(BITMAPFONT_SOURCES) + \
  39. $(BOX2D_SOURCES) + \
  40. $(COLLECTION_SOURCES) + \
  41. $(COMPONENT_SOURCES) + \
  42. $(CONSOLE_SOURCES) + \
  43. $(DEBUG_SOURCES) + \
  44. $(DELEGATES_SOURCES) + \
  45. $(GAME_SOURCES) + \
  46. $(GRAPHICS_SOURCES) + \
  47. $(GUI_SOURCES) + \
  48. $(INPUT_SOURCES) + \
  49. $(IO_SOURCES) + \
  50. $(MATH_SOURCES) + \
  51. $(MEMORY_SOURCES) + \
  52. $(MESSAGING_SOURCES) + \
  53. $(MODULE_SOURCES) + \
  54. $(NETWORK_SOURCES) + \
  55. $(PERSISTENCE_SOURCES) + \
  56. $(PLATFORM_SOURCES) + \
  57. $(PLATFORM_UNIX_SOURCES) + \
  58. $(SIM_SOURCES) + \
  59. $(STRING_SOURCES)
  60. LDFLAGS := -g -m64
  61. LDLIBS := -lstdc++ -lm -ldl -lpthread -lrt -lX11 -lXft -lSDL -lopenal
  62. CFLAGS := -std=c++14 -MMD -I. -Wfatal-errors -Wunused -m64 -msse -march=x86-64 -pipe
  63. CFLAGS += -I/usr/include
  64. CFLAGS += -I/usr/include/freetype2
  65. CFLAGS += -I../../source
  66. CFLAGS += -I../../source/persistence/rapidjson/include
  67. CFLAGS += -I../../lib/ljpeg
  68. CFLAGS += -I../../lib/zlib
  69. CFLAGS += -I../../lib/lpng
  70. CFLAGS += -I../../lib/freetype
  71. CFLAGS += -I../../lib/libvorbis/include
  72. CFLAGS += -I../../lib/libogg/include
  73. CFLAGS += -I../../lib/openal/LINUX/
  74. CFLAGS += -DLINUX
  75. CFLAGS += -D__amd64__
  76. CFLAGS += -DTORQUE_64
  77. CFLAGS_DEBUG := $(CFLAGS) -ggdb
  78. CFLAGS_DEBUG += -DTORQUE_DEBUG
  79. CFLAGS_DEBUG += -DTORQUE_DEBUG_GUARD
  80. CFLAGS_DEBUG += -DTORQUE_NET_STATS
  81. CFLAGS += -Og
  82. NASMFLAGS := -f elf64 -D LINUX
  83. CC := gcc
  84. LD := gcc
  85. APP_TARGETS += $(APPNAME)
  86. APP_TARGETS_DEBUG += $(APPNAME)_DEBUG
  87. OBJS := $(patsubst ../../source/%,Release/%.o,$(SOURCES))
  88. OBJS := $(filter %.o, $(OBJS))
  89. OBJS_DEBUG := $(patsubst ../../source/%,Debug/%.o,$(SOURCES))
  90. OBJS_DEBUG := $(filter %.o,$(OBJS_DEBUG))
  91. $(APP_TARGETS): $(OBJS) $(LIB_TARGETS)
  92. @echo Linking release
  93. $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIB_TARGETS) $(LDLIBS)
  94. $(APP_TARGETS_DEBUG): $(OBJS_DEBUG) $(LIB_TARGETS_DEBUG)
  95. @echo Linking debug
  96. $(LD) $(LDFLAGS) -o $@ $(OBJS_DEBUG) $(LIB_TARGETS_DEBUG) $(LDLIBS)
  97. Release/%.asm.o: ../../source/%.asm
  98. @echo Building release asm $@
  99. @mkdir -p $(dir $@)
  100. nasm $(NASMFLAGS) $< -o $@
  101. Release/%.o: ../../source/%
  102. @echo Building release object $@
  103. @mkdir -p $(dir $@)
  104. $(CC) -c $(CFLAGS) $< -o $@
  105. Debug/%.asm.o: ../../source/%.asm
  106. @echo Building debug asm $@
  107. @mkdir -p $(dir $@)
  108. nasm $(NASMFLAGS) $< -o $@
  109. Debug/%.o: ../../source/%
  110. @echo Building debug object $@
  111. @mkdir -p $(dir $@)
  112. $(CC) -c $(CFLAGS_DEBUG) $< -o $@
  113. release: $(APP_TARGETS)
  114. debug: $(APP_TARGETS_DEBUG)
  115. .PHONY: $(APP_TARGETS) $(APP_TARGETS_DEBUG)
  116. DEPS += $(patsubst %.o,%.d,$(OBJS))
  117. DEPS += $(patsubst %.o,%.d,$(OBJS_DEBUG))
  118. APPNAME :=
  119. SOURCES :=