kmscon/configure.ac
David Herrmann ed6d7fa116 Release kmscon-7
This is kmscon-7. See ./NEWS for a list of new features.

Unfortunately, github disabled the "Downloads" section so there is no way
to upload new pre-generated tarballs. I have a pending application to move
kmscon to freedesktop.org, but it didn't get processed in time for this
release. Therefore, you need to build the GNU-autotools files yourself.
That is, before calling ./configure you need to call:
  NOCONFIGURE=1 ./autogen.sh

You can extend your build-scripts with:
  test -f ./configure || NOCONFIGURE=1 ./autogen.sh

Which will call ./autogen.sh if needed. Everything else can be left
unchanged.

I will not upload the tarballs at another location. Feel free to do that
yourself, but I personally think this will introduce more confusion than
help. I hope the freedesktop.org move will be soon approved. This will
also provide a mailing-list where I can properly announce new releases.

Raw tarballs will be available as (without pre-generated autotools):
  https://github.com/dvdhrm/kmscon/archive/kmscon-7.tar.gz
  https://github.com/dvdhrm/kmscon/archive/kmscon-7.zip

The git-tag is: kmscon-7
You can use my public GPG key to verify the tarballs.

As usual, please report bugs to: https://github.com/dvdhrm/kmscon

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
2013-02-28 11:37:16 +01:00

1315 lines
39 KiB
Plaintext

