+dist_pkgdata_SCRIPTS += keys.conceal
+dist_pkgdata_SCRIPTS += keys.delete-keeper
+dist_pkgdata_SCRIPTS += keys.forget-keeper
+dist_pkgdata_SCRIPTS += keys.keeper-cards
+dist_pkgdata_SCRIPTS += keys.keeper-nub
+dist_pkgdata_SCRIPTS += keys.list-keepers
+dist_pkgdata_SCRIPTS += keys.list-recov
+dist_pkgdata_SCRIPTS += keys.new-keeper
+dist_pkgdata_SCRIPTS += keys.new-recov
+dist_pkgdata_SCRIPTS += keys.recover
+dist_pkgdata_SCRIPTS += keys.reveal
+dist_pkgdata_SCRIPTS += keys.stash
+
+## Common profiles.
+dist_profile_DATA += profile.d/00base
+dist_profile_DATA += profile.d/02infra
+
+## Other configuration.
+KEYS_CONFIG += keys.conf
+EXTRA_DIST += keys.conf
+
+KEYS_CONFIG += admin.users admin.groups
+EXTRA_DIST += admin.users admin.groups
+
+KEYS_CONFIG += keeper-cards.tex
+EXTRA_DIST += keeper-cards.tex
+
+###--------------------------------------------------------------------------
+### Crypto operations.
+
+## Main driver program.
+bin_SCRIPTS += cryptop
+EXTRA_DIST += cryptop.in
+CLEANFILES += cryptop
+cryptop: cryptop.in Makefile
+ $(SUBST) $(srcdir)/cryptop.in $(SUBSTVARS) >cryptop.new && \
+ chmod +x cryptop.new && mv cryptop.new cryptop
+
+## Key type libraries.
+dist_pkgdata_DATA += ktype.gnupg
+dist_profile_DATA += profile.d/01gnupg
+
+dist_pkgdata_DATA += ktype.seccure
+dist_profile_DATA += profile.d/01seccure
+
+dist_pkgdata_DATA += ktype.reop
+dist_profile_DATA += profile.d/01reop
+
+## Commands.
+dist_pkgdata_SCRIPTS += cryptop.archive
+dist_pkgdata_SCRIPTS += cryptop.genkey
+dist_pkgdata_SCRIPTS += cryptop.list
+dist_pkgdata_SCRIPTS += cryptop.delkey
+dist_pkgdata_SCRIPTS += cryptop.recover
+dist_pkgdata_SCRIPTS += cryptop.info
+dist_pkgdata_SCRIPTS += cryptop.public
+dist_pkgdata_SCRIPTS += cryptop.encrypt
+dist_pkgdata_SCRIPTS += cryptop.decrypt
+dist_pkgdata_SCRIPTS += cryptop.sign
+dist_pkgdata_SCRIPTS += cryptop.verify
+
+## Userv services configuration.
+USERV_CONFIG += userv/distorted-keys
+EXTRA_DIST += userv/distorted-keys.in
+CLEANFILES += userv/distorted-keys
+userv/distorted-keys: userv/distorted-keys.in Makefile
+ $(AM_V_at)mkdir -p userv/
+ $(SUBST) $(srcdir)/userv/distorted-keys.in $(SUBSTVARS) \
+ >userv/distorted-keys.new && \
+ mv userv/distorted-keys.new userv/distorted-keys
+
+###--------------------------------------------------------------------------
+### Standalone operations on public keys.
+
+bin_SCRIPTS += pubkeyop
+EXTRA_DIST += pubkeyop.in
+CLEANFILES += pubkeyop
+pubkeyop: pubkeyop.in Makefile
+ $(SUBST) $(srcdir)/pubkeyop.in $(SUBSTVARS) >pubkeyop.new && \
+ chmod +x pubkeyop.new && mv pubkeyop.new pubkeyop
+
+###--------------------------------------------------------------------------
+### Secure storage management.
+
+## Ephemeral filesystem construction.
+sbin_SCRIPTS += mount-ephemeral
+EXTRA_DIST += mount-ephemeral
+
+## Directory claiming service.
+USERV_CONFIG += userv/claim-dir
+EXTRA_DIST += userv/claim-dir.in
+CLEANFILES += userv/claim-dir
+userv/claim-dir: userv/claim-dir.in Makefile
+ $(AM_V_at)mkdir -p userv/
+ $(SUBST) $(srcdir)/userv/claim-dir.in $(SUBSTVARS) \
+ >userv/claim-dir.new && \
+ mv userv/claim-dir.new userv/claim-dir
+
+## Configuration file.
+TOPLEVEL_CONFIG += claim-dir.tab
+EXTRA_DIST += claim-dir.tab
+
+###--------------------------------------------------------------------------
+### Installing configuration.
+
+## Install userv configuration.
+noinst_DATA += $(USERV_CONFIG)
+install-data-local::
+ $(MKDIR_P) $(DESTDIR)$(uservconfdir)
+ @for i in $(USERV_CONFIG); do \
+ b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
+ if [ -f $(DESTDIR)$(uservconfdir)/$$b ]; then continue; fi; \
+ if [ -f $$i ]; then s=$$i; else s=$(srcdir)/$$i; fi; \
+ echo $(INSTALL_DATA) $$s $(DESTDIR)$(uservconfdir); \
+ $(INSTALL_DATA) $$s $(DESTDIR)$(uservconfdir) || exit 1; \
+ done
+uninstall-local::
+ @for i in $(USERV_CONFIG); do \
+ b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
+ echo rm -f $(DESTDIR)$(uservconfdir)/$$b; \
+ rm -f $(DESTDIR)$(uservconfdir)/$$b; \
+ done
+
+## Install keys configuration.
+noinst_DATA += $(KEYS_CONFIG)
+install-data-local::
+ $(MKDIR_P) $(DESTDIR)$(pkgconfdir)
+ @for i in $(KEYS_CONFIG); do \
+ b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
+ if [ -f $(DESTDIR)$(pkgconfdir)/$$b ]; then continue; fi; \
+ if [ -f $$i ]; then s=$$i; else s=$(srcdir)/$$i; fi; \
+ echo $(INSTALL_DATA) $$s $(DESTDIR)$(pkgconfdir); \
+ $(INSTALL_DATA) $$s $(DESTDIR)$(pkgconfdir) || exit 1; \
+ done
+uninstall-local::
+ @for i in $(KEYS_CONFIG); do \
+ b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
+ echo rm -f $(DESTDIR)$(pkgconfdir)/$$b; \
+ rm -f $(DESTDIR)$(pkgconfdir)/$$b; \
+ done
+
+## Install toplevel configuration.
+noinst_DATA += $(TOPLEVEL_CONFIG)
+install-data-local::
+ $(MKDIR_P) $(DESTDIR)$(sysconfdir)
+ @for i in $(TOPLEVEL_CONFIG); do \
+ b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
+ if [ -f $(DESTDIR)$(sysconfdir)/$$b ]; then continue; fi; \
+ if [ -f $$i ]; then s=$$i; else s=$(srcdir)/$$i; fi; \
+ echo $(INSTALL_DATA) $$s $(DESTDIR)$(sysconfdir); \
+ $(INSTALL_DATA) $$s $(DESTDIR)$(sysconfdir) || exit 1; \
+ done
+uninstall-local::
+ @for i in $(TOPLEVEL_CONFIG); do \
+ b=$$(expr /$$i : '.*/\([^/]*\)$$'); \
+ echo rm -f $(DESTDIR)$(sysconfdir)/$$b; \
+ rm -f $(DESTDIR)$(sysconfdir)/$$b; \
+ done
+
+###--------------------------------------------------------------------------
+### Release setup.
+
+dist-hook::
+ echo $(VERSION) >$(distdir)/RELEASE
+
+EXTRA_DIST += config/auto-version
+
+###--------------------------------------------------------------------------
+### Debian packaging.
+
+EXTRA_DIST += debian/changelog debian/control debian/copyright
+EXTRA_DIST += debian/rules debian/compat
+
+EXTRA_DIST += debian/distorted-keys-base.install
+
+EXTRA_DIST += debian/distorted-keys.install
+EXTRA_DIST += debian/distorted-keys.postinst
+
+EXTRA_DIST += debian/claim-dir.install