Newer
Older
libkc / mk / base-auto.mk
  1. # ==============================================================================
  2. # 基本自動設定
  3. # ==============================================================================
  4. # 以下、基本設定に基づき自動的に設定されます。
  5. # (本ファイルは、基本的に変更不要です。)
  6.  
  7. # ------------------------------------------------------------------------------
  8. # SRCS, OBJS, DEPS ファイル群の自動設定
  9. # ------------------------------------------------------------------------------
  10. S_SRCS = $(wildcard $(addsuffix /*.s,$(SRCDIR)))
  11. C_SRCS = $(wildcard $(addsuffix /*.c,$(SRCDIR)))
  12. CXX_SRCS = $(wildcard $(addsuffix /*.cpp,$(SRCDIR)))
  13. TMP_SRCS = $(C_SRCS) $(CXX_SRCS) $(S_SRCS)
  14. VPATH = $(SRCDIR)
  15. SRCS = $(filter-out $(EXCLUDES),$(TMP_SRCS))
  16. OBJS = $(addprefix $(OBJDIR)/, $(notdir $(addsuffix .o, $(basename $(SRCS)))))
  17. DEPS = $(OBJS:$(OBJDIR)/%.o=$(OBJDIR)/%.d)
  18.  
  19.  
  20. # ------------------------------------------------------------------------------
  21. # LINK : リンカー設定
  22. # C++ が含まれる場合、$(CXX) を使用する。
  23. # ------------------------------------------------------------------------------
  24. ifeq ($(strip $(CXX_SRCS)),)
  25. LINK = $(CC)
  26. else
  27. LINK = $(CXX)
  28. endif
  29.  
  30.  
  31. # ------------------------------------------------------------------------------
  32. # ターゲットが ut.exe の場合の設定
  33. #
  34. # 1. DEBUG を常に有効に設定する。
  35. # 2. SRCDIR に、../src を追加する。
  36. # 3. INCLUDES に、../include を追加する。
  37. # 4. DEFINE に -DUNITTEST -DDEBUG を追加する。
  38. # ------------------------------------------------------------------------------
  39. ifeq ($(strip $(TARGET)),ut.exe)
  40. DEBUG = 1
  41. SRCDIR += ../src
  42. INCLUDES += -I../include
  43. DEFINE += -DUNITTEST -DDEBUG
  44. endif
  45.  
  46.  
  47. ifeq ($(strip $(DEBUG)),)
  48. # ------------------------------------------------------------------------------
  49. # DEBUG が無効な場合の設定
  50. # CFLAGS, CXXFLAGS, LDFLAGS の OPTIMIZATION を有効にする
  51. # ------------------------------------------------------------------------------
  52. CFLAGS += $(OPTIMIZATION)
  53. CXXFLAGS += $(OPTIMIZATION)
  54.  
  55. else
  56. # ------------------------------------------------------------------------------
  57. # DEBUG が有効な場合の設定
  58. # CFLAGS, CXXFLAGS, LDFLAGS の DEBUG_OPTIONS を有効にする
  59. # ------------------------------------------------------------------------------
  60. DEFINE += -DENABLED_MEMORY_MANAGE
  61. CFLAGS += $(DEBUG_OPTIONS)
  62. CXXFLAGS += $(DEBUG_OPTIONS)
  63. LDFLAGS += $(DEBUG_LDFLAGS)
  64.  
  65. endif
  66.  
  67. # ------------------------------------------------------------------------------
  68. # CFLAGS, CXXFLAGS, LDFLAGS 設定
  69. # ------------------------------------------------------------------------------
  70. CFLAGS += $(INCLUDES)
  71. CFLAGS += $(C_VERSION)
  72. CFLAGS += $(C_WARNING_OPTIONS)
  73. CFLAGS += $(DEFINE)
  74. CFLAGS += $(DEPENDS_OPTIONS)
  75.  
  76. CXXFLAGS += $(INCLUDES)
  77. CXXFLAGS += $(CXX_VERSION)
  78. CXXFLAGS += $(CXX_WARNING_OPTIONS)
  79. CXXFLAGS += $(DEFINE)
  80. CXXFLAGS += $(DEPENDS_OPTIONS)