commit 049c414
Michael Forney
·
2013-09-05 22:42:03 +0000 UTC
parent a133781
Rework configure options
6 files changed,
+108,
-98
+21,
-19
1@@ -12,30 +12,12 @@ pkgconfig_DATA = wld.pc
2 libwld_la_SOURCES = color.c drawable.c font.c
3 libwld_la_LIBADD = $(fontconfig_LIBS) $(freetype_LIBS) $(pixman_LIBS)
4
5-if WITH_WAYLAND
6- AM_CFLAGS += $(wayland_client_CFLAGS)
7- libwld_la_SOURCES += wayland.c
8- libwld_la_LIBADD += $(wayland_client_LIBS)
9- pkginclude_HEADERS += wayland.h
10-endif
11-
12 if ENABLE_DRM
13 libwld_la_SOURCES += drm.c
14 pkginclude_HEADERS += drm.h
15 endif
16
17-if ENABLE_WAYLAND_DRM
18- AM_CPPFLAGS = -I$(top_builddir)/protocol
19- libwld_la_SOURCES += wayland-drm.c protocol/wayland-drm-protocol.c
20- pkginclude_HEADERS += wayland-drm.h
21-endif
22-
23-if ENABLE_WAYLAND_SHM
24- libwld_la_SOURCES += wayland-shm.c
25- pkginclude_HEADERS += wayland-shm.h
26-endif
27-
28-if ENABLE_INTEL
29+if WITH_DRM_INTEL
30 AM_CFLAGS += $(drm_intel_CFLAGS) $(intelbatch_CFLAGS)
31 libwld_la_SOURCES += intel.c
32 libwld_la_LIBADD += $(drm_intel_LIBS) $(intelbatch_LIBS)
33@@ -46,5 +28,25 @@ if ENABLE_PIXMAN
34 pkginclude_HEADERS += pixman.h
35 endif
36
37+if ENABLE_WAYLAND
38+ AM_CFLAGS += $(wayland_client_CFLAGS)
39+ libwld_la_SOURCES += wayland.c
40+ libwld_la_LIBADD += $(wayland_client_LIBS)
41+ pkginclude_HEADERS += wayland.h
42+endif
43+
44+if WITH_WAYLAND_DRM
45+ AM_CPPFLAGS = -I$(top_builddir)/protocol
46+ AM_CFLAGS += $(drm_CFLAGS)
47+ libwld_la_SOURCES += wayland-drm.c protocol/wayland-drm-protocol.c
48+ libwld_la_LIBADD += $(drm_LIBS)
49+ pkginclude_HEADERS += wayland-drm.h
50+endif
51+
52+if WITH_WAYLAND_SHM
53+ libwld_la_SOURCES += wayland-shm.c
54+ pkginclude_HEADERS += wayland-shm.h
55+endif
56+
57 SUBDIRS = protocol
58
+81,
-73
1@@ -30,23 +30,6 @@ if test "x$enable_debug" = "xyes" ; then
2 AC_DEFINE([ENABLE_DEBUG], [1], [Enable debug messages])
3 fi
4
5-# Wayland
6-AC_ARG_WITH([wayland],
7- AS_HELP_STRING([--without-wayland],
8- [disable Wayland support]),
9- with_wayland=$withval,
10- with_wayland=yes)
11-if test "x$with_wayland" = "xyes" ; then
12- PKG_CHECK_MODULES([wayland_client], [wayland-client],,
13- AC_MSG_ERROR([Wayland client libraries not found. Specify
14- --without-wayland to build without wayland
15- support]))
16- AC_DEFINE([WITH_WAYLAND], [1], [Build Wayland support])
17- PKGCONFIG_EXTRA_REQUIRES="wayland-client $PKGCONFIG_EXTRA_REQUIRES"
18-
19-fi
20-AM_CONDITIONAL([WITH_WAYLAND], test "x$with_wayland" = "xyes")
21-
22 # DRM
23 AC_ARG_ENABLE([drm],
24 AS_HELP_STRING([--disable-drm],
25@@ -55,65 +38,90 @@ AC_ARG_ENABLE([drm],
26 enable_drm=yes)
27 AM_CONDITIONAL([ENABLE_DRM], [test "x$enable_drm" = "xyes"])
28
29-# Wayland DRM
30-AC_ARG_ENABLE([wayland-drm],
31- AS_HELP_STRING([--disable-wayland-drm],
32- [disable Wayland DRM support]),
33- enable_wayland_drm=$enableval,
34- enable_wayland_drm=$with_wayland)
35-if test "x$enable_wayland_drm" = "xyes" ; then
36- if test "x$with_wayland" != "xyes" ; then
37- AC_MSG_ERROR([--enable-wayland-drm requires --with-wayland])
38- fi
39- AC_DEFINE([ENABLE_WAYLAND_DRM], [1], [Enable Wayland DRM support])
40+# DRM drivers
41+DEFAULT_DRM_DRIVERS=intel
42+AC_ARG_WITH([drm-drivers],
43+ AS_HELP_STRING([--with-drm-drivers=DRIVERS],
44+ [specify DRM drivers (comma separated)]),
45+ with_drm_drivers=$withval,
46+ with_drm_drivers=$DEFAULT_DRM_DRIVERS)
47+case "x$with_drm_drivers" in
48+ xyes) with_drm_drivers=$DEFAULT_DRM_DRIVERS ;;
49+ xno) with_drm_drivers= ;;
50+esac
51+if test "x$drm_drivers" != "x" -a "x$enable_drm" != "xyes"; then
52+ AC_MSG_ERROR([--with-drm-drivers requires --enable-drm])
53 fi
54-AM_CONDITIONAL([ENABLE_WAYLAND_DRM], test "x$enable_wayland_drm" = "xyes")
55-
56-# Wayland SHM
57-AC_ARG_ENABLE([wayland-shm],
58- AS_HELP_STRING([--disable-wayland-shm],
59- [disable Wayland SHM support]),
60- enable_shm=$enableval,
61- enable_shm=$with_wayland)
62-if test "x$enable_wayland_shm" = "xyes" ; then
63- if test "x$with_wayland" != "xyes" ; then
64- AC_MSG_ERROR([--enable-wayland-shm requires --with-wayland])
65- fi
66- AC_DEFINE([ENABLE_WAYLAND_SHM], [1], [Enable Wayland SHM support])
67+drm_drivers=`IFS=','; echo $with_drm_drivers`
68+for driver in $drm_drivers ; do
69+ case "x$driver" in
70+ xintel)
71+ AC_DEFINE([WITH_DRM_INTEL], [1], [Build Intel DRM driver])
72+ PKG_CHECK_MODULES([drm_intel], [libdrm_intel],,
73+ AC_MSG_ERROR([Intel DRM driver requires libdrm_intel]))
74+ PKG_CHECK_MODULES([intelbatch], [intelbatch],,
75+ AC_MSG_ERROR([Intel DRM driver requires libintelbatch]))
76+ PKGCONFIG_REQUIRES_PRIVATE="libdrm_intel intelbatch \
77+$PKGCONFIG_REQUIRES_PRIVATE"
78+ with_drm_intel=yes
79+ ;;
80+ *)
81+ AC_MSG_ERROR([Unknown DRM driver: '$driver'])
82+ ;;
83+ esac
84+done
85+AM_CONDITIONAL([WITH_DRM_INTEL], [test "x$with_drm_intel" = "xyes"])
86+
87+# Wayland
88+AC_ARG_ENABLE([wayland],
89+ AS_HELP_STRING([--disable-wayland],
90+ [disable Wayland support]),
91+ enable_wayland=$enableval,
92+ enable_wayland=yes)
93+if test "x$enable_wayland" = "xyes" ; then
94+ PKG_CHECK_MODULES([wayland_client], [wayland-client],,
95+ AC_MSG_ERROR([Wayland client libraries not found. Specify \
96+--disable-wayland to build without wayland support]))
97+ PKGCONFIG_REQUIRES_PRIVATE="wayland-client $PKGCONFIG_REQUIRES_PRIVATE"
98 fi
99-AM_CONDITIONAL([ENABLE_WAYLAND_SHM], test "x$enable_wayland_shm" = "xyes")
100-
101-# Intel
102-AC_ARG_ENABLE([intel],
103- AS_HELP_STRING([--disable-intel],
104- [disable Intel drawable support]),
105- enable_intel=$enableval,
106- enable_intel=auto)
107-if test "x$enable_intel" = "xyes" -o "x$enable_intel" = "xauto" ; then
108- PKG_CHECK_MODULES([drm_intel], [libdrm_intel], have_drm_intel=yes,
109- if test "x$enable_intel" = "xyes" ; then
110- AC_MSG_ERROR([--enable-intel requires libdrm_intel])
111- fi
112- )
113- PKG_CHECK_MODULES([intelbatch], [intelbatch], have_intelbatch=yes,
114- if test "x$enable_intel" = "xyes" ; then
115- AC_MSG_ERROR([--enable-intel requires libintelbatch])
116- fi
117- )
118-
119- if test "x$enable_intel" = "xauto" \
120- -a "x$have_drm_intel" = "xyes" -a "x$have_intelbatch" = "xyes"
121- then
122- enable_intel=yes
123- fi
124-
125- if test "x$enable_intel" = "xyes" ; then
126- AC_DEFINE([ENABLE_INTEL], [1], [Enable Intel DRM support])
127- PKGCONFIG_REQUIRES_PRIVATE="libdrm_intel $PKGCONFIG_REQUIRES_PRIVATE"
128- PKGCONFIG_REQUIRES_PRIVATE="intelbatch $PKGCONFIG_REQUIRES_PRIVATE"
129- fi
130+AM_CONDITIONAL([ENABLE_WAYLAND], [test "x$enable_wayland" = "xyes"])
131+
132+DEFAULT_WAYLAND_INTERFACES=drm,shm
133+AC_ARG_WITH([wayland-interfaces],
134+ AS_HELP_STRING([--with-wayland-interfaces=INTERFACES],
135+ [specify Wayland interfaces (comma separated)]),
136+ with_wayland_interfaces=$withval,
137+ with_wayland_interfaces=$DEFAULT_WAYLAND_INTERFACES)
138+case "x$with_wayland_interfaces" in
139+ xyes) with_wayland_interfaces=$DEFAULT_WAYLAND_INTERFACES ;;
140+ xno) with_wayland_interfaces= ;;
141+esac
142+if test "x$wayland_interfaces" != "x" -a "x$enable_wayland" != "xyes"; then
143+ AC_MSG_ERROR([--with-wayland-interfaces requires --enable-wayland])
144 fi
145-AM_CONDITIONAL([ENABLE_INTEL], test "x$enable_intel" = "xyes")
146+wayland_interfaces=`IFS=','; echo $with_wayland_interfaces`
147+for interface in $wayland_interfaces ; do
148+ case "x$interface" in
149+ xdrm)
150+ PKG_CHECK_MODULES([libdrm], [libdrm],,
151+ AC_MSG_ERROR([Wayland DRM support requires libdrm]))
152+ PKGCONFIG_REQUIRES_PRIVATE="libdrm $PKGCONFIG_REQUIRES_PRIVATE"
153+ AC_DEFINE([WITH_WAYLAND_DRM], [1],
154+ [Build support for wl_drm global])
155+ with_wayland_drm=yes
156+ ;;
157+ xshm)
158+ AC_DEFINE([WITH_WAYLAND_SHM], [1],
159+ [Build support for wl_shm global])
160+ with_wayland_shm=yes
161+ ;;
162+ *)
163+ AC_MSG_ERROR([Unknown Wayland interface: '$interface'])
164+ ;;
165+ esac
166+done
167+AM_CONDITIONAL([WITH_WAYLAND_DRM], [test "x$with_wayland_drm" = "xyes"])
168+AM_CONDITIONAL([WITH_WAYLAND_SHM], [test "x$with_wayland_shm" = "xyes"])
169
170 # Pixman
171 AC_ARG_ENABLE([pixman],
+1,
-1
1@@ -66,7 +66,7 @@ struct drm_drawable
2 _Static_assert(offsetof(struct drm_drawable, base) == 0,
3 "Non-zero offset of base field");
4
5-#if ENABLE_INTEL
6+#if WITH_DRM_INTEL
7 extern const struct wld_drm_interface intel_drm;
8 #endif
9
M
drm.c
+1,
-1
1@@ -25,7 +25,7 @@
2 #include "drm-private.h"
3
4 const static struct wld_drm_interface * drm_interfaces[] = {
5-#if ENABLE_INTEL
6+#if WITH_DRM_INTEL
7 &intel_drm
8 #endif
9 };
+2,
-2
1@@ -46,11 +46,11 @@ struct wld_wayland_interface
2 wayland_create_drawable_func_t create_drawable;
3 };
4
5-#if ENABLE_WAYLAND_DRM
6+#if WITH_WAYLAND_DRM
7 extern const struct wld_wayland_interface wayland_drm_interface;
8 #endif
9
10-#if ENABLE_WAYLAND_SHM
11+#if WITH_WAYLAND_SHM
12 extern const struct wld_wayland_interface wayland_shm_interface;
13 #endif
14
+2,
-2
1@@ -105,11 +105,11 @@ const struct wld_draw_interface wayland_draw = {
2 };
3
4 const static struct wld_wayland_interface * interfaces[] = {
5-#if ENABLE_WAYLAND_DRM
6+#if WITH_WAYLAND_DRM
7 [WLD_DRM] = &wayland_drm_interface,
8 #endif
9
10-#if ENABLE_WAYLAND_SHM
11+#if WITH_WAYLAND_SHM
12 [WLD_SHM] = &wayland_shm_interface
13 #endif
14 };