[X2Go-Commits] [x2goserver] 02/17: x2goserver/Makefile: allow auto-generation of files, including installation, uninstallation and cleanup.
git-admin at x2go.org
git-admin at x2go.org
Sun Jun 23 04:43:04 CEST 2019
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository x2goserver.
commit b8cacb5e690882d2cba6dec4d0a1b9a1a875b224
Author: Mihai Moldovan <ionic at ionic.de>
Date: Sat Jun 22 02:44:26 2019 +0200
x2goserver/Makefile: allow auto-generation of files, including installation, uninstallation and cleanup.
---
debian/changelog | 2 ++
x2goserver/Makefile | 85 +++++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 74 insertions(+), 13 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 2818943..f316ef1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -87,6 +87,8 @@ x2goserver (4.1.0.4-0x2go1.1) UNRELEASED; urgency=medium
- x2goserver/bin/x2gostartagent: also use ${AGENTBIN} in shadow session
code.
- x2goserver/bin/x2goruncommand: fix syntax.
+ - x2goserver/Makefile: allow auto-generation of files, including
+ installation, uninstallation and cleanup.
* debian/control:
+ Build-depend upon lsb-release for distro version detection.
* debian/x2goserver.manpages:
diff --git a/x2goserver/Makefile b/x2goserver/Makefile
index b49e73a..7204c1a 100755
--- a/x2goserver/Makefile
+++ b/x2goserver/Makefile
@@ -38,6 +38,27 @@ build: build-arch build-indep
build-arch:
build-indep: build_pod2man build_man2html
+ for dir in 'bin' 'sbin' 'lib' 'share/x2gofeature.d'; do \
+ for gen_file in "$${!dir}/"*; do \
+ file="$${gen_file%.in}"; \
+ if [ "$${gen_file}" != "$${file}" ]; then \
+ $$("# Copy the file first, making sure we keep permissions."); \
+ cp -a "$${gen_file}" "$${file}"; \
+ \
+ $$("# Run actual substitutions."); \
+ PREFIX='$(PREFIX)'; \
+ ETCDIR='$(ETCDIR)'; \
+ BINDIR='$(BINDIR)'; \
+ SBINDIR='$(SBINDIR)'; \
+ LIBDIR='$(LIBDIR)'; \
+ MANDIR='$(MANDIR)'; \
+ SHAREDIR='$(SHAREDIR)'; \
+ for subst in 'PREFIX' 'ETCDIR' 'BINDIR' 'SBINDIR' 'LIBDIR' 'MANDIR' 'SHAREDIR'; do \
+ sed -e "s#@@$${subst}@@#$${!subst}#g" "$${gen_file}" > "$${file}"; \
+ done; \
+ fi; \
+ done; \
+ done
build_pod2man:
for sectioned_script in $(POD_SCRIPTS); do \
@@ -74,21 +95,44 @@ clean: clean-arch clean-indep
clean-arch:
clean-indep: clean_man2html
+ for dir in 'bin' 'sbin' 'lib' 'share/x2gofeature.d'; do \
+ for gen_file in "$${!dir}/"*; do \
+ file="$${gen_file%.in}"; \
+ if [ "$${gen_file}" != "$${file}" ]; then \
+ $(RM_FILE) "$${file}"; \
+ fi; \
+ done; \
+ done
clean_man2html:
rm -Rf `dirname $(MAN2HTML_DEST)`
-install: install_scripts install_config install_man install_version
+install: build install_scripts install_config install_man install_version
install_scripts:
- $(INSTALL_DIR) $(DESTDIR)$(BINDIR)
- $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
- $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
- $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/x2gofeature.d
- $(INSTALL_PROGRAM) bin/* $(DESTDIR)$(BINDIR)/
- $(INSTALL_PROGRAM) sbin/* $(DESTDIR)$(SBINDIR)/
- $(INSTALL_PROGRAM) lib/* $(DESTDIR)$(LIBDIR)/
- $(INSTALL_PROGRAM) share/x2gofeature.d/*.features $(DESTDIR)$(SHAREDIR)/x2gofeature.d/
+ for dir in 'bin' 'sbin' 'lib' 'share/x2gofeature.d'; do \
+ $("# Create (and save) destination directory."); \
+ dest='$(DESTDIR)'; \
+ case "$${dir}" in \
+ ('bin') dest="$${dest}$(BINDIR)/";; \
+ ('sbin') dest="$${dest}$(SBINDIR)/";; \
+ ('lib') dest="$${dest}$(LIBDIR)/";; \
+ ('share/x2gofeature.d') dest="$${dest}$(SHAREDIR)/x2gofeature.d/";; \
+ (*) printf '%s\n' 'Unknown component in install_scripts scriptlet.' >&2; exit '1';; \
+ esac; \
+ $(INSTALL_DIR) "$${dest}"; \
+ \
+ $("# Iterate over files and ..."); \
+ for gen_file in "$${!dir}/"*; do \
+ file="$${gen_file%.in}"; \
+ $("# ... filter out generation templates and anything not ending in '.features' for the feature directory."); \
+ if [ "$${gen_file}" != "$${file}" ] || ( [ "$${dir}" = 'share/x2gofeature.d' ] && [ "$${file%.features}" = "$${file}" ] ); then \
+ continue; \
+ fi; \
+ \
+ $(INSTALL_PROGRAM) "$${file}" "$${dest}/"; \
+ done; \
+ done
install_config:
$(INSTALL_DIR) $(DESTDIR)$(ETCDIR)
@@ -120,10 +164,25 @@ install_version:
uninstall: uninstall_scripts uninstall_config uninstall_man uninstall_version
uninstall_scripts:
- for file in $(BIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(BINDIR)/$$file; done
- for file in $(SBIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SBINDIR)/$$file; done
- for file in $(LIB_FILES); do $(RM_FILE) $(DESTDIR)$(LIBDIR)/$$file; done
- for file in $(FEATURE_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SHAREDIR)/x2gofeature.d/$$file; done
+ for dir in 'bin' 'sbin' 'lib' 'share/x2gofeature.d'; do \
+ $("# Create (and save) destination directory."); \
+ dest='$(DESTDIR)'; \
+ case "$${dir}" in \
+ ('bin') dest="$${dest}$(BINDIR)/";; \
+ ('sbin') dest="$${dest}$(SBINDIR)/";; \
+ ('lib') dest="$${dest}$(LIBDIR)/";; \
+ ('share/x2gofeature.d') dest="$${dest}$(SHAREDIR)/x2gofeature.d/";; \
+ (*) printf '%s\n' 'Unknown component in uninstall_scripts scriptlet.'; exit '1';; \
+ esac; \
+ $(INSTALL_DIR) "$${dest}"; \
+ \
+ $("# Iterate over files and ..."); \
+ for gen_file in "$${!dir}/"*; do \
+ $("# ... map generation templates to generated files (so that uninstallation works correctly after cleaning as well)."); \
+ file="$${gen_file%.in}"; \
+ $(RM_FILE) "$${dest}/$${file}"; \
+ done; \
+ done
$(RM_DIR) $(DESTDIR)$(LIBDIR) || true
$(RM_DIR) $(DESTDIR)$(SHAREDIR)/x2gofeature.d || true
$(RM_DIR) $(DESTDIR)$(SHAREDIR) || true
--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
More information about the x2go-commits
mailing list