ifeq ($(BUILD),Debug) DEFS += -DDEBUG CXXFLAGS += -g3 endif INCS = -Iinclude -I3rdparty/snmp++/include CXXFLAGS += -W -Wall -Wextra $(INCS) $(DEFS) LIBS = 3rdparty/snmp++/libsnmp++.a \ -lboost_system \ -lboost_program_options \ -lcurl \ -lssl \ -lcrypto \ -lpthread PROG = ssmd # SNMP Switch Management Daemon VERSION = 1.2.2 SOURCES = src/main.cpp \ src/pidfile.cpp \ src/settings.cpp \ src/settingsfileparser.cpp \ src/logger.cpp \ src/syncer.cpp \ src/subscriber.cpp \ src/switch.cpp \ src/acl.cpp \ src/snmptable.cpp \ src/dataparser.cpp PREFIX = BIN_MODE = 0755 DATA_MODE = 0644 OWNER = root .PHONY: all clean snmplib version tests install uninstall all: $(PROG) tests: $(MAKE) $(MAKECMDGOALS) -C tests snmplib: $(MAKE) $(MAKECMDGOALS) -C 3rdparty include/version.h: version version: @sed 's/@VERSION@/$(VERSION)/g' include/version.h.in > include/version.h @sed -i 's/@GIT_SHA@/'`git rev-parse --short HEAD`'/g' include/version.h $(PROG): version $(subst .cpp,.o,$(SOURCES)) snmplib $(CXX) $(subst .cpp,.o,$(SOURCES)) $(LIBS) -o $@ clean: snmplib rm -f src/*.o src/*.d $(PROG) include/version.h install: install-bin install-data install-bin: ifeq ($(findstring $(DEFS), -DDEBUG),) install -D -m $(BIN_MODE) -o $(OWNER) $(PROG) $(PREFIX)/usr/sbin/$(PROG) else install -D -m $(BIN_MODE) -o $(OWNER) -s $(PROG) $(PREFIX)/usr/sbin/$(PROG) endif install-data: install -D -m $(DATA_MODE) -o $(OWNER) ./ssmd.conf $(PREFIX)/etc/ssmd/ssmd.conf uninstall: uninstall-bin uninstall-data uninstall-bin: rm -f $(PREFIX)/usr/sbin/$(PROG) uninstall-data: rm -f $(PREFIX)/etc/ssmd/ssmd.conf ifneq ($(MAKECMDGOALS),distclean) ifneq ($(MAKECMDGOALS),clean) -include $(subst .cpp,.d,$(SOURCES)) endif endif %.d: %.cpp @$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \ sed 's,\($*\).o[ :]*,src\/\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$