]> git.ipfire.org Git - people/stevee/network.git/blobdiff - Makefile
firewall: Re-unity firewall6/4 configuration again.
[people/stevee/network.git] / Makefile
index 84286cbdee5d53bb75a19ae71a050c576feb983f..ff79ad8c48e9dfc0e9bcd7d97637b1841df771b2 100644 (file)
--- a/Makefile
+++ b/Makefile
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2012-2013 IPFire Network Development Team                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
-NAME = network
-VER  = 003
+PACKAGE_NAME    = network
+PACKAGE_VERSION = 006
 
 DESTDIR=
 
+# Export HTML documents to this directory.
+HTML_DOCS_DIR = html
+
 prefix=/usr
 bindir=$(prefix)/bin
 sbindir=$(prefix)/sbin
 libdir=$(prefix)/lib
+datadir=$(prefix)/share
+mandir=$(datadir)/man
 sysconfdir=/etc
 localstatedir=/var
 systemdunitdir=$(prefix)/lib/systemd/system
+tmpfilesdir=$(prefix)/lib/tmpfiles.d
 
 # File to store the version number in.
 VERSION_FILE = $(DESTDIR)$(libdir)/network/version
 
-all:
-       @echo "Nothing to do here."
+# A list of files which should be removed on "make clean"
+CLEANFILES =
+
+# man pages
+MAN_PAGES = \
+       man/firewall-config.8 \
+       man/network.8 \
+       man/network-config.8 \
+       man/network-device.8 \
+       man/network-dns-server.8 \
+       man/network-port-batman-adv.8 \
+       man/network-port-batman-adv-port.8 \
+       man/network-route.8 \
+       man/network-zone.8 \
+       man/network-zone-6to4-tunnel.8 \
+       man/network-zone-aiccu.8 \
+       man/network-zone-bridge.8 \
+       man/network-zone-config-pppoe-server.8 \
+       man/network-zone-pppoe.8
+
+MAN_PAGES_HTML = $(patsubst %.xml,%.html,$(MAN_PAGES_XML))
+MAN_PAGES_XML  = $(patsubst %.8,%.xml,$(MAN_PAGES))
+MAN_PAGES_8    = $(filter %.8,$(MAN_PAGES))
+
+CLEANFILES += \
+       $(MAN_PAGES) \
+       $(MAN_PAGES_HTML)
+
+XSLTPROC = xsltproc
+
+XSLTPROC_FLAGS = \
+       --nonet \
+       --stringparam man.output.quietly 1 \
+       --stringparam funcsynopsis.style ansi \
+       --stringparam man.th.extra1.suppress 1 \
+       --stringparam man.authors.section.enabled 1 \
+       --stringparam man.copyright.section.enabled 1
+
+XSLTPROC_COMMAND_MAN = \
+       $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) \
+               http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+XSLTPROC_COMMAND_HTML = \
+       $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) man/custom-html.xsl $<
+
+man/%.8: man/%.xml
+       $(XSLTPROC_COMMAND_MAN)
 
-install:
+man/%.html: man/%.xml man/custom-html.xsl
+       $(XSLTPROC_COMMAND_HTML)
+
+.PHONY: all
+all: $(MAN_PAGES)
+
+.PHONY: install
+install: $(MAN_PAGES)
        -mkdir -pv $(DESTDIR)$(sysconfdir)/{network/{ports,zones},ppp}
        -mkdir -pv $(DESTDIR)$(libdir)/{network,sysctl.d,udev}
        -mkdir -pv $(DESTDIR)$(localstatedir)/log/network
        -mkdir -pv $(DESTDIR)$(sbindir)
        -mkdir -pv $(DESTDIR)$(systemdunitdir)
+       -mkdir -pv $(DESTDIR)$(tmpfilesdir)
+       -mkdir -pv $(DESTDIR)$(datadir)/firewall
 
+       install -m 755 -v firewall-config $(DESTDIR)$(sbindir)
+       install -m 755 -v firewall6 $(DESTDIR)$(sbindir)
+       install -m 755 -v firewall4 $(DESTDIR)$(sbindir)
        install -m 755 -v network $(DESTDIR)$(sbindir)
 
        cp -rfv {hooks,header*,functions*} $(DESTDIR)$(libdir)/network/
@@ -32,9 +114,16 @@ install:
        cp -rfv udev/* $(DESTDIR)$(libdir)/udev
        cp -rfv network-* $(DESTDIR)$(libdir)/network/
        cp -vf  systemd/*.service $(DESTDIR)$(systemdunitdir)
+       cp -vf network.tmpfiles $(DESTDIR)$(tmpfilesdir)/network.conf
 
-       # Install bridge-stp. 
-       install -m 755 bridge-stp $(DESTDIR)$(sbindir)/
+       # Install the helper tools.
+       -mkdir -pv $(DESTDIR)$(libdir)/network/helpers
+       cp -vf helpers/* $(DESTDIR)$(libdir)/network/helpers
+
+       # Install bridge-stp.
+       ln -svf --relative \
+               $(DESTDIR)$(libdir)/network/helpers/bridge-stp \
+               $(DESTDIR)$(sbindir)/
 
        # Install dhclient script and helper.
        install -m 755 dhclient-helper $(DESTDIR)$(libdir)/network/
@@ -46,13 +135,32 @@ install:
        ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ip-down
        ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ipv6-up
        ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ipv6-down
-       install -m 755 -v ppp/dialer $(DESTDIR)$(sysconfdir)/ppp
+       install -m 755 -v ppp/dialer $(DESTDIR)$(libdir)/network/
+
+       # Install pppoe-server wrapper.
+       install -m 755 ppp/pppoe-server $(DESTDIR)$(libdir)/network/
+
+       # Install the firewall macros.
+       cp -av macros $(DESTDIR)$(datadir)/firewall/
 
        # Create the version file.
        : > $(VERSION_FILE)
        echo "# This file is automatically generated." >> $(VERSION_FILE)
-       echo "NETWORK_VERSION=$(VER)" >> $(VERSION_FILE)
+       echo "NETWORK_VERSION=$(PACKAGE_VERSION)" >> $(VERSION_FILE)
+
+       # Install man pages.
+       -mkdir -pv $(DESTDIR)$(mandir)/man8
+       install -v -m 644 $(MAN_PAGES_8) $(DESTDIR)$(mandir)/man8
+
+.PHONY: clean
+clean:
+       rm -f $(CLEANFILES)
 
 dist:
-       git archive --format tar --prefix $(NAME)-$(VER)/ HEAD | gzip -9 > \
-               $(NAME)-$(VER).tar.gz
+       git archive --format tar --prefix $(PACKAGE_NAME)-$(PACKAGE_VERSION)/ HEAD | gzip -9 > \
+               $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz
+
+.PHONY: export-html-docs
+export-html-docs: $(MAN_PAGES_HTML)
+       mkdir -pv $(HTML_DOCS_DIR)
+       cp -vf $^ $(HTML_DOCS_DIR)