X-Git-Url: https://git.syn-net.org/debian/?a=blobdiff_plain;f=src%2FMakefile;h=9d29cb506c91200b2435bd57de4a540019ee1b7a;hb=5123ec3335dda691676f62467c57edc2517a5d5c;hp=f3c98013d4fcc57ed27138cf446d8b7c7fe87f73;hpb=f9ad69dfae6bcec427652b0c4230603e465bd544;p=anytun.git diff --git a/src/Makefile b/src/Makefile index f3c9801..9d29cb5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -6,12 +6,12 @@ ## tunnel endpoints. It has less protocol overhead than IPSec in Tunnel ## mode and allows tunneling of every ETHER TYPE protocol (e.g. ## ethernet, ip, arp ...). satp directly includes cryptography and -## message authentication based on the methodes used by SRTP. It is +## message authentication based on the methods used by SRTP. It is ## intended to deliver a generic, scaleable and secure solution for ## tunneling and relaying of packets of any protocol. ## ## -## Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, +## Copyright (C) 2007-2014 Markus Grüneis, Othmar Gsenger, Erwin Nindl, ## Christian Pointner ## ## This file is part of Anytun. @@ -27,39 +27,82 @@ ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License -## along with anytun. If not, see . +## along with Anytun. If not, see . +## +## In addition, as a special exception, the copyright holders give +## permission to link the code of portions of this program with the +## OpenSSL library under certain conditions as described in each +## individual source file, and distribute linked combinations +## including the two. +## You must obey the GNU General Public License in all respects +## for all of the code used other than OpenSSL. If you modify +## file(s) with this exception, you may extend this exception to your +## version of the file(s), but you are not obligated to do so. If you +## do not wish to do so, delete this exception statement from your +## version. If you delete this exception statement from all source +## files in the program, then also delete it here. ## ifneq ($(MAKECMDGOALS),distclean) include include.mk endif -OBJS := tunDevice.o \ - packetSource.o \ - buffer.o \ - syncBuffer.o \ - plainPacket.o \ - encryptedPacket.o \ - cipher.o \ - authAlgo.o \ - keyDerivation.o \ - cipherFactory.o \ - authAlgoFactory.o \ - keyDerivationFactory.o \ - connectionList.o \ - connectionParam.o \ - networkAddress.o \ - networkPrefix.o \ - routingTable.o \ - signalController.o \ - log.o \ - logTargets.o \ - sysExec.o \ - anytunError.o \ - options.o \ - seqWindow.o \ - routingTreeNode.o \ - resolver.o +ANYTUNOBJS := packetSource.o \ + authAlgo.o \ + authAlgoFactory.o \ + cipher.o \ + cipherFactory.o \ + plainPacket.o \ + encryptedPacket.o \ + options.o \ + signalController.o \ + sysExec.o \ + resolver.o \ + buffer.o \ + syncBuffer.o \ + keyDerivation.o \ + keyDerivationFactory.o \ + connectionList.o \ + connectionParam.o \ + networkAddress.o \ + networkPrefix.o \ + routingTable.o \ + routingTreeNode.o \ + log.o \ + logTargets.o \ + anytunError.o \ + seqWindow.o + +ifneq ($(TARGET),mingw) +ANYTUNOBJS := $(ANYTUNOBJS) \ + tunDevice.o \ + daemonService.o +else +ANYTUNOBJS := $(ANYTUNOBJS) \ + win32/tunDevice.o \ + nullDaemon.o \ + win32/winService.o \ + win32/registryKey.o +endif + + +ANYSHOWOBJS := buffer.o \ + syncBuffer.o \ + keyDerivation.o \ + keyDerivationFactory.o \ + connectionList.o \ + connectionParam.o \ + networkAddress.o \ + networkPrefix.o \ + routingTable.o \ + routingTreeNode.o \ + log.o \ + logTargets.o \ + anytunError.o \ + seqWindow.o \ + nullOptions.o \ + resolver.o + SYNCOBJS := syncServer.o \ syncClient.o \ @@ -69,6 +112,7 @@ SYNCOBJS := syncServer.o \ syncConnectionCommand.o \ syncTcpConnection.o + ANYCTROBJS := signalController.o \ anyCtrOptions.o \ buffer.o \ @@ -79,6 +123,15 @@ ANYCTROBJS := signalController.o \ syncServer.o \ resolver.o +ifneq ($(TARGET),mingw) +ANYCTROBJS := $(ANYCTROBJS) \ + daemonService.o +else +ANYCTROBJS := $(ANYCTROBJS) \ + nullDaemon.o +endif + + ANYCONFOBJS := log.o \ logTargets.o \ anytunError.o \ @@ -102,18 +155,25 @@ ANYCONFOBJS := log.o \ syncConnectionCommand.o \ resolver.o -EXECUTABLES := anytun anytun-config anytun-controld anytun-showtables anytun-nosync +ifneq ($(TARGET),mingw) + EXE := +else + EXE := .exe +endif + +EXECUTABLES := anytun$(EXE) anytun-config$(EXE) anytun-controld$(EXE) anytun-showtables$(EXE) anytun-nosync$(EXE) EXEOBJS := anytun.o anytun-config.o anytun-controld.o anytun-showtables.o -SRCS := $(OBJS:%.o=%.cpp) +ANYTUNSRCS := $(ANYTUNOBJS:%.o=%.cpp) +ANYSHOWSRCS := $(ANYSHOWOBJS:%.o=%.cpp) SYNCSRCS := $(SYNCOBJS:%.o=%.cpp) ANYCTRSRCS := $(ANYCTROBJS:%.o=%.cpp) ANYCONFSRCS := $(ANYCONFOBJS:%.o=%.cpp) EXESRCS := $(EXEOBJS:%.o=%.cpp) -.PHONY: distclean cleanall clean manpage install install-bin install-etc install-man uninstall remove purge +.PHONY: distclean cleanall clean manpage install install-bin install-etc install-man uninstall remove purge remove-systemd install-systemd remove-bin remove-man remove-examples -all: $(EXECUTABLES) #libAnysync.a +all: $(EXECUTABLES) #libAnysync.a %.d: %.cpp @set -e; rm -f $@; \ @@ -122,49 +182,49 @@ all: $(EXECUTABLES) #libAnysync.a rm -f $@.$$$$; echo '(re)building $@' ifneq ($(MAKECMDGOALS),distclean) --include $(SRCS:%.cpp=%.d) $(SYNCSRCS:%.cpp=%.d) $(ANYCTRSRCS:%.cpp=%.d) $(ANYCONFSRCS:%.cpp=%.d) $(EXESRCS:%.cpp=%.d) +-include $(ANYTUNSRCS:%.cpp=%.d) $(ANYSHOWSRCS:%.cpp=%.d) $(SYNCSRCS:%.cpp=%.d) $(ANYCTRSRCS:%.cpp=%.d) $(ANYCONFSRCS:%.cpp=%.d) $(EXESRCS:%.cpp=%.d) endif strip: $(EXECUTABLES) - $(STRIP) -s $(EXECUTABLES) + $(STRIP) -s $(EXECUTABLES) -anytun: $(OBJS) $(SYNCOBJS) anytun.o - $(LD) $(OBJS) $(SYNCOBJS) anytun.o -o $@ $(LDFLAGS) +anytun$(EXE): $(ANYTUNOBJS) $(SYNCOBJS) anytun.o + $(LD) $(ANYTUNOBJS) $(SYNCOBJS) anytun.o -o $@ $(LDFLAGS) -anytun-static: $(OBJS) $(SYNCOBJS) anytun-noprivdrop.o - $(LD) $(OBJS) $(SYNCOBJS) anytun-noprivdrop.o -o $@ -Bstatic -lstdc++ -static $(LDFLAGS) -lpthread +anytun-static: $(ANYTUNOBJS) $(SYNCOBJS) anytun-noprivdrop.o + $(LD) $(ANYTUNOBJS) $(SYNCOBJS) anytun-noprivdrop.o -o $@ -Bstatic -lstdc++ -static $(LDFLAGS) -lpthread $(STRIP) -s anytun-static -anytun-nosync: $(OBJS) anytun-nosync.o - $(LD) $(OBJS) anytun-nosync.o -o $@ $(LDFLAGS) +anytun-nosync$(EXE): $(ANYTUNOBJS) anytun-nosync.o + $(LD) $(ANYTUNOBJS) anytun-nosync.o -o $@ $(LDFLAGS) anytun-nosync.o: anytun.cpp $(CXX) $(CXXFLAGS) -DANYTUN_NOSYNC $< -c -o anytun-nosync.o -anytun-noprivdrop.o: anytun.cpp - $(CXX) $(CXXFLAGS) -DNO_PRIVDROP $< -c -o anytun-noprivdrop.o - -anytun-showtables: $(OBJS) $(SYNCOBJS) anytun-showtables.o - $(LD) $(OBJS) $(SYNCOBJS) anytun-showtables.o -o $@ $(LDFLAGS) +anytun-showtables$(EXE): $(ANYSHOWOBJS) $(SYNCOBJS) anytun-showtables.o + $(LD) $(ANYSHOWOBJS) $(SYNCOBJS) anytun-showtables.o -o $@ $(LDFLAGS) -anytun-config: $(ANYCONFOBJS) anytun-config.o +anytun-config$(EXE): $(ANYCONFOBJS) anytun-config.o $(LD) $(ANYCONFOBJS) anytun-config.o -o $@ $(LDFLAGS) -anytun-controld: $(ANYCTROBJS) anytun-controld.o +anytun-controld$(EXE): $(ANYCTROBJS) anytun-controld.o $(LD) $(ANYCTROBJS) anytun-controld.o -o $@ $(LDFLAGS) -options.o: options.cpp +options.o: options.cpp $(CXX) $(CXXFLAGS) -DANYTUN_OPTIONS $< -c -o $@ -anyCtrOptions.o: options.cpp +anyCtrOptions.o: options.cpp $(CXX) $(CXXFLAGS) -DANYCTR_OPTIONS $< -c -o $@ -anyConfOptions.o: options.cpp +anyConfOptions.o: options.cpp $(CXX) $(CXXFLAGS) -DANYCONF_OPTIONS $< -c -o $@ +nullOptions.o: options.cpp + $(CXX) $(CXXFLAGS) $< -c -o $@ + %.o: %.cpp - $(CXX) $(CXXFLAGS) $< -c + $(CXX) $(CXXFLAGS) $< -c -o $@ libAnysync.a: $(OBJS) @@ -174,21 +234,29 @@ libAnysync.a: $(OBJS) anyrtpproxy: anytun $(MAKE) --directory=$(CURDIR)/anyrtpproxy - distclean: cleanall find . -name *.o -exec rm -f {} \; rm -f config.sub config.guess + rm -f daemonService.h + rm -f daemonService.cpp + rm -f signalHandler.hpp + rm -f sysExec.hpp + rm -f version.h rm -f tunDevice.cpp rm -f include.mk cleanall: clean - $(MAKE) --directory=$(CURDIR)/man clean + $(MAKE) --directory="../doc" clean clean: rm -f *.o rm -f *.d rm -f *.d.* + rm -f win32/*.o + rm -f win32/*.d + rm -f win32/*.d.* rm -f $(EXECUTABLES) + rm -f *.exe rm -f anytun-nosync rm -f -r doc/html/* rm -f -r doc/latex/* @@ -196,7 +264,7 @@ clean: $(MAKE) --directory=$(CURDIR)/anyrtpproxy clean manpage: - @cd man ; $(MAKE) + $(MAKE) --directory="../doc" manpage INSTALL_TARGETS := install-bin install-etc @@ -212,6 +280,11 @@ INSTALL_TARGETS += install-examples REMOVE_TARGETS += remove-examples endif +ifdef SYSTEMDDIR +INSTALL_TARGETS += install-systemd +REMOVE_TARGETS := remove-systemd +endif + install: all $(INSTALL_TARGETS) install-bin: $(EXECUTABLES) @@ -221,18 +294,36 @@ install-bin: $(EXECUTABLES) $(INSTALL) -m 755 anytun-config $(DESTDIR)$(BINDIR) $(INSTALL) -m 755 anytun-controld $(DESTDIR)$(BINDIR) $(INSTALL) -m 755 anytun-showtables $(DESTDIR)$(BINDIR) + $(INSTALL) -d $(DESTDIR)$(LIBDIR) + @ sed -e 's#/usr/local/sbin#$(SBINDIR)#' -e 's#/usr/local/bin#$(BINDIR)#' \ + -e 's#/usr/local/etc#$(ETCDIR)#' ../usr/lib/anytun-launcher > ../usr/lib/anytun-launcher.bak + $(INSTALL) -m 755 ../usr/lib/anytun-launcher.bak $(DESTDIR)$(LIBDIR)/anytun-launcher + rm -f ../usr/lib/anytun-launcher.bak install-etc: $(INSTALL) -d $(DESTDIR)$(ETCDIR)/anytun @ echo "example configurations can be found at $(EXAMPLESDIR)/anytun" > $(DESTDIR)$(ETCDIR)/anytun/README $(INSTALL) -d $(DESTDIR)$(ETCDIR)/init.d - @ sed -e 's#DAEMON=/usr/sbin/anytun#DAEMON=$(SBINDIR)/anytun#' \ - -e 's#ANYTUNCONFIG=/usr/bin/anytun-config#ANYTUNCONFIG=$(BINDIR)/anytun-config#' \ - -e 's#CONTROLDAEMON=/usr/bin/anytun-controld#CONTROLDAEMON=$(BINDIR)/anytun-controld#' \ - -e 's#CONFIG_DIR=/etc/anytun#CONFIG_DIR=$(ETCDIR)/anytun#' ../etc/init.d/anytun > ../etc/init.d/anytun.bak + @ sed -e 's#/usr/local/bin#$(BINDIR)#' -e 's#/usr/local/lib#$(LIBDIR)#' -e 's#/usr/local/etc#$(ETCDIR)#' ../etc/init.d/anytun > ../etc/init.d/anytun.bak $(INSTALL) -m 755 ../etc/init.d/anytun.bak $(DESTDIR)$(ETCDIR)/init.d/anytun rm -f ../etc/init.d/anytun.bak +install-systemd: + $(INSTALL) -d $(DESTDIR)$(SYSTEMDDIR) + $(INSTALL) -m 644 ../usr/lib/systemd/system/anytun.service $(DESTDIR)$(SYSTEMDDIR)/anytun.service + @ sed -e 's#/usr/local/lib#$(LIBDIR)#' ../usr/lib/systemd/system/anytun@.service > ../usr/lib/systemd/system/anytun@.service.bak + @ sed -e 's#/usr/local/lib#$(LIBDIR)#' ../usr/lib/systemd/system/anytun-controld@.service > ../usr/lib/systemd/system/anytun-controld@.service.bak + $(INSTALL) -m 644 ../usr/lib/systemd/system/anytun@.service.bak $(DESTDIR)$(SYSTEMDDIR)/anytun@.service + $(INSTALL) -m 644 ../usr/lib/systemd/system/anytun-controld@.service.bak $(DESTDIR)$(SYSTEMDDIR)/anytun-controld@.service + rm -f ../usr/lib/systemd/system/anytun@.service.bak + rm -f ../usr/lib/systemd/system/anytun-controld@.service.bak + $(INSTALL) -d $(DESTDIR)$(SYSTEMDGENERATORDIR) + @ sed -e 's#/usr/local/etc#$(ETCDIR)#' ../usr/lib/systemd/system-generator/anytun-generator > ../usr/lib/systemd/system-generator/anytun-generator.bak + $(INSTALL) -m 755 ../usr/lib/systemd/system-generator/anytun-generator.bak $(DESTDIR)$(SYSTEMDGENERATORDIR)/anytun-generator + rm -f ../usr/lib/systemd/system-generator/anytun-generator.bak + $(INSTALL) -d $(DESTDIR)$(TMPFILESDDIR) + $(INSTALL) -m 644 ../usr/lib/tmpfiles.d/anytun.conf $(DESTDIR)$(TMPFILESDDIR)/anytun.conf + install-examples: $(INSTALL) -d $(DESTDIR)$(EXAMPLESDIR)/anytun $(INSTALL) -m 644 ../etc/anytun/autostart $(DESTDIR)$(EXAMPLESDIR)/anytun/autostart @@ -251,7 +342,7 @@ install-examples: cd conf.d ; \ for file in `ls`; do \ if [ -f $$file ]; then \ - $(INSTALL) -m 644 $$file $(DESTDIR)$(EXAMPLESDIR)/anytun/$$dir/conf.d ; \ + $(INSTALL) -m 600 $$file $(DESTDIR)$(EXAMPLESDIR)/anytun/$$dir/conf.d ; \ fi ; \ done ; \ cd .. ; \ @@ -263,10 +354,10 @@ install-examples: install-man: manpage $(INSTALL) -d $(DESTDIR)$(MANDIR)/man8/ - $(INSTALL) -m 644 man/anytun.8 $(DESTDIR)$(MANDIR)/man8/ - $(INSTALL) -m 644 man/anytun-config.8 $(DESTDIR)$(MANDIR)/man8/ - $(INSTALL) -m 644 man/anytun-controld.8 $(DESTDIR)$(MANDIR)/man8/ - $(INSTALL) -m 644 man/anytun-showtables.8 $(DESTDIR)$(MANDIR)/man8/ + $(INSTALL) -m 644 ../doc/anytun.8 $(DESTDIR)$(MANDIR)/man8/ + $(INSTALL) -m 644 ../doc/anytun-config.8 $(DESTDIR)$(MANDIR)/man8/ + $(INSTALL) -m 644 ../doc/anytun-controld.8 $(DESTDIR)$(MANDIR)/man8/ + $(INSTALL) -m 644 ../doc/anytun-showtables.8 $(DESTDIR)$(MANDIR)/man8/ uninstall: remove @@ -282,6 +373,13 @@ remove-bin: remove-etc: rm -f $(DESTDIR)$(ETCDIR)/init.d/anytun +remove-systemd: + rm -f $(DESTDIR)$(SYSTEMDDIR)/anytun.service + rm -f $(DESTDIR)$(SYSTEMDDIR)/anytun@.service + rm -f $(DESTDIR)$(SYSTEMDDIR)/anytun-controld@.service + rm -f $(DESTDIR)$(SYSTEMDGENERATORDIR)/anytun-generator + rm -f $(DESTDIR)$(TMPFILESDDIR)/anytun.conf + remove-examples: rm -rf $(DESTDIR)$(EXAMPLESDIR)/anytun/