blob: 269e14e64db9e6a5c30393aaa7fa2b027a23b42c [file] [log] [blame]
Matthias Andreas Benkard33147302018-04-09 21:22:22 +02001.PHONY: all clean
2
Matthias Andreas Benkard38610ae2018-04-10 20:39:24 +02003CXX = c++
4LDFLAGS =
Matthias Andreas Benkard4c712682018-04-10 20:54:36 +02005CXXFLAGS = -I. -std=c++17
6MKDIR_P = mkdir -p
Matthias Andreas Benkard38610ae2018-04-10 20:39:24 +02007
8EXE = exe/hello-world-ng
Matthias Andreas Benkard4c712682018-04-10 20:54:36 +02009TEST = t/greeting-test
Matthias Andreas Benkard38610ae2018-04-10 20:39:24 +020010
11mod_OBJ = mod/greeting.o
12hello_world_ng_OBJ = exe/hello-world-ng.o
Matthias Andreas Benkard4c712682018-04-10 20:54:36 +020013greeting_test_OBJ = t/greeting-test.o
Matthias Andreas Benkard38610ae2018-04-10 20:39:24 +020014
15OBJ = $(hello_world_ng_OBJ) $(mod_OBJ)
16
17all: $(EXE)
Matthias Andreas Benkard33147302018-04-09 21:22:22 +020018
Matthias Andreas Benkard4c712682018-04-10 20:54:36 +020019test: $(TEST)
20 @for x in $^; do \
21 echo $$x; \
22 $$x; \
23 done
24
25test-junit: $(TEST)
26 $(MKDIR_P) test-results/t
27 @for x in $^; do \
28 echo $$x -r junit -o test-results/$$x.xml --success; \
29 $$x -r junit -o test-results/$$x.xml --success || :; \
30 done
31
Matthias Andreas Benkard33147302018-04-09 21:22:22 +020032clean:
Matthias Andreas Benkard38610ae2018-04-10 20:39:24 +020033 $(RM) $(OBJ)
34 $(RM) $(EXE)
Matthias Andreas Benkard4c712682018-04-10 20:54:36 +020035 $(RM) -r test-results
Matthias Andreas Benkard33147302018-04-09 21:22:22 +020036
Matthias Andreas Benkard38610ae2018-04-10 20:39:24 +020037exe/hello-world-ng: $(hello_world_ng_OBJ) $(mod_OBJ)
Matthias Andreas Benkard33147302018-04-09 21:22:22 +020038 $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^
39
Matthias Andreas Benkard4c712682018-04-10 20:54:36 +020040t/greeting-test: $(greeting_test_OBJ) $(mod_OBJ)
41 $(CXX) $(CXXFLAGS) $(LDFLAGS) -o $@ $^
42
Matthias Andreas Benkard33147302018-04-09 21:22:22 +020043%.o: %.cpp
44 $(CXX) $(CXXFLAGS) -o $@ -c $<