From e92c2a87808ec922b6bc90d5d5002ca77318f697 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Sat, 16 Dec 2017 07:18:11 +0100 Subject: Support building with legacy (pre-7.1.0) Xext proto versions. Legacy Xext proto versions are automatically detected by the main Makefile. --- Makefile | 11 +++++++---- nx-X11/config/cf/Imake.tmpl | 11 ++++++++++- nx-X11/config/cf/host.def | 7 +++++++ nx-X11/config/cf/xorg.cf | 4 ++++ nx-X11/programs/Xserver/Xext/xvdisp.c | 4 ++++ nx-X11/programs/Xserver/mi/miinitext.c | 4 ++++ 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 @@ -402,6 +402,13 @@ #define HasLegacyXfont1 YES */ +/* + * 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 +#else #include #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 +#else #include #endif +#endif #ifdef XTEST #define _XTEST_SERVER_ #include -- cgit v1.2.3