[PATCH v3 2/3] config: Move Xlib-xcb to its own subdirectory.

Rami Ylimäki rami.ylimaki at vincit.fi
Fri Feb 4 06:42:30 PST 2011


This change makes it easier to use different compiler and linker flags
for libX11 and libX11-xcb. Also libX11-xcb doesn't depend on libX11
anymore, because it's not using any of its symbols.

Signed-off-by: Rami Ylimäki <rami.ylimaki at vincit.fi>
---
 configure.ac        |    1 +
 src/Makefile.am     |    9 +++------
 src/Xxcbint.h       |   46 ----------------------------------------------
 src/x11_xcb.c       |   15 ---------------
 src/xcb/Makefile.am |   26 ++++++++++++++++++++++++++
 src/xcb/Xxcbint.h   |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 src/xcb/x11_xcb.c   |   15 +++++++++++++++
 7 files changed, 91 insertions(+), 67 deletions(-)
 delete mode 100644 src/Xxcbint.h
 delete mode 100644 src/x11_xcb.c
 create mode 100644 src/xcb/Makefile.am
 create mode 100644 src/xcb/Xxcbint.h
 create mode 100644 src/xcb/x11_xcb.c

diff --git a/configure.ac b/configure.ac
index 40d032d..a69735b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -448,6 +448,7 @@ AC_OUTPUT([Makefile
            man/xkb/Makefile
            src/Makefile
            src/util/Makefile
+	   src/xcb/Makefile
 	   src/xcms/Makefile
 	   src/xlibi18n/Makefile
 	   modules/Makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index 8b0953c..05c7663 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,9 +1,9 @@
 if XKB
 XKB_SUBDIRS = xkb
 endif
-SUBDIRS = util xcms xlibi18n $(XKB_SUBDIRS)
+SUBDIRS = util xcms xlibi18n $(XKB_SUBDIRS) . xcb
 
-lib_LTLIBRARIES = libX11.la libX11-xcb.la
+lib_LTLIBRARIES = libX11.la
 
 BUILT_SOURCES=ks_tables.h
 CLEANFILES=ks_tables.h ks_tables_h
@@ -13,6 +13,7 @@ AM_CPPFLAGS= \
 	-I$(top_srcdir)/include/X11 \
 	-I$(top_builddir)/include \
 	-I$(top_builddir)/include/X11 \
+	-I$(top_srcdir)/src/xcb \
 	-I$(top_srcdir)/src/xcms \
 	-I$(top_srcdir)/src/xkb \
 	-I$(top_srcdir)/src/xlibi18n \
@@ -349,10 +350,6 @@ EXTRA_DIST = \
 	udcInf.c \
 	UIThrStubs.c 
 
-libX11_xcb_la_SOURCES = x11_xcb.c Xxcbint.h
-libX11_xcb_la_LDFLAGS = -version-number 1:0:0 -no-undefined
-libX11_xcb_la_LIBADD = libX11.la
-
 #
 # Figure out which sub-libraries to link into Xlib
 #
diff --git a/src/Xxcbint.h b/src/Xxcbint.h
deleted file mode 100644
index 1fa1a4d..0000000
--- a/src/Xxcbint.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett
- * This file is licensed under the MIT license. See the file COPYING. */
-
-#ifndef XXCBINT_H
-#define XXCBINT_H
-
-#include <assert.h>
-#include <stdint.h>
-#include <X11/Xlibint.h>
-#include <X11/Xlib-xcb.h>
-#include "locking.h"
-
-#define XLIB_SEQUENCE_COMPARE(a,op,b)	(((long) (a) - (long) (b)) op 0)
-
-typedef struct PendingRequest PendingRequest;
-struct PendingRequest {
-	PendingRequest *next;
-	unsigned long sequence;
-	unsigned reply_waiter;
-};
-
-typedef struct _X11XCBPrivate {
-	xcb_connection_t *connection;
-	PendingRequest *pending_requests;
-	PendingRequest *pending_requests_tail;
-	xcb_generic_event_t *next_event;
-	char *real_bufmax;
-	char *reply_data;
-	int reply_length;
-	int reply_consumed;
-	uint64_t last_flushed;
-	enum XEventQueueOwner event_owner;
-	XID next_xid;
-
-	/* handle simultaneous threads waiting for responses */
-	xcondition_t event_notify;
-	int event_waiter;
-	xcondition_t reply_notify;
-} _X11XCBPrivate;
-
-/* xcb_disp.c */
-
-int _XConnectXCB(Display *dpy, _Xconst char *display, int *screenp);
-void _XFreeX11XCBStructure(Display *dpy);
-
-#endif /* XXCBINT_H */
diff --git a/src/x11_xcb.c b/src/x11_xcb.c
deleted file mode 100644
index 3ddf403..0000000
--- a/src/x11_xcb.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (C) 2003,2006 Jamey Sharp, Josh Triplett
- * This file is licensed under the MIT license. See the file COPYING. */
-
-#include "Xlibint.h"
-#include "Xxcbint.h"
-
-xcb_connection_t *XGetXCBConnection(Display *dpy)
-{
-	return dpy->xcb->connection;
-}
-
-void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner)
-{
-	dpy->xcb->event_owner = owner;
-}
diff --git a/src/xcb/Makefile.am b/src/xcb/Makefile.am
new file mode 100644
index 0000000..5c68639
--- /dev/null
+++ b/src/xcb/Makefile.am
@@ -0,0 +1,26 @@
+AM_CPPFLAGS= \
+	-I$(top_srcdir)/include/X11 \
+	-I$(top_builddir)/include/X11 \
+	-I$(top_srcdir)/src \
+	-D_BSD_SOURCE
+
+AM_CFLAGS= \
+	$(X11_CFLAGS) \
+	$(XMALLOC_ZERO_CFLAGS) \
+	$(CWARNFLAGS)
+
+lib_LTLIBRARIES = libX11-xcb.la
+
+libX11_xcb_la_SOURCES = x11_xcb.c Xxcbint.h
+libX11_xcb_la_LDFLAGS = -version-number 1:0:0 -no-undefined
+
+if LINT
+# Check source code with tools like lint & sparse
+
+ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+		$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS)
+
+lint:
+	$(LINT) $(ALL_LINT_FLAGS) $(libX11_xcb_la_SOURCES)
+
+endif LINT
diff --git a/src/xcb/Xxcbint.h b/src/xcb/Xxcbint.h
new file mode 100644
index 0000000..1fa1a4d
--- /dev/null
+++ b/src/xcb/Xxcbint.h
@@ -0,0 +1,46 @@
+/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett
+ * This file is licensed under the MIT license. See the file COPYING. */
+
+#ifndef XXCBINT_H
+#define XXCBINT_H
+
+#include <assert.h>
+#include <stdint.h>
+#include <X11/Xlibint.h>
+#include <X11/Xlib-xcb.h>
+#include "locking.h"
+
+#define XLIB_SEQUENCE_COMPARE(a,op,b)	(((long) (a) - (long) (b)) op 0)
+
+typedef struct PendingRequest PendingRequest;
+struct PendingRequest {
+	PendingRequest *next;
+	unsigned long sequence;
+	unsigned reply_waiter;
+};
+
+typedef struct _X11XCBPrivate {
+	xcb_connection_t *connection;
+	PendingRequest *pending_requests;
+	PendingRequest *pending_requests_tail;
+	xcb_generic_event_t *next_event;
+	char *real_bufmax;
+	char *reply_data;
+	int reply_length;
+	int reply_consumed;
+	uint64_t last_flushed;
+	enum XEventQueueOwner event_owner;
+	XID next_xid;
+
+	/* handle simultaneous threads waiting for responses */
+	xcondition_t event_notify;
+	int event_waiter;
+	xcondition_t reply_notify;
+} _X11XCBPrivate;
+
+/* xcb_disp.c */
+
+int _XConnectXCB(Display *dpy, _Xconst char *display, int *screenp);
+void _XFreeX11XCBStructure(Display *dpy);
+
+#endif /* XXCBINT_H */
diff --git a/src/xcb/x11_xcb.c b/src/xcb/x11_xcb.c
new file mode 100644
index 0000000..3ddf403
--- /dev/null
+++ b/src/xcb/x11_xcb.c
@@ -0,0 +1,15 @@
+/* Copyright (C) 2003,2006 Jamey Sharp, Josh Triplett
+ * This file is licensed under the MIT license. See the file COPYING. */
+
+#include "Xlibint.h"
+#include "Xxcbint.h"
+
+xcb_connection_t *XGetXCBConnection(Display *dpy)
+{
+	return dpy->xcb->connection;
+}
+
+void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner)
+{
+	dpy->xcb->event_owner = owner;
+}
-- 
1.6.3.3



More information about the xorg-devel mailing list