makeLib.tpl 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. # Static Library Template
  6. # If this errors out, you didn't specify the right variable value, or
  7. # you're including the wrong template makefile.
  8. LIBNAME := {$projName}
  9. {assign var="dirWalk" value=$fileArray}
  10. SOURCES := {foreach from=$dirWalk item=file key=key}
  11. {include file="make_fileRecurse.tpl" dirWalk=$file}
  12. {/foreach}
  13. LDFLAGS_{$projName} := -g -m32
  14. #LDLIBS_{$projName} := -lstdc++
  15. CFLAGS_{$projName} := -MMD -I. -m32 -msse -mmmx -march=i686
  16. {foreach item=def from=$projIncludes}CFLAGS_{$projName} += -I{$def}
  17. {/foreach}
  18. CFLAGS_{$projName} += -DUNICODE
  19. CFLAGS_{$projName} += -DLINUX
  20. {foreach item=def from=$projDefines}CFLAGS_{$projName} += -D{$def}
  21. {/foreach}
  22. CFLAGS_DEBUG_{$projName} := $(CFLAGS_{$projName}) -ggdb
  23. CFLAGS_DEBUG_{$projName} += -DTORQUE_DEBUG
  24. CFLAGS_DEBUG_{$projName} += -DTORQUE_DEBUG_GUARD
  25. CFLAGS_DEBUG_{$projName} += -DTORQUE_NET_STATS
  26. CFLAGS_{$projName} += -O3
  27. CC := gcc
  28. LD := gcc
  29. TARGET_{$projName} := {$libDir}/compiled/Make/{$projName}.a
  30. TARGET_{$projName}_DEBUG := {$libDir}/compiled/Make/{$projName}_DEBUG.a
  31. LIB_TARGETS += $(TARGET_{$projName})
  32. LIB_TARGETS_DEBUG += $(TARGET_{$projName}_DEBUG)
  33. OBJS_{$projName} := $(patsubst {$libDir}%,Release/{$projName}/%.o,$(SOURCES))
  34. OBJS_{$projName}_DEBUG := $(patsubst {$libDir}%,Debug/{$projName}/%.o,$(SOURCES))
  35. # Deriving the variable name from the target name is the secret sauce
  36. # of the build system.
  37. #
  38. $(TARGET_{$projName}): $(OBJS_{$projName})
  39. @mkdir -p $(dir $@)
  40. ar cr $@ $(OBJS_{$projName})
  41. $(TARGET_{$projName}_DEBUG): $(OBJS_{$projName}_DEBUG)
  42. @mkdir -p $(dir $@)
  43. ar cr $@ $(OBJS_{$projName}_DEBUG)
  44. Release/{$projName}/%.o: {$libDir}%
  45. @mkdir -p $(dir $@)
  46. $(CC) -c $(CFLAGS_{$projName}) $< -o $@
  47. Debug/{$projName}/%.o: {$libDir}%
  48. @mkdir -p $(dir $@)
  49. $(CC) -c $(CFLAGS_DEBUG_{$projName}) $< -o $@
  50. release_{$projName}: $(TARGET_{$projName})
  51. debug_{$projName}: $(TARGET_{$projName}_DEBUG)
  52. .PHONY: debug_{$projName} release_{$projName}
  53. DEPS += $(patsubst %.o,%.d,$(OBJS_{$projName}))
  54. DEPS += $(patsubst %.o,%.d,$(OBJS_{$projName}_DEBUG))