Update unittest_flight_imu.
[betaflight.git] / src / test / Makefile
blob92ca4f1c16c79dc55d5c337d1b1c7e960d3edd4c
1 # A sample Makefile for building Google Test and using it in user
2 # tests. Please tweak it to suit your environment and project. You
3 # may want to move it to your project's root directory.
5 # SYNOPSIS:
7 # make [all] - makes everything.
8 # make TARGET - makes the given target.
9 # make clean - removes all files generated by make.
11 # Please tweak the following variable definitions as needed by your
12 # project, except GTEST_HEADERS, which you can use in your own targets
13 # but shouldn't modify.
15 # Points to the root of Google Test, relative to where this file is.
16 # Remember to tweak this if you move this file.
17 GTEST_DIR = ../../lib/test/gtest
19 # Where to find user code.
20 USER_DIR = ../main
21 TEST_DIR = unit
22 USER_INCLUDE_DIR = $(USER_DIR)
24 OBJECT_DIR = ../../obj/test
26 # Flags passed to the preprocessor.
27 # Set Google Test's header directory as a system directory, such that
28 # the compiler doesn't generate warnings in Google Test headers.
29 CPPFLAGS += -isystem $(GTEST_DIR)/inc
31 # Flags passed to the C++ compiler.
32 CXXFLAGS += -g -Wall -Wextra -pthread -ggdb3 -O0 -DUNIT_TEST
34 # All tests produced by this Makefile. Remember to add new tests you
35 # created to the list.
36 TESTS = \
37 battery_unittest \
38 flight_imu_unittest \
39 gps_conversion_unittest \
40 telemetry_hott_unittest \
41 rc_controls_unittest \
42 ledstrip_unittest \
43 ws2811_unittest
45 # All Google Test headers. Usually you shouldn't change this
46 # definition.
47 GTEST_HEADERS = $(GTEST_DIR)/inc/gtest/*.h
49 # House-keeping build targets.
51 all : $(TESTS)
53 clean :
54 rm -rf $(TESTS) $(OBJECT_DIR)
56 # Builds gtest.a and gtest_main.a.
58 # Usually you shouldn't tweak such internal variables, indicated by a
59 # trailing _.
60 GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/inc/gtest/*.h $(GTEST_HEADERS)
62 # For simplicity and to avoid depending on Google Test's
63 # implementation details, the dependencies specified below are
64 # conservative and not optimized. This is fine as Google Test
65 # compiles fast and for ordinary users its source rarely changes.
66 $(OBJECT_DIR)/gtest-all.o : $(GTEST_SRCS_)
67 @mkdir -p $(dir $@)
68 $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
69 $(GTEST_DIR)/src/gtest-all.cc -o $@
71 $(OBJECT_DIR)/gtest_main.o : $(GTEST_SRCS_)
72 @mkdir -p $(dir $@)
73 $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
74 $(GTEST_DIR)/src/gtest_main.cc -o $@
76 $(OBJECT_DIR)/gtest.a : $(OBJECT_DIR)/gtest-all.o
77 $(AR) $(ARFLAGS) $@ $^
79 $(OBJECT_DIR)/gtest_main.a : $(OBJECT_DIR)/gtest-all.o $(OBJECT_DIR)/gtest_main.o
80 $(AR) $(ARFLAGS) $@ $^
82 # Builds a sample test. A test should link with either gtest.a or
83 # gtest_main.a, depending on whether it defines its own main()
84 # function.
86 # includes in test dir must override includes in user dir
87 TEST_INCLUDE_DIRS := $(TEST_DIR) \
88 $(USER_INCLUDE_DIR)
91 TEST_CFLAGS = $(addprefix -I,$(TEST_INCLUDE_DIRS))
94 $(OBJECT_DIR)/sensors/battery.o : $(USER_DIR)/sensors/battery.c $(USER_DIR)/sensors/battery.h $(GTEST_HEADERS)
95 @mkdir -p $(dir $@)
96 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/sensors/battery.c -o $@
98 $(OBJECT_DIR)/battery_unittest.o : $(TEST_DIR)/battery_unittest.cc \
99 $(USER_DIR)/sensors/battery.h $(GTEST_HEADERS)
100 @mkdir -p $(dir $@)
101 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/battery_unittest.cc -o $@
103 battery_unittest : $(OBJECT_DIR)/sensors/battery.o $(OBJECT_DIR)/battery_unittest.o $(OBJECT_DIR)/gtest_main.a
104 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@
108 $(OBJECT_DIR)/flight/altitudehold.o : $(USER_DIR)/flight/altitudehold.c $(USER_DIR)/flight/altitudehold.h $(GTEST_HEADERS)
109 @mkdir -p $(dir $@)
110 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/flight/altitudehold.c -o $@
112 $(OBJECT_DIR)/flight/imu.o : $(USER_DIR)/flight/imu.c $(USER_DIR)/flight/imu.h $(GTEST_HEADERS)
113 @mkdir -p $(dir $@)
114 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/flight/imu.c -o $@
116 $(OBJECT_DIR)/flight_imu_unittest.o : $(TEST_DIR)/flight_imu_unittest.cc \
117 $(USER_DIR)/flight/imu.h $(GTEST_HEADERS)
118 @mkdir -p $(dir $@)
119 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/flight_imu_unittest.cc -o $@
121 flight_imu_unittest : $(OBJECT_DIR)/flight/imu.o $(OBJECT_DIR)/flight/altitudehold.o $(OBJECT_DIR)/flight_imu_unittest.o $(OBJECT_DIR)/gtest_main.a
122 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@
125 $(OBJECT_DIR)/flight/gps_conversion.o : $(USER_DIR)/flight/gps_conversion.c $(USER_DIR)/flight/gps_conversion.h $(GTEST_HEADERS)
126 @mkdir -p $(dir $@)
127 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/flight/gps_conversion.c -o $@
129 $(OBJECT_DIR)/gps_conversion_unittest.o : $(TEST_DIR)/gps_conversion_unittest.cc \
130 $(USER_DIR)/flight/gps_conversion.h $(GTEST_HEADERS)
131 @mkdir -p $(dir $@)
132 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/gps_conversion_unittest.cc -o $@
134 gps_conversion_unittest : $(OBJECT_DIR)/flight/gps_conversion.o $(OBJECT_DIR)/gps_conversion_unittest.o $(OBJECT_DIR)/gtest_main.a
135 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@
139 $(OBJECT_DIR)/telemetry/hott.o : $(USER_DIR)/telemetry/hott.c $(USER_DIR)/telemetry/hott.h $(GTEST_HEADERS)
140 @mkdir -p $(dir $@)
141 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/telemetry/hott.c -o $@
143 $(OBJECT_DIR)/telemetry_hott_unittest.o : $(TEST_DIR)/telemetry_hott_unittest.cc \
144 $(USER_DIR)/telemetry/hott.h $(GTEST_HEADERS)
145 @mkdir -p $(dir $@)
146 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/telemetry_hott_unittest.cc -o $@
148 telemetry_hott_unittest :$(OBJECT_DIR)/telemetry/hott.o $(OBJECT_DIR)/telemetry_hott_unittest.o $(OBJECT_DIR)/flight/gps_conversion.o $(OBJECT_DIR)/gtest_main.a
149 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@
153 $(OBJECT_DIR)/io/rc_controls.o : $(USER_DIR)/io/rc_controls.c $(USER_DIR)/io/rc_controls.h $(GTEST_HEADERS)
154 @mkdir -p $(dir $@)
155 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/io/rc_controls.c -o $@
157 $(OBJECT_DIR)/rc_controls_unittest.o : $(TEST_DIR)/rc_controls_unittest.cc \
158 $(USER_DIR)/io/rc_controls.h $(GTEST_HEADERS)
159 @mkdir -p $(dir $@)
160 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/rc_controls_unittest.cc -o $@
162 rc_controls_unittest :$(OBJECT_DIR)/io/rc_controls.o $(OBJECT_DIR)/rc_controls_unittest.o $(OBJECT_DIR)/gtest_main.a
163 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@
166 $(OBJECT_DIR)/io/ledstrip.o : $(USER_DIR)/io/ledstrip.c $(USER_DIR)/io/ledstrip.h $(GTEST_HEADERS)
167 @mkdir -p $(dir $@)
168 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/io/ledstrip.c -o $@
170 $(OBJECT_DIR)/ledstrip_unittest.o : $(TEST_DIR)/ledstrip_unittest.cc \
171 $(USER_DIR)/io/ledstrip.h $(GTEST_HEADERS)
172 @mkdir -p $(dir $@)
173 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/ledstrip_unittest.cc -o $@
175 ledstrip_unittest :$(OBJECT_DIR)/io/ledstrip.o $(OBJECT_DIR)/ledstrip_unittest.o $(OBJECT_DIR)/gtest_main.a
176 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@
180 $(OBJECT_DIR)/drivers/light_ws2811strip.o : $(USER_DIR)/drivers/light_ws2811strip.c $(USER_DIR)/drivers/light_ws2811strip.h $(GTEST_HEADERS)
181 @mkdir -p $(dir $@)
182 $(CC) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/drivers/light_ws2811strip.c -o $@
184 $(OBJECT_DIR)/ws2811_unittest.o : $(TEST_DIR)/ws2811_unittest.cc \
185 $(USER_DIR)/drivers/light_ws2811strip.h $(GTEST_HEADERS)
186 @mkdir -p $(dir $@)
187 $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/ws2811_unittest.cc -o $@
189 ws2811_unittest :$(OBJECT_DIR)/drivers/light_ws2811strip.o $(OBJECT_DIR)/ws2811_unittest.o $(OBJECT_DIR)/gtest_main.a
190 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@