aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMihai Moldovan <ionic@ionic.de>2017-12-16 07:18:11 +0100
committerMihai Moldovan <ionic@ionic.de>2017-12-16 07:18:24 +0100
commite92c2a87808ec922b6bc90d5d5002ca77318f697 (patch)
treefe4f6274ad211d11a269b689a0a855c28c706198
parent0d6207bd3fa4eaf13a58a21dbaa20193403c1cbc (diff)
downloadnx-libs-e92c2a87808ec922b6bc90d5d5002ca77318f697.tar.gz
nx-libs-e92c2a87808ec922b6bc90d5d5002ca77318f697.tar.bz2
nx-libs-e92c2a87808ec922b6bc90d5d5002ca77318f697.zip
Support building with legacy (pre-7.1.0) Xext proto versions.
Legacy Xext proto versions are automatically detected by the main Makefile.
-rw-r--r--Makefile11
-rw-r--r--nx-X11/config/cf/Imake.tmpl11
-rw-r--r--nx-X11/config/cf/host.def7
-rw-r--r--nx-X11/config/cf/xorg.cf4
-rw-r--r--nx-X11/programs/Xserver/Xext/xvdisp.c4
-rw-r--r--nx-X11/programs/Xserver/mi/miinitext.c4
6 files changed, 36 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 9a2d3ff43..ec3ec86dc 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,9 @@ CONFIGURE ?= ./configure --prefix="$(PREFIX)"
FONT_DEFINES ?= $(shell pkg-config --modversion xfont2 1>/dev/null 2>/dev/null && echo "-DHAS_XFONT2") $(shell pkg-config --exists 'xfont < 1.4.2' 1>/dev/null 2>/dev/null && echo "-DLEGACY_XFONT1")
XFONTLIB ?= $(shell pkg-config --modversion xfont2 1>/dev/null 2>/dev/null && echo "-lXfont2" || echo "-lXfont")
+# Support older libXext versions.
+XEXT_EXTRA_DEFINES ?= $(shell pkg-config --exists 'xextproto < 7.1.0' 1>/dev/null 2>/dev/null && echo "-DLEGACY_XEXT_PROTO")
+
NX_VERSION_MAJOR=$(shell ./version.sh 1)
NX_VERSION_MINOR=$(shell ./version.sh 2)
NX_VERSION_MICRO=$(shell ./version.sh 3)
@@ -96,7 +99,7 @@ version:
build-env: version
# prepare Makefiles and the nx-X11 symlinking magic
- ${MAKE} -C nx-X11 BuildIncludes FONT_DEFINES="$(FONT_DEFINES)"
+ ${MAKE} -C nx-X11 BuildIncludes FONT_DEFINES="$(FONT_DEFINES)" XEXT_EXTRA_DEFINES="$(XEXT_EXTRA_DEFINES)"
# set up environment for libNX_X11 build (X11 header files)
mkdir -p nx-X11/exports/include/nx-X11/
@@ -121,7 +124,7 @@ clean-env: version
[ -d exports/include/nx-X11/Xtrans ] && $(RM_DIR) exports/include/nx-X11/Xtrans/ || :
[ -d exports/include/nx-X11/ ] && $(RM_DIR) exports/include/nx-X11/ || :
- ${MAKE} -C nx-X11 CleanEnv FONT_DEFINES="$(FONT_DEFINES)"
+ ${MAKE} -C nx-X11 CleanEnv FONT_DEFINES="$(FONT_DEFINES)" XEXT_EXTRA_DEFINES="$(XEXT_EXTRA_DEFINES)"
build-lite:
cd nxcomp && autoreconf -vfsi && (${CONFIGURE}) && ${MAKE}
@@ -145,8 +148,8 @@ build-full: build-env
# build nxagent fourth
./mesa-quilt push -a
- ${MAKE} -C nx-X11 BuildDependsOnly FONT_DEFINES="$(FONT_DEFINES)"
- ${MAKE} -C nx-X11 World USRLIBDIR="$(USRLIBDIR)" SHLIBDIR="$(SHLIBDIR)" FONT_DEFINES="$(FONT_DEFINES)" XFONTLIB="$(XFONTLIB)"
+ ${MAKE} -C nx-X11 BuildDependsOnly FONT_DEFINES="$(FONT_DEFINES)" XEXT_EXTRA_DEFINES="$(XEXT_EXTRA_DEFINES)"
+ ${MAKE} -C nx-X11 World USRLIBDIR="$(USRLIBDIR)" SHLIBDIR="$(SHLIBDIR)" FONT_DEFINES="$(FONT_DEFINES)" XFONTLIB="$(XFONTLIB)" XEXT_EXTRA_DEFINES="$(XEXT_EXTRA_DEFINES)"
# build nxproxy fifth
cd nxproxy && autoreconf -vfsi && (${CONFIGURE}) && ${MAKE}
diff --git a/nx-X11/config/cf/Imake.tmpl b/nx-X11/config/cf/Imake.tmpl
index 44fe2f3c1..5d989d1e0 100644
--- a/nx-X11/config/cf/Imake.tmpl
+++ b/nx-X11/config/cf/Imake.tmpl
@@ -546,6 +546,9 @@ X_BYTE_ORDER = ByteOrder
#define HasShm NO
#endif
#endif
+#ifndef HasLegacyXextProto
+#define HasLegacyXextProto NO
+#endif
#ifndef HasCbrt
#define HasCbrt YES
#endif
@@ -1882,6 +1885,12 @@ FONT_DEFINES =
XFONTLIB = -lXfont
#endif
+#if HasLegacyXextProto
+XEXT_EXTRA_DEFINES = -DLEGACY_XEXT_PROTO
+#else
+XEXT_EXTRA_DEFINES =
+#endif
+
/*
* Here we set up flags needed to produce position-independent code
* when doing C and C++ compilation. The default if you specify C
@@ -1980,7 +1989,7 @@ FONT_DEFINES =
* LOCAL_LDFLAGS contains client-specific ld flags flags set in Imakefile
*/
ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
- ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(SETITIMER_DEFINES) $(FONT_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
+ ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(SETITIMER_DEFINES) $(FONT_DEFINES) $(PROTO_DEFINES) $(XEXT_EXTRA_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
LDPRELIB = LdPreLib $(INSTALLED_LIBS)
diff --git a/nx-X11/config/cf/host.def b/nx-X11/config/cf/host.def
index abacf2c4e..0969a8f48 100644
--- a/nx-X11/config/cf/host.def
+++ b/nx-X11/config/cf/host.def
@@ -403,6 +403,13 @@
*/
/*
+ * If building with SHM support enabled and using a legacy Xext protocol
+ * version (lower than 7.1.0), uncomment this.
+ *
+#define HasLegacyXextProto YES
+ */
+
+/*
* If you are running NetBSD 0.9C or later, and have the aperture driver
* installed, uncomment this.
*
diff --git a/nx-X11/config/cf/xorg.cf b/nx-X11/config/cf/xorg.cf
index 50a1f4590..b68d11c4c 100644
--- a/nx-X11/config/cf/xorg.cf
+++ b/nx-X11/config/cf/xorg.cf
@@ -432,6 +432,10 @@ IPLAN2P8_DEFS = -DUSE_IPLAN2P8
# define HasLegacyXfont1 NO
#endif
+#ifndef HasLegacyXextProto
+# define HasLegacyXextProto NO
+#endif
+
#ifndef BuildScreenSaverExt
# define BuildScreenSaverExt YES
#endif
diff --git a/nx-X11/programs/Xserver/Xext/xvdisp.c b/nx-X11/programs/Xserver/Xext/xvdisp.c
index b33bfa493..6f3e3729d 100644
--- a/nx-X11/programs/Xserver/Xext/xvdisp.c
+++ b/nx-X11/programs/Xserver/Xext/xvdisp.c
@@ -68,8 +68,12 @@ SOFTWARE.
#include "xvdix.h"
#ifdef MITSHM
#define _XSHM_SERVER_
+#ifdef LEGACY_XEXT_PROTO
+#include <X11/extensions/XShm.h>
+#else
#include <X11/extensions/shmproto.h>
#endif
+#endif
#include "xvdisp.h"
diff --git a/nx-X11/programs/Xserver/mi/miinitext.c b/nx-X11/programs/Xserver/mi/miinitext.c
index 6f6d67841..15466eea5 100644
--- a/nx-X11/programs/Xserver/mi/miinitext.c
+++ b/nx-X11/programs/Xserver/mi/miinitext.c
@@ -147,8 +147,12 @@ typedef void (*InitExtension)(void);
#ifdef MITSHM
#define _XSHM_SERVER_
+#ifdef LEGACY_XEXT_PROTO
+#include <X11/extensions/XShm.h>
+#else
#include <X11/extensions/shmproto.h>
#endif
+#endif
#ifdef XTEST
#define _XTEST_SERVER_
#include <nx-X11/extensions/xtestconst.h>