[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