aboutsummaryrefslogtreecommitdiffstats
path: root/wirish/rules.mk
blob: 17c4d05cd0ae869bdee3743761f3b2dc2c642d77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Standard things
sp              := $(sp).x
dirstack_$(sp)  := $(d)
d               := $(dir)
BUILDDIRS       += $(BUILD_PATH)/$(d)

# Add board directory and MCU-specific directory to BUILDDIRS. These
# are in subdirectories, but they're logically part of the Wirish
# submodule.
WIRISH_BOARD_PATH := boards/$(BOARD)
BUILDDIRS += $(BUILD_PATH)/$(d)/$(WIRISH_BOARD_PATH)
BUILDDIRS += $(BUILD_PATH)/$(d)/$(MCU_SERIES)

# Safe includes for Wirish.
WIRISH_INCLUDES := -I$(d)/include -I$(d)/$(WIRISH_BOARD_PATH)/include

# Local flags. Add -I$(d) to allow for private includes.
CFLAGS_$(d) := $(LIBMAPLE_INCLUDES) $(WIRISH_INCLUDES) -I$(d)

# Local rules and targets
sSRCS_$(d) := start.S
cSRCS_$(d) := start_c.c
cppSRCS_$(d) := boards.cpp
# TODO: test these on F2 and put them back in:
# cppSRCS_$(d) := wirish_math.cpp		 \
#                 Print.cpp		 \
#                 HardwareSerial.cpp	 \
#                 HardwareSPI.cpp		 \
# 		HardwareTimer.cpp	 \
#                 usb_serial.cpp		 \
#                 cxxabi-compat.cpp	 \
# 		wirish_shift.cpp	 \
# 		wirish_analog.cpp	 \
# 		wirish_time.cpp		 \
# 		pwm.cpp 		 \
# 		ext_interrupts.cpp	 \
# 		wirish_digital.cpp
# TODO: Put this back in once we've got the necessary libmaple support back.
# cppSRCS_$(d) += $(WIRISH_BOARD_PATH)/board.cpp
cppSRCS_$(d) += $(MCU_SERIES)/boards_setup.cpp

sFILES_$(d)   := $(sSRCS_$(d):%=$(d)/%)
cFILES_$(d)   := $(cSRCS_$(d):%=$(d)/%)
cppFILES_$(d) := $(cppSRCS_$(d):%=$(d)/%)

OBJS_$(d)     := $(sFILES_$(d):%.S=$(BUILD_PATH)/%.o) \
                 $(cFILES_$(d):%.c=$(BUILD_PATH)/%.o) \
                 $(cppFILES_$(d):%.cpp=$(BUILD_PATH)/%.o)
DEPS_$(d)     := $(OBJS_$(d):%.o=%.d)

$(OBJS_$(d)): TGT_CFLAGS := $(CFLAGS_$(d))

TGT_BIN += $(OBJS_$(d))

# Standard things
-include        $(DEPS_$(d))
d               := $(dirstack_$(sp))
sp              := $(basename $(sp))