]> git.stg.codes - ssmd.git/blob - Makefile
1d3630f8ebbd59aec03bdfea866b86c792108764
[ssmd.git] / Makefile
1 DEFS = 
2 INCS = -Iinclude -I3rdparty/snmp++/include
3 CXXFLAGS += -W -Wall -Wextra $(INCS) $(DEFS)
4 LIBS = -lpthread \
5        -lssl \
6        -lcurl \
7        -lboost_system \
8        -lboost_program_options \
9        3rdparty/snmp++/libsnmp++.a
10 PROG = ssmd # SNMP Switch Management Daemon
11 VERSION = 1.1.2
12
13 SOURCES = src/main.cpp \
14           src/pidfile.cpp \
15           src/settings.cpp \
16           src/settingsfileparser.cpp \
17           src/logger.cpp \
18           src/syncer.cpp \
19           src/subscriber.cpp \
20           src/switch.cpp \
21           src/acl.cpp \
22           src/snmptable.cpp \
23           src/dataparser.cpp
24
25 .PHONY: all clean snmplib version tests
26
27 all: $(PROG)
28
29 tests:
30         $(MAKE) $(MAKECMDGOALS) -C tests
31
32 snmplib:
33         $(MAKE) $(MAKECMDGOALS) -C 3rdparty
34
35 include/version.h: version
36
37 version:
38         @sed 's/@VERSION@/$(VERSION)/g' include/version.h.in > include/version.h
39         @sed -i 's/@GIT_SHA@/'`git rev-parse --short HEAD`'/g' include/version.h
40
41 $(PROG): version $(subst .cpp,.o,$(SOURCES)) snmplib
42         $(CXX) $(subst .cpp,.o,$(SOURCES)) $(LIBS) -o $@
43
44 clean: snmplib
45         rm -f src/*.o src/*.d $(PROG) include/version.h
46
47 ifneq ($(MAKECMDGOALS),distclean)
48 ifneq ($(MAKECMDGOALS),clean)
49 -include $(subst .cpp,.d,$(SOURCES))
50 endif
51 endif
52
53 %.d: %.cpp
54         @$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
55         sed 's,\($*\).o[ :]*,src\/\1.o $@ : ,g' < $@.$$$$ > $@; \
56         rm -f $@.$$$$