[PATCH weston 3/4] autotools: Move the path magic to configure.ac

Quentin Glidic sardemff7+wayland at sardemff7.net
Wed Oct 23 21:15:37 CEST 2013


From: Quentin Glidic <sardemff7+git at sardemff7.net>

We provide them all in our pkg-config file for usage by external
modules.
Also use pkg-prefixed directories

Signed-off-by: Quentin Glidic <sardemff7+git at sardemff7.net>
---
 clients/Makefile.am      |  2 +-
 clients/desktop-shell.c  |  4 ++--
 configure.ac             | 32 ++++++++++++++++++++++++++++++++
 data/Makefile.am         |  4 +---
 man/Makefile.am          |  2 +-
 shared/Makefile.am       |  2 +-
 shared/frame.c           |  8 ++++----
 src/Makefile.am          |  9 ++++-----
 src/compositor-wayland.c |  2 +-
 src/compositor-x11.c     |  2 +-
 src/weston.pc.in         |  8 ++++++--
 src/xwayland/Makefile.am |  4 ++--
 12 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/clients/Makefile.am b/clients/Makefile.am
index 4f9dc48..0b6b5ea 100644
--- a/clients/Makefile.am
+++ b/clients/Makefile.am
@@ -25,7 +25,7 @@ libexec_PROGRAMS =				\
 
 AM_CFLAGS = $(GCC_CFLAGS)
 AM_CPPFLAGS =					\
-	-DDATADIR='"$(datadir)"'		\
+	-DPKGDATADIR='"$(pkgdatadir)"'		\
 	-DBINDIR='"$(bindir)"'			\
 	$(CLIENT_CFLAGS) $(CAIRO_EGL_CFLAGS)
 
diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c
index 8c97104..3081b98 100644
--- a/clients/desktop-shell.c
+++ b/clients/desktop-shell.c
@@ -1054,7 +1054,7 @@ background_create(struct desktop *desktop)
 	s = weston_config_get_section(desktop->config, "shell", NULL, NULL);
 	weston_config_section_get_string(s, "background-image",
 					 &background->image,
-					 DATADIR "/weston/pattern.png");
+					 PKGDATADIR "/pattern.png");
 	weston_config_section_get_uint(s, "background-color",
 				       &background->color, 0xff002244);
 
@@ -1272,7 +1272,7 @@ panel_add_launchers(struct panel *panel, struct desktop *desktop)
 	if (count == 0) {
 		/* add default launcher */
 		panel_add_launcher(panel,
-				   DATADIR "/weston/terminal.png",
+				   PKGDATADIR "/terminal.png",
 				   BINDIR "/weston-terminal");
 	}
 }
diff --git a/configure.ac b/configure.ac
index 2bb7c9c..0fa1766 100644
--- a/configure.ac
+++ b/configure.ac
@@ -36,6 +36,38 @@ LT_INIT([disable-static])
 AC_ARG_VAR([WESTON_NATIVE_BACKEND],
            [Set the native backend to use, if Weston is not running under Wayland nor X11. @<:@default=drm-backend.so@:>@])
 
