6 UNAME = $(shell uname -s)
8 ifeq ($(UNAME), Darwin)
12 INCS = -I/opt/local/include -Iinclude -I3rdparty/snmp++/include
13 CXXFLAGS += -W -Wall -Wextra $(INCS) $(DEFS)
14 LIBS = -L/opt/local/lib \
15 3rdparty/snmp++/libsnmp++.a \
16 -lboost_system$(BOOST_SUFFIX) \
17 -lboost_program_options$(BOOST_SUFFIX) \
22 PROG = ssmd # SNMP Switch Management Daemon
25 SOURCES = src/main.cpp \
28 src/settingsfileparser.cpp \
42 .PHONY: all clean snmplib version tests install uninstall
47 $(MAKE) $(MAKECMDGOALS) -C tests
50 $(MAKE) $(MAKECMDGOALS) -C 3rdparty
52 include/version.h: version
55 @sed 's/@VERSION@/$(VERSION)/g' include/version.h.in > include/version.h.tmp
56 @sed "s/@GIT_SHA@/$$(git rev-parse --short HEAD)/g" include/version.h.tmp > include/version.h
57 @rm include/version.h.tmp
59 $(PROG): version $(subst .cpp,.o,$(SOURCES)) snmplib
60 $(CXX) $(subst .cpp,.o,$(SOURCES)) $(LIBS) -o $@
63 rm -f src/*.o src/*.d $(PROG) include/version.h
65 install: install-bin install-data
68 ifeq ($(findstring $(DEFS), -DDEBUG),)
69 install -D -m $(BIN_MODE) -o $(OWNER) $(PROG) $(PREFIX)/usr/sbin/$(PROG)
71 install -D -m $(BIN_MODE) -o $(OWNER) -s $(PROG) $(PREFIX)/usr/sbin/$(PROG)
75 install -D -m $(DATA_MODE) -o $(OWNER) ./ssmd.conf $(PREFIX)/etc/ssmd/ssmd.conf
77 uninstall: uninstall-bin uninstall-data
80 rm -f $(PREFIX)/usr/sbin/$(PROG)
83 rm -f $(PREFIX)/etc/ssmd/ssmd.conf
85 ifneq ($(MAKECMDGOALS),distclean)
86 ifneq ($(MAKECMDGOALS),clean)
87 -include $(subst .cpp,.d,$(SOURCES))
92 @$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
93 sed 's,\($*\).o[ :]*,src\/\1.o $@ : ,g' < $@.$$$$ > $@; \