[weston, v2, 17/17] configure: add an option to allow building only the libraries

Bryce Harrington bryce at osg.samsung.com
Tue Jan 27 12:43:35 PST 2015


On Thu, Dec 04, 2014 at 11:01:23PM +0200, Giulio Camuffo wrote:
> the --enable/disable-weston-binaries emable or disable the creation
> of the 'weston', 'weston-launch' and all the binaries that are
> installed in $prefix/lib/libexec. This allows, together with
> --enable-clients, to only build the libraries, making possible to
> build and install different libweston versions at the same time.

Splitting out libweston is a revolutionary change, and likely a great
idea.  This is a very well organized patchset for achieving this -
nicely done.  However, this has huge implications for Weston.  In
consulting with daniels about this, it's still unclear whether this is a
direction that Weston should take.

I'm going to defer this for the time being, since this is too large to
go in for 1.7, and because it needs a deeper architectural
consideration.  In particular, we should better understand the
real-world usages that we can expect to see.  With libraries, the
project will be taking on API stability chores and such, as costs, so we
need to understand the benefits we're gaining in return.  I'd encourage
you to post another request-for-comments on this, to help us hash it out
and come to a decision.

daniels suggests one possible compromise would be to hide this behind an
experimental configure switch.  I'm skeptical that this gives us twice
the complexity for half the usefulness, but if you want to press on with
this in the near term, it'd be a possible path forward.

