-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
149 lines (137 loc) · 4.97 KB
/
Makefile
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
CC = gcc
CPP = g++
OUTPUT_DIR ?= .
#static library use 'ar' command
AR = ar
CFLAGS ?= $(FLAGS) -pipe -std=c99 -fdata-sections -ffunction-sections -Wall -Wextra -Wno-unused-parameter -fsigned-char \
-fno-strict-aliasing -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -Wchar-subscripts \
-Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas \
-Wundef -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wmissing-declarations -Wformat -Wmissing-format-attribute \
-Wno-deprecated-declarations -Wpacked -Wunreachable-code --param max-inline-insns-single=500
CFLAGS += -I.
CPPFLAGS = -I. -lwiringPi -lpthread -fpermissive -Werror=implicit-function-declaration
#TARGET = libeMD-icm20948.a
TARGET = logger
IDIRS += \
Invn/Devices/Drivers/Icm20948 \
Invn/Devices \
Invn/DynamicProtocol \
Invn/EmbUtils \
Invn
LDIRS +=
DEPS += \
Invn/IDDVersion.h \
Invn/InvBool.h \
Invn/InvError.h \
Invn/InvExport.h \
Invn/Devices/Drivers/Icm20948/Icm20948.h \
Invn/Devices/Drivers/Icm20948/Icm20948Augmented.h \
Invn/Devices/Drivers/Icm20948/Icm20948AuxCompassAkm.h \
Invn/Devices/Drivers/Icm20948/Icm20948AuxTransport.h \
Invn/Devices/Drivers/Icm20948/Icm20948DataBaseControl.h \
Invn/Devices/Drivers/Icm20948/Icm20948DataBaseDriver.h \
Invn/Devices/Drivers/Icm20948/Icm20948DataConverter.h \
Invn/Devices/Drivers/Icm20948/Icm20948Dmp3Driver.h \
Invn/Devices/Drivers/Icm20948/Icm20948LoadFirmware.h \
Invn/Devices/Drivers/Icm20948/Icm20948MPUFifoControl.h \
Invn/Devices/Drivers/Icm20948/Icm20948SelfTest.h \
Invn/Devices/Drivers/Icm20948/Icm20948Setup.h \
Invn/Devices/Drivers/Icm20948/Icm20948Transport.h \
Invn/Devices/Drivers/Icm20948/Icm20948Serif.h \
Invn/Devices/Drivers/Icm20948/Icm20948Defs.h \
Invn/Devices/Device.h \
Invn/Devices/DeviceIcm20948.h \
Invn/Devices/HostSerif.h \
Invn/Devices/SensorConfig.h \
Invn/Devices/SensorTypes.h \
Invn/Devices/SerifHal.h \
Invn/Devices/VSensorId.h \
Invn/DynamicProtocol/DynProtocol.h \
Invn/DynamicProtocol/DynProtocolTransport.h \
Invn/DynamicProtocol/DynProtocolTransportUart.h \
Invn/EmbUtils/CBinaryReader.h \
Invn/EmbUtils/CBinaryWriter.h \
Invn/EmbUtils/DataConverter.h \
Invn/EmbUtils/ErrorHelper.h \
Invn/EmbUtils/InvAssert.h \
Invn/EmbUtils/InvBasicMath.h \
Invn/EmbUtils/InvBits.h \
Invn/EmbUtils/InvCksum.h \
Invn/EmbUtils/InvFormat.h \
Invn/EmbUtils/InvList.h \
Invn/EmbUtils/InvPrintf.h \
Invn/EmbUtils/InvProtocol.h \
Invn/EmbUtils/InvScheduler.h \
Invn/EmbUtils/Message.h \
Invn/EmbUtils/RingBuffer.h \
Invn/EmbUtils/InvQueue.h \
Invn/EmbUtils/InvString.h \
Invn/EmbUtils/Logger.h \
Invn/EmbUtils/RingByteBuffer.h \
Invn/EmbUtils/UartTxEmulator.h \
Invn/Images/icm20948_img.dmp3a.h \
Invn/VSensor/VSensor.h \
Invn/VSensor/VSensorData.h \
Invn/VSensor/VSensorConfig.h \
Invn/VSensor/VSensorEvent.h \
Invn/VSensor/VSensorId.h \
Invn/VSensor/VSensorListener.h \
Invn/VSensor/VSensorSmartListener.h \
Invn/VSensor/VSensorType.h \
Invn/VSensor/VSensorConfig.h \
Invn/VSensor/VSensorVersion.h
CSRCS += \
Invn/Devices/Drivers/Icm20948/Icm20948Augmented.c \
Invn/Devices/Drivers/Icm20948/Icm20948AuxCompassAkm.c \
Invn/Devices/Drivers/Icm20948/Icm20948AuxTransport.c \
Invn/Devices/Drivers/Icm20948/Icm20948DataBaseControl.c \
Invn/Devices/Drivers/Icm20948/Icm20948DataBaseDriver.c \
Invn/Devices/Drivers/Icm20948/Icm20948DataConverter.c \
Invn/Devices/Drivers/Icm20948/Icm20948Dmp3Driver.c \
Invn/Devices/Drivers/Icm20948/Icm20948LoadFirmware.c \
Invn/Devices/Drivers/Icm20948/Icm20948MPUFifoControl.c \
Invn/Devices/Drivers/Icm20948/Icm20948SelfTest.c \
Invn/Devices/Drivers/Icm20948/Icm20948Setup.c \
Invn/Devices/Drivers/Icm20948/Icm20948Transport.c \
Invn/Devices/DeviceIcm20948.c \
Invn/Devices/HostSerif.c \
Invn/Devices/Sensor.c \
Invn/Devices/VSensorId.c \
Invn/DynamicProtocol/DynProtocol.c \
Invn/DynamicProtocol/DynProtocolTransportUart.c \
Invn/EmbUtils/DataConverter.c \
Invn/EmbUtils/ErrorHelper.c \
Invn/EmbUtils/InvProtocol.c \
Invn/EmbUtils/InvQueue.c \
Invn/EmbUtils/InvScheduler.c \
Invn/EmbUtils/Message.c \
Invn/EmbUtils/RingByteBuffer.c \
Invn/EmbUtils/InvBasicMath.c \
Invn/EmbUtils/InvCksum.c \
Invn/EmbUtils/InvFormat.c \
Invn/EmbUtils/InvList.c \
Invn/EmbUtils/InvPrintf.c \
Invn/EmbUtils/Logger.c \
Invn/EmbUtils/UartTxEmulator.c \
Invn/VSensor/VSensor.c \
icm_sleep.c
OBJS := $(notdir $(CSRCS))
OBJS := $(addsuffix .o,$(OBJS))
OBJS := $(addprefix $(OUTPUT_DIR)/objs/,$(OBJS))
all: $(TARGET) $(OBJS)
#%.o: %.c
# $(CC) $(CFLAGS) -c $< -o $@
define CRule
$(OUTPUT_DIR)/objs/$(notdir $(1).o): $(1) $(DEPS)
$(CC) -c $(CFLAGS) $(IDIRS) $(1) -o $(OUTPUT_DIR)/objs/$(notdir $(1)).o
endef
$(foreach _,$(CSRCS), $(eval $(call CRule,$_)))
%.o: %.cpp
$(CPP) -c -o $@ $< $(CPPFLAGS)
#$(TARGET):$(OBJS)
# ${AR} rv ${TARGET} $?
logger: logger.o spi_if.o $(OBJS)
$(CPP) -o $@ $^ $(CPPFLAGS)
.PHONY: clean
clean:
rm -f $(OBJS) $(TARGET) *.o logger