## 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 <satp@wirdorange.org>
##
## This file is part of Anytun.
## 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 <http://www.gnu.org/licenses/>.
+## along with Anytun. If not, see <http://www.gnu.org/licenses/>.
+##
+## 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 \
syncConnectionCommand.o \
syncTcpConnection.o
+
ANYCTROBJS := signalController.o \
anyCtrOptions.o \
buffer.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 \
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)
.PHONY: distclean cleanall clean manpage install install-bin install-etc install-man uninstall remove purge
-all: $(EXECUTABLES) #libAnysync.a
+all: $(EXECUTABLES) #libAnysync.a
%.d: %.cpp
@set -e; rm -f $@; \
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)
-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)
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)
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/*
$(MAKE) --directory=$(CURDIR)/anyrtpproxy clean
manpage:
- @cd man ; $(MAKE)
+ $(MAKE) --directory="../doc" manpage
INSTALL_TARGETS := install-bin install-etc
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 .. ; \
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