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