[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