소스 검색

Tweak build system to allow out-of-tree projects.

Marti Bolivar 5 년 전
부모
커밋
be75a466b7
4개의 변경된 파일29개의 추가작업 그리고 7개의 파일을 삭제
  1. 6 6
      Makefile
  2. 1 1
      build-targets.mk
  3. 18 0
      support/make/footer.mk
  4. 4 0
      support/make/header.mk

+ 6 - 6
Makefile 파일 보기

@@ -67,12 +67,7 @@ include $(SUPPORT_PATH)/make/build-templates.mk
67 67
 ## Set all submodules here
68 68
 ##
69 69
 
70
-# Try to keep LIBMAPLE_MODULES a simply-expanded variable
71
-ifeq ($(LIBMAPLE_MODULES),)
72
-	LIBMAPLE_MODULES := $(SRCROOT)/libmaple
73
-else
74
-	LIBMAPLE_MODULES += $(SRCROOT)/libmaple
75
-endif
70
+LIBMAPLE_MODULES += $(SRCROOT)/libmaple
76 71
 LIBMAPLE_MODULES += $(LIBMAPLE_MODULE_FAMILY) # family submodule in libmaple
77 72
 LIBMAPLE_MODULES += $(SRCROOT)/wirish
78 73
 # Official libraries:
@@ -83,6 +78,11 @@ LIBMAPLE_MODULES += $(SRCROOT)/libraries/Wire
83 78
 # Experimental libraries:
84 79
 LIBMAPLE_MODULES += $(SRCROOT)/libraries/FreeRTOS
85 80
 
81
+# User modules:
82
+ifneq ($(USER_MODULES),)
83
+LIBMAPLE_MODULES += $(USER_MODULES)
84
+endif
85
+
86 86
 # Call each module's rules.mk:
87 87
 $(foreach m,$(LIBMAPLE_MODULES),$(eval $(call LIBMAPLE_MODULE_template,$(m))))
88 88
 

+ 1 - 1
build-targets.mk 파일 보기

@@ -1,5 +1,5 @@
1 1
 # main project target
2
-$(BUILD_PATH)/main.o: main.cpp
2
+$(BUILD_PATH)/main.o: $(SRCROOT)/main.cpp
3 3
 	$(SILENT_CXX) $(CXX) $(CFLAGS) $(CXXFLAGS) $(LIBMAPLE_INCLUDES) $(WIRISH_INCLUDES) -o $@ -c $< 
4 4
 
5 5
 $(BUILD_PATH)/libmaple.a: $(BUILDDIRS) $(TGT_BIN)

+ 18 - 0
support/make/footer.mk 파일 보기

@@ -0,0 +1,18 @@
1
+sFILES_$(d)   := $(sSRCS_$(d):%=$(d)/%)
2
+cFILES_$(d)   := $(cSRCS_$(d):%=$(d)/%)
3
+cppFILES_$(d) := $(cppSRCS_$(d):%=$(d)/%)
4
+
5
+OBJS_$(d)     := $(sFILES_$(d):%.S=$(BUILD_PATH)/%.o) \
6
+                 $(cFILES_$(d):%.c=$(BUILD_PATH)/%.o) \
7
+                 $(cppFILES_$(d):%.cpp=$(BUILD_PATH)/%.o)
8
+DEPS_$(d)     := $(OBJS_$(d):%.o=%.d)
9
+
10
+$(OBJS_$(d)): TGT_CFLAGS := $(CFLAGS_$(d))
11
+$(OBJS_$(d)): TGT_CXXFLAGS := $(CXXFLAGS_$(d))
12
+$(OBJS_$(d)): TGT_ASFLAGS := $(ASFLAGS_$(d))
13
+
14
+TGT_BIN += $(OBJS_$(d))
15
+
16
+-include        $(DEPS_$(d))
17
+d               := $(dirstack_$(sp))
18
+sp              := $(basename $(sp))

+ 4 - 0
support/make/header.mk 파일 보기

@@ -0,0 +1,4 @@
1
+sp              := $(sp).x
2
+dirstack_$(sp)  := $(d)
3
+d               := $(dir)
4
+BUILDDIRS       += $(BUILD_PATH)/$(d)