-
-NAME = network
-VER = 002
+include Makeconfig
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)/lib/network/version
+VERSION_FILE = $(DESTDIR)$(libdir)/network/version
+
+# A list of files which should be removed on "make clean"
+CLEANFILES =
+
+# man pages
+MAN_PAGES = \
+ 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-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 $<
-all:
- @echo "Nothing to do here."
+man/%.8: man/%.xml
+ $(XSLTPROC_COMMAND_MAN)
-install:
- -mkdir -pv $(DESTDIR)/etc/{network,ppp}
- -mkdir -pv $(DESTDIR)/lib/{network,sysctl.d,udev}
- -mkdir -pv $(DESTDIR)/sbin
- -mkdir -pv $(DESTDIR)/var/log/network
+man/%.html: man/%.xml man/custom-html.xsl
+ $(XSLTPROC_COMMAND_HTML)
- install -m 755 -v network $(DESTDIR)/sbin
+.PHONY: all
+all: $(MAN_PAGES)
- cp -rfv {hooks,header*,functions*} $(DESTDIR)/lib/network/
- cp -fv sysctl.d/* $(DESTDIR)/lib/sysctl.d/
- cp -rfv udev/* $(DESTDIR)/lib/udev
- cp -rfv network-* $(DESTDIR)/lib/network/
+.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 ppp/ip-updown $(DESTDIR)/etc/ppp
- ln -svf ip-updown $(DESTDIR)/etc/ppp/ip-pre-up
- ln -svf ip-updown $(DESTDIR)/etc/ppp/ip-up
- ln -svf ip-updown $(DESTDIR)/etc/ppp/ip-down
- ln -svf ip-updown ${DESTDIR}/etc/ppp/ipv6-up
- ln -svf ip-updown ${DESTDIR}/etc/ppp/ipv6-down
- install -m 755 -v ppp/dialer $(DESTDIR)/etc/ppp
+ install -m 755 -v firewall $(DESTDIR)$(sbindir)
+ install -m 755 -v network $(DESTDIR)$(sbindir)
+
+ cp -rfv {hooks,header*,functions*} $(DESTDIR)$(libdir)/network/
+ cp -fv sysctl.d/* $(DESTDIR)$(libdir)/sysctl.d/
+ 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 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/
+ install -m 755 dhclient-script $(DESTDIR)$(sbindir)/
+
+ install -m 755 -v ppp/ip-updown $(DESTDIR)$(sysconfdir)/ppp
+ ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ip-pre-up
+ ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ip-up
+ 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)$(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}
+ : > $(VERSION_FILE)
+ echo "# This file is automatically generated." >> $(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)