]> git.ipfire.org Git - people/stevee/network.git/blob - Makefile
6c3a70fb1a1a1853121ede951847a61588c91a38
[people/stevee/network.git] / Makefile
1 include Makeconfig
2
3 DESTDIR=
4
5 # Export HTML documents to this directory.
6 HTML_DOCS_DIR = html
7
8 prefix=/usr
9 bindir=$(prefix)/bin
10 sbindir=$(prefix)/sbin
11 libdir=$(prefix)/lib
12 datadir=$(prefix)/share
13 mandir=$(datadir)/man
14 sysconfdir=/etc
15 localstatedir=/var
16 systemdunitdir=$(prefix)/lib/systemd/system
17 tmpfilesdir=$(prefix)/lib/tmpfiles.d
18
19 # File to store the version number in.
20 VERSION_FILE = $(DESTDIR)$(libdir)/network/version
21
22 # A list of files which should be removed on "make clean"
23 CLEANFILES =
24
25 # man pages
26 MAN_PAGES = \
27 man/network.8 \
28 man/network-config.8 \
29 man/network-device.8 \
30 man/network-dns-server.8 \
31 man/network-port-batman-adv.8 \
32 man/network-port-batman-adv-port.8 \
33 man/network-route.8 \
34 man/network-zone.8 \
35 man/network-zone-6to4-tunnel.8 \
36 man/network-zone-bridge.8 \
37 man/network-zone-config-pppoe-server.8 \
38 man/network-zone-pppoe.8
39
40 MAN_PAGES_HTML = $(patsubst %.xml,%.html,$(MAN_PAGES_XML))
41 MAN_PAGES_XML = $(patsubst %.8,%.xml,$(MAN_PAGES))
42 MAN_PAGES_8 = $(filter %.8,$(MAN_PAGES))
43
44 CLEANFILES += \
45 $(MAN_PAGES) \
46 $(MAN_PAGES_HTML)
47
48 XSLTPROC = xsltproc
49
50 XSLTPROC_FLAGS = \
51 --nonet \
52 --stringparam man.output.quietly 1 \
53 --stringparam funcsynopsis.style ansi \
54 --stringparam man.th.extra1.suppress 1 \
55 --stringparam man.authors.section.enabled 1 \
56 --stringparam man.copyright.section.enabled 1
57
58 XSLTPROC_COMMAND_MAN = \
59 $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) \
60 http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
61
62 XSLTPROC_COMMAND_HTML = \
63 $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) man/custom-html.xsl $<
64
65 man/%.8: man/%.xml
66 $(XSLTPROC_COMMAND_MAN)
67
68 man/%.html: man/%.xml man/custom-html.xsl
69 $(XSLTPROC_COMMAND_HTML)
70
71 .PHONY: all
72 all: $(MAN_PAGES)
73
74 .PHONY: install
75 install: $(MAN_PAGES)
76 -mkdir -pv $(DESTDIR)$(sysconfdir)/{network/{ports,zones},ppp}
77 -mkdir -pv $(DESTDIR)$(libdir)/{network,sysctl.d,udev}
78 -mkdir -pv $(DESTDIR)$(localstatedir)/log/network
79 -mkdir -pv $(DESTDIR)$(sbindir)
80 -mkdir -pv $(DESTDIR)$(systemdunitdir)
81 -mkdir -pv $(DESTDIR)$(tmpfilesdir)
82 -mkdir -pv $(DESTDIR)$(datadir)/firewall
83
84 install -m 755 -v firewall $(DESTDIR)$(sbindir)
85 install -m 755 -v network $(DESTDIR)$(sbindir)
86
87 cp -rfv {hooks,header*,functions*} $(DESTDIR)$(libdir)/network/
88 cp -fv sysctl.d/* $(DESTDIR)$(libdir)/sysctl.d/
89 cp -rfv udev/* $(DESTDIR)$(libdir)/udev
90 cp -rfv network-* $(DESTDIR)$(libdir)/network/
91 cp -vf systemd/*.service $(DESTDIR)$(systemdunitdir)
92 cp -vf network.tmpfiles $(DESTDIR)$(tmpfilesdir)/network.conf
93
94 # Install the helper tools.
95 -mkdir -pv $(DESTDIR)$(libdir)/network/helpers
96 cp -vf helpers/* $(DESTDIR)$(libdir)/network/helpers
97
98 # Install bridge-stp.
99 ln -svf --relative \
100 $(DESTDIR)$(libdir)/network/helpers/bridge-stp \
101 $(DESTDIR)$(sbindir)/
102
103 # Install dhclient script and helper.
104 install -m 755 dhclient-helper $(DESTDIR)$(libdir)/network/
105 install -m 755 dhclient-script $(DESTDIR)$(sbindir)/
106
107 install -m 755 -v ppp/ip-updown $(DESTDIR)$(sysconfdir)/ppp
108 ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ip-pre-up
109 ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ip-up
110 ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ip-down
111 ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ipv6-up
112 ln -svf ip-updown $(DESTDIR)$(sysconfdir)/ppp/ipv6-down
113 install -m 755 -v ppp/dialer $(DESTDIR)$(libdir)/network/
114
115 # Install pppoe-server wrapper.
116 install -m 755 ppp/pppoe-server $(DESTDIR)$(libdir)/network/
117
118 # Install the firewall macros.
119 cp -av macros $(DESTDIR)$(datadir)/firewall/
120
121 # Create the version file.
122 : > $(VERSION_FILE)
123 echo "# This file is automatically generated." >> $(VERSION_FILE)
124 echo "NETWORK_VERSION=$(PACKAGE_VERSION)" >> $(VERSION_FILE)
125
126 # Install man pages.
127 -mkdir -pv $(DESTDIR)$(mandir)/man8
128 install -v -m 644 $(MAN_PAGES_8) $(DESTDIR)$(mandir)/man8
129
130 .PHONY: clean
131 clean:
132 rm -f $(CLEANFILES)
133
134 dist:
135 git archive --format tar --prefix $(PACKAGE_NAME)-$(PACKAGE_VERSION)/ HEAD | gzip -9 > \
136 $(PACKAGE_NAME)-$(PACKAGE_VERSION).tar.gz
137
138 .PHONY: export-html-docs
139 export-html-docs: $(MAN_PAGES_HTML)
140 mkdir -pv $(HTML_DOCS_DIR)
141 cp -vf $^ $(HTML_DOCS_DIR)