#
# Kmscon - build configuration script
# Copyright (c) 2012 David Herrmann <dh.herrmann@googlemail.com>
#
AC_PREREQ(2.68)
AC_INIT([kmscon], [7])
AC_SUBST(PACKAGE_URL, [https://github.com/dvdhrm/kmscon])
AC_CONFIG_SRCDIR([src/kmscon_main.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADER(config.h)
AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
AC_PREFIX_DEFAULT([/usr])
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects dist-bzip2 no-dist-gzip tar-pax -Wall -Werror -Wno-portability])
AM_SILENT_RULES([yes])
#
# Don't add a default "-g -O2" if CFLAGS wasn't specified. For debugging it is
# often more convenient to have "-g -O0". You can still override it by
# explicitly setting it on the command line.
#
: ${CFLAGS=""}
AC_PROG_CC
AC_PROG_CC_C99
AM_PROG_CC_C_O
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
AC_PROG_SED
AC_PROG_MKDIR_P
AC_PROG_LN_S
AC_PROG_GREP
AC_PROG_AWK
LT_PREREQ(2.2)
LT_INIT
#
# pkg-config dependencies
# This unconditionally checks for all dependencies even if they are disabled. We
# later look whether all required depedencies are met and finish the
# configuration. We group similar packages into one logical group here to avoid
# having variables for each single library.
# This, however, makes ./configure output very unintuitive error messages if a
# package is not found so we must make sure we print more verbose messages
# ourself.
#
PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
[have_xkbcommon=yes], [have_xkbcommon=no])
AC_SUBST(XKBCOMMON_CFLAGS)
AC_SUBST(XKBCOMMON_LIBS)
PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server wayland-cursor],
[have_wayland=yes], [have_wayland=no])
AC_SUBST(WAYLAND_CFLAGS)
AC_SUBST(WAYLAND_LIBS)
PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon libsystemd-login],
[have_systemd=yes], [have_systemd=no])
AC_SUBST(SYSTEMD_CFLAGS)
AC_SUBST(SYSTEMD_LIBS)
PKG_CHECK_MODULES([UDEV], [libudev >= 172],
[have_udev=yes], [have_udev=no])
AC_SUBST(UDEV_CFLAGS)
AC_SUBST(UDEV_LIBS)
PKG_CHECK_MODULES([DBUS], [dbus-1],
[have_dbus=yes], [have_dbus=no])
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
PKG_CHECK_MODULES([DRM], [libdrm],
[have_drm=yes], [have_drm=no])
AC_SUBST(DRM_CFLAGS)
AC_SUBST(DRM_LIBS)
PKG_CHECK_MODULES([GBM], [gbm],
[have_gbm=yes], [have_gbm=no])
AC_SUBST(GBM_CFLAGS)
AC_SUBST(GBM_LIBS)
PKG_CHECK_MODULES([EGL], [egl],
[have_egl=yes], [have_egl=no])
AC_SUBST(EGL_CFLAGS)
AC_SUBST(EGL_LIBS)
PKG_CHECK_MODULES([GLES2], [glesv2],
[have_gles2=yes], [have_gles2=no])
AC_SUBST(GLES2_CFLAGS)
AC_SUBST(GLES2_LIBS)
PKG_CHECK_MODULES([FREETYPE2], [freetype2 fontconfig],
[have_freetype2=yes], [have_freetype2=no])
AC_SUBST(FREETYPE2_CFLAGS)
AC_SUBST(FREETYPE2_LIBS)
PKG_CHECK_MODULES([PANGO], [pango pangoft2],
[have_pango=yes], [have_pango=no])
AC_SUBST(PANGO_CFLAGS)
AC_SUBST(PANGO_LIBS)
PKG_CHECK_MODULES([FUSE], [fuse >= 2.9.0],
[have_fuse=yes], [have_fuse=no])
AC_SUBST(FUSE_CFLAGS)
AC_SUBST(FUSE_LIBS)
PKG_CHECK_MODULES([CAIRO], [cairo],
[have_cairo=yes], [have_cairo=no])
AC_SUBST(CAIRO_CFLAGS)
AC_SUBST(CAIRO_LIBS)
PKG_CHECK_MODULES([PIXMAN], [pixman-1],
[have_pixman=yes], [have_pixman=no])
AC_SUBST(PIXMAN_CFLAGS)
AC_SUBST(PIXMAN_LIBS)
#
# Parse arguments
# This parses all arguments that are given via "--enable-XY" or "--with-XY" and
# saves the results in local variables. This does not check dependencies or
# similar but does only parse the arguments.
#
# eloop
AC_MSG_CHECKING([whether user wants eloop])
AC_ARG_ENABLE([eloop],
[AS_HELP_STRING([--enable-eloop],
[build eloop library])])
if test "x$enable_eloop" = "x" ; then
enable_eloop="no (default)"
fi
AC_MSG_RESULT([$enable_eloop])
# TSM
AC_MSG_CHECKING([whether user wants TSM])
AC_ARG_ENABLE([tsm],
[AS_HELP_STRING([--enable-tsm],
[build tsm library])])
if test "x$enable_tsm" = "x" ; then
enable_tsm="no (default)"
fi
AC_MSG_RESULT([$enable_tsm])
# UVT
AC_MSG_CHECKING([whether user wants UVT])
AC_ARG_ENABLE([uvt],
[AS_HELP_STRING([--enable-uvt],
[build uvt library])])
if test "x$enable_uvt" = "x" ; then
enable_uvt="no (default)"
fi
AC_MSG_RESULT([$enable_uvt])
# uterm
AC_MSG_CHECKING([whether user wants uterm])
AC_ARG_ENABLE([uterm],
[AS_HELP_STRING([--enable-uterm],
[build uterm library])])
if test "x$enable_uterm" = "x" ; then
enable_uterm="no (default)"
fi
AC_MSG_RESULT([$enable_uterm])
# kmscon
AC_MSG_CHECKING([whether user wants kmscon])
AC_ARG_ENABLE([kmscon],
[AS_HELP_STRING([--disable-kmscon],
[do not build kmscon])])
if test "x$enable_kmscon" = "x" ; then
enable_kmscon="yes (default)"
fi
AC_MSG_RESULT([$enable_kmscon])
# wlterm
AC_MSG_CHECKING([whether user wants wlterm])
AC_ARG_ENABLE([wlterm],
[AS_HELP_STRING([--enable-wlterm],
[build wlterm])])
if test "x$enable_wlterm" = "x" ; then
enable_wlterm="no (default)"
fi
AC_MSG_RESULT([$enable_wlterm])
# debug
AC_MSG_CHECKING([whether to build with debugging on])
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug],
[whether to build with debugging on])])
if test "x$enable_debug" = "x" ; then
enable_debug="yes (default)"
fi
AC_MSG_RESULT([$enable_debug])
# optimizations
AC_MSG_CHECKING([whether to disable code optimizations])
AC_ARG_ENABLE([optimizations],
[AS_HELP_STRING([--disable-optimizations],
[whether to disable code optimizations])])
if test "x$enable_optimizations" = "x" ; then
enable_optimizations="yes (default)"
fi
AC_MSG_RESULT([$enable_optimizations])
# multi-seat
AC_MSG_CHECKING([whether user wants systemd for multi-seat support])
AC_ARG_ENABLE([multi-seat],
[AS_HELP_STRING([--enable-multi-seat],
[enable multi-seat support with systemd])])
if test "x$enable_multi_seat" = "x" ; then
enable_multi_seat="yes (default)"
fi
AC_MSG_RESULT([$enable_multi_seat])
# hotplug
AC_MSG_CHECKING([whether user wants udev for device hotplug support])
AC_ARG_ENABLE([hotplug],
[AS_HELP_STRING([--enable-hotplug],
[enable device hotplug support with udev])])
if test "x$enable_hotplug" = "x" ; then
enable_hotplug="yes (default)"
fi
AC_MSG_RESULT([$enable_hotplug])
# eloop-dbus
AC_MSG_CHECKING([whether user wants eloop dbus support])
AC_ARG_ENABLE([eloop-dbus],
[AS_HELP_STRING([--enable-eloop-dbus],
[enable eloop dbus support])])
if test "x$enable_eloop_dbus" = "x" ; then
enable_eloop_dbus="no (default)"
fi
AC_MSG_RESULT([$enable_eloop_dbus])
# video backends
AC_MSG_CHECKING([which video backends the user wants])
AC_ARG_WITH([video],
[AS_HELP_STRING([--with-video],
[specify list of optional video backends])],
[],
[with_video="default"])
enable_video_fbdev="no"
enable_video_drm2d="no"
enable_video_drm3d="no"
if test "x$with_video" = "xdefault" ; then
enable_video_fbdev="yes (default)"
enable_video_drm2d="yes (default)"
enable_video_drm3d="yes (default)"
with_video="fbdev,drm2d,drm3d (default)"
elif test ! "x$with_video" = "x" ; then
SAVEIFS="$IFS"
IFS=","
for i in $with_video ; do
if test "x$i" = "xfbdev" ; then
enable_video_fbdev="yes"
elif test "x$i" = "xdrm2d" ; then
enable_video_drm2d="yes"
elif test "x$i" = "xdrm3d" ; then
enable_video_drm3d="yes"
else
IFS="$SAVEIFS"
AC_ERROR([Invalid video backend $i])
fi
done
IFS="$SAVEIFS"
fi
AC_MSG_RESULT([$with_video])
# renderers
AC_MSG_CHECKING([which render backends the user wants])
AC_ARG_WITH([renderers],
[AS_HELP_STRING([--with-renderers],
[specify list of optional render backends])],
[],
[with_renderers="default"])
enable_renderer_bbulk="no"
enable_renderer_gltex="no"
enable_renderer_cairo="no"
enable_renderer_pixman="no"
if test "x$with_renderers" = "xdefault" ; then
enable_renderer_bbulk="yes (default)"
enable_renderer_gltex="yes (default)"
enable_renderer_cairo="no (default)"
enable_renderer_pixman="no (default)"
with_renderers="bbulk,gltex (default)"
elif test ! "x$with_renderers" = "x" ; then
SAVEIFS="$IFS"
IFS=","
for i in $with_renderers ; do
if test "x$i" = "xbbulk" ; then
enable_renderer_bbulk="yes"
elif test "x$i" = "xgltex" ; then
enable_renderer_gltex="yes"
elif test "x$i" = "xcairo" ; then
enable_renderer_cairo="yes"
elif test "x$i" = "xpixman" ; then
enable_renderer_pixman="yes"
else
IFS="$SAVEIFS"
AC_ERROR([Unknown renderer $i])
fi
done
IFS="$SAVEIFS"
fi
AC_MSG_RESULT([$with_renderers])
# font backends
AC_MSG_CHECKING([which font backends the user wants])
AC_ARG_WITH([fonts],
[AS_HELP_STRING([--with-fonts],
[specify list of optional font backends])],
[],
[with_fonts="default"])
enable_font_unifont="no"
enable_font_freetype2="no"
enable_font_pango="no"
if test "x$with_fonts" = "xdefault" ; then
enable_font_unifont="yes (default)"
enable_font_freetype2="no (default)"
enable_font_pango="yes (default)"
with_fonts="unifont,pango (default)"
elif test ! "x$with_fonts" = "x" ; then
SAVEIFS="$IFS"
IFS=","
for i in $with_fonts ; do
if test "x$i" = "xunifont" ; then
enable_font_unifont="yes"
elif test "x$i" = "xfreetype2" ; then
enable_font_freetype2="yes"
elif test "x$i" = "xpango" ; then
enable_font_pango="yes"
else
IFS="$SAVEIFS"
AC_ERROR([Unknown font backend $i])
fi
done
IFS="$SAVEIFS"
fi
AC_MSG_RESULT([$with_fonts])
# kmscon sessions
AC_MSG_CHECKING([which sessions the user wants])
AC_ARG_WITH([sessions],
[AS_HELP_STRING([--with-sessions],
[specify list of optional sessions])],
[],
[with_sessions="default"])
enable_session_dummy="no"
enable_session_terminal="no"
enable_session_cdev="no"
if test "x$with_sessions" = "xdefault" ; then
enable_session_dummy="yes (default)"
enable_session_terminal="yes (default)"
enable_session_cdev="yes (default)"
with_sessions="dummy,terminal,cdev (default)"
elif test ! "x$with_sessions" = "x" ; then
SAVEIFS="$IFS"
IFS=","
for i in $with_sessions ; do
if test "x$i" = "xdummy" ; then
enable_session_dummy="yes"
elif test "x$i" = "xterminal" ; then
enable_session_terminal="yes"
elif test "x$i" = "xcdev" ; then
enable_session_cdev="yes"
else
IFS="$SAVEIFS"
AC_ERROR([Unknown session type $i])
fi
done
IFS="$SAVEIFS"
fi
AC_MSG_RESULT([$with_sessions])
#
# Check what can be built
# This checks each configuration option and tests whether all dependencies are
# met. This is done from bottom up to ensure the right order.
#
# debug
debug_avail=no
debug_missing=""
if test ! "x$enable_debug" = "xno" ; then
debug_avail=yes
else
debug_missing="enable-debug"
fi
# optimizations
optimizations_avail=no
optimizations_missing=""
if test ! "x$enable_optimizations" = "xno" ; then
optimizations_avail=yes
else
optimizations_missing="enable-optimizations"
fi
# eloop-dbus
eloop_dbus_avail=no
eloop_dbus_missing=""
if test ! "x$enable_eloop_dbus" = "xno" ; then
eloop_dbus_avail=yes
if test "x$have_dbus" = "xno" ; then
eloop_dbus_avail=no
eloop_dbus_missing="libdbus"
fi
if test "x$eloop_dbus_avail" = "xno" ; then
if test "x$enable_eloop_dbus" = "xyes" ; then
AC_ERROR([missing for eloop-dbus: $eloop_dbus_missing])
fi
fi
else
eloop_dbus_missing="enable-eloop-dbus"
fi
# eloop
eloop_avail=no
eloop_missing=""
if test ! "x$enable_eloop" = "xno" ; then
eloop_avail=yes
else
eloop_missing="enable-eloop"
fi
# TSM
tsm_avail=no
tsm_missing=""
if test ! "x$enable_tsm" = "xno" ; then
tsm_avail=yes
if test "x$have_xkbcommon" = "xno" ; then
tsm_avail=no
tsm_missing="libxkbcommon"
fi
if test "x$tsm_avail" = "xno" ; then
if test "x$enable_tsm" = "xyes" ; then
AC_ERROR([missing for TSM: $tsm_missing])
fi
fi
else
tsm_missing="enable-tsm"
fi
# UVT
uvt_avail=no
uvt_missing=""
if test ! "x$enable_uvt" = "xno" ; then
uvt_avail=yes
if test "x$have_fuse" = "xno" ; then
uvt_avail=no
uvt_missing="fuse"
fi
if test "x$uvt_avail" = "xno" ; then
if test "x$enable_uvt" = "xyes" ; then
AC_ERROR([missing for UVT: $uvt_missing])
fi
fi
else
uvt_missing="enable-uvt"
fi
# video fbdev
video_fbdev_avail=no
video_fbdev_missing=""
if test ! "x$enable_video_fbdev" = "xno" ; then
# TODO: check for kernel headers
video_fbdev_avail=yes
else
video_fbdev_missing="enable-video-fbdev"
fi
# video drm2d
video_drm2d_avail=no
video_drm2d_missing=""
if test ! "x$enable_video_drm2d" = "xno" ; then
video_drm2d_avail=yes
if test "x$have_drm3d" = "xno" ; then
video_drm2d_avail=no
video_drm2d_missing="libdrm3d"
fi
if test "x$video_drm2d_avail" = "xno" ; then
if test "x$enable_video_drm2d" = "xyes" ; then
AC_ERROR([missing for drm2d video backend: $video_drm2d_missing])
fi
fi
else
video_drm2d_missing="enable-video-drm2d"
fi
# video drm3d
video_drm3d_avail=no
video_drm3d_missing=""
if test ! "x$enable_video_drm3d" = "xno" ; then
video_drm3d_avail=yes
if test "x$have_drm3d" = "xno" ; then
video_drm3d_avail=no
video_drm3d_missing="libdrm3d,$video_drm3d_missing"
fi
if test "x$have_gbm" = "xno" ; then
video_drm3d_avail=no
video_drm3d_missing="libgbm,$video_drm3d_missing"
fi
if test "x$have_egl" = "xno" ; then
video_drm3d_avail=no
video_drm3d_missing="libegl,$video_drm3d_missing"
fi
if test "x$have_gles2" = "xno" ; then
video_drm3d_avail=no
video_drm3d_missing="libgles2,$video_drm3d_missing"
fi
if test "x$video_drm3d_avail" = "xno" ; then
if test "x$enable_video_drm3d" = "xyes" ; then
AC_ERROR([missing for drm3d video backend: $video_drm3d_missing])
fi
fi
else
video_drm3d_missing="enable-video-drm3d"
fi
# uterm
uterm_avail=no
uterm_missing=""
if test ! "x$enable_uterm" = "xno" ; then
uterm_avail=yes
else
uterm_missing="enable-uterm"
fi
# multi-seat
multi_seat_avail=no
multi_seat_missing=""
if test ! "x$enable_multi_seat" = "xno" ; then
multi_seat_avail=yes
if test "x$have_systemd" = "xno" ; then
multi_seat_avail=no
multi_seat_missing="libsystemd"
fi
if test "x$multi_seat_avail" = "xno" ; then
if test "x$enable_multi_seat" = "xyes" ; then
AC_ERROR([missing for multi-seat support: $multi_seat_missing])
fi
fi
else
multi_seat_missing="enable-multi-seat"
fi
# hotplug
hotplug_avail=no
hotplug_missing=""
if test ! "x$enable_hotplug" = "xno" ; then
hotplug_avail=yes
if test "x$have_udev" = "xno" ; then
hotplug_avail=no
hotplug_missing="libudev"
fi
if test "x$hotplug_avail" = "xno" ; then
if test "x$enable_hotplug" = "xyes" ; then
AC_ERROR([missing for hotplug-support: $hotplug_missing])
fi
fi
else
hotplug_missing="enable-hotplug"
fi
# renderer bbulk
renderer_bbulk_avail=no
renderer_bbulk_missing=""
if test ! "x$enable_renderer_bbulk" = "xno" ; then
renderer_bbulk_avail=yes
else
renderer_bbulk_missing="enable-renderer-bbulk"
fi
# renderer gltex
renderer_gltex_avail=no
renderer_gltex_missing=""
if test ! "x$enable_renderer_gltex" = "xno" ; then
renderer_gltex_avail=yes
if test "x$have_gles2" = "xno" ; then
renderer_gltex_avail=no
renderer_gltex_missing="libgles2"
fi
if test "x$renderer_gltex_avail" = "xno" ; then
if test "x$enable_renderer_gltex" = "xyes" ; then
AC_ERROR([missing for renderer-gltex: $renderer_gltex_missing])
fi
fi
else
renderer_gltex_missing="enable-renderer-gltex"
fi
# renderer cairo
renderer_cairo_avail=no
renderer_cairo_missing=""
if test ! "x$enable_renderer_cairo" = "xno" ; then
renderer_cairo_avail=yes
if test "x$have_cairo" = "xno" ; then
renderer_cairo_avail=no
renderer_cairo_missing="cairo"
fi
if test "x$renderer_cairo_avail" = "xno" ; then
if test "x$enable_renderer_cairo" = "xyes" ; then
AC_ERROR([missing for renderer-cairo: $renderer_cairo_missing])
fi
fi
else
renderer_cairo_missing="enable-renderer-cairo"
fi
# renderer pixman
renderer_pixman_avail=no
renderer_pixman_missing=""
if test ! "x$enable_renderer_pixman" = "xno" ; then
renderer_pixman_avail=yes
if test "x$have_pixman" = "xno" ; then
renderer_pixman_avail=no
renderer_pixman_missing="pixman"
fi
if test "x$renderer_pixman_avail" = "xno" ; then
if test "x$enable_renderer_pixman" = "xyes" ; then
AC_ERROR([missing for renderer-pixman: $renderer_pixman_missing])
fi
fi
else
renderer_pixman_missing="enable-renderer-pixman"
fi
# font unifont
font_unifont_avail=no
font_unifont_missing=""
if test ! "x$enable_font_unifont" = "xno" ; then
font_unifont_avail=yes
else
font_unifont_missing="enable-font-unifont"
fi
# font freetype2
font_freetype2_avail=no
font_freetype2_missing=""
if test ! "x$enable_font_freetype2" = "xno" ; then
font_freetype2_avail=yes
if test "x$have_freetype2" = "xno" ; then
font_freetype2_avail=no
font_freetype2_missing="libfontconfig,libfreetype2"
fi
if test "x$font_freetype2_avail" = "xno" ; then
if test "x$enable_font_freetype2" = "xyes" ; then
AC_ERROR([missing for font-freetype2: $font_freetype2_missing])
fi
fi
else
font_freetype2_missing="enable-font-freetype2"
fi
# font pango
font_pango_avail=no
font_pango_missing=""
if test ! "x$enable_font_pango" = "xno" ; then
font_pango_avail=yes
if test "x$have_pango" = "xno" ; then
font_pango_avail=no
font_pango_missing="libpango"
fi
if test "x$font_pango_avail" = "xno" ; then
if test "x$enable_font_pango" = "xyes" ; then
AC_ERROR([missing for font-pango: $font_pango_missing])
fi
fi
else
font_pango_missing="enable-font-pango"
fi
# session dummy
session_dummy_avail=no
session_dummy_missing=""
if test ! "x$enable_session_dummy" = "xno" ; then
session_dummy_avail=yes
else
session_dummy_missing="enable-session-dummy"
fi
# session terminal
session_terminal_avail=no
session_terminal_missing=""
if test ! "x$enable_session_terminal" = "xno" ; then
session_terminal_avail=yes
if test "x$tsm_avail" = "xno" ; then
session_terminal_avail=no
session_terminal_missing="$tsm_missing"
fi
if test "x$session_terminal_avail" = "xno" ; then
if test "x$enable_session_terminal" = "xyes" ; then
AC_ERROR([missing for session-terminal: $session_terminal_missing])
fi
fi
else
session_terminal_missing="enable-session-terminal"
fi
# session cdev
session_cdev_avail=no
session_cdev_missing=""
if test ! "x$enable_session_cdev" = "xno" ; then
session_cdev_avail=yes
if test "x$have_fuse" = "xno" ; then
session_cdev_avail=no
session_cdev_missing="libfuse,$session_cdev_missing"
fi
if test "x$tsm_avail" = "xno" ; then
session_cdev_avail=no
session_cdev_missing="$tsm_missing,$session_cdev_missing"
fi
if test "x$session_cdev_avail" = "xno" ; then
if test "x$enable_session_cdev" = "xyes" ; then
AC_ERROR([missing for session-cdev: $session_cdev_missing])
fi
fi
else
session_cdev_missing="enable-session-cdev"
fi
# kmscon
kmscon_avail=no
kmscon_missing=""
if test ! "x$enable_kmscon" = "xno" ; then
kmscon_avail=yes
if test "x$eloop_avail" = "xno" ; then
kmscon_avail=no
kmscon_missing="$eloop_missing,$kmscon_missing"
fi
if test "x$tsm_avail" = "xno" ; then
kmscon_avail=no
kmscon_missing="$tsm_missing,$kmscon_missing"
fi
if test "x$uterm_avail" = "xno" ; then
kmscon_avail=no
kmscon_missing="$uterm_missing,$kmscon_missing"
fi
if test "x$kmscon_avail" = "xno" ; then
if test "x$enable_kmscon" = "xyes" ; then
AC_ERROR([missing for kmscon: $kmscon_missing])
fi
fi
else
kmscon_missing="enable-kmscon"
fi
# wlterm
wlterm_avail=no
wlterm_missing=""
if test ! "x$enable_wlterm" = "xno" ; then
wlterm_avail=yes
if test "x$tsm_avail" = "xno" ; then
wlterm_avail=no
wlterm_missing="$tsm_missing,$wlterm_missing"
fi
if test "x$eloop_avail" = "xno" ; then
wlterm_avail=no
wlterm_missing="$eloop_missing,$wlterm_missing"
fi
if test "x$font_pango_avail" = "xno" ; then
wlterm_avail=no
wlterm_missing="$font_pango_missing,$wlterm_missing"
fi
if test "x$have_wayland" = "xno" ; then
wlterm_avail=no
wlterm_missing="libwayland,$wlterm_missing"
fi
if test "x$wlterm_avail" = "xno" ; then
if test "x$enable_wlterm" = "xyes" ; then
AC_ERROR([missing for wlterm: $wlterm_missing])
fi
fi
else
wlterm_missing="enable-wlterm"
fi
#
# Enable all required modules
# We now know which modules can be built by checking the *_avail variables set
# above. We now only have to disable all modules that are disabled by default
# and the user didn't force-enable them and no other module that is enabled
# needs them. This is done top-down of course.
#
# wlterm
wlterm_enabled=no
if test "x$wlterm_avail" = "xyes" ; then
if test "x${enable_wlterm% *}" = "xyes" ; then
wlterm_enabled=yes
enable_eloop=yes
enable_tsm=yes
enable_font_pango=yes
fi
fi
# kmscon
kmscon_enabled=no
if test "x$kmscon_avail" = "xyes" ; then
if test "x${enable_kmscon% *}" = "xyes" ; then
kmscon_enabled=yes
enable_eloop=yes
enable_uterm=yes
fi
fi
# session cdev
session_cdev_enabled=no
if test "x$session_cdev_avail" = "xyes" ; then
if test "x${enable_session_cdev% *}" = "xyes" ; then
session_cdev_enabled=yes
fi
fi
# session terminal
session_terminal_enabled=no
if test "x$session_terminal_avail" = "xyes" ; then
if test "x${enable_session_terminal% *}" = "xyes" ; then
session_terminal_enabled=yes
enable_tsm=yes
fi
fi
# session dummy
session_dummy_enabled=no
if test "x$session_dummy_avail" = "xyes" ; then
if test "x${enable_session_dummy% *}" = "xyes" ; then
session_dummy_enabled=yes
fi
fi
# font pango
font_pango_enabled=no
if test "x$font_pango_avail" = "xyes" ; then
if test "x${enable_font_pango% *}" = "xyes" ; then
font_pango_enabled=yes
fi
fi
# font freetype2
font_freetype2_enabled=no
if test "x$font_freetype2_avail" = "xyes" ; then
if test "x${enable_font_freetype2% *}" = "xyes" ; then
font_freetype2_enabled=yes
fi
fi
# font unifont
font_unifont_enabled=no
if test "x$font_unifont_avail" = "xyes" ; then
if test "x${enable_font_unifont% *}" = "xyes" ; then
font_unifont_enabled=yes
fi
fi
# renderer gltex
renderer_gltex_enabled=no
if test "x$renderer_gltex_avail" = "xyes" ; then
if test "x${enable_renderer_gltex% *}" = "xyes" ; then
renderer_gltex_enabled=yes
fi
fi
# renderer cairo
renderer_cairo_enabled=no
if test "x$renderer_cairo_avail" = "xyes" ; then
if test "x${enable_renderer_cairo% *}" = "xyes" ; then
renderer_cairo_enabled=yes
fi
fi
# renderer pixman
renderer_pixman_enabled=no
if test "x$renderer_pixman_avail" = "xyes" ; then
if test "x${enable_renderer_pixman% *}" = "xyes" ; then
renderer_pixman_enabled=yes
fi
fi
# renderer bbulk
renderer_bbulk_enabled=no
if test "x$renderer_bbulk_avail" = "xyes" ; then
if test "x${enable_renderer_bbulk% *}" = "xyes" ; then
renderer_bbulk_enabled=yes
fi
fi
# hotplug
hotplug_enabled=no
if test "x$hotplug_avail" = "xyes" ; then
if test "x${enable_hotplug% *}" = "xyes" ; then
hotplug_enabled=yes
fi
fi
# multi-seat
multi_seat_enabled=no
if test "x$multi_seat_avail" = "xyes" ; then
if test "x${enable_multi_seat% *}" = "xyes" ; then
multi_seat_enabled=yes
fi
fi
# uterm
uterm_enabled=no
if test "x$uterm_avail" = "xyes" ; then
if test "x${enable_uterm% *}" = "xyes" ; then
uterm_enabled=yes
fi
fi
# video drm3d
video_drm3d_enabled=no
if test "x$video_drm3d_avail" = "xyes" ; then
if test "x${enable_video_drm3d% *}" = "xyes" ; then
video_drm3d_enabled=yes
fi
fi
# video drm2d
video_drm2d_enabled=no
if test "x$video_drm2d_avail" = "xyes" ; then
if test "x${enable_video_drm2d% *}" = "xyes" ; then
video_drm2d_enabled=yes
fi
fi
# video fbdev
video_fbdev_enabled=no
if test "x$video_fbdev_avail" = "xyes" ; then
if test "x${enable_video_fbdev% *}" = "xyes" ; then
video_fbdev_enabled=yes
fi
fi
# UVT
uvt_enabled=no
if test "x$uvt_avail" = "xyes" ; then
if test "x${enable_uvt% *}" = "xyes" ; then
uvt_enabled=yes
fi
fi
# tsm
tsm_enabled=no
if test "x$tsm_avail" = "xyes" ; then
if test "x${enable_tsm% *}" = "xyes" ; then
tsm_enabled=yes
fi
fi
# eloop
eloop_enabled=no
if test "x$eloop_avail" = "xyes" ; then
if test "x${enable_eloop% *}" = "xyes" ; then
eloop_enabled=yes
fi
fi
# eloop-dbus
eloop_dbus_enabled=no
if test "x$eloop_dbus_avail" = "xyes" ; then
if test "x${enable_eloop_dbus% *}" = "xyes" ; then
eloop_dbus_enabled=yes
fi
fi
# optimizations
optimizations_enabled=no
if test "x$optimizations_avail" = "xyes" ; then
if test "x${enable_optimizations% *}" = "xyes" ; then
optimizations_enabled=yes
fi
fi
# debug
debug_enabled=no
if test "x$debug_avail" = "xyes" ; then
if test "x${enable_debug% *}" = "xyes" ; then
debug_enabled=yes
fi
fi
#
# Module Configuration
# We have now done all dependency checking and default-value validation and we
# now know which modules are enabled via the *_enabled variables.
# Everything below is related to the configuration of each module and setting
# the correct flags for the build process.
#
# debug
if test "x$debug_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_DEBUG], [1], [Enable debug mode])
else
AC_DEFINE([NDEBUG], [1], [No Debug])
fi
AM_CONDITIONAL([BUILD_ENABLE_DEBUG],
[test "x$debug_enabled" = "xyes"])
# optimizations
AM_CONDITIONAL([BUILD_ENABLE_OPTIMIZATIONS],
[test "x$optimizations_enabled" = "xyes"])
# eloop-dbus
AM_CONDITIONAL([BUILD_ENABLE_ELOOP_DBUS],
[test "x$eloop_dbus_enabled" = "xyes"])
# eloop
AM_CONDITIONAL([BUILD_ENABLE_ELOOP],
[test "x$eloop_enabled" = "xyes"])
# TSM
AM_CONDITIONAL([BUILD_ENABLE_TSM],
[test "x$tsm_enabled" = "xyes"])
# UVT
AM_CONDITIONAL([BUILD_ENABLE_UVT],
[test "x$uvt_enabled" = "xyes"])
# video fbdev
if test "x$video_fbdev_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_VIDEO_FBDEV], [1],
[Build uterm fbdev video backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_VIDEO_FBDEV],
[test "x$video_fbdev_enabled" = "xyes"])
# video drm2d
if test "x$video_drm2d_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_VIDEO_DRM2D], [1],
[Build uterm drm2d drm3d video backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DRM2D],
[test "x$video_drm2d_enabled" = "xyes"])
# video drm3d
if test "x$video_drm3d_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_VIDEO_DRM3D], [1],
[Build uterm drm3d video backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DRM3D],
[test "x$video_drm3d_enabled" = "xyes"])
# uterm
AM_CONDITIONAL([BUILD_ENABLE_UTERM],
[test "x$uterm_enabled" = "xyes"])
# multi-seat
if test "x$multi_seat_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_MULTI_SEAT], [1],
[Use systemd for multi-seat support])
fi
AM_CONDITIONAL([BUILD_ENABLE_MULTI_SEAT],
[test "x$multi_seat_enabled" = "xyes"])
# hotplug
if test "x$hotplug_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_HOTPLUG], [1],
[Use udev for hotplug support])
fi
AM_CONDITIONAL([BUILD_ENABLE_HOTPLUG],
[test "x$hotplug_enabled" = "xyes"])
# renderer bbulk
if test "x$renderer_bbulk_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_RENDERER_BBULK], [1],
[Build bbulk rendering backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_RENDERER_BBULK],
[test "x$renderer_bbulk_enabled" = "xyes"])
# renderer gltex
if test "x$renderer_gltex_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_RENDERER_GLTEX], [1],
[Build gltex rendering backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_RENDERER_GLTEX],
[test "x$renderer_gltex_enabled" = "xyes"])
# renderer cairo
if test "x$renderer_cairo_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_RENDERER_CAIRO], [1],
[Build cairo rendering backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_RENDERER_CAIRO],
[test "x$renderer_cairo_enabled" = "xyes"])
# renderer pixman
if test "x$renderer_pixman_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_RENDERER_PIXMAN], [1],
[Build pixman rendering backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_RENDERER_PIXMAN],
[test "x$renderer_pixman_enabled" = "xyes"])
# font unifont
if test "x$font_unifont_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_FONT_UNIFONT], [1],
[Build static unifont backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_FONT_UNIFONT],
[test "x$font_unifont_enabled" = "xyes"])
# font freetype2
if test "x$font_freetype2_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_FONT_FREETYPE2], [1],
[Build freetype2 font backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_FONT_FREETYPE2],
[test "x$font_freetype2_enabled" = "xyes"])
# font pango
if test "x$font_pango_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_FONT_PANGO], [1],
[Build pango font backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_FONT_PANGO],
[test "x$font_pango_enabled" = "xyes"])
# session dummy
if test "x$session_dummy_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_SESSION_DUMMY], [1],
[Build dummy session])
fi
AM_CONDITIONAL([BUILD_ENABLE_SESSION_DUMMY],
[test "x$session_dummy_enabled" = "xyes"])
# session terminal
if test "x$session_terminal_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_SESSION_TERMINAL], [1],
[Build terminal session])
fi
AM_CONDITIONAL([BUILD_ENABLE_SESSION_TERMINAL],
[test "x$session_terminal_enabled" = "xyes"])
# session cdev
if test "x$session_cdev_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_SESSION_CDEV], [1],
[Build cdev session])
fi
AM_CONDITIONAL([BUILD_ENABLE_SESSION_CDEV],
[test "x$session_cdev_enabled" = "xyes"])
# kmscon
AM_CONDITIONAL([BUILD_ENABLE_KMSCON],
[test "x$kmscon_enabled" = "xyes"])
# wlterm
AM_CONDITIONAL([BUILD_ENABLE_WLTERM],
[test "x$wlterm_enabled" = "xyes"])
#
# Miscellaneous Checks
# All checks below are independent of module checking or depend on the results
# of it. They do not have any dependencies themselves so they are not part of the
# module infrastructure.
#
# check for _Static_assert
AC_MSG_CHECKING([whether _Static_assert() is supported])
AC_LANG([C])
have_static_assert=yes
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[_Static_assert(1, "What?");]])],
[AC_DEFINE([BUILD_HAVE_STATIC_ASSERT],
[1],
[Define to 1 if _Static_assert() is supported])],
[have_static_assert=no])
AC_MSG_RESULT([$have_static_assert])
# check for gbm_bo_get_pitch() function, otherwise gbm_bo_get_stride() is used
if test x$have_gbm = xyes ; then
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
save_LDFLAGS="$LDFLAGS"
CFLAGS="$DRM_CFLAGS $GBM_CFLAGS"
LIBS="$DRM_LIBS $GBM_LIBS"
LDFLAGS=""
AC_CHECK_LIB([gbm],
[gbm_bo_get_pitch],
[AC_DEFINE([BUILD_HAVE_GBM_BO_GET_PITCH],
[1],
[Define to 1 if your libgbm provides gbm_bo_get_pitch])])
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
LDFLAGS="$save_LDFLAGS"
fi
# check for xsltproc
AC_PATH_PROG(XSLTPROC, xsltproc)
AM_CONDITIONAL([BUILD_HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
# check for offline man-pages stylesheet
AC_MSG_CHECKING([for docbook manpages stylesheet])
BUILD_MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$BUILD_MANPAGES_STYLESHEET" > /dev/null 2>&1`],
[BUILD_HAVE_MANPAGES_STYLESHEET=yes]))
if test "x$BUILD_HAVE_MANPAGES_STYLESHEET" = "xyes"; then
AM_CONDITIONAL([BUILD_HAVE_MANPAGES_STYLESHEET], true)
AC_SUBST(BUILD_MANPAGES_STYLESHEET)
AC_MSG_RESULT([yes])
else
AM_CONDITIONAL([BUILD_HAVE_MANPAGES_STYLESHEET], false)
AC_MSG_RESULT([no])
fi
#
# Makefile vars
# After everything is configured, we correctly substitute the values for the
# makefiles.
#
AC_CONFIG_FILES([Makefile
docs/pc/libeloop.pc
docs/pc/libtsm.pc
docs/pc/libuvt.pc
docs/pc/libuterm.pc])
AC_OUTPUT
#
# Configuration output
# Show configuration to the user so they can check whether everything was
# configured as expected.
#
AC_MSG_NOTICE([Build configuration:
prefix: $prefix
exec-prefix: $exec_prefix
libdir: $libdir
includedir: $includedir
Applications and Libraries:
kmscon: $kmscon_enabled ($kmscon_avail: $kmscon_missing)
wlterm: $wlterm_enabled ($wlterm_avail: $wlterm_missing)
uterm: $uterm_enabled ($uterm_avail: $uterm_missing)
tsm: $tsm_enabled ($tsm_avail: $tsm_missing)
uvt: $uvt_enabled ($uvt_avail: $uvt_missing)
eloop: $eloop_enabled ($eloop_avail: $eloop_missing)
Miscellaneous Options:
debug: $debug_enabled ($debug_avail: $debug_missing)
optimizations: $optimizations_enabled ($optimizations_avail: $optimizations_missing)
multi-seat: $multi_seat_enabled ($multi_seat_avail: $multi_seat_missing)
hotplug: $hotplug_enabled ($hotplug_avail: $hotplug_missing)
eloop-dbus: $eloop_dbus_enabled ($eloop_dbus_avail: $eloop_dbus_missing)
Video Backends:
fbdev: $video_fbdev_enabled ($video_fbdev_avail: $video_fbdev_missing)
drm2d: $video_drm2d_enabled ($video_drm2d_avail: $video_drm2d_missing)
drm3d: $video_drm3d_enabled ($video_drm3d_avail: $video_drm3d_missing)
Font Backends:
unifont: $font_unifont_enabled ($font_unifont_avail: $font_unifont_missing)
freetype2: $font_freetype2_enabled ($font_freetype2_avail: $font_freetype2_missing)
pango: $font_pango_enabled ($font_pango_avail: $font_pango_missing)
Renderers:
bbulk: $renderer_bbulk_enabled ($renderer_bbulk_avail: $renderer_bbulk_missing)
gltex: $renderer_gltex_enabled ($renderer_gltex_avail: $renderer_gltex_missing)
cairo: $renderer_cairo_enabled ($renderer_cairo_avail: $renderer_cairo_missing)
pixman: $renderer_pixman_enabled ($renderer_pixman_avail: $renderer_pixman_missing)
Session Types:
dummy: $session_dummy_enabled ($session_dummy_avail: $session_dummy_missing)
terminal: $session_terminal_enabled ($session_terminal_avail: $session_terminal_missing)
cdev: $session_cdev_enabled ($session_cdev_avail: $session_cdev_missing)
Run "${MAKE-make}" to start compilation process])