git.fiddlerwoaroof.com
Browse code

more make automation

Greg Wiley authored on 21/04/2017 06:46:55
Showing 2 changed files
... ...
@@ -13,4 +13,5 @@ autom4te.cache/
13 13
 *_test
14 14
 *_test
15 15
 *.orig
16
+.depend
16 17
 
... ...
@@ -3,14 +3,15 @@ CFLAGS += -fPIC -fno-stack-protector
3 3
 
4 4
 OBJS = dual_control.o request.o dual_control_integrate.o validator.o conversation.o
5 5
 TESTS = dual_control_test validator_test conversation_test request_test
6
-TESTOBJS = $(patsubst %,%.o,$TESTS)
6
+TESTOBJS = $(patsubst %,%.o,$(TESTS))
7
+SRCS := $(OBJS:.o=.cc) $(TESTOBJS:.o=.cc)
7 8
 
8 9
 MODULELIB = pam_dual_control.so
9 10
 
10 11
 UNAME_S := $(shell uname -s)
11 12
 
12 13
 .PHONY: all
13
-all: dual_control.a
14
+all: dual_control.a .depend
14 15
 
15 16
 dual_control.a: $(OBJS)
16 17
 	ar rvs $@ $^
... ...
@@ -19,41 +20,25 @@ dual_control.a: $(OBJS)
19 20
 .PHONY: clean
20 21
 clean:
21 22
 	@rm -f *.o *.a
22
-	@rm -f dual_control_test
23
+	@rm -f *_test
24
+	@rm ./.depend
23 25
 
24 26
 .PHONY: distclean
25 27
 distclean: clean
26 28
 	@git clean -xdf
27 29
 
28
-#
29
-# -include $(DEPS)
30
-#
31
-# %.o: %.cc
32
-# 	$(CXX) $(CXXFLAGS) -MM -MF $(patsubst %.o,%.d,$@) -o $@ $<
30
+.depend: $(SRCS)
31
+	rm -f ./.depend
32
+	$(CXX) $(CXXFLAGS) -MM $^ > ./.depend;
33 33
 
34
-$(TESTS): %: %.o $(OBJS)
35
-	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^
36
-
37
-dual_control.o: dual_control.h
34
+include .depend
38 35
 
39
-# dual_control_test: dual_control_test.o dual_control.o
40
-# 	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^
41
-#
42
-# request_test: request_test.o request.o
43
-# 	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^
44
-#
45
-# validator_test: validator_test.o validator.o
46
-# 	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^
47
-#
48
-# conversation_test: conversation_test.o conversation.o
49
-# 	$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^
36
+$(TESTS): %: %.o $(OBJS)
37
+	@$(CXX) $(CXXFLAGS) $(CPPFLAGS)  -o $@ $^
38
+	@./$@
50 39
 
51 40
 .PHONY: test
52
-test: validator_test request_test dual_control_test conversation_test
53
-	@./validator_test
54
-	@./request_test
55
-	@./dual_control_test
56
-	@./conversation_test
41
+test: $(TESTS)
57 42
 	@echo Tests Passing
58 43
 
59 44
 .PHONY: install