+## Systemd units.
+noinst_DATA += tripe.service
+EXTRA_DIST += tripe.service.in
+CLEANFILES += tripe.service
+
+tripe.service: tripe.service.in Makefile
+ $(SUBST) $(srcdir)/tripe.service.in >$@.new $(SUBSTITUTIONS) && \
+ mv $@.new $@
+
+noinst_DATA += tripe-connect.service tripe-conntrack.service
+EXTRA_DIST += tripe-service.service.in
+CLEANFILES += tripe-connect.service tripe-conntrack.service
+
+tripe-connect.service: tripe-service.service.in Makefile
+ $(SUBST) $(srcdir)/tripe-service.service.in >$@.new \
+ $(SUBSTITUTIONS) service=connect \
+ descr="manage peer connections" && \
+ mv $@.new $@
+
+tripe-conntrack.service: tripe-service.service.in Makefile
+ $(SUBST) $(srcdir)/tripe-service.service.in >$@.new \
+ $(SUBSTITUTIONS) service=conntrack \
+ descr="track network connectivity" && \
+ mv $@.new $@
+
+## `greet' utility for stimulating passive connections.
+if HAVE_PYTHON
+noinst_SCRIPTS += greet
+EXTRA_DIST += greet.in
+CLEANFILES += greet
+
+greet: greet.in Makefile
+ $(SUBST) $(srcdir)/greet.in >$@.new $(SUBSTITUTIONS) && \
+ chmod +x $@.new && mv $@.new $@
+endif
+
+## `knock' script for accepting incoming dynamic associations.
+noinst_SCRIPTS += knock
+EXTRA_DIST += knock.in
+CLEANFILES += knock
+
+knock: knock.in Makefile
+ $(SUBST) $(srcdir)/knock.in >$@.new $(SUBSTITUTIONS) && \
+ chmod +x $@.new && mv $@.new $@
+
+## Configuration for `sshsvc-mkauthkeys'.
+dist_noinst_DATA += sshsvc.conf
+