/mandos/release

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/release

« back to all changes in this revision

Viewing changes to Makefile

Merge new wireless network hook.  Fix bridge network hook to use
hardware addresses instead of interface names.  Implement and document
new "CONNECT" environment variable for network hooks.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
        -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings \
6
6
        -Wconversion -Wstrict-prototypes -Wold-style-definition \
7
7
        -Wpacked -Wnested-externs -Winline -Wvolatile-register-var
8
 
#       -Wunreachable-code 
 
8
#       -Wunreachable-code
9
9
#DEBUG=-ggdb3
10
10
# For info about _FORTIFY_SOURCE, see
11
11
# <http://www.kernel.org/doc/man-pages/online/pages/man7/feature_test_macros.7.html>
23
23
OPTIMIZE=-Os
24
24
LANGUAGE=-std=gnu99
25
25
htmldir=man
26
 
version=1.2
 
26
version=1.4.1
27
27
SED=sed
28
28
 
 
29
USER=$(firstword $(subst :, ,$(shell getent passwd _mandos || getent passwd nobody || echo 65534)))
 
30
GROUP=$(firstword $(subst :, ,$(shell getent group _mandos || getent group nobody || echo 65534)))
 
31
 
29
32
## Use these settings for a traditional /usr/local install
30
33
# PREFIX=$(DESTDIR)/usr/local
31
34
# CONFDIR=$(DESTDIR)/etc/mandos
32
35
# KEYDIR=$(DESTDIR)/etc/mandos/keys
33
36
# MANDIR=$(PREFIX)/man
34
37
# INITRAMFSTOOLS=$(DESTDIR)/etc/initramfs-tools
 
38
# STATEDIR=$(DESTDIR)/var/lib/mandos
35
39
##
36
40
 
37
41
## These settings are for a package-type install
40
44
KEYDIR=$(DESTDIR)/etc/keys/mandos
41
45
MANDIR=$(PREFIX)/share/man
42
46
INITRAMFSTOOLS=$(DESTDIR)/usr/share/initramfs-tools
 
47
STATEDIR=$(DESTDIR)/var/lib/mandos
43
48
##
44
49
 
45
50
GNUTLS_CFLAGS=$(shell pkg-config --cflags-only-I gnutls)
54
59
CFLAGS=$(WARN) $(DEBUG) $(FORTIFY) $(COVERAGE) $(OPTIMIZE) \
55
60
        $(LANGUAGE) $(GNUTLS_CFLAGS) $(AVAHI_CFLAGS) $(GPGME_CFLAGS) \
56
61
        -DVERSION='"$(version)"'
57
 
LDFLAGS=$(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
 
62
LDFLAGS=-Xlinker --as-needed $(COVERAGE) $(LINK_FORTIFY) $(foreach flag,$(LINK_FORTIFY_LD),-Xlinker $(flag))
58
63
 
59
64
# Commands to format a DocBook <refentry> document into a manual page
60
65
DOCBOOKTOMAN=$(strip cd $(dir $<); xsltproc --nonet --xinclude \
65
70
        --param man.authors.section.enabled     0 \
66
71
         /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl \
67
72
        $(notdir $<); \
68
 
        $(MANPOST) $(notdir $@))
 
73
        $(MANPOST) $(notdir $@);\
 
74
        LANG=en_US.UTF-8 MANWIDTH=80 man --warnings --encoding=UTF-8 \
 
75
        --local-file $(notdir $@) >/dev/null)
69
76
# DocBook-to-man post-processing to fix a '\n' escape bug
70
77
MANPOST=$(SED) --in-place --expression='s,\\\\en,\\en,g;s,\\n,\\en,g'
71
78
 
92
99
        plugins.d/mandos-client.8mandos \
93
100
        plugins.d/password-prompt.8mandos plugins.d/usplash.8mandos \
94
101
        plugins.d/splashy.8mandos plugins.d/askpass-fifo.8mandos \
95
 
        plugins.d/plymouth.8mandos
 
102
        plugins.d/plymouth.8mandos intro.8mandos
96
103
 
97
104
htmldocs=$(addsuffix .xhtml,$(DOCS))
98
105
 
