kmscon/configure.ac
David Herrmann 995c07f853 kmscon: make bblit mandatory
Similar to the font backends we now require one backend to be always
available as safe fallback. The bblit backend is the most basic backend so
make it mandatory and link it unconditionally.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2013-01-03 17:48:23 +01:00

1211 lines
35 KiB
Plaintext

#
# Kmscon - build configuration script
# Copyright (c) 2012 David Herrmann <dh.herrmann@googlemail.com>
#
AC_PREREQ(2.68)
AC_INIT([kmscon], [6])
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)
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
# explicitely setting it on the command line.
#
: ${CFLAGS=""}
AC_USE_SYSTEM_EXTENSIONS
AC_PROG_CC
AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_SED
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
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],
[have_fuse=yes], [have_fuse=no])
AC_SUBST(FUSE_CFLAGS)
AC_SUBST(FUSE_LIBS)
PKG_CHECK_MODULES([PCIACCESS], [pciaccess],
[have_pciaccess=yes], [have_pciaccess=no])
AC_SUBST(PCIACCESS_CFLAGS)
AC_SUBST(PCIACCESS_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])
# 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])
# pciaccess
AC_MSG_CHECKING([whether user wants pciaccess device detection])
AC_ARG_ENABLE([pciaccess],
[AS_HELP_STRING([--enable-pciaccess],
[enable device detection via pciaccess])])
if test "x$enable_pciaccess" = "x" ; then
enable_pciaccess="yes (default)"
fi
AC_MSG_RESULT([$enable_pciaccess])
# 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])])
enable_video_fbdev="no"
enable_video_dumb="no"
enable_video_drm="no"
if test "x$with_video" = "x" ; then
enable_video_fbdev="yes (default)"
enable_video_dumb="yes (default)"
enable_video_drm="yes (default)"
with_video="fbdev,dumb,drm (default)"
else
SAVEIFS="$IFS"
IFS=","
for i in $with_video ; do
if test "x$i" = "xfbdev" ; then
enable_video_fbdev="yes"
elif test "x$i" = "xdumb" ; then
enable_video_dumb="yes"
elif test "x$i" = "xdrm" ; then
enable_video_drm="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])])
enable_renderer_bbulk="no"
enable_renderer_gltex="no"
if test "x$with_renderers" = "x" ; then
enable_renderer_bbulk="yes (default)"
enable_renderer_gltex="yes (default)"
with_renderers="bbulk,gltex (default)"
else
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"
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])])
enable_font_unifont="no"
enable_font_freetype2="no"
enable_font_pango="no"
if test "x$with_fonts" = "x" ; then
enable_font_unifont="no (default)"
enable_font_freetype2="no (default)"
enable_font_pango="yes (default)"
with_fonts="freetype2,pango (default)"
else
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])])
enable_session_dummy="no"
enable_session_terminal="no"
enable_session_cdev="no"
if test "x$with_sessions" = "x" ; then
enable_session_dummy="yes (default)"
enable_session_terminal="yes (default)"
enable_session_cdev="yes (default)"
with_sessions="dummy,terminal,cdev (default)"
else
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
# 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 dumb
video_dumb_avail=no
video_dumb_missing=""
if test ! "x$enable_video_dumb" = "xno" ; then
video_dumb_avail=yes
if test "x$have_drm" = "xno" ; then
video_dumb_avail=no
video_dumb_missing="libdrm"
fi
if test "x$video_dumb_avail" = "xno" ; then
if test "x$enable_video_dumb" = "xyes" ; then
AC_ERROR([missing for dumb video backend: $video_dumb_missing])
fi
fi
else
video_dumb_missing="enable-video-dumb"
fi
# video drm
video_drm_avail=no
video_drm_missing=""
if test ! "x$enable_video_drm" = "xno" ; then
video_drm_avail=yes
if test "x$have_drm" = "xno" ; then
video_drm_avail=no
video_drm_missing="libdrm,$video_drm_missing"
fi
if test "x$have_gbm" = "xno" ; then
video_drm_avail=no
video_drm_missing="libgbm,$video_drm_missing"
fi
if test "x$have_egl" = "xno" ; then
video_drm_avail=no
video_drm_missing="libegl,$video_drm_missing"
fi
if test "x$have_gles2" = "xno" ; then
video_drm_avail=no
video_drm_missing="libgles2,$video_drm_missing"
fi
if test "x$video_drm_avail" = "xno" ; then
if test "x$enable_video_drm" = "xyes" ; then
AC_ERROR([missing for drm video backend: $video_drm_missing])
fi
fi
else
video_drm_missing="enable-video-drm"
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
# pciaccess
pciaccess_avail=no
pciaccess_missing=""
if test ! "x$enable_pciaccess" = "xno" ; then
pciaccess_avail=yes
if test "x$have_pciaccess" = "xno" ; then
pciaccess_avail=no
pciaccess_missing="libpciaccess"
fi
if test "x$pciaccess_avail" = "xno" ; then
if test "x$enable_pciaccess" = "xyes" ; then
AC_ERROR([missing for pciaccess: $pciaccess_missing])
fi
fi
else
pciaccess_missing="enable-pciaccess"
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
# 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$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
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 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
# pciaccess
pciaccess_enabled=no
if test "x$pciaccess_avail" = "xyes" ; then
if test "x${enable_pciaccess% *}" = "xyes" ; then
pciaccess_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 drm
video_drm_enabled=no
if test "x$video_drm_avail" = "xyes" ; then
if test "x${enable_video_drm% *}" = "xyes" ; then
video_drm_enabled=yes
fi
fi
# video dumb
video_dumb_enabled=no
if test "x$video_dumb_avail" = "xyes" ; then
if test "x${enable_video_dumb% *}" = "xyes" ; then
video_dumb_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
# 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"])
# 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 dumb
if test "x$video_dumb_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_VIDEO_DUMB], [1],
[Build uterm dumb drm video backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DUMB],
[test "x$video_dumb_enabled" = "xyes"])
# video drm
if test "x$video_drm_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_VIDEO_DRM], [1],
[Build uterm drm video backend])
fi
AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DRM],
[test "x$video_drm_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"])
# pciaccess
if test "x$pciaccess_enabled" = "xyes" ; then
AC_DEFINE([BUILD_ENABLE_PCIACCESS], [1],
[Use pciaccess for device detection])
fi
AM_CONDITIONAL([BUILD_ENABLE_PCIACCESS],
[test "x$pciaccess_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"])
# 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 themself 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/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)
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)
pciaccess: $pciaccess_enabled ($pciaccess_avail: $pciaccess_missing)
eloop-dbus: $eloop_dbus_enabled ($eloop_dbus_avail: $eloop_dbus_missing)
Video Backends:
fbdev: $video_fbdev_enabled ($video_fbdev_avail: $video_fbdev_missing)
dumb drm: $video_dumb_enabled ($video_dumb_avail: $video_dumb_missing)
drm: $video_drm_enabled ($video_drm_avail: $video_drm_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)
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])