> ---
> Makefile.am  | 15 +++++++++++++++
>  configure.ac |  8 ++++++++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/Makefile.am b/Makefile.am
> index 5ca8179..7422298 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -92,6 +92,8 @@ nodist_libweston_la_SOURCES =					\
>  
>  BUILT_SOURCES += $(nodist_libweston_la_SOURCES)
>  
> +
> +if BUILD_WESTON_BINARIES
>  bin_PROGRAMS += weston
>  
>  weston_LDFLAGS = -export-dynamic
> @@ -103,6 +105,7 @@ weston_LDADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
>  weston_SOURCES =					\
>  	src/weston.c					\
>  	src/text-backend.c
> +endif
>  
>  # Track this dependency explicitly instead of using BUILT_SOURCES.  We
>  # add BUILT_SOURCES to CLEANFILES, but we want to keep git-version.h
> @@ -158,6 +161,7 @@ libweston_launcher_la_SOURCES = 		\
>  	src/weston-launch.h		\
>  	src/weston-launcher.h
>  
> +if BUILD_WESTON_BINARIES
>  bin_PROGRAMS += weston-launch
>  weston_launch_SOURCES = src/weston-launch.c
>  weston_launch_CPPFLAGS = -DBINDIR='"$(bindir)"' -I$(top_srcdir)/libweston
> @@ -170,6 +174,7 @@ install-exec-hook:
>  	chown root $(DESTDIR)$(bindir)/weston-launch
>  	chmod u+s $(DESTDIR)$(bindir)/weston-launch
>  endif
> +endif # BUILD_WESTON_BINARIES
>  
>  endif # BUILD_WESTON_LAUNCH
>  
> @@ -382,6 +387,7 @@ if BUILD_CLIENTS
>  
>  bin_PROGRAMS += weston-terminal weston-info
>  
> +if BUILD_WESTON_BINARIES
>  libexec_PROGRAMS +=				\
>  	weston-desktop-shell			\
>  	weston-screenshooter			\
> @@ -392,6 +398,7 @@ if ENABLE_IVI_SHELL
>  libexec_PROGRAMS +=				\
>  	weston-ivi-shell-user-interface
>  endif
> +endif
>  
>  demo_clients =					\
>  	weston-flower				\
> @@ -506,6 +513,7 @@ weston_flower_SOURCES = clients/flower.c
>  weston_flower_LDADD = libtoytoolkit.la
>  weston_flower_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS)
>  
> +if BUILD_WESTON_BINARIES
>  weston_screenshooter_SOURCES =				\
>  	clients/screenshot.c
>  nodist_weston_screenshooter_SOURCES =			\
> @@ -513,6 +521,7 @@ nodist_weston_screenshooter_SOURCES =			\
>  	protocol/screenshooter-client-protocol.h
>  weston_screenshooter_LDADD = $(CLIENT_LIBS) libshared.la
>  weston_screenshooter_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS)
> +endif
>  
>  weston_terminal_SOURCES = clients/terminal.c
>  weston_terminal_LDADD = libtoytoolkit.la -lutil
> @@ -606,6 +615,7 @@ weston_editor_LDADD = libtoytoolkit.la $(PANGO_LIBS)
>  weston_editor_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS) $(PANGO_CFLAGS)
>  endif
>  
> +if BUILD_WESTON_BINARIES
>  weston_keyboard_SOURCES = clients/keyboard.c
>  nodist_weston_keyboard_SOURCES =			\
>  	protocol/desktop-shell-client-protocol.h	\
> @@ -621,6 +631,7 @@ nodist_weston_simple_im_SOURCES =		\
>  	protocol/input-method-client-protocol.h
>  weston_simple_im_LDADD = $(CLIENT_LIBS)
>  weston_simple_im_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS)
> +endif
>  
>  weston_info_SOURCES = clients/weston-info.c
>  nodist_weston_info_SOURCES =				\
> @@ -629,13 +640,16 @@ nodist_weston_info_SOURCES =				\
>  weston_info_LDADD = $(WESTON_INFO_LIBS) libshared.la
>  weston_info_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS)
>  
> +if BUILD_WESTON_BINARIES
>  weston_desktop_shell_SOURCES = clients/desktop-shell.c
>  nodist_weston_desktop_shell_SOURCES =			\
>  	protocol/desktop-shell-client-protocol.h	\
>  	protocol/desktop-shell-protocol.c
>  weston_desktop_shell_LDADD = libtoytoolkit.la
>  weston_desktop_shell_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS)
> +endif
>  
> +if BUILD_WESTON_BINARIES
>  if ENABLE_IVI_SHELL
>  weston_ivi_shell_user_interface_SOURCES = clients/ivi-shell-user-interface.c
>  nodist_weston_ivi_shell_user_interface_SOURCES =			\
> @@ -646,6 +660,7 @@ nodist_weston_ivi_shell_user_interface_SOURCES =			\
>  weston_ivi_shell_user_interface_LDADD = libtoytoolkit.la
>  weston_ivi_shell_user_interface_CFLAGS = $(AM_CFLAGS) $(CLIENT_CFLAGS)
>  endif
> +endif
>  
>  if BUILD_FULL_GL_CLIENTS
>  demo_clients += weston-gears
> diff --git a/configure.ac b/configure.ac
> index eeab641..5424a85 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -352,6 +352,12 @@ PKG_CHECK_MODULES(SYSTEMD_LOGIN_209, [libsystemd-login >= 209],
>  AS_IF([test "x$have_systemd_login_209" = "xyes"],
>        [AC_DEFINE([HAVE_SYSTEMD_LOGIN_209], [1], [Have systemd-login >= 209])])
>  
> +AC_ARG_ENABLE(weston-binaries,
> +              AS_HELP_STRING([--enable-weston-binaries],
> +                             [build the weston binaries]),,
> +              enable_weston_binaries=yes)
> +AM_CONDITIONAL(BUILD_WESTON_BINARIES, test x$enable_weston_binaries == xyes)
> +
>  AC_ARG_ENABLE(weston-launch, [  --enable-weston-launch],, enable_weston_launch=yes)
>  AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch == xyes)
>  if test x$enable_weston_launch == xyes; then
> @@ -518,6 +524,8 @@ AC_MSG_RESULT([
>  	Native Backend			${WESTON_NATIVE_BACKEND}
>  	setuid Install			${enable_setuid_install}
>  
> +	Buld the weston binaries	${enable_weston_binaries}
> +
>  	Cairo Renderer			${with_cairo}
>  	EGL				${enable_egl}
>  	libxkbcommon			${enable_xkbcommon}


More information about the wayland-devel mailing list