119
126
%.8mandos.xhtml: %.xml common.ent legalnotice.xml
120
127
        $(DOCBOOKTOHTML)
121
128
 
 
129
intro.8mandos: intro.xml common.ent legalnotice.xml
 
130
        $(DOCBOOKTOMAN)
 
131
intro.8mandos.xhtml: intro.xml common.ent legalnotice.xml
 
132
        $(DOCBOOKTOHTML)
 
133
 
122
134
mandos.8: mandos.xml common.ent mandos-options.xml overview.xml \
123
135
                legalnotice.xml
124
136
        $(DOCBOOKTOMAN)
210
222
                $@)
211
223
 
212
224
plugins.d/mandos-client: plugins.d/mandos-client.c
213
 
        $(LINK.c) $(GNUTLS_LIBS) $(AVAHI_LIBS) $(GPGME_LIBS) $(strip\
214
 
                ) $(COMMON) $^ $(LOADLIBES) $(LDLIBS) -o $@
 
225
        $(LINK.c) $^ -lrt $(GNUTLS_LIBS) $(AVAHI_LIBS) $(strip\
 
226
                ) $(GPGME_LIBS) $(LOADLIBES) $(LDLIBS) -o $@
215
227
 
216
228
.PHONY : all doc html clean distclean run-client run-server install \
217
229
        install-server install-client uninstall uninstall-server \
223
235
distclean: clean
224
236
mostlyclean: clean
225
237
maintainer-clean: clean
226
 
        -rm --force --recursive keydir confdir
 
238
        -rm --force --recursive keydir confdir statedir
227
239
 
228
240
check:  all
229
241
        ./mandos --check
243
255
        @echo "###################################################################"
244
256
        ./plugin-runner --plugin-dir=plugins.d \
245
257
                --config-file=plugin-runner.conf \
246
 
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt \
 
258
                --options-for=mandos-client:--seckey=keydir/seckey.txt,--pubkey=keydir/pubkey.txt,--network-hook-dir=network-hooks.d \
247
259
                $(CLIENTARGS)
248
260
 
249
261
# Used by run-client
253
265
 
254
266
# Run the server with a local config
255
267
run-server: confdir/mandos.conf confdir/clients.conf
256
 
        @echo "#################################################################"
257
 
        @echo "# NOTE: Please IGNORE the error about \"Could not open file      #"
258
 
        @echo "# u'/var/run/mandos.pid'\" -  it is harmless and is caused by    #"
259
 
        @echo "# the server not running as root.  Do NOT run \"make run-server\" #"
260
 
        @echo "# server as root if you didn't also unpack and compile it thus. #"
261
 
        @echo "#################################################################"
262
 
        ./mandos --debug --no-dbus --configdir=confdir $(SERVERARGS)
 
268
        ./mandos --debug --no-dbus --configdir=confdir \
 
269
                --statedir=statedir $(SERVERARGS)
263
270
 
264
271
# Used by run-server
265
272
confdir/mandos.conf: mandos.conf
270
277
        install --mode=u=rw $< $@
271
278
# Add a client password
272
279
        ./mandos-keygen --dir keydir --password >> $@
 
280
statedir:
 
281
        install --directory statedir
273
282
 
274
283
install: install-server install-client-nokey
275
284
 
280
289
 
281
290
install-server: doc
282
291
        install --directory $(CONFDIR)
 
292
        install --directory --mode=u=rwx --owner=$(USER) \
 
293
                --group=$(GROUP) $(STATEDIR)
283
294
        install --mode=u=rwx,go=rx mandos $(PREFIX)/sbin/mandos
284
295
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \
285
296
                mandos-ctl
317
328
                install --mode=u=rwx \
318
329
                        --directory "$(CONFDIR)/plugins.d"; \
319
330
        fi
 
331
        install --mode=u=rwx,go=rx --directory \
 
332
                "$(CONFDIR)/network-hooks.d"
320
333
        install --mode=u=rwx,go=rx \
321
334
                --target-directory=$(PREFIX)/lib/mandos plugin-runner
322
335
        install --mode=u=rwx,go=rx --target-directory=$(PREFIX)/sbin \