summaryrefslogtreecommitdiffstats
path: root/tmp/Makefile
blob: cc173900b170b66d0102179c486ae86819de8352 (plain) (blame)
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/usr/bin/make -f

# directories

STM32_CMSIS_DIR		= $(DRIVERS_DIR)/CMSIS/
STM32L4_CMSIS_DIR	= $(STM32_CMSIS_DIR)/ST/STM32L4xx/
STM32L4_HAL_DIR		= $(DRIVERS_DIR)/STM32L4xx_HAL_Driver/

LIBALX_INC_DIR		= $(LIBALX_DIR)/inc/
STM32_CMSIS_INC_DIR	= $(STM32_CMSIS_DIR)/Include/
STM32L4_CMSIS_INC_DIR	= $(STM32L4_CMSIS_DIR)/Include/
STM32L4_HAL_INC_DIR	= $(STM32L4_HAL_DIR)/Inc/

MODULES_BASE_INC_DIR	= $(MODULES_DIR)/inc/
MODULES_DEV_INC_DIR	= $(MODULES_DIR)/inc/dev/
MODULES_TST_INC_DIR	= $(MODULES_DIR)/inc/test/

SRC_DIR = $(MAIN_DIR)/src/
INC_DIR = $(MAIN_DIR)/inc/
DEP_DIR = $(MAIN_DIR)/dep/

# dependencies

ALL		= \
		system_stm32l4xx.o stm32l4xx_it.o main.o \
		ctrl.o actuators.o test.o

COMMON_INC_CMSIS	= core_cm4.h cmsis_gcc.h
COMMON_INC_CMSIS_L4	= stm32l4xx.h
COMMON_INC_HAL		= stm32l4xx_hal.h
COMMON_DEPS		= \
			$(patsubst %,$(STM32_CMSIS_INC_DIR)/%,$(COMMON_INC_CMSIS)) \
			$(patsubst %,$(STM32L4_CMSIS_INC_DIR)/%,$(COMMON_INC_CMSIS_L4)) \
			$(patsubst %,$(STM32L4_HAL_INC_DIR)/%,$(COMMON_INC_HAL))
COMMON_INC_DIRS		= \
			-I $(STM32_CMSIS_INC_DIR) \
			-I $(STM32L4_CMSIS_INC_DIR) \
			-I $(STM32L4_HAL_INC_DIR)


SYS_DEPS		= $(SRC_DIR)/system_stm32l4xx.c \
			$(COMMON_DEPS)
SYS_INC_DIRS		= \
			$(COMMON_INC_DIRS)


IT_DEPS			= $(SRC_DIR)/stm32l4xx_it.c \
			$(COMMON_DEPS)
IT_INC_DIRS		= \
			$(COMMON_INC_DIRS)


MAIN_INC_BASE		= can.h clk.h delay.h errors.h led.h tim.h
MAIN_INC_DEV		= display.h nunchuk.h servo.h
MAIN_INC_TST		= \
			can_test.h led_test.h tim_test.h \
			display_test.h nunchuk_test.h servo_test.h
MAIN_INC		= ctrl.h actuators.h
MAIN_DEPS		= $(SRC_DIR)/main.c \
			$(COMMON_DEPS) \
			$(patsubst %,$(MODULES_BASE_INC_DIR)/%,$(MAIN_INC_BASE)) \
			$(patsubst %,$(MODULES_DEV_INC_DIR)/%,$(MAIN_INC_DEV)) \
			$(patsubst %,$(MODULES_TST_INC_DIR)/%,$(MAIN_INC_TST)) \
			$(patsubst %,$(INC_DIR)/%,$(MAIN_INC))
MAIN_INC_DIRS		= -I $(INC_DIR) \
			-I $(MODULES_BASE_INC_DIR) \
			-I $(MODULES_DEV_INC_DIR) \
			-I $(MODULES_TST_INC_DIR) \
			$(COMMON_INC_DIRS)


