summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile26
1 files changed, 23 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index da61c37..2da6d43 100644
--- a/Makefile
+++ b/Makefile
@@ -32,10 +32,30 @@ ifeq ($(NSFB_SDL_AVAILABLE),yes)
endif
ifeq ($(NSFB_XCB_AVAILABLE),yes)
- $(eval $(call pkg_config_package_min_version,NSFB_XCB_NEW_API,xcb,0.23))
+ # Size hint allocators were removed in xcb-icccm 0.3.0
+ $(eval $(call pkg_config_package_min_version,NSFB_XCB_ICCCM_SIZE_HINTS,xcb-icccm,0.3.0))
+ ifeq ($(NSFB_XCB_ICCCM_SIZE_HINTS),yes)
+ CFLAGS := $(CFLAGS) -DNSFB_NEED_HINTS_ALLOC
+ endif
+
+ # xcb-icccm 0.3.8 introduced an additional "icccm_" in function names
+ $(eval $(call pkg_config_package_min_version,NSFB_XCB_ICCCM_API_PREFIX,xcb-icccm,0.3.8))
+ ifeq ($(NSFB_XCB_ICCCM_API_PREFIX),yes)
+ CFLAGS := $(CFLAGS) -DNSFB_NEED_ICCCM_API_PREFIX
+ endif
- ifeq ($(NSFB_XCB_NEW_API),yes)
- CFLAGS := $(CFLAGS) -DNEED_HINTS_ALLOC
+ # xcbproto 1.6 incorporated atoms previously found in xcb_atom
+ # However, libxcb <1.3 did not report xcbproto versions. Assume xcbproto 1.5 in this case.
+ $(eval $(call pkg_config_package_min_version,NSFB_HAVE_MODERN_XCB,xcb,1.3))
+ ifeq ($(NSFB_HAVE_MODERN_XCB),yes)
+ $(eval $(call pkg_config_get_variable,NSFB_XCBPROTO_VERSION,xcb,xcbproto_version))
+ NSFB_XCBPROTO_MAJOR_VERSION := $(word 1,$(subst ., ,$(NSFB_XCBPROTO_VERSION)))
+ NSFB_XCBPROTO_MINOR_VERSION := $(word 2,$(subst ., ,$(NSFB_XCBPROTO_VERSION)))
+ CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MAJOR_VERSION=$(NSFB_XCBPROTO_MAJOR_VERSION)
+ CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MINOR_VERSION=$(NSFB_XCBPROTO_MINOR_VERSION)
+ else
+ CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MAJOR_VERSION=1
+ CFLAGS := $(CFLAGS) -DNSFB_XCBPROTO_MINOR_VERSION=5
endif
$(eval $(call pkg_config_package_add_flags,$(NSFB_XCB_PKG_NAMES),CFLAGS))