aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile184
1 files changed, 184 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..3aeda739b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,184 @@
+#!/usr/bin/make -f
+
+INSTALL_DIR=install -d -m 755
+INSTALL_FILE=install -m 644
+INSTALL_PROGRAM=install -m 755
+INSTALL_SYMLINK=ln -s -f
+COPY_SYMLINK=cp -a
+RM_FILE=rm -f
+RM_DIR=rmdir -p --ignore-fail-on-non-empty
+
+ETCDIR_NX ?= /etc/nxagent
+ETCDIR_X2GO ?= /etc/x2go
+PREFIX ?= /usr/local
+BINDIR ?= $(PREFIX)/bin
+LIBDIR ?= $(PREFIX)/lib
+USRLIBDIR ?= $(LIBDIR)
+INCLUDEDIR ?= $(PREFIX)/include
+NXLIBDIR ?= $(PREFIX)/lib/nx
+X2GOLIBDIR ?= $(PREFIX)/lib/x2go
+CONFIGURE ?= ./configure
+
+SHELL:=/bin/bash
+
+%:
+ 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; \
+ if test -f nx-X11/Makefile; then ${MAKE} -C nx-X11 $@; fi; \
+ fi
+
+all: build
+
+test:
+ echo "No testing for NX (redistributed)"
+
+build-lite:
+ cd nxcomp && autoconf && (${CONFIGURE}) && ${MAKE}
+ cd nxproxy && autoconf && (${CONFIGURE}) && ${MAKE}
+
+build-full:
+# in the full case, we rely on "magic" in the nx-X11 imake-based makefiles...
+ cd nxcomp && autoconf
+ cd nxcompext && autoconf
+ cd nxcompshad && autoconf
+ cd nx-X11 && ${MAKE} World
+ cd nxproxy && autoconf && (${CONFIGURE}) && ${MAKE}
+
+build:
+ if ! test -d nx-X11; then \
+ ${MAKE} build-lite; \
+ else \
+ ${MAKE} build-full; \
+ fi
+
+install:
+ $(MAKE) install-lite
+ [ ! -d nx-X11 ] || $(MAKE) install-full
+
+install-lite:
+ $(INSTALL_DIR) $(DESTDIR)$(BINDIR)
+ for d in nxcomp nxproxy; do \
+ $(MAKE) -C $$d install; done
+ mkdir -p $(DESTDIR)$(NXLIBDIR)/bin/
+ mv $(DESTDIR)$(BINDIR)/nxproxy $(DESTDIR)$(NXLIBDIR)/bin/
+ for f in nxproxy; do \
+ $(INSTALL_PROGRAM) bin/$$f $(DESTDIR)$(BINDIR); done
+
+ $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/man/man1/
+ $(INSTALL_FILE) nxproxy/man/nxproxy.1 $(DESTDIR)$(PREFIX)/share/man/man1/
+ gzip $(DESTDIR)$(PREFIX)/share/man/man1/*.1
+
+
+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 $(NXLIBDIR)/bin/nxagent x2goagent
+
+ $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/pixmaps
+ $(INSTALL_FILE) nx-X11/programs/Xserver/hw/nxagent/x2go.xpm $(DESTDIR)$(PREFIX)/share/pixmaps
+ $(INSTALL_FILE) nx-X11/programs/Xserver/hw/nxagent/nxagent.xpm $(DESTDIR)$(PREFIX)/share/pixmaps
+
+ $(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) nx-X11/programs/Xserver/nxagent $(DESTDIR)$(NXLIBDIR)/bin
+
+ $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/man/man1/
+ $(INSTALL_FILE) nx-X11/programs/Xserver/hw/nxagent/man/x2goagent.1 $(DESTDIR)$(PREFIX)/share/man/man1/
+ $(INSTALL_FILE) nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 $(DESTDIR)$(PREFIX)/share/man/man1/
+ $(INSTALL_FILE) nx-X11/programs/nxauth/nxauth.man $(DESTDIR)$(PREFIX)/share/man/man1/
+ mv -f $(DESTDIR)$(PREFIX)/share/man/man1/nxauth.man $(DESTDIR)$(PREFIX)/share/man/man1/nxauth.1
+ gzip $(DESTDIR)$(PREFIX)/share/man/man1/*.1
+
+ # 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), we want the targets of the links
+ . replace.sh; set -x; find nx-X11/exports/lib/ | grep -F ".so" | while read libpath; do \
+ libfile=$$(basename $$libpath); \
+ libdir=$$(dirname $$libpath); \
+ link=$$(readlink $$libpath); \
+ \
+ mkdir -p "$$(string_rep "$$libdir" exports .build-exports)"; \
+ cp -a "$$(string_rep "$$libpath" "$$libfile" "$$link")" "$$(string_rep "$$libdir" exports .build-exports)"; \
+ done;
+
+ $(INSTALL_DIR) $(DESTDIR)$(USRLIBDIR)
+ $(COPY_SYMLINK) nx-X11/.build-exports/lib/*.so* $(DESTDIR)$(USRLIBDIR)/
+
+ . replace.sh; set -x; find nx-X11/.build-exports/include/ -type d | grep -v "include/X11/bitmaps" | \
+ while read dirname; do \
+ $(INSTALL_DIR) "$$(string_rep "$$dirname" nx-X11/.build-exports/include "$(DESTDIR)$(INCLUDEDIR)/nx")"; \
+ $(INSTALL_FILE) $${dirname}/*.h \
+ "$$(string_rep "$$dirname" nx-X11/.build-exports/include "$(DESTDIR)$(INCLUDEDIR)/nx")"/ || true; \
+ done; \
+
+ # Provide means for Xinerama support in NX/X2Go sessions. This
+ # This also requires two post-install symlinks:
+ # (DESTDIR)$(NXLIBDIR)/X11/Xinerama/libNX_X11.so.6 -> /usr/<libdir>/libX11.so.6
+ # (DESTDIR)$(NXLIBDIR)/X11/Xinerama/libNX_Xext.so.6 -> /usr/<libdir>/libXext.so.6
+ $(INSTALL_DIR) $(DESTDIR)$(NXLIBDIR)/X11/Xinerama
+ $(INSTALL_SYMLINK) $(USRLIBDIR)/libNX_Xinerama.so.1 $(DESTDIR)$(NXLIBDIR)/X11/Xinerama/libXinerama.so.1
+
+ $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)/nx/X11/bitmaps
+ $(INSTALL_FILE) nx-X11/.build-exports/include/X11/bitmaps/* \
+ $(DESTDIR)$(INCLUDEDIR)/nx/X11/bitmaps/
+
+ $(INSTALL_DIR) $(DESTDIR)/$(ETCDIR_NX)
+ $(INSTALL_DIR) $(DESTDIR)/$(ETCDIR_X2GO)
+ $(INSTALL_FILE) etc/keystrokes.cfg $(DESTDIR)/$(ETCDIR_NX)/
+ $(INSTALL_FILE) etc/keystrokes.cfg $(DESTDIR)/$(ETCDIR_X2GO)/
+ $(INSTALL_FILE) etc/rgb $(DESTDIR)$(ETCDIR_X2GO)/
+ $(INSTALL_FILE) etc/rgb $(DESTDIR)$(ETCDIR_NX)/
+ $(INSTALL_FILE) etc/nxagent.keyboard $(DESTDIR)$(ETCDIR_NX)/
+ $(INSTALL_FILE) etc/x2goagent.keyboard $(DESTDIR)$(ETCDIR_X2GO)/
+
+ $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/x2go
+ $(INSTALL_SYMLINK) $(ETCDIR_X2GO)/rgb $(DESTDIR)$(PREFIX)/share/x2go/rgb
+
+ $(INSTALL_DIR) $(DESTDIR)$(PREFIX)/share/nx
+ $(INSTALL_SYMLINK) $(ETCDIR_NX)/rgb $(DESTDIR)$(PREFIX)/share/nx/rgb
+
+uninstall:
+ $(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; \
+ if test -f nx-X11/Makefile; then \
+ if test -d $(NXLIBDIR); then rm -rf $(NXLIBDIR); fi; \
+ if test -d $(INCLUDEDIR)/nx; then rm -rf $(INCLUDEDIR)/nx; fi; \
+ fi; \
+ fi