CTRL_INC_LIBALX		= libalx/alx_math.h
CTRL_INC_BASE		= can.h delay.h errors.h led.h tim.h
CTRL_INC_DEV		= nunchuk.h
CTRL_INC		= ctrl.h
CTRL_DEPS		= $(SRC_DIR)/ctrl.c \
			$(COMMON_DEPS) \
			$(patsubst %,$(LIBALX_INC_DIR)/%,$(CTRL_INC_LIBALX)) \
			$(patsubst %,$(MODULES_BASE_INC_DIR)/%,$(CTRL_INC_BASE)) \
			$(patsubst %,$(MODULES_DEV_INC_DIR)/%,$(CTRL_INC_DEV)) \
			$(patsubst %,$(INC_DIR)/%,$(CTRL_INC))
CTRL_INC_DIRS		= -I $(INC_DIR) \
			-I $(LIBALX_INC_DIR) \
			-I $(MODULES_BASE_INC_DIR) \
			-I $(MODULES_DEV_INC_DIR) \
			$(COMMON_INC_DIRS)


ACT_INC_LIBALX		= libalx/alx_math.h
ACT_INC_BASE		= can.h delay.h errors.h led.h tim.h
ACT_INC_DEV		= servo.h
ACT_INC			= actuators.h
ACT_DEPS		= $(SRC_DIR)/actuators.c \
			$(COMMON_DEPS) \
			$(patsubst %,$(LIBALX_INC_DIR)/%,$(ACT_INC_LIBALX)) \
			$(patsubst %,$(MODULES_BASE_INC_DIR)/%,$(ACT_INC_BASE)) \
			$(patsubst %,$(MODULES_DEV_INC_DIR)/%,$(ACT_INC_DEV)) \
			$(patsubst %,$(INC_DIR)/%,$(ACT_INC))
ACT_INC_DIRS		= -I $(INC_DIR) \
			-I $(LIBALX_INC_DIR) \
			-I $(MODULES_BASE_INC_DIR) \
			-I $(MODULES_DEV_INC_DIR) \
			$(COMMON_INC_DIRS)


TST_INC_BASE		= delay.h errors.h led.h
TST_INC_TST		= \
			can_test.h led_test.h tim_test.h \
			display_test.h nunchuk_test.h servo_test.h
TST_INC			= test.h
TST_DEPS		= $(SRC_DIR)/test.c \
			$(COMMON_DEPS) \
			$(patsubst %,$(MODULES_BASE_INC_DIR)/%,$(TST_INC_BASE)) \
			$(patsubst %,$(MODULES_TST_INC_DIR)/%,$(TST_INC_TST)) \
			$(patsubst %,$(INC_DIR)/%,$(TST_INC))
TST_INC_DIRS		= -I $(INC_DIR) \
			-I $(MODULES_BASE_INC_DIR) \
			-I $(MODULES_TST_INC_DIR) \
			$(COMMON_INC_DIRS)


# target: dependencies
#	action

all: $(ALL)


system_stm32l4xx.o: $(SYS_DEPS)
	@echo	"	CC	$@"
	$(Q)$(CC) $(CFLAGS) $(SYS_INC_DIRS) -c $< -o $@

stm32l4xx_it.o: $(IT_DEPS)
	@echo	"	CC	$@"
	$(Q)$(CC) $(CFLAGS) $(IT_INC_DIRS) -c $< -o $@

main.o: $(MAIN_DEPS)
	@echo	"	CC	$@"
	$(Q)$(CC) $(CFLAGS) $(MAIN_INC_DIRS) -c $< -o $@

ctrl.o: $(CTRL_DEPS)
	@echo	"	CC	$@"
	$(Q)$(CC) $(CFLAGS) $(CTRL_INC_DIRS) -c $< -o $@

actuators.o: $(ACT_DEPS)
	@echo	"	CC	$@"
	$(Q)$(CC) $(CFLAGS) $(ACT_INC_DIRS) -c $< -o $@

test.o: $(TST_DEPS)
	@echo	"	CC	$@"
	$(Q)$(CC) $(CFLAGS) $(TST_INC_DIRS) -c $< -o $@


clean:
	$(Q)rm -f *.o

################################################################################
######## End of file ###########################################################
################################################################################