+
+#
+# Directories
+#
+
+# package-specific dirs
+# Autotools define them for us already,
+# but we do that here for configure substitution
+pkglibdir='${libdir}/'${PACKAGE}
+pkglibexecdir='${libexecdir}/'${PACKAGE}
+pkgincludedir='${includedir}/'${PACKAGE}
+pkgdatadir='${datadir}/'${PACKAGE}
+AC_SUBST([pkglibdir])
+AC_SUBST([pkglibexecdir])
+AC_SUBST([pkgincludedir])
+AC_SUBST([pkgdatadir])
+
+# pkg-config files
+# We prefer the system-provided value if available,
+# and fallback to a well-known value
+m4_ifdef([PKG_INSTALLDIR], [
+		PKG_INSTALLDIR()
+	], [
+		pkgconfigdir='${libdir}/pkgconfig'
+		AC_SUBST([pkgconfigdir])
+	])
+
+# weston specific dirs
+moduledir='${pkglibdir}/plugins'
+AC_SUBST([moduledir])
+
+
 PKG_PROG_PKG_CONFIG()
 
 AC_CHECK_FUNC([dlopen], [],
diff --git a/data/Makefile.am b/data/Makefile.am
index a7cc944..f6f05f9 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,6 +1,4 @@
-westondatadir = $(datadir)/weston
-
-dist_westondata_DATA =				\
+dist_pkgdata_DATA =				\
 	wayland.svg				\
 	$(wayland_icon_png)			\
 	pattern.png				\
diff --git a/man/Makefile.am b/man/Makefile.am
index e4abd8c..37174e2 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -6,7 +6,7 @@ endif
 
 MAN_SUBSTS = \
 	-e 's|__weston_native_backend__|$(WESTON_NATIVE_BACKEND)|g' \
-	-e 's|__weston_modules_dir__|$(pkglibdir)|g' \
+	-e 's|__weston_modules_dir__|$(moduledir)|g' \
 	-e 's|__version__|$(PACKAGE_VERSION)|g'
 
 SUFFIXES = .1 .5 .7 .man
diff --git a/shared/Makefile.am b/shared/Makefile.am
index 31fab5f..432d6d9 100644
--- a/shared/Makefile.am
+++ b/shared/Makefile.am
@@ -10,7 +10,7 @@ libshared_la_SOURCES =				\
 	os-compatibility.h
 
 libshared_cairo_la_CFLAGS =			\
-	-DDATADIR='"$(datadir)"'		\
+	-DPKGDATADIR='"$(pkgdatadir)"'		\
 	$(GCC_CFLAGS)				\
 	$(COMPOSITOR_CFLAGS)			\
 	$(PIXMAN_CFLAGS)			\
diff --git a/shared/frame.c b/shared/frame.c
index fc85950..1aad0be 100644
--- a/shared/frame.c
+++ b/shared/frame.c
@@ -291,7 +291,7 @@ frame_create(struct theme *t, int32_t width, int32_t height, uint32_t buttons,
 	wl_list_init(&frame->pointers);
 	wl_list_init(&frame->touches);
 
-	button = frame_button_create(frame, DATADIR "/weston/icon_window.png",
+	button = frame_button_create(frame, PKGDATADIR "/icon_window.png",
 				     FRAME_STATUS_MENU,
 				     FRAME_BUTTON_CLICK_DOWN);
 	if (!button)
@@ -299,7 +299,7 @@ frame_create(struct theme *t, int32_t width, int32_t height, uint32_t buttons,
 
 	if (buttons & FRAME_BUTTON_CLOSE) {
 		button = frame_button_create(frame,
-					     DATADIR "/weston/sign_close.png",
+					     PKGDATADIR "/sign_close.png",
 					     FRAME_STATUS_CLOSE,
 					     FRAME_BUTTON_ALIGN_RIGHT |
 					     FRAME_BUTTON_DECORATED);
@@ -309,7 +309,7 @@ frame_create(struct theme *t, int32_t width, int32_t height, uint32_t buttons,
 
 	if (buttons & FRAME_BUTTON_MAXIMIZE) {
 		button = frame_button_create(frame,
-					     DATADIR "/weston/sign_maximize.png",
+					     PKGDATADIR "/sign_maximize.png",
 					     FRAME_STATUS_MAXIMIZE,
 					     FRAME_BUTTON_ALIGN_RIGHT |
 					     FRAME_BUTTON_DECORATED);
@@ -319,7 +319,7 @@ frame_create(struct theme *t, int32_t width, int32_t height, uint32_t buttons,
 
 	if (buttons & FRAME_BUTTON_MINIMIZE) {
 		button = frame_button_create(frame,
-					     DATADIR "/weston/sign_minimize.png",
+					     PKGDATADIR "/sign_minimize.png",
 					     FRAME_STATUS_MINIMIZE,
 					     FRAME_BUTTON_ALIGN_RIGHT |
 					     FRAME_BUTTON_DECORATED);
diff --git a/src/Makefile.am b/src/Makefile.am
index 4224495..7bbc7ba 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,7 +3,7 @@ bin_PROGRAMS = weston				\
 
 AM_CPPFLAGS =					\
 	-I$(top_srcdir)/shared			\
-	-DDATADIR='"$(datadir)"'		\
+	-DPKGDATADIR='"$(pkgdatadir)"'		\
 	-DMODULEDIR='"$(moduledir)"'		\
 	-DLIBEXECDIR='"$(libexecdir)"'		\
 	-DIN_WESTON
@@ -95,18 +95,17 @@ endif
 
 endif # BUILD_WESTON_LAUNCH
 
-pkgconfigdir = $(libdir)/pkgconfig
+# *dir vars are defined in configure.ac
+
 pkgconfig_DATA = weston.pc
 
-westonincludedir = $(includedir)/weston
-westoninclude_HEADERS =				\
+pkginclude_HEADERS =				\
 	version.h				\
 	compositor.h				\
 	../shared/matrix.h			\
 	../shared/config-parser.h		\
 	../shared/zalloc.h
 
-moduledir = $(libdir)/weston
 module_LTLIBRARIES =				\
 	$(desktop_shell)			\
 	$(tablet_shell)				\
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 21ce5cb..1068486 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -97,7 +97,7 @@ create_border(struct wayland_compositor *c)
 	pixman_image_t *image;
 	int32_t edges[4];
 
-	image = load_image(DATADIR "/weston/border.png");
+	image = load_image(PKGDATADIR "/border.png");
 	if (!image) {
 		weston_log("couldn't load border image\n");
 		return;
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index 1ccd03c..f9449c4 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -895,7 +895,7 @@ x11_compositor_create_output(struct x11_compositor *c, int x, int y,
 			    c->atom.wm_class, c->atom.string, 8,
 			    sizeof class, class);
 
-	x11_output_set_icon(c, output, DATADIR "/weston/wayland.png");
+	x11_output_set_icon(c, output, PKGDATADIR "/wayland.png");
 
 	x11_output_set_wm_protocols(c, output);
 
diff --git a/src/weston.pc.in b/src/weston.pc.in
index 5e61d3d..64509c5 100644
--- a/src/weston.pc.in
+++ b/src/weston.pc.in
@@ -1,9 +1,13 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
-includedir=@includedir@
 libexecdir=@libexecdir@
-pkglibexecdir=${libexecdir}/@PACKAGE@
+includedir=@includedir@
+
+pkglibdir=@pkglibdir@
+pkglibexecdir=@pkglibexecdir@
+
+moduledir=@moduledir@
 
 Name: Weston Plugin API
 Description: Header files for Weston plugin development
diff --git a/src/xwayland/Makefile.am b/src/xwayland/Makefile.am
index cab59c7..2cf5615 100644
--- a/src/xwayland/Makefile.am
+++ b/src/xwayland/Makefile.am
@@ -1,12 +1,12 @@
 AM_CPPFLAGS =					\
 	-I$(top_srcdir)/shared			\
 	-I$(top_builddir)/src			\
-	-DDATADIR='"$(datadir)"'		\
+	-DPKGDATADIR='"$(pkgdatadir)"'		\
 	-DMODULEDIR='"$(moduledir)"'		\
 	-DLIBEXECDIR='"$(libexecdir)"'		\
 	-DXSERVER_PATH='"@XSERVER_PATH@"'
 
-moduledir = @libdir@/weston
+# moduledir is defined in configure.ac
 module_LTLIBRARIES = xwayland.la
 
 xwayland = xwayland.la
-- 
1.8.4.1



More information about the wayland-devel mailing list