CURDIR=blackhole MANPAGES=/usr/share/man PACKAGE_REV:=$(shell ./makeversion $(BUILD_SVNVER)) PROGS=horizon horizon-control blackhole blackhole-control wormhole wormhole-control udpproxy conproxy conproxy-control \ blackhole-rulefilter proxyclient tcpecho rawtest testcontrol testrace findproc findproc-control findproc-mapug \ http_proxy http_proxy-control blackhole-devnull blackhole-devnull-control blackhole-gensecret buildp \ horizon-ident horizon-ident-control blackhole-logs protocheck-2factors protocheck-2factors-control \ testconfig menutest blackhole-stats DOCS=principle.pdf operations.pdf OPTIONS=-funsigned-char -O2 -Wall -g -DVERSION=\"$(PACKAGE_REV)\" LIBS=-ltlmp -lstdc++ -lcrypto .SUFFIXES: .o .tex .tlcc .cc .png .uml all: $(PROGS) doc: $(DOCS) horizon: horizon.tlcc fdpass.o proto/horizon_control.protoh proto/horizon_master_control.protoh \ proto/horizon_proxy.protoh proto/horizon_master.protoh cctlcc $(OPTIONS) horizon.tlcc fdpass.o -o horizon $(LIBS) horizon-control: horizon-control.tlcc fdpass.o cctlcc $(OPTIONS) horizon-control.tlcc fdpass.o -o horizon-control $(LIBS) horizon-ident: horizon-ident.tlcc cctlcc $(OPTIONS) horizon-ident.tlcc -o horizon-ident $(LIBS) horizon-ident-control: horizon-ident-control.tlcc cctlcc $(OPTIONS) horizon-ident-control.tlcc -o horizon-ident-control $(LIBS) blackhole: blackhole.tlcc fdpass.o proto/blackhole_horizon.protoh proto/blackhole_wormhole.protoh \ proto/blackhole_blackhole.protoh proto/blackhole_control.protoh proto/blackhole_parent.protoh \ connectrules.h cctlcc $(OPTIONS) -Wall blackhole.tlcc fdpass.o -o blackhole $(LIBS) blackhole-control: blackhole-control.tlcc cctlcc $(OPTIONS) blackhole-control.tlcc -o blackhole-control $(LIBS) blackhole-devnull: blackhole-devnull.tlcc fdpass.o proto/blackhole_devnull_control.protoh cctlcc $(OPTIONS) blackhole-devnull.tlcc fdpass.o -o blackhole-devnull $(LIBS) blackhole-devnull-control: blackhole-devnull-control.tlcc cctlcc $(OPTIONS) blackhole-devnull-control.tlcc -o blackhole-devnull-control -ltlmp -lstdc++ blackhole-rulefilter: blackhole-rulefilter.tlcc cctlcc $(OPTIONS) blackhole-rulefilter.tlcc -o blackhole-rulefilter -ltlmp -lstdc++ blackhole-gensecret: blackhole-gensecret.tlcc fdpass.o cctlcc $(OPTIONS) blackhole-gensecret.tlcc fdpass.o -o blackhole-gensecret $(LIBS) blackhole-logs: blackhole-logs.tlcc cctlcc $(OPTIONS) blackhole-logs.tlcc -o blackhole-logs $(LIBS) blackhole-stats: blackhole-stats.tlcc cctlcc $(OPTIONS) blackhole-stats.tlcc -o blackhole-stats $(LIBS) protocheck-2factors: protocheck-2factors.tlcc fdpass.o proto/protocheck_2factors_control.protoh cctlcc $(OPTIONS) protocheck-2factors.tlcc fdpass.o -o protocheck-2factors $(LIBS) protocheck-2factors-control: protocheck-2factors-control.tlcc cctlcc $(OPTIONS) protocheck-2factors-control.tlcc -o protocheck-2factors-control $(LIBS) wormhole: wormhole.tlcc fdpass.o proto/wormhole_control.protoh proto/wormhole_master.protoh cctlcc $(OPTIONS) wormhole.tlcc fdpass.o -o wormhole $(LIBS) wormhole-control: wormhole-control.tlcc cctlcc $(OPTIONS) wormhole-control.tlcc -o wormhole-control $(LIBS) conproxy: conproxy.tlcc fdpass.o proto/conproxy_control.protoh cctlcc $(OPTIONS) conproxy.tlcc fdpass.o -o conproxy $(LIBS) conproxy-control: conproxy-control.tlcc fdpass.o cctlcc $(OPTIONS) conproxy-control.tlcc fdpass.o -o conproxy-control $(LIBS) fdpass.o: fdpass.tlcc fdpass.h cctlcc $(OPTIONS) -c fdpass.tlcc -o fdpass.o udpproxy: udpproxy.tlcc fdpass.o cctlcc $(OPTIONS) udpproxy.tlcc fdpass.o -o udpproxy $(LIBS) proxyclient: proxyclient.tlcc cctlcc $(OPTIONS) proxyclient.tlcc -o proxyclient -ltlmp -lstdc++ tcpecho: tcpecho.tlcc cctlcc $(OPTIONS) tcpecho.tlcc -o tcpecho -ltlmp -lstdc++ rawtest: rawtest.tlcc cctlcc $(OPTIONS) rawtest.tlcc -o rawtest -ltlmp -lstdc++ testcontrol: testcontrol.tlcc cctlcc $(OPTIONS) testcontrol.tlcc -o testcontrol -ltlmp -lstdc++ testrace: testrace.tlcc cctlcc $(OPTIONS) testrace.tlcc -o testrace -ltlmp -lstdc++ testconfig: testconfig.tlcc cctlcc $(OPTIONS) testconfig.tlcc -o testconfig -ltlmp -lstdc++ findproc: findproc.tlcc fdpass.o cctlcc $(OPTIONS) findproc.tlcc fdpass.o -o findproc $(LIBS) findproc-control: findproc-control.tlcc cctlcc $(OPTIONS) findproc-control.tlcc -o findproc-control -ltlmp -lstdc++ findproc-mapug: findproc-mapug.tlcc cctlcc $(OPTIONS) findproc-mapug.tlcc -o findproc-mapug -ltlmp -lstdc++ http_proxy: http_proxy.tlcc cctlcc $(OPTIONS) http_proxy.tlcc -o http_proxy -ltlmp -lstdc++ http_proxy-control: http_proxy-control.tlcc cctlcc $(OPTIONS) http_proxy-control.tlcc -o http_proxy-control -ltlmp -lstdc++ buildp: buildp.tlcc cctlcc $(OPTIONS) buildp.tlcc -o buildp -lstdc++ menutest: menutest.tlcc cctlcc $(OPTIONS) menutest.tlcc -o menutest -lstdc++ PNGS=intro1.png intro1b.png intro2.png wormhole.png open_network.png transparent_proxy.png order.png \ sub-blackhole.png conproxy.png principle.pdf: principle.tex $(PNGS) pdflatex principle.tex pdflatex principle.tex operations.pdf: operations.tex $(PNGS) pdflatex operations.tex pdflatex operations.tex quickstart.pdf: quickstart.tex $(PNGS) pdflatex quickstart.tex .uml.png: plantuml $< proto/horizon_control.protoh: proto/horizon_control.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name horizon_control proto/horizon_control.proto >proto/horizon_control.protoh proto/horizon_master_control.protoh: proto/horizon_master_control.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --name horizon_master_control proto/horizon_master_control.proto >proto/horizon_master_control.protoh proto/horizon_proxy.protoh: proto/horizon_proxy.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name horizon_proxy proto/horizon_proxy.proto >proto/horizon_proxy.protoh proto/horizon_master.protoh: proto/horizon_master.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --name horizon_master proto/horizon_master.proto >proto/horizon_master.protoh proto/blackhole_horizon.protoh: proto/blackhole_horizon.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --arg "const char *host" --name blackhole_horizon proto/blackhole_horizon.proto >proto/blackhole_horizon.protoh proto/blackhole_wormhole.protoh: proto/blackhole_wormhole.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --arg "const char *host" --name blackhole_wormhole proto/blackhole_wormhole.proto >proto/blackhole_wormhole.protoh proto/blackhole_blackhole.protoh: proto/blackhole_blackhole.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --arg "const char *host" --name blackhole_blackhole proto/blackhole_blackhole.proto >proto/blackhole_blackhole.protoh proto/blackhole_parent.protoh: proto/blackhole_parent.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --name blackhole_parent proto/blackhole_parent.proto >proto/blackhole_parent.protoh proto/blackhole_control.protoh: proto/blackhole_control.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name blackhole_control proto/blackhole_control.proto >proto/blackhole_control.protoh proto/wormhole_control.protoh: proto/wormhole_control.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name wormhole_control proto/wormhole_control.proto >proto/wormhole_control.protoh proto/wormhole_master.protoh: proto/wormhole_master.proto buildp ./buildp --secretmode --arg "int no" --arg "HANDLE_INFO *c" --name wormhole_master proto/wormhole_master.proto >proto/wormhole_master.protoh proto/conproxy_control.protoh: proto/conproxy_control.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name conproxy_control proto/conproxy_control.proto >proto/conproxy_control.protoh proto/blackhole_devnull_control.protoh: proto/blackhole_devnull_control.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name blackhole_devnull_control proto/blackhole_devnull_control.proto >proto/blackhole_devnull_control.protoh proto/protocheck_2factors_control.protoh: proto/protocheck_2factors_control.proto buildp ./buildp --gomode --arg "int no" --arg "HANDLE_INFO *c" --name protocheck_2factors_control proto/protocheck_2factors_control.proto >proto/protocheck_2factors_control.protoh clean: rm -f $(PROGS) $(DOCS) *.o *.dvi *.log *.aux *.png *.toc *.bak proto/*.protoh install: mkdir -p $(RPM_BUILD_ROOT)/usr/sbin mkdir -p $(RPM_BUILD_ROOT)/etc mkdir -p $(RPM_BUILD_ROOT)/etc/rc.d/init.d mkdir -p $(RPM_BUILD_ROOT)/lib/systemd/system install -m755 blackhole $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-devnull $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-devnull-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-rulefilter $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-gensecret $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/blackhole ./install-service blackhole $(RPM_BUILD_ROOT)/lib/systemd/system install -m755 blackhole-devnull.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/blackhole-devnull ./install-config -m700 blackhole-rules.sh $(RPM_BUILD_ROOT)/etc/ ./install-config -m600 blackhole-options.conf $(RPM_BUILD_ROOT)/etc/ install -m755 horizon $(RPM_BUILD_ROOT)/usr/sbin install -m755 horizon-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 horizon-ident $(RPM_BUILD_ROOT)/usr/sbin install -m755 horizon-ident-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 horizon-vipalias $(RPM_BUILD_ROOT)/usr/sbin install -m755 horizon.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/horizon ./install-service horizon $(RPM_BUILD_ROOT)/lib/systemd/system ./install-config -m700 horizon-rules.sh $(RPM_BUILD_ROOT)/etc/ ./install-config -m600 horizon-options.conf $(RPM_BUILD_ROOT)/etc/ ./install-config -m600 conproxy-options.conf $(RPM_BUILD_ROOT)/etc/ install -m755 wormhole $(RPM_BUILD_ROOT)/usr/sbin install -m755 wormhole-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 wormhole.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/wormhole ./install-config -m700 wormhole-rules.sh $(RPM_BUILD_ROOT)/etc/ install -m755 conproxy $(RPM_BUILD_ROOT)/usr/sbin install -m755 conproxy-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 conproxy-connections $(RPM_BUILD_ROOT)/usr/sbin install -m755 conproxy.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/conproxy ./install-service conproxy $(RPM_BUILD_ROOT)/lib/systemd/system install -m755 tcpecho $(RPM_BUILD_ROOT)/usr/sbin install -m755 rawtest $(RPM_BUILD_ROOT)/usr/sbin install -m755 proxyclient $(RPM_BUILD_ROOT)/usr/sbin install -m755 udpproxy $(RPM_BUILD_ROOT)/usr/sbin install -m755 udpproxy.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/udpproxy install -m755 findproc $(RPM_BUILD_ROOT)/usr/sbin install -m755 findproc-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 findproc-mapug $(RPM_BUILD_ROOT)/usr/sbin install -m755 findproc.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/findproc ./install-config -m600 udpproxy-options.conf $(RPM_BUILD_ROOT)/etc install -m755 http_proxy $(RPM_BUILD_ROOT)/usr/sbin install -m755 http_proxy-control $(RPM_BUILD_ROOT)/usr/sbin install -m755 http_proxy.sysv $(RPM_BUILD_ROOT)/etc/rc.d/init.d/http_proxy install -m755 blackhole-stats $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-summary $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-monitor $(RPM_BUILD_ROOT)/usr/sbin install -m755 blackhole-logs $(RPM_BUILD_ROOT)/usr/sbin install -m755 protocheck-2factors $(RPM_BUILD_ROOT)/usr/sbin install -m755 protocheck-2factors-control $(RPM_BUILD_ROOT)/usr/sbin mkdir -p $(RPM_BUILD_ROOT)/$(MANPAGES)/man8 install -m 644 *.8 $(RPM_BUILD_ROOT)/$(MANPAGES)/man8 RPMTOPDIR=$(HOME)/rpmbuild RPM=rpmbuild buildspec: sed s/RPMREV/$(RPMREV)/ <$(CURDIR).spec \ | sed s/REV/$(PACKAGE_REV)/ \ > $(RPMTOPDIR)/SPECS/$(CURDIR)-$(PACKAGE_REV).spec rm -fr /tmp/$(CURDIR)-$(PACKAGE_REV) mkdir /tmp/$(CURDIR)-$(PACKAGE_REV) cp -a * /tmp/$(CURDIR)-$(PACKAGE_REV)/. (cd /tmp/$(CURDIR)-$(PACKAGE_REV)/ && make clean && \ cd .. && tar zcvf $(RPMTOPDIR)/SOURCES/$(CURDIR)-$(PACKAGE_REV).src.tar.gz $(CURDIR)-$(PACKAGE_REV)) rm -fr /tmp/$(CURDIR)-$(PACKAGE_REV) buildrpm: buildspec unset LD_PRELOAD; $(RPM) -ba $(RPMTOPDIR)/SPECS/$(CURDIR)-$(PACKAGE_REV).spec REPO=http://solucorp.solutions/repos/solucorp/blackhole distrpm: @eval `svn cat $(REPO)/trunk/Makefile | grep ^PACKAGE_REV=` ; \ $(MAKE) COPY="svn export --force $(REPO)/trunk/" \ PACKAGE_REV="$${PACKAGE_REV}r`svn st -u Makefile | tail -1 | while read a b c d ; do echo $$d ; done`" \ buildrpm # tests shasumtest: cctlcc -g -DTEST -Wall fdpass.tlcc -o /tmp/x -lstdc++ -lcrypto