From bfe6f4349e15fe2ae70e773552e1dc080f04b68d Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Wed, 2 Jan 2013 15:55:33 +0100 Subject: Continue Reinhard's work on top-level install/uninstall. Esp. integrate debian/post-nx-build.sh into main Makefile. Make value of CONFIGURE variable traversable through the Makefile tree. --- debian/Makefile.nx-libs | 81 ++++++++++++++++++++-- debian/changelog | 3 + debian/libnx-x11-dev.dirs | 2 - debian/libnx-x11-dev.install | 3 +- debian/libnx-x11.dirs | 1 - debian/libnx-x11.install | 5 +- .../patches/030_nx-X11_configure-args.full.patch | 4 +- debian/post-build-nx.sh | 25 ------- debian/rules | 5 +- 9 files changed, 87 insertions(+), 42 deletions(-) delete mode 100644 debian/libnx-x11-dev.dirs delete mode 100755 debian/post-build-nx.sh diff --git a/debian/Makefile.nx-libs b/debian/Makefile.nx-libs index d50d69908..5cfc96e21 100644 --- a/debian/Makefile.nx-libs +++ b/debian/Makefile.nx-libs @@ -3,6 +3,7 @@ INSTALL_DIR=install -d -m 755 INSTALL_FILE=install -m 644 INSTALL_PROGRAM=install -m 755 +COPY_SYMLINK=cp -a RM_FILE=rm -f RM_DIR=rmdir -p --ignore-fail-on-non-empty @@ -10,7 +11,9 @@ PREFIX ?= /usr/local BINDIR=$(PREFIX)/bin NXLIBDIR=$(PREFIX)/lib/nx X2GOLIBDIR=$(PREFIX)/lib/x2go -CONFIGURE=./configure +CONFIGURE ?= ./configure + +SHELL:=/bin/bash %: if test -f nxcomp/Makefile; then ${MAKE} -C nxcomp $@; fi @@ -46,40 +49,108 @@ build: fi install: + $(MAKE) install-lite + [ ! -d nx-X11 ] || $(MAKE) install-full + +install-lite: $(INSTALL_DIR) $(DESTDIR)$(BINDIR) - for f in nxagent nxauth nxproxy x2goagent; do \ + for f in nxproxy; do \ $(INSTALL_PROGRAM) bin/$$f $(DESTDIR)$(BINDIR); done for d in nxcomp nxproxy; do \ $(MAKE) -C $$d install; done - [ ! -d nx-X11 ] || for d in nxcompext nxcompshad; do \ + $(INSTALL_DIR) $(DESTDIR)$(NXLIBDIR)/bin + $(INSTALL_PROGRAM) nxproxy/nxproxy $(DESTDIR)$(NXLIBDIR)/bin + +install-full: + for f in nxagent nxauth x2goagent; do \ + $(INSTALL_PROGRAM) bin/$$f $(DESTDIR)$(BINDIR); done + for d in nxcompext nxcompshad; do \ $(MAKE) -C $$d install; done + $(INSTALL_DIR) $(DESTDIR)$(X2GOLIBDIR)/bin/ cd $(DESTDIR)$(X2GOLIBDIR)/bin/ && ln -sf ../../nx/bin/nxagent x2goagent + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/pixmaps $(INSTALL_FILE) nx-X11/programs/Xserver/hw/nxagent/x2go.xpm $(DESTDIR)$(PREFIX)/share/pixmaps + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/x2go $(INSTALL_FILE) rgb $(DESTDIR)$(PREFIX)/share/x2go + + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/nx + $(INSTALL_FILE) nx-X11/programs/Xserver/Xext/SecurityPolicy $(DESTDIR)$(PREFIX)/share/nx + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/x2go/versions $(INSTALL_FILE) VERSION.x2goagent $(DESTDIR)$(PREFIX)/share/x2go/versions + $(INSTALL_DIR) $(DESTDIR)$(NXLIBDIR)/bin $(INSTALL_PROGRAM) nx-X11/programs/nxauth/nxauth $(DESTDIR)$(NXLIBDIR)/bin - $(INSTALL_PROGRAM) nxproxy/nxproxy $(DESTDIR)$(NXLIBDIR)/bin + $(INSTALL_PROGRAM) nx-X11/programs/Xserver/nxagent $(DESTDIR)$(NXLIBDIR)/bin + + # create a clean nx-X11/.build-exports space + rm -Rf nx-X11/.build-exports + mkdir -p nx-X11/.build-exports/include + mkdir -p nx-X11/.build-exports/lib + + # copy headers (for libnx-x11-dev) + cp -aL nx-X11/exports/include/* nx-X11/.build-exports/include + + # copy libs (for libnx-x11) + find nx-X11/exports/lib/ | egrep "^.*\.so$$" | while read libpath; do \ + libfile=$$(basename $$libpath); \ + libdir=$$(dirname $$libpath); \ + \ + mkdir -p $${libdir//exports/.build-exports}; \ + cp -L $$libpath $${libdir//exports/.build-exports}; \ + \ + find $$libdir/$$libfile.* | while read symlink; do \ + ln -s $$libfile $${libdir//exports/.build-exports}/$$(basename $$symlink); \ + done; \ + done; + + $(INSTALL_DIR) $(DESTDIR)$(NXLIBDIR)/X11 + $(INSTALL_FILE) nx-X11/.build-exports/lib/*.so $(DESTDIR)$(NXLIBDIR)/X11/ + $(COPY_SYMLINK) nx-X11/.build-exports/lib/*.so.* $(DESTDIR)$(NXLIBDIR)/X11/ + + find nx-X11/.build-exports/include/ -type d | grep -v "include/X11/bitmaps" | \ + while read dirname; do \ + $(INSTALL_DIR) $${dirname//"nx-X11/.build-exports/include"/"$(DESTDIR)$(PREFIX)/include/nx"}; \ + $(INSTALL_FILE) $${dirname}/*.h \ + $${dirname//"nx-X11/.build-exports/include"/"$(DESTDIR)$(PREFIX)/include/nx"}/ || true; \ + done; \ + + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/include/nx/X11/bitmaps + $(INSTALL_FILE) nx-X11/.build-exports/include/X11/bitmaps/* \ + $(DESTDIR)$(PREFIX)/include/nx/X11/bitmaps/ + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/include/nx/extras/Mesa/GL/internal $(INSTALL_FILE) nx-X11/extras/Mesa/include/GL/*.h \ $(DESTDIR)$(PREFIX)/include/nx/extras/Mesa/GL/ + $(INSTALL_FILE) nx-X11/extras/Mesa/include/GL/internal/*.h \ $(DESTDIR)$(PREFIX)/include/nx/extras/Mesa/GL/internal/ + $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/include/nx/extras/Mesa/GLES/ $(INSTALL_FILE) nx-X11/extras/Mesa/include/GLES/*.h \ $(DESTDIR)$(PREFIX)/include/nx/extras/Mesa/GLES/ uninstall: - for f in nxagent nxauth nxproxy x2goagent; do \ + $(MAKE) uninstall-lite + [ ! -d nx-X11 ] || $(MAKE) uninstall-full + +uninstall-lite: + for f in nxproxy; do \ $(RM_FILE) $(DESTDIR)$(BINDIR)/$$f; done + +uninstall-full: + for f in nxagent nxauth x2goagent; do \ + $(RM_FILE) $(DESTDIR)$(BINDIR)/$$f; done + $(RM_FILE) $(DESTDIR)$(X2GOLIBDIR)/bin/x2goagent $(RM_DIR) $(DESTDIR)$(X2GOLIBDIR)/bin/ + if test -f nxcomp/Makefile; then ${MAKE} -C nxcomp $@; fi if test -f nxproxy/Makefile; then ${MAKE} -C nxproxy $@; fi + if test -d nx-X11; then \ if test -f nxcompext/Makefile; then ${MAKE} -C nxcompext $@; fi; \ if test -f nxcompshad/Makefile; then ${MAKE} -C nxcompshad $@; fi; \ diff --git a/debian/changelog b/debian/changelog index 335bc7da6..a85ed936b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,9 @@ nx-libs (2:3.5.0.17-0) UNRELEASED; urgency=low * Add README.keystrokes to doc section of bin:package nxagent. * Add libxml2-dev to build dependencies. * Add pkg-config to build dependencies. + * Continue Reinhard's work on top-level install/uninstall. Esp. + integrate debian/post-nx-build.sh into main Makefile. Make + value of CONFIGURE variable traversable through the Makefile tree. [ Orion Poplawski ] * Add patches: 026_nxcomp*_honour-optflags.full*.patch. (Closes upstream diff --git a/debian/libnx-x11-dev.dirs b/debian/libnx-x11-dev.dirs deleted file mode 100644 index 4496244e2..000000000 --- a/debian/libnx-x11-dev.dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/include/nx/X11 -usr/include/nx/X11/extensions diff --git a/debian/libnx-x11-dev.install b/debian/libnx-x11-dev.install index 47fca29b7..a026d0808 100644 --- a/debian/libnx-x11-dev.install +++ b/debian/libnx-x11-dev.install @@ -1,4 +1,3 @@ -nx-X11/.build-exports/include/* usr/include/nx/ -nx-X11/include/extensions/Xinerama.h usr/include/nx/X11/extensions/ +usr/include/nx diff --git a/debian/libnx-x11.dirs b/debian/libnx-x11.dirs index 72f9ea32c..339b13b39 100644 --- a/debian/libnx-x11.dirs +++ b/debian/libnx-x11.dirs @@ -1,4 +1,3 @@ -usr/lib/nx/X11 usr/lib/nx/X11/Xinerama usr/lib/nx/X11/Xrandr usr/share/nx diff --git a/debian/libnx-x11.install b/debian/libnx-x11.install index 7838d089f..4a17019b9 100644 --- a/debian/libnx-x11.install +++ b/debian/libnx-x11.install @@ -1,2 +1,3 @@ -nx-X11/.build-exports/lib/* usr/lib/nx/X11 -nx-X11/programs/Xserver/Xext/SecurityPolicy usr/share/nx +usr/lib/nx/lib* +usr/lib/nx/X11 +usr/share/nx diff --git a/debian/patches/030_nx-X11_configure-args.full.patch b/debian/patches/030_nx-X11_configure-args.full.patch index 8304ca795..67184d330 100644 --- a/debian/patches/030_nx-X11_configure-args.full.patch +++ b/debian/patches/030_nx-X11_configure-args.full.patch @@ -16,7 +16,7 @@ Index: nx-X11/lib/X11/Imakefile includes:: ks_tables.h -+CONFIGURE=./configure ++CONFIGURE ?= ./configure + #if NXLibraries @@ -40,7 +40,7 @@ Index: nx-X11/programs/Xserver/Imakefile NX_XSHADOWLIBTARGET = $(NX_XSHADOWLIBDIR)/$(NX_XSHADOWLIBNAME) NX_XSHADOWCONFIGTARGET = $(NX_XSHADOWLIBDIR)/config.status -+CONFIGURE=./configure ++CONFIGURE ?= ./configure + $(NX_XSHADOWCONFIGTARGET): cd $(NX_XSHADOWLIBDIR) && \ diff --git a/debian/post-build-nx.sh b/debian/post-build-nx.sh deleted file mode 100755 index 94f18ac3c..000000000 --- a/debian/post-build-nx.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -set -ex - -# create nx-X11/.build-exports -mkdir -p nx-X11/.build-exports/include -mkdir -p nx-X11/.build-exports/lib - -# copy headers (libnx-x11-dev) -cp -aL nx-X11/exports/include/* nx-X11/.build-exports/include - -# copy libs (libnx-x11) -find nx-X11/exports/lib/ | egrep "^.*\.so$" | while read libpath; do - libfile=$(basename $libpath) - libdir=$(dirname $libpath) - - mkdir -p ${libdir//exports/.build-exports} - cp -L $libpath ${libdir//exports/.build-exports} - - find $libdir/$libfile.* | while read symlink; do - ln -s $libfile ${libdir//exports/.build-exports}/$(basename $symlink) - done -done - -exit 0 diff --git a/debian/rules b/debian/rules index c1f02946d..6e0892dfe 100755 --- a/debian/rules +++ b/debian/rules @@ -9,7 +9,7 @@ else endif %: - LD_LIBRARY_PATH=`pwd`/debian/libnx-x11/usr/lib/nx/X11:$$LD_LIBRARY_PATH dh $@ --with quilt + CONFIGURE="./configure --prefix=/usr" LD_LIBRARY_PATH=`pwd`/debian/libnx-x11/usr/lib/nx/X11:$$LD_LIBRARY_PATH dh $@ --with quilt override_dh_auto_clean: rm -Rf nx-X11/.build-exports @@ -20,7 +20,7 @@ override_dh_clean: rm -f nx*/changelog rm -f nx-X11/programs/Xserver/hw/nxagent/changelog rm -f nx-X11/programs/nxauth/changelog - rm -f Makefile bin rgb VERSION.x2goagent + rm -Rf Makefile bin rgb VERSION.x2goagent dh_clean override_dh_auto_install: @@ -40,7 +40,6 @@ override_dh_auto_build: ln -s debian/rgb ln -s debian/VERSION.x2goagent LD_LIBRARY_PATH=`pwd`/debian/libnx-x11/usr/lib/nx/X11:$$LD_LIBRARY_PATH dh_auto_build --with quilt --parallel - debian/post-build-nx.sh override_dh_strip: dh_strip --dbg-package=nx-x11-dbg -- cgit v1.2.3