New upstream version 0.3.6
[anytun.git] / src / Makefile
index b2f1646..9d29cb5 100644 (file)
@@ -171,7 +171,7 @@ 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
 
@@ -186,7 +186,7 @@ ifneq ($(MAKECMDGOALS),distclean)
 endif
 
 strip: $(EXECUTABLES)
-       $(STRIP) -s $(EXECUTABLES) 
+       $(STRIP) -s $(EXECUTABLES)
 
 anytun$(EXE): $(ANYTUNOBJS) $(SYNCOBJS) anytun.o
        $(LD) $(ANYTUNOBJS) $(SYNCOBJS) anytun.o -o $@ $(LDFLAGS)
@@ -211,13 +211,13 @@ 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
@@ -234,7 +234,6 @@ libAnysync.a: $(OBJS)
 anyrtpproxy: anytun
        $(MAKE) --directory=$(CURDIR)/anyrtpproxy
 
-
 distclean: cleanall
        find . -name *.o -exec rm -f {} \;
        rm -f config.sub config.guess
@@ -281,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)
@@ -290,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
@@ -351,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/