child-sa: Don't update outbound policies if they are not installed
[strongswan.git] / conf / Makefile.am
1 # make this relative to the location of strongswan.conf
2 strongswanconfdir = `dirname $(strongswan_conf)`
3 strongswanddir = $(strongswanconfdir)/strongswan.d
4 charonconfdir = $(strongswanddir)/charon
5 # copy these files also to /usr/share
6 templatesdir = $(pkgdatadir)/templates/config
7 optionstemplatedir = $(templatesdir)/strongswan.d
8 pluginstemplatedir = $(templatesdir)/plugins
9
10 options = \
11         options/aikgen.opt \
12         options/attest.opt \
13         options/charon.opt \
14         options/charon-logging.opt \
15         options/charon-nm.opt \
16         options/charon-systemd.opt \
17         options/imcv.opt \
18         options/imv_policy_manager.opt \
19         options/manager.opt \
20         options/medsrv.opt \
21         options/pki.opt \
22         options/pool.opt \
23         options/scepclient.opt \
24         options/starter.opt \
25         options/swanctl.opt \
26         options/tnc.opt \
27         options/sec-updater.opt \
28         options/sw-collector.opt
29
30 plugins = \
31         plugins/addrblock.opt \
32         plugins/android_log.opt \
33         plugins/attr.opt \
34         plugins/attr-sql.opt \
35         plugins/bliss.opt \
36         plugins/bypass-lan.opt \
37         plugins/certexpire.opt \
38         plugins/coupling.opt \
39         plugins/curl.opt \
40         plugins/dhcp.opt \
41         plugins/dnscert.opt \
42         plugins/duplicheck.opt \
43         plugins/eap-aka.opt \
44         plugins/eap-aka-3gpp.opt \
45         plugins/eap-aka-3gpp2.opt \
46         plugins/eap-dynamic.opt \
47         plugins/eap-gtc.opt \
48         plugins/eap-peap.opt \
49         plugins/eap-radius.opt \
50         plugins/eap-sim.opt \
51         plugins/eap-simaka-sql.opt \
52         plugins/eap-tls.opt \
53         plugins/eap-tnc.opt \
54         plugins/eap-ttls.opt \
55         plugins/error-notify.opt \
56         plugins/ext-auth.opt \
57         plugins/forecast.opt \
58         plugins/gcrypt.opt \
59         plugins/ha.opt \
60         plugins/imc-attestation.opt \
61         plugins/imc-hcd.opt \
62         plugins/imc-os.opt \
63         plugins/imc-scanner.opt \
64         plugins/imc-swid.opt \
65         plugins/imc-swima.opt \
66         plugins/imc-test.opt \
67         plugins/imv-attestation.opt \
68         plugins/imv-os.opt \
69         plugins/imv-scanner.opt \
70         plugins/imv-swid.opt \
71         plugins/imv-swima.opt \
72         plugins/imv-test.opt \
73         plugins/ipseckey.opt \
74         plugins/led.opt \
75         plugins/kernel-libipsec.opt \
76         plugins/kernel-netlink.opt \
77         plugins/kernel-pfkey.opt \
78         plugins/kernel-pfroute.opt \
79         plugins/load-tester.opt \
80         plugins/lookip.opt \
81         plugins/ntru.opt \
82         plugins/openssl.opt \
83         plugins/osx-attr.opt \
84         plugins/p-cscf.opt \
85         plugins/pkcs11.opt \
86         plugins/radattr.opt \
87         plugins/random.opt \
88         plugins/resolve.opt \
89         plugins/revocation.opt \
90         plugins/save-keys.opt \
91         plugins/socket-default.opt \
92         plugins/sql.opt \
93         plugins/stroke.opt \
94         plugins/systime-fix.opt \
95         plugins/tnc-ifmap.opt \
96         plugins/tnc-imc.opt \
97         plugins/tnc-imv.opt \
98         plugins/tnc-pdp.opt \
99         plugins/tnccs-11.opt \
100         plugins/tnccs-20.opt \
101         plugins/tpm.opt \
102         plugins/unbound.opt \
103         plugins/updown.opt \
104         plugins/vici.opt \
105         plugins/whitelist.opt \
106         plugins/xauth-eap.opt \
107         plugins/xauth-pam.opt
108
109 alloptions = $(options) $(plugins)
110
111 confsnippets = $(alloptions:opt=conf)
112
113 # we only install snippets for enabled plugins
114 plugins_install_tmp = $(charon_plugins:%=plugins/%.tmp)
115 plugins_install_src = $(charon_plugins:%=plugins/%.conf)
116 # only install snippets for enabled components
117 # has to be defined via autoconf as we can't do it with automake conditionals
118 options_install_src = $(strongswan_options:%=options/%.conf)
119
120 templates_DATA = strongswan.conf
121 optionstemplate_DATA = $(options_install_src)
122 pluginstemplate_DATA = $(plugins_install_src)
123 man_MANS = \
124         strongswan.conf.5
125
126 BUILT_SOURCES = default.conf strongswan.conf.5.main $(confsnippets)
127 EXTRA_DIST = format-options.py strongswan.conf default.opt \
128         default.conf strongswan.conf.5.main $(alloptions) $(confsnippets)
129
130 CLEANFILES=$(man_MANS)
131
132 .opt.conf:
133         $(AM_V_GEN) \
134         case "$<" in \
135         *plugins/*) \
136                 sed \
137                 -e "s:\@PLUGIN_NAME\@:`basename $< .opt`:" \
138                 $(srcdir)/default.opt | cat - $< | \
139                 $(PYTHON) $(srcdir)/format-options.py -f conf -r charon.plugins > $(srcdir)/$@ \
140                 ;; \
141         *) \
142                 $(PYTHON) $(srcdir)/format-options.py -f conf -r charon.plugins $< > $(srcdir)/$@ \
143                 ;; \
144         esac
145
146 # we need another implicit rule to generate files from the generic template only
147 # if the rules above did not catch it.  this requires an intermediate step that
148 # generates a copy of the generic config template.
149 $(plugins_install_tmp):
150         @mkdir -p $(builddir)/plugins
151         @cp $(srcdir)/default.conf $(builddir)/$@
152
153 .tmp.conf:
154         $(AM_V_GEN) \
155         sed \
156         -e "s:\@PLUGIN_NAME\@:`basename $< .tmp`:" \
157         $(builddir)/$< > $(builddir)/$@
158
159 strongswan.conf.5.main: $(alloptions)
160         $(AM_V_GEN) \
161         cd $(srcdir) && $(PYTHON) format-options.py -f man $(alloptions) > $@
162
163 strongswan.conf.5: strongswan.conf.5.head strongswan.conf.5.main strongswan.conf.5.tail
164         $(AM_V_GEN) \
165         cat strongswan.conf.5.head $(srcdir)/strongswan.conf.5.main strongswan.conf.5.tail > $@
166
167 clean-local:
168         rm -f plugins/*.conf plugins/*.tmp
169
170 maintainer-clean-local:
171         cd $(srcdir) && \
172                 rm -f $(confsnippets) default.conf plugins/*.conf plugins/*.tmp
173
174 install-data-local: $(plugins_install_src)
175         test -e "$(DESTDIR)${strongswanconfdir}" || $(INSTALL) -d "$(DESTDIR)$(strongswanconfdir)" || true
176         test -e "$(DESTDIR)${strongswanddir}" || $(INSTALL) -d "$(DESTDIR)$(strongswanddir)" || true
177         test -e "$(DESTDIR)${charonconfdir}" || $(INSTALL) -d "$(DESTDIR)$(charonconfdir)" || true
178         test -e "$(DESTDIR)$(strongswanconfdir)/strongswan.conf" || $(INSTALL) -m 644 $(srcdir)/strongswan.conf $(DESTDIR)$(strongswanconfdir)/strongswan.conf || true
179         for f in $(options_install_src); do \
180                 name=`basename $$f`; \
181                 test -f "$(DESTDIR)$(strongswanddir)/$$name" || $(INSTALL) -m 644 "$(srcdir)/$$f" "$(DESTDIR)$(strongswanddir)/$$name" || true; \
182         done
183         for f in $(plugins_install_src); do \
184                 name=`basename $$f`; \
185                 if test -f "$$f"; then dir=; else dir="$(srcdir)/"; fi; \
186                 test -f "$(DESTDIR)$(charonconfdir)/$$name" || $(INSTALL) -m 644 "$$dir$$f" "$(DESTDIR)$(charonconfdir)/$$name" || true; \
187         done