chiark / gitweb /
1bf380f437571bb22d426d7af9830be6af32bb01
[distorted-keys] / Makefile.am
1 ### -*-makefile-*-
2 ###
3 ### Build script for distorted.org.uk key management
4 ###
5 ### (c) 2011 Mark Wooding
6 ###
7
8 ###----- Licensing notice ---------------------------------------------------
9 ###
10 ### This file is part of the distorted.org.uk key management suite.
11 ###
12 ### distorted-keys is free software; you can redistribute it and/or modify
13 ### it under the terms of the GNU General Public License as published by
14 ### the Free Software Foundation; either version 2 of the License, or
15 ### (at your option) any later version.
16 ###
17 ### distorted-keys is distributed in the hope that it will be useful,
18 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 ### GNU General Public License for more details.
21 ###
22 ### You should have received a copy of the GNU General Public License
23 ### along with distorted-keys; if not, write to the Free Software Foundation,
24 ### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25
26 pkgconfdir               = $(sysconfdir)/$(PACKAGE)
27 profiledir               = $(pkgconfdir)/profile.d
28
29 bin_SCRIPTS              =
30 sbin_SCRIPTS             =
31 dist_pkglib_SCRIPTS      =
32 dist_pkglib_DATA         =
33 pkglib_DATA              =
34 dist_profile_DATA        =
35 noinst_DATA              =
36 USERV_CONFIG             =
37 KEYS_CONFIG              =
38 TOPLEVEL_CONFIG          =
39
40 EXTRA_DIST               =
41 CLEANFILES               =
42 DISTCLEANFILES           =
43
44 ###--------------------------------------------------------------------------
45 ### Substitution of configuration data.
46
47 confsubst = $(top_srcdir)/config/confsubst
48 EXTRA_DIST              += config/confsubst
49
50 SUBSTVARS = \
51         PACKAGE="$(PACKAGE)" VERSION="$(VERSION)" \
52         PYTHON="$(PYTHON)" \
53         bindir="$(bindir)" sbindir="$(sbindir)" \
54         sysconfdir="$(sysconfdir)" pkgconfdir="$(pkgconfdir)" \
55         pkgstatedir="$(localstatedir)/lib/$(PACKAGE)" \
56         pkglibdir="$(pkglibdir)" \
57         user="$(user)"
58
59 V_SUBST = $(V_SUBST_$V)
60 V_SUBST_= $(V_SUBST_$(AM_DEFAULT_VERBOSITY))
61 V_SUBST_0 = @printf "  SUBST  %s\n" $@;
62
63 SUBST = $(V_SUBST)$(confsubst)
64
65 ###--------------------------------------------------------------------------
66 ### Utility programs.
67
68 ## Shamir secret-sharing.
69 bin_SCRIPTS             += shamir
70 EXTRA_DIST              += shamir.in
71 CLEANFILES              += shamir
72 shamir: shamir.in Makefile
73         $(SUBST) $(srcdir)/shamir.in $(SUBSTVARS) >shamir.new && \
74                 chmod +x shamir.new && mv shamir.new shamir
75
76 ## Property expansion.
77 bin_SCRIPTS             += extract-profile
78 EXTRA_DIST              += extract-profile.in
79 CLEANFILES              += extract-profile
80 extract-profile: extract-profile.in Makefile
81         $(SUBST) $(srcdir)/extract-profile.in $(SUBSTVARS) \
82                         >extract-profile.new && \
83                 chmod +x extract-profile.new && \
84                 mv extract-profile.new extract-profile
85
86 ###--------------------------------------------------------------------------
87 ### Main driver program and commands.
88
89 ## Main driver.
90 sbin_SCRIPTS            += keys
91 EXTRA_DIST              += keys.in
92 CLEANFILES              += keys
93 keys: keys.in Makefile
94         $(SUBST) $(srcdir)/keys.in $(SUBSTVARS) >keys.new && \
95                 chmod +x keys.new && mv keys.new keys
96
97 ## Utilities library.
98 pkglib_DATA             += keyfunc.sh
99 EXTRA_DIST              += keyfunc.sh.in
100 CLEANFILES              += keyfunc.sh
101 keyfunc.sh: keyfunc.sh.in Makefile
102         $(SUBST) $(srcdir)/keyfunc.sh.in $(SUBSTVARS) >keyfunc.sh.new && \
103                 mv keyfunc.sh.new keyfunc.sh
104
105 ## Commands.
106 dist_pkglib_SCRIPTS     += keys.conceal
107 dist_pkglib_SCRIPTS     += keys.keeper-cards
108 dist_pkglib_SCRIPTS     += keys.keeper-nub
109 dist_pkglib_SCRIPTS     += keys.list-keepers
110 dist_pkglib_SCRIPTS     += keys.list-recov
111 dist_pkglib_SCRIPTS     += keys.new-keeper
112 dist_pkglib_SCRIPTS     += keys.new-recov
113 dist_pkglib_SCRIPTS     += keys.recover
114 dist_pkglib_SCRIPTS     += keys.reveal
115 dist_pkglib_SCRIPTS     += keys.stash
116
117 ## Common profiles.
118 dist_profile_DATA       += profile.d/00base
119 dist_profile_DATA       += profile.d/02infra
120
121 ## Other configuration.
122 KEYS_CONFIG             += keys.conf
123 EXTRA_DIST              += keys.conf
124
125 KEYS_CONFIG             += admin.users admin.groups
126 EXTRA_DIST              += admin.users admin.groups
127
128 ###--------------------------------------------------------------------------
129 ### Crypto operations.
130
131 ## Main driver program.
132 bin_SCRIPTS             += cryptop
133 EXTRA_DIST              += cryptop.in
134 CLEANFILES              += cryptop
135 cryptop: cryptop.in Makefile
136         $(SUBST) $(srcdir)/cryptop.in $(SUBSTVARS) >cryptop.new && \
137                 chmod +x cryptop.new && mv cryptop.new cryptop
138
139 ## Key type libraries.
140 dist_pkglib_DATA        += ktype.gnupg
141 dist_profile_DATA       += profile.d/01gnupg
142
143 dist_pkglib_DATA        += ktype.seccure
144 dist_profile_DATA       += profile.d/01seccure
145
146 ## Commands.
147 dist_pkglib_SCRIPTS     += cryptop.archive
148 dist_pkglib_SCRIPTS     += cryptop.genkey
149 dist_pkglib_SCRIPTS     += cryptop.list
150 dist_pkglib_SCRIPTS     += cryptop.delkey
151 dist_pkglib_SCRIPTS     += cryptop.recover
152 dist_pkglib_SCRIPTS     += cryptop.info
153 dist_pkglib_SCRIPTS     += cryptop.public
154 dist_pkglib_SCRIPTS     += cryptop.encrypt
155 dist_pkglib_SCRIPTS     += cryptop.decrypt
156 dist_pkglib_SCRIPTS     += cryptop.sign
157 dist_pkglib_SCRIPTS     += cryptop.verify
158
159 ## Userv services configuration.
160 USERV_CONFIG            += userv/distorted-keys
161 EXTRA_DIST              += userv/distorted-keys.in
162 CLEANFILES              += userv/distorted-keys
163 userv/distorted-keys: userv/distorted-keys.in Makefile
164         $(AM_V_at)mkdir -p userv/
165         $(SUBST) $(srcdir)/userv/distorted-keys.in $(SUBSTVARS) \
166                         >userv/distorted-keys.new && \
167                 mv userv/distorted-keys.new userv/distorted-keys
168
169 ###--------------------------------------------------------------------------
170 ### Standalone operations on public keys.
171
172 bin_SCRIPTS             += pubkeyop
173 EXTRA_DIST              += pubkeyop.in
174 CLEANFILES              += pubkeyop
175 pubkeyop: pubkeyop.in Makefile
176         $(SUBST) $(srcdir)/pubkeyop.in $(SUBSTVARS) >pubkeyop.new && \
177                 chmod +x pubkeyop.new && mv pubkeyop.new pubkeyop
178
179 ###--------------------------------------------------------------------------
180 ### Secure storage management.
181
182 ## Ephemeral filesystem construction.
183 sbin_SCRIPTS            += mount-ephemeral
184 EXTRA_DIST              += mount-ephemeral
185
186 ## Directory claiming service.
187 USERV_CONFIG            += userv/claim-dir
188 EXTRA_DIST              += userv/claim-dir.in
189 CLEANFILES              += userv/claim-dir
190 userv/claim-dir: userv/claim-dir.in Makefile
191         $(AM_V_at)mkdir -p userv/
192         $(SUBST) $(srcdir)/userv/claim-dir.in $(SUBSTVARS) \
193                         >userv/claim-dir.new && \
194                 mv userv/claim-dir.new userv/claim-dir
195
196 ## Configuration file.
197 TOPLEVEL_CONFIG         += claim-dir.tab
198 EXTRA_DIST              += claim-dir.tab
199
200 ###--------------------------------------------------------------------------
201 ### Installing configuration.
202
203 ## Install userv configuration.
204 noinst_DATA             += $(USERV_CONFIG)
205 install-data-local::
206         $(MKDIR_P) $(DESTDIR)$(uservconfdir)
207         @for i in $(USERV_CONFIG); do \
208           b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
209           if [ -f $(DESTDIR)$(uservconfdir)/$$b ]; then continue; fi; \
210           if [ -f $$i ]; then s=$$i; else s=$(srcdir)/$$i; fi; \
211           echo $(INSTALL_DATA) $$s $(DESTDIR)$(uservconfdir); \
212           $(INSTALL_DATA) $$s $(DESTDIR)$(uservconfdir) || exit 1; \
213         done
214 uninstall-local::
215         @for i in $(USERV_CONFIG); do \
216           b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
217           echo rm -f $(DESTDIR)$(uservconfdir)/$$b; \
218           rm -f $(DESTDIR)$(uservconfdir)/$$b; \
219         done
220
221 ## Install keys configuration.
222 noinst_DATA             += $(KEYS_CONFIG)
223 install-data-local::
224         $(MKDIR_P) $(DESTDIR)$(pkgconfdir)
225         @for i in $(KEYS_CONFIG); do \
226           b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
227           if [ -f $(DESTDIR)$(pkgconfdir)/$$b ]; then continue; fi; \
228           if [ -f $$i ]; then s=$$i; else s=$(srcdir)/$$i; fi; \
229           echo $(INSTALL_DATA) $$s $(DESTDIR)$(pkgconfdir); \
230           $(INSTALL_DATA) $$s $(DESTDIR)$(pkgconfdir) || exit 1; \
231         done
232 uninstall-local::
233         @for i in $(KEYS_CONFIG); do \
234           b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
235           echo rm -f $(DESTDIR)$(pkgconfdir)/$$b; \
236           rm -f $(DESTDIR)$(pkgconfdir)/$$b; \
237         done
238
239 ## Install toplevel configuration.
240 noinst_DATA             += $(TOPLEVEL_CONFIG)
241 install-data-local::
242         $(MKDIR_P) $(DESTDIR)$(sysconfdir)
243         @for i in $(TOPLEVEL_CONFIG); do \
244           b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
245           if [ -f $(DESTDIR)$(sysconfdir)/$$b ]; then continue; fi; \
246           if [ -f $$i ]; then s=$$i; else s=$(srcdir)/$$i; fi; \
247           echo $(INSTALL_DATA) $$s $(DESTDIR)$(sysconfdir); \
248           $(INSTALL_DATA) $$s $(DESTDIR)$(sysconfdir) || exit 1; \
249         done
250 uninstall-local::
251         @for i in $(TOPLEVEL_CONFIG); do \
252           b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
253           echo rm -f $(DESTDIR)$(sysconfdir)/$$b; \
254           rm -f $(DESTDIR)$(sysconfdir)/$$b; \
255         done
256
257 ###--------------------------------------------------------------------------
258 ### Release setup.
259
260 dist-hook::
261         echo $(VERSION) >$(distdir)/RELEASE
262
263 EXTRA_DIST              += config/auto-version
264
265 ###--------------------------------------------------------------------------
266 ### Debian packaging.
267
268 EXTRA_DIST              += debian/changelog debian/control debian/copyright
269 EXTRA_DIST              += debian/rules debian/compat
270
271 EXTRA_DIST              += debian/distorted-keys-base.install
272
273 EXTRA_DIST              += debian/distorted-keys.install
274 EXTRA_DIST              += debian/distorted-keys.postinst
275
276 EXTRA_DIST              += debian/claim-dir.install
277
278 ###----- That's all, folks --------------------------------------------------