|
|
|
AC_PREREQ([2.64])
|
|
|
|
AC_INIT([weston],
|
|
|
|
[0.94.90],
|
|
|
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=weston],
|
|
|
|
[weston],
|
|
|
|
[http://wayland.freedesktop.org/])
|
|
|
|
|
|
|
|
AC_CONFIG_HEADERS([config.h])
|
|
|
|
|
|
|
|
AM_INIT_AUTOMAKE([1.11 foreign no-dist-gzip dist-xz])
|
|
|
|
|
|
|
|
AM_SILENT_RULES([yes])
|
|
|
|
|
|
|
|
# Check for programs
|
|
|
|
AC_PROG_CC
|
|
|
|
AC_PROG_CXX
|
|
|
|
|
|
|
|
# Initialize libtool
|
|
|
|
LT_PREREQ([2.2])
|
|
|
|
LT_INIT([disable-static])
|
|
|
|
|
|
|
|
PKG_PROG_PKG_CONFIG()
|
|
|
|
|
|
|
|
AC_CHECK_FUNC([dlopen], [],
|
|
|
|
AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
|
|
|
|
AC_SUBST(DLOPEN_LIBS)
|
|
|
|
|
|
|
|
AC_CHECK_HEADERS([execinfo.h])
|
|
|
|
|
|
|
|
AC_CHECK_FUNCS([mkostemp strchrnul])
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(COMPOSITOR,
|
|
|
|
[wayland-server egl >= 7.10 glesv2 xkbcommon pixman-1])
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(setuid-install, [ --enable-setuid-install],,
|
|
|
|
enable_setuid_install=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_SETUID_INSTALL, test x$enable_setuid_install = xyes)
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(xwayland, [ --enable-xwayland],,
|
|
|
|
enable_xwayland=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_XWAYLAND, test x$enable_xwayland = xyes)
|
|
|
|
if test x$enable_xwayland = xyes; then
|
|
|
|
PKG_CHECK_MODULES([XWAYLAND], xcb xcb-xfixes xcursor cairo-xcb)
|
|
|
|
AC_DEFINE([BUILD_XWAYLAND], [1], [Build the X server launcher])
|
|
|
|
|
|
|
|
AC_ARG_WITH(xserver-path, AS_HELP_STRING([--with-xserver-path=PATH],
|
|
|
|
[Path to X server]), [XSERVER_PATH="$withval"],
|
|
|
|
[XSERVER_PATH="$bindir/Xorg"])
|
|
|
|
AC_SUBST([XSERVER_PATH])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(x11-compositor, [ --enable-x11-compositor],,
|
|
|
|
enable_x11_compositor=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_X11_COMPOSITOR, test x$enable_x11_compositor = xyes)
|
|
|
|
if test x$enable_x11_compositor = xyes; then
|
|
|
|
PKG_CHECK_MODULES([XCB], xcb)
|
|
|
|
xcb_save_LIBS=$LIBS
|
|
|
|
xcb_save_CFLAGS=$CFLAGS
|
|
|
|
CFLAGS=$XCB_CFLAGS
|
|
|
|
LIBS=$XCB_LIBS
|
|
|
|
AC_CHECK_FUNCS([xcb_poll_for_queued_event])
|
|
|
|
LIBS=$xcb_save_LIBS
|
|
|
|
CFLAGS=$xcb_save_CFLAGS
|
|
|
|
|
|
|
|
X11_COMPOSITOR_MODULES="x11 x11-xcb"
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(X11_COMPOSITOR_XKB, [xcb-xkb],
|
|
|
|
[have_xcb_xkb="yes"], [have_xcb_xkb="no"])
|
|
|
|
if test "x$have_xcb_xkb" = xyes; then
|
|
|
|
# Most versions of XCB have totally broken XKB bindings, where the
|
|
|
|
# events don't work. Make sure we can actually use them.
|
|
|
|
xcb_xkb_save_CFLAGS=$CFLAGS
|
|
|
|
CFLAGS=$X11_COMPOSITOR_XKB_CFLAGS
|
|
|
|
AC_CHECK_MEMBER([struct xcb_xkb_state_notify_event_t.xkbType],
|
|
|
|
[], [have_xcb_xkb=no], [[#include <xcb/xkb.h>]])
|
|
|
|
CFLAGS=$xcb_xkb_save_CFLAGS
|
|
|
|
fi
|
|
|
|
if test "x$have_xcb_xkb" = xyes; then
|
|
|
|
X11_COMPOSITOR_MODULES="$X11_COMPOSITOR_MODULES xcb-xkb"
|
|
|
|
AC_DEFINE([HAVE_XCB_XKB], [1], [libxcb supports XKB protocol])
|
|
|
|
fi
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(X11_COMPOSITOR, [$X11_COMPOSITOR_MODULES])
|
|
|
|
AC_DEFINE([BUILD_X11_COMPOSITOR], [1], [Build the X11 compositor])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(drm-compositor, [ --enable-drm-compositor],,
|
|
|
|
enable_drm_compositor=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_DRM_COMPOSITOR, test x$enable_drm_compositor = xyes)
|
|
|
|
if test x$enable_drm_compositor = xyes; then
|
|
|
|
AC_DEFINE([BUILD_DRM_COMPOSITOR], [1], [Build the DRM compositor])
|
|
|
|
PKG_CHECK_MODULES(DRM_COMPOSITOR, [libudev >= 136 libdrm >= 2.4.30 gbm mtdev >= 1.1.0])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(openwfd-compositor, [ --enable-openwfd-compositor],,
|
|
|
|
enable_openwfd_compositor=no)
|
|
|
|
AM_CONDITIONAL(ENABLE_OPENWFD_COMPOSITOR, test x$enable_openwfd_compositor = xyes)
|
|
|
|
if test x$enable_openwfd_compositor = xyes; then
|
|
|
|
AC_DEFINE([BUILD_OPENWFD_COMPOSITOR], [1], [Build the OpenWF compositor])
|
|
|
|
PKG_CHECK_MODULES(OPENWFD_COMPOSITOR, [openwfd gbm])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(wayland-compositor, [ --enable-wayland-compositor],,
|
|
|
|
enable_wayland_compositor=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_WAYLAND_COMPOSITOR,
|
|
|
|
test x$enable_wayland_compositor = xyes)
|
|
|
|
if test x$enable_wayland_compositor = xyes; then
|
|
|
|
AC_DEFINE([BUILD_WAYLAND_COMPOSITOR], [1],
|
|
|
|
[Build the Wayland (nested) compositor])
|
|
|
|
PKG_CHECK_MODULES(WAYLAND_COMPOSITOR, [wayland-client wayland-egl])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(android-compositor,
|
|
|
|
AS_HELP_STRING([--disable-android-compositor],
|
|
|
|
[do not build-test the Android 4.0 backend]),,
|
|
|
|
enable_android_compositor=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_ANDROID_COMPOSITOR, test x$enable_android_compositor = xyes)
|
|
|
|
if test x$enable_android_compositor = xyes; then
|
|
|
|
AC_DEFINE([BUILD_ANDROID_COMPOSITOR], [1], [Build the compositor for Android 4.0])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_WITH(cairo-glesv2, AS_HELP_STRING([--with-cairo-glesv2],
|
|
|
|
[Use GLESv2 cairo instead of full GL]),
|
|
|
|
[cairo_modules="cairo-glesv2"],
|
|
|
|
[cairo_modules="cairo-gl"])
|
|
|
|
if test x$cairo_modules = xcairo-glesv2; then
|
|
|
|
AC_DEFINE([USE_CAIRO_GLESV2], [1], [Use the GLESv2 GL cairo backend])
|
|
|
|
fi
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(PIXMAN, [pixman-1])
|
|
|
|
PKG_CHECK_MODULES(PNG, [libpng])
|
|
|
|
PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no])
|
|
|
|
AS_IF([test "x$have_webp" = "xyes"],
|
|
|
|
[AC_DEFINE([HAVE_WEBP], [1], [Have webp])])
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(CAIRO, [cairo])
|
|
|
|
SHARED_LIBS="$CAIRO_LIBS $PIXMAN_LIBS $PNG_LIBS $WEBP_LIBS"
|
|
|
|
SHARED_CFLAGS="$CAIRO_CFLAGS $PIXMAN_CFLAGS $PNG_CFLAGS $WEBP_CFLAGS"
|
|
|
|
AC_SUBST(SHARED_LIBS)
|
|
|
|
AC_SUBST(SHARED_CFLAGS)
|
|
|
|
|
|
|
|
AC_CHECK_LIB([jpeg], [jpeg_CreateDecompress], have_jpeglib=yes)
|
|
|
|
if test x$have_jpeglib = xyes; then
|
|
|
|
IMAGE_LIBS="$IMAGE_LIBS -ljpeg"
|
|
|
|
else
|
|
|
|
AC_ERROR([libjpeg not found])
|
|
|
|
fi
|
|
|
|
|
|
|
|
COMPOSITOR_LIBS="$COMPOSITOR_LIBS $IMAGE_LIBS"
|
|
|
|
COMPOSITOR_CFLAGS="$COMPOSITOR_CFLAGS $IMAGE_CFLAGS"
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(simple-clients, [ --enable-simple-clients],, enable_simple_clients=yes)
|
|
|
|
AM_CONDITIONAL(BUILD_SIMPLE_CLIENTS, test x$enable_simple_clients = xyes)
|
|
|
|
if test x$enable_simple_clients = xyes; then
|
|
|
|
AC_DEFINE([BUILD_SIMPLE_CLIENTS], [1], [Build the Wayland simple clients])
|
|
|
|
PKG_CHECK_MODULES(SIMPLE_CLIENT,
|
|
|
|
[egl >= 7.10 glesv2 wayland-client wayland-egl])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(clients, [ --enable-clients],, enable_clients=yes)
|
|
|
|
AM_CONDITIONAL(BUILD_CLIENTS, test x$enable_clients = xyes)
|
|
|
|
if test x$enable_clients = xyes; then
|
|
|
|
AC_DEFINE([BUILD_CLIENTS], [1], [Build the Wayland clients])
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(CLIENT, [wayland-client wayland-egl egl >= 7.10 cairo >= 1.10.0 xkbcommon wayland-cursor])
|
|
|
|
|
|
|
|
CLIENT_CFLAGS="$CLIENT_CFLAGS $IMAGE_CFLAGS"
|
|
|
|
CLIENT_LIBS="$CLIENT_LIBS $IMAGE_LIBS"
|
|
|
|
|
|
|
|
PKG_CHECK_MODULES(POPPLER, [poppler-glib glib-2.0 gobject-2.0 gio-2.0 ],
|
|
|
|
[have_poppler=yes], [have_poppler=no])
|
|
|
|
PKG_CHECK_MODULES(CAIRO_EGL, [cairo-egl >= 1.11.3 $cairo_modules],
|
|
|
|
[have_cairo_egl=yes], [have_cairo_egl=no])
|
|
|
|
AS_IF([test "x$have_cairo_egl" = "xyes"],
|
|
|
|
[AC_DEFINE([HAVE_CAIRO_EGL], [1], [Have cairo-egl])],
|
|
|
|
[AC_MSG_WARN([Cairo-EGL not found - clients will use cairo image])])
|
|
|
|
fi
|
|
|
|
|
|
|
|
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
|
|
|
|
PKG_CHECK_MODULES(WESTON_LAUNCH, [libdrm])
|
|
|
|
PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login],
|
|
|
|
[have_systemd_login=yes], [have_systemd_login=no])
|
|
|
|
AS_IF([test "x$have_systemd_login" = "xyes"],
|
|
|
|
[AC_DEFINE([HAVE_SYSTEMD_LOGIN], [1], [Have systemd-login])])
|
|
|
|
|
|
|
|
AC_CHECK_LIB([pam], [pam_open_session], [have_pam=yes], [have_pam=no])
|
|
|
|
if test x$have_pam == xno; then
|
|
|
|
AC_ERROR([weston-launch requires pam])
|
|
|
|
fi
|
|
|
|
WESTON_LAUNCH_LIBS="$WESTON_LAUNCH_LIBS -lpam"
|
|
|
|
fi
|
|
|
|
|
|
|
|
AM_CONDITIONAL(HAVE_POPPLER, test "x$have_poppler" = "xyes")
|
|
|
|
|
|
|
|
AM_CONDITIONAL(BUILD_FULL_GL_CLIENTS,
|
|
|
|
test x$cairo_modules = "xcairo-gl" -a "x$have_cairo_egl" = "xyes")
|
|
|
|
|
|
|
|
AM_CONDITIONAL(ENABLE_DESKTOP_SHELL, true)
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(tablet-shell, [ --enable-tablet-shell],,
|
|
|
|
enable_tablet_shell=yes)
|
|
|
|
AM_CONDITIONAL(ENABLE_TABLET_SHELL,
|
|
|
|
test x$enable_tablet_shell = xyes)
|
|
|
|
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(wcap-tools, [ --disable-wcap-tools],, enable_wcap_tools=yes)
|
|
|
|
AM_CONDITIONAL(BUILD_WCAP_TOOLS, test x$enable_wcap_tools = xyes)
|
|
|
|
if test x$enable_wcap_tools = xyes; then
|
|
|
|
AC_DEFINE([BUILD_WCAP_TOOLS], [1], [Build the wcap tools])
|
|
|
|
PKG_CHECK_MODULES(WCAP, [cairo])
|
|
|
|
WCAP_LIBS="$WCAP_LIBS -lm"
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_CHECK_PROG(RSVG_CONVERT, rsvg-convert, rsvg-convert)
|
|
|
|
AM_CONDITIONAL(HAVE_RSVG_CONVERT, test -n "$RSVG_CONVERT")
|
|
|
|
|
|
|
|
|
|
|
|
if test "x$GCC" = "xyes"; then
|
|
|
|
my_common_gcc_flags="-Wall -Wextra -Wno-unused-parameter \
|
|
|
|
-Wno-missing-field-initializers -g -fvisibility=hidden"
|
|
|
|
GCC_CFLAGS="$my_common_gcc_flags \
|
|
|
|
-Wstrict-prototypes -Wmissing-prototypes"
|
|
|
|
GCC_CXXFLAGS="$my_common_gcc_flags"
|
|
|
|
fi
|
|
|
|
AC_SUBST(GCC_CFLAGS)
|
|
|
|
AC_SUBST(GCC_CXXFLAGS)
|
|
|
|
|
|
|
|
WAYLAND_SCANNER_RULES(['$(top_srcdir)/protocol'])
|
|
|
|
|
|
|
|
AC_CONFIG_FILES([Makefile
|
|
|
|
shared/Makefile
|
Rename wayland-compositor to weston
This rename addresses a few problems around the split between core
Wayland and the wayland-demos repository.
1) Initially, we had one big repository with protocol code, sample
compositor and sample clients. We split that repository to make it
possible to implement the protocol without pulling in the sample/demo
code. At this point, the compositor is more than just a "demo" and
wayland-demos doesn't send the right message. The sample compositor
is a useful, self-contained project in it's own right, and we want to
move away from the "demos" label.
2) Another problem is that the wayland-demos compositor is often
called "the wayland compsitor", but it's really just one possible
compositor. Existing X11 compositors are expected to add Wayland
support and then gradually phase out/modularize the X11 support, for
example. Conversely, it's hard to talk about the wayland-demos
compositor specifically as opposed to, eg, the wayland protocol or a
wayland compositor in general.
We are also renaming the repo to weston, and the compositor
subdirectory to src/, to emphasize that the main "output" is the
compositor.
13 years ago
|
|
|
src/Makefile
|
|
|
|
src/xwayland/Makefile
|
|
|
|
clients/Makefile
|
|
|
|
wcap/Makefile
|
|
|
|
data/Makefile
|
tests: add matrix-test
Add a new directory tests/ for unit test applications. This directory
will be built only if --enable-tests is given to ./configure.
Add matrix-test application. It excercises especially the
weston_matrix_invert() and weston_matrix_inverse_transform() functions.
It has one test for correctness and precision, and other tests for
measuring the speed of various matrix operations.
For the record, the correctness test prints:
a random matrix:
1.112418e-02 2.628150e+00 8.205844e+02 -1.147526e-04
4.943677e-04 -1.117819e-04 -9.158849e-06 3.678122e-02
7.915063e-03 -3.093254e-04 -4.376583e+02 3.424706e-02
-2.504038e+02 2.481788e+03 -7.545445e+01 1.752909e-03
The matrix multiplied by its inverse, error:
0.000000e+00 -0.000000e+00 -0.000000e+00 -0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
-0.000000e+00 -0.000000e+00 0.000000e+00 -0.000000e+00
0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
max abs error: 0, original determinant 11595.2
Running a test loop for 10 seconds...
test fail, det: -0.00464805, error sup: inf
test fail, det: -0.0424053, error sup: 1.30787e-06
test fail, det: 5.15191, error sup: 1.15956e-06
tests: 6791767 ok, 1 not invertible but ok, 3 failed.
Total: 6791771 iterations.
These results are expected with the current precision thresholds in
src/matrix.c and tests/matrix-test.c. The random number generator is
seeded with a constant, so the random numbers should be the same on
every run. Machine speed and scheduling affect how many iterations are
run.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
13 years ago
|
|
|
protocol/Makefile
|
|
|
|
tests/Makefile])
|
|
|
|
AC_OUTPUT
|