2 # Kmscon - build configuration script
3 # Copyright (c) 2012 David Herrmann <dh.herrmann@googlemail.com>
9 AC_SUBST(PACKAGE_URL, [https://github.com/dvdhrm/kmscon])
10 AC_CONFIG_SRCDIR([src/kmscon_main.c])
11 AC_CONFIG_AUX_DIR([build-aux])
12 AC_CONFIG_MACRO_DIR([m4])
13 AC_CONFIG_HEADER(config.h)
14 AC_USE_SYSTEM_EXTENSIONS
16 AC_PREFIX_DEFAULT([/usr])
19 AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects dist-bzip2 no-dist-gzip tar-pax -Wall -Werror -Wno-portability])
20 AM_SILENT_RULES([yes])
23 # Don't add a default "-g -O2" if CFLAGS wasn't specified. For debugging it is
24 # often more convenient to have "-g -O0". You can still override it by
25 # explicitly setting it on the command line.
33 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
44 # pkg-config dependencies
45 # This unconditionally checks for all dependencies even if they are disabled. We
46 # later look whether all required depedencies are met and finish the
47 # configuration. We group similar packages into one logical group here to avoid
48 # having variables for each single library.
49 # This, however, makes ./configure output very unintuitive error messages if a
50 # package is not found so we must make sure we print more verbose messages
54 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
55 [have_xkbcommon=yes], [have_xkbcommon=no])
56 AC_SUBST(XKBCOMMON_CFLAGS)
57 AC_SUBST(XKBCOMMON_LIBS)
59 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server wayland-cursor],
60 [have_wayland=yes], [have_wayland=no])
61 AC_SUBST(WAYLAND_CFLAGS)
62 AC_SUBST(WAYLAND_LIBS)
64 PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon libsystemd-login],
65 [have_systemd=yes], [have_systemd=no])
66 AC_SUBST(SYSTEMD_CFLAGS)
67 AC_SUBST(SYSTEMD_LIBS)
69 PKG_CHECK_MODULES([UDEV], [libudev >= 172],
70 [have_udev=yes], [have_udev=no])
74 PKG_CHECK_MODULES([DBUS], [dbus-1],
75 [have_dbus=yes], [have_dbus=no])
79 PKG_CHECK_MODULES([DRM], [libdrm],
80 [have_drm=yes], [have_drm=no])
84 PKG_CHECK_MODULES([GBM], [gbm],
85 [have_gbm=yes], [have_gbm=no])
89 PKG_CHECK_MODULES([EGL], [egl],
90 [have_egl=yes], [have_egl=no])
94 PKG_CHECK_MODULES([GLES2], [glesv2],
95 [have_gles2=yes], [have_gles2=no])
96 AC_SUBST(GLES2_CFLAGS)
99 PKG_CHECK_MODULES([FREETYPE2], [freetype2 fontconfig],
100 [have_freetype2=yes], [have_freetype2=no])
101 AC_SUBST(FREETYPE2_CFLAGS)
102 AC_SUBST(FREETYPE2_LIBS)
104 PKG_CHECK_MODULES([PANGO], [pango pangoft2],
105 [have_pango=yes], [have_pango=no])
106 AC_SUBST(PANGO_CFLAGS)
109 PKG_CHECK_MODULES([FUSE], [fuse >= 2.9.0],
110 [have_fuse=yes], [have_fuse=no])
111 AC_SUBST(FUSE_CFLAGS)
114 PKG_CHECK_MODULES([CAIRO], [cairo],
115 [have_cairo=yes], [have_cairo=no])
116 AC_SUBST(CAIRO_CFLAGS)
119 PKG_CHECK_MODULES([PIXMAN], [pixman-1],
120 [have_pixman=yes], [have_pixman=no])
121 AC_SUBST(PIXMAN_CFLAGS)
122 AC_SUBST(PIXMAN_LIBS)
126 # This parses all arguments that are given via "--enable-XY" or "--with-XY" and
127 # saves the results in local variables. This does not check dependencies or
128 # similar but does only parse the arguments.
132 AC_MSG_CHECKING([whether user wants eloop])
133 AC_ARG_ENABLE([eloop],
134 [AS_HELP_STRING([--enable-eloop],
135 [build eloop library])])
136 if test "x$enable_eloop" = "x" ; then
137 enable_eloop="no (default)"
139 AC_MSG_RESULT([$enable_eloop])
142 AC_MSG_CHECKING([whether user wants TSM])
144 [AS_HELP_STRING([--enable-tsm],
145 [build tsm library])])
146 if test "x$enable_tsm" = "x" ; then
147 enable_tsm="no (default)"
149 AC_MSG_RESULT([$enable_tsm])
152 AC_MSG_CHECKING([whether user wants UVT])
154 [AS_HELP_STRING([--enable-uvt],
155 [build uvt library])])
156 if test "x$enable_uvt" = "x" ; then
157 enable_uvt="no (default)"
159 AC_MSG_RESULT([$enable_uvt])
162 AC_MSG_CHECKING([whether user wants uterm])
163 AC_ARG_ENABLE([uterm],
164 [AS_HELP_STRING([--enable-uterm],
165 [build uterm library])])
166 if test "x$enable_uterm" = "x" ; then
167 enable_uterm="no (default)"
169 AC_MSG_RESULT([$enable_uterm])
172 AC_MSG_CHECKING([whether user wants kmscon])
173 AC_ARG_ENABLE([kmscon],
174 [AS_HELP_STRING([--disable-kmscon],
175 [do not build kmscon])])
176 if test "x$enable_kmscon" = "x" ; then
177 enable_kmscon="yes (default)"
179 AC_MSG_RESULT([$enable_kmscon])
182 AC_MSG_CHECKING([whether user wants wlterm])
183 AC_ARG_ENABLE([wlterm],
184 [AS_HELP_STRING([--enable-wlterm],
186 if test "x$enable_wlterm" = "x" ; then
187 enable_wlterm="no (default)"
189 AC_MSG_RESULT([$enable_wlterm])
192 AC_MSG_CHECKING([whether to build with debugging on])
193 AC_ARG_ENABLE([debug],
194 [AS_HELP_STRING([--enable-debug],
195 [whether to build with debugging on])])
196 if test "x$enable_debug" = "x" ; then
197 enable_debug="yes (default)"
199 AC_MSG_RESULT([$enable_debug])
202 AC_MSG_CHECKING([whether to disable code optimizations])
203 AC_ARG_ENABLE([optimizations],
204 [AS_HELP_STRING([--disable-optimizations],
205 [whether to disable code optimizations])])
206 if test "x$enable_optimizations" = "x" ; then
207 enable_optimizations="yes (default)"
209 AC_MSG_RESULT([$enable_optimizations])
212 AC_MSG_CHECKING([whether user wants systemd for multi-seat support])
213 AC_ARG_ENABLE([multi-seat],
214 [AS_HELP_STRING([--enable-multi-seat],
215 [enable multi-seat support with systemd])])
216 if test "x$enable_multi_seat" = "x" ; then
217 enable_multi_seat="yes (default)"
219 AC_MSG_RESULT([$enable_multi_seat])
222 AC_MSG_CHECKING([whether user wants udev for device hotplug support])
223 AC_ARG_ENABLE([hotplug],
224 [AS_HELP_STRING([--enable-hotplug],
225 [enable device hotplug support with udev])])
226 if test "x$enable_hotplug" = "x" ; then
227 enable_hotplug="yes (default)"
229 AC_MSG_RESULT([$enable_hotplug])
232 AC_MSG_CHECKING([whether user wants eloop dbus support])
233 AC_ARG_ENABLE([eloop-dbus],
234 [AS_HELP_STRING([--enable-eloop-dbus],
235 [enable eloop dbus support])])
236 if test "x$enable_eloop_dbus" = "x" ; then
237 enable_eloop_dbus="no (default)"
239 AC_MSG_RESULT([$enable_eloop_dbus])
242 AC_MSG_CHECKING([which video backends the user wants])
244 [AS_HELP_STRING([--with-video],
245 [specify list of optional video backends])],
247 [with_video="default"])
248 enable_video_fbdev="no"
249 enable_video_drm2d="no"
250 enable_video_drm3d="no"
251 if test "x$with_video" = "xdefault" ; then
252 enable_video_fbdev="yes (default)"
253 enable_video_drm2d="yes (default)"
254 enable_video_drm3d="yes (default)"
255 with_video="fbdev,drm2d,drm3d (default)"
256 elif test ! "x$with_video" = "x" ; then
259 for i in $with_video ; do
260 if test "x$i" = "xfbdev" ; then
261 enable_video_fbdev="yes"
262 elif test "x$i" = "xdrm2d" ; then
263 enable_video_drm2d="yes"
264 elif test "x$i" = "xdrm3d" ; then
265 enable_video_drm3d="yes"
268 AC_ERROR([Invalid video backend $i])
273 AC_MSG_RESULT([$with_video])
276 AC_MSG_CHECKING([which render backends the user wants])
277 AC_ARG_WITH([renderers],
278 [AS_HELP_STRING([--with-renderers],
279 [specify list of optional render backends])],
281 [with_renderers="default"])
282 enable_renderer_bbulk="no"
283 enable_renderer_gltex="no"
284 enable_renderer_cairo="no"
285 enable_renderer_pixman="no"
286 if test "x$with_renderers" = "xdefault" ; then
287 enable_renderer_bbulk="yes (default)"
288 enable_renderer_gltex="yes (default)"
289 enable_renderer_cairo="no (default)"
290 enable_renderer_pixman="no (default)"
291 with_renderers="bbulk,gltex (default)"
292 elif test ! "x$with_renderers" = "x" ; then
295 for i in $with_renderers ; do
296 if test "x$i" = "xbbulk" ; then
297 enable_renderer_bbulk="yes"
298 elif test "x$i" = "xgltex" ; then
299 enable_renderer_gltex="yes"
300 elif test "x$i" = "xcairo" ; then
301 enable_renderer_cairo="yes"
302 elif test "x$i" = "xpixman" ; then
303 enable_renderer_pixman="yes"
306 AC_ERROR([Unknown renderer $i])
311 AC_MSG_RESULT([$with_renderers])
314 AC_MSG_CHECKING([which font backends the user wants])
316 [AS_HELP_STRING([--with-fonts],
317 [specify list of optional font backends])],
319 [with_fonts="default"])
320 enable_font_unifont="no"
321 enable_font_freetype2="no"
322 enable_font_pango="no"
323 if test "x$with_fonts" = "xdefault" ; then
324 enable_font_unifont="yes (default)"
325 enable_font_freetype2="no (default)"
326 enable_font_pango="yes (default)"
327 with_fonts="unifont,pango (default)"
328 elif test ! "x$with_fonts" = "x" ; then
331 for i in $with_fonts ; do
332 if test "x$i" = "xunifont" ; then
333 enable_font_unifont="yes"
334 elif test "x$i" = "xfreetype2" ; then
335 enable_font_freetype2="yes"
336 elif test "x$i" = "xpango" ; then
337 enable_font_pango="yes"
340 AC_ERROR([Unknown font backend $i])
345 AC_MSG_RESULT([$with_fonts])
348 AC_MSG_CHECKING([which sessions the user wants])
349 AC_ARG_WITH([sessions],
350 [AS_HELP_STRING([--with-sessions],
351 [specify list of optional sessions])],
353 [with_sessions="default"])
354 enable_session_dummy="no"
355 enable_session_terminal="no"
356 enable_session_cdev="no"
357 if test "x$with_sessions" = "xdefault" ; then
358 enable_session_dummy="yes (default)"
359 enable_session_terminal="yes (default)"
360 enable_session_cdev="yes (default)"
361 with_sessions="dummy,terminal,cdev (default)"
362 elif test ! "x$with_sessions" = "x" ; then
365 for i in $with_sessions ; do
366 if test "x$i" = "xdummy" ; then
367 enable_session_dummy="yes"
368 elif test "x$i" = "xterminal" ; then
369 enable_session_terminal="yes"
370 elif test "x$i" = "xcdev" ; then
371 enable_session_cdev="yes"
374 AC_ERROR([Unknown session type $i])
379 AC_MSG_RESULT([$with_sessions])
382 # Check what can be built
383 # This checks each configuration option and tests whether all dependencies are
384 # met. This is done from bottom up to ensure the right order.
390 if test ! "x$enable_debug" = "xno" ; then
393 debug_missing="enable-debug"
397 optimizations_avail=no
398 optimizations_missing=""
399 if test ! "x$enable_optimizations" = "xno" ; then
400 optimizations_avail=yes
402 optimizations_missing="enable-optimizations"
407 eloop_dbus_missing=""
408 if test ! "x$enable_eloop_dbus" = "xno" ; then
410 if test "x$have_dbus" = "xno" ; then
412 eloop_dbus_missing="libdbus"
415 if test "x$eloop_dbus_avail" = "xno" ; then
416 if test "x$enable_eloop_dbus" = "xyes" ; then
417 AC_ERROR([missing for eloop-dbus: $eloop_dbus_missing])
421 eloop_dbus_missing="enable-eloop-dbus"
427 if test ! "x$enable_eloop" = "xno" ; then
430 eloop_missing="enable-eloop"
436 if test ! "x$enable_tsm" = "xno" ; then
438 if test "x$have_xkbcommon" = "xno" ; then
440 tsm_missing="libxkbcommon"
443 if test "x$tsm_avail" = "xno" ; then
444 if test "x$enable_tsm" = "xyes" ; then
445 AC_ERROR([missing for TSM: $tsm_missing])
449 tsm_missing="enable-tsm"
455 if test ! "x$enable_uvt" = "xno" ; then
457 if test "x$have_fuse" = "xno" ; then
462 if test "x$uvt_avail" = "xno" ; then
463 if test "x$enable_uvt" = "xyes" ; then
464 AC_ERROR([missing for UVT: $uvt_missing])
468 uvt_missing="enable-uvt"
473 video_fbdev_missing=""
474 if test ! "x$enable_video_fbdev" = "xno" ; then
475 # TODO: check for kernel headers
476 video_fbdev_avail=yes
478 video_fbdev_missing="enable-video-fbdev"
483 video_drm2d_missing=""
484 if test ! "x$enable_video_drm2d" = "xno" ; then
485 video_drm2d_avail=yes
486 if test "x$have_drm3d" = "xno" ; then
488 video_drm2d_missing="libdrm3d"
491 if test "x$video_drm2d_avail" = "xno" ; then
492 if test "x$enable_video_drm2d" = "xyes" ; then
493 AC_ERROR([missing for drm2d video backend: $video_drm2d_missing])
497 video_drm2d_missing="enable-video-drm2d"
502 video_drm3d_missing=""
503 if test ! "x$enable_video_drm3d" = "xno" ; then
504 video_drm3d_avail=yes
505 if test "x$have_drm3d" = "xno" ; then
507 video_drm3d_missing="libdrm3d,$video_drm3d_missing"
509 if test "x$have_gbm" = "xno" ; then
511 video_drm3d_missing="libgbm,$video_drm3d_missing"
513 if test "x$have_egl" = "xno" ; then
515 video_drm3d_missing="libegl,$video_drm3d_missing"
517 if test "x$have_gles2" = "xno" ; then
519 video_drm3d_missing="libgles2,$video_drm3d_missing"
522 if test "x$video_drm3d_avail" = "xno" ; then
523 if test "x$enable_video_drm3d" = "xyes" ; then
524 AC_ERROR([missing for drm3d video backend: $video_drm3d_missing])
528 video_drm3d_missing="enable-video-drm3d"
534 if test ! "x$enable_uterm" = "xno" ; then
537 uterm_missing="enable-uterm"
542 multi_seat_missing=""
543 if test ! "x$enable_multi_seat" = "xno" ; then
545 if test "x$have_systemd" = "xno" ; then
547 multi_seat_missing="libsystemd"
550 if test "x$multi_seat_avail" = "xno" ; then
551 if test "x$enable_multi_seat" = "xyes" ; then
552 AC_ERROR([missing for multi-seat support: $multi_seat_missing])
556 multi_seat_missing="enable-multi-seat"
562 if test ! "x$enable_hotplug" = "xno" ; then
564 if test "x$have_udev" = "xno" ; then
566 hotplug_missing="libudev"
569 if test "x$hotplug_avail" = "xno" ; then
570 if test "x$enable_hotplug" = "xyes" ; then
571 AC_ERROR([missing for hotplug-support: $hotplug_missing])
575 hotplug_missing="enable-hotplug"
579 renderer_bbulk_avail=no
580 renderer_bbulk_missing=""
581 if test ! "x$enable_renderer_bbulk" = "xno" ; then
582 renderer_bbulk_avail=yes
584 renderer_bbulk_missing="enable-renderer-bbulk"
588 renderer_gltex_avail=no
589 renderer_gltex_missing=""
590 if test ! "x$enable_renderer_gltex" = "xno" ; then
591 renderer_gltex_avail=yes
592 if test "x$have_gles2" = "xno" ; then
593 renderer_gltex_avail=no
594 renderer_gltex_missing="libgles2"
597 if test "x$renderer_gltex_avail" = "xno" ; then
598 if test "x$enable_renderer_gltex" = "xyes" ; then
599 AC_ERROR([missing for renderer-gltex: $renderer_gltex_missing])
603 renderer_gltex_missing="enable-renderer-gltex"
607 renderer_cairo_avail=no
608 renderer_cairo_missing=""
609 if test ! "x$enable_renderer_cairo" = "xno" ; then
610 renderer_cairo_avail=yes
611 if test "x$have_cairo" = "xno" ; then
612 renderer_cairo_avail=no
613 renderer_cairo_missing="cairo"
616 if test "x$renderer_cairo_avail" = "xno" ; then
617 if test "x$enable_renderer_cairo" = "xyes" ; then
618 AC_ERROR([missing for renderer-cairo: $renderer_cairo_missing])
622 renderer_cairo_missing="enable-renderer-cairo"
626 renderer_pixman_avail=no
627 renderer_pixman_missing=""
628 if test ! "x$enable_renderer_pixman" = "xno" ; then
629 renderer_pixman_avail=yes
630 if test "x$have_pixman" = "xno" ; then
631 renderer_pixman_avail=no
632 renderer_pixman_missing="pixman"
635 if test "x$renderer_pixman_avail" = "xno" ; then
636 if test "x$enable_renderer_pixman" = "xyes" ; then
637 AC_ERROR([missing for renderer-pixman: $renderer_pixman_missing])
641 renderer_pixman_missing="enable-renderer-pixman"
645 font_unifont_avail=no
646 font_unifont_missing=""
647 if test ! "x$enable_font_unifont" = "xno" ; then
648 font_unifont_avail=yes
650 font_unifont_missing="enable-font-unifont"
654 font_freetype2_avail=no
655 font_freetype2_missing=""
656 if test ! "x$enable_font_freetype2" = "xno" ; then
657 font_freetype2_avail=yes
658 if test "x$have_freetype2" = "xno" ; then
659 font_freetype2_avail=no
660 font_freetype2_missing="libfontconfig,libfreetype2"
663 if test "x$font_freetype2_avail" = "xno" ; then
664 if test "x$enable_font_freetype2" = "xyes" ; then
665 AC_ERROR([missing for font-freetype2: $font_freetype2_missing])
669 font_freetype2_missing="enable-font-freetype2"
674 font_pango_missing=""
675 if test ! "x$enable_font_pango" = "xno" ; then
677 if test "x$have_pango" = "xno" ; then
679 font_pango_missing="libpango"
682 if test "x$font_pango_avail" = "xno" ; then
683 if test "x$enable_font_pango" = "xyes" ; then
684 AC_ERROR([missing for font-pango: $font_pango_missing])
688 font_pango_missing="enable-font-pango"
692 session_dummy_avail=no
693 session_dummy_missing=""
694 if test ! "x$enable_session_dummy" = "xno" ; then
695 session_dummy_avail=yes
697 session_dummy_missing="enable-session-dummy"
701 session_terminal_avail=no
702 session_terminal_missing=""
703 if test ! "x$enable_session_terminal" = "xno" ; then
704 session_terminal_avail=yes
705 if test "x$tsm_avail" = "xno" ; then
706 session_terminal_avail=no
707 session_terminal_missing="$tsm_missing"
710 if test "x$session_terminal_avail" = "xno" ; then
711 if test "x$enable_session_terminal" = "xyes" ; then
712 AC_ERROR([missing for session-terminal: $session_terminal_missing])
716 session_terminal_missing="enable-session-terminal"
720 session_cdev_avail=no
721 session_cdev_missing=""
722 if test ! "x$enable_session_cdev" = "xno" ; then
723 session_cdev_avail=yes
724 if test "x$have_fuse" = "xno" ; then
725 session_cdev_avail=no
726 session_cdev_missing="libfuse,$session_cdev_missing"
729 if test "x$tsm_avail" = "xno" ; then
730 session_cdev_avail=no
731 session_cdev_missing="$tsm_missing,$session_cdev_missing"
734 if test "x$session_cdev_avail" = "xno" ; then
735 if test "x$enable_session_cdev" = "xyes" ; then
736 AC_ERROR([missing for session-cdev: $session_cdev_missing])
740 session_cdev_missing="enable-session-cdev"
746 if test ! "x$enable_kmscon" = "xno" ; then
748 if test "x$eloop_avail" = "xno" ; then
750 kmscon_missing="$eloop_missing,$kmscon_missing"
753 if test "x$tsm_avail" = "xno" ; then
755 kmscon_missing="$tsm_missing,$kmscon_missing"
758 if test "x$uterm_avail" = "xno" ; then
760 kmscon_missing="$uterm_missing,$kmscon_missing"
763 if test "x$kmscon_avail" = "xno" ; then
764 if test "x$enable_kmscon" = "xyes" ; then
765 AC_ERROR([missing for kmscon: $kmscon_missing])
769 kmscon_missing="enable-kmscon"
775 if test ! "x$enable_wlterm" = "xno" ; then
777 if test "x$tsm_avail" = "xno" ; then
779 wlterm_missing="$tsm_missing,$wlterm_missing"
782 if test "x$eloop_avail" = "xno" ; then
784 wlterm_missing="$eloop_missing,$wlterm_missing"
787 if test "x$font_pango_avail" = "xno" ; then
789 wlterm_missing="$font_pango_missing,$wlterm_missing"
792 if test "x$have_wayland" = "xno" ; then
794 wlterm_missing="libwayland,$wlterm_missing"
797 if test "x$wlterm_avail" = "xno" ; then
798 if test "x$enable_wlterm" = "xyes" ; then
799 AC_ERROR([missing for wlterm: $wlterm_missing])
803 wlterm_missing="enable-wlterm"
807 # Enable all required modules
808 # We now know which modules can be built by checking the *_avail variables set
809 # above. We now only have to disable all modules that are disabled by default
810 # and the user didn't force-enable them and no other module that is enabled
811 # needs them. This is done top-down of course.
816 if test "x$wlterm_avail" = "xyes" ; then
817 if test "x${enable_wlterm% *}" = "xyes" ; then
821 enable_font_pango=yes
827 if test "x$kmscon_avail" = "xyes" ; then
828 if test "x${enable_kmscon% *}" = "xyes" ; then
836 session_cdev_enabled=no
837 if test "x$session_cdev_avail" = "xyes" ; then
838 if test "x${enable_session_cdev% *}" = "xyes" ; then
839 session_cdev_enabled=yes
844 session_terminal_enabled=no
845 if test "x$session_terminal_avail" = "xyes" ; then
846 if test "x${enable_session_terminal% *}" = "xyes" ; then
847 session_terminal_enabled=yes
853 session_dummy_enabled=no
854 if test "x$session_dummy_avail" = "xyes" ; then
855 if test "x${enable_session_dummy% *}" = "xyes" ; then
856 session_dummy_enabled=yes
861 font_pango_enabled=no
862 if test "x$font_pango_avail" = "xyes" ; then
863 if test "x${enable_font_pango% *}" = "xyes" ; then
864 font_pango_enabled=yes
869 font_freetype2_enabled=no
870 if test "x$font_freetype2_avail" = "xyes" ; then
871 if test "x${enable_font_freetype2% *}" = "xyes" ; then
872 font_freetype2_enabled=yes
877 font_unifont_enabled=no
878 if test "x$font_unifont_avail" = "xyes" ; then
879 if test "x${enable_font_unifont% *}" = "xyes" ; then
880 font_unifont_enabled=yes
885 renderer_gltex_enabled=no
886 if test "x$renderer_gltex_avail" = "xyes" ; then
887 if test "x${enable_renderer_gltex% *}" = "xyes" ; then
888 renderer_gltex_enabled=yes
893 renderer_cairo_enabled=no
894 if test "x$renderer_cairo_avail" = "xyes" ; then
895 if test "x${enable_renderer_cairo% *}" = "xyes" ; then
896 renderer_cairo_enabled=yes
901 renderer_pixman_enabled=no
902 if test "x$renderer_pixman_avail" = "xyes" ; then
903 if test "x${enable_renderer_pixman% *}" = "xyes" ; then
904 renderer_pixman_enabled=yes
909 renderer_bbulk_enabled=no
910 if test "x$renderer_bbulk_avail" = "xyes" ; then
911 if test "x${enable_renderer_bbulk% *}" = "xyes" ; then
912 renderer_bbulk_enabled=yes
918 if test "x$hotplug_avail" = "xyes" ; then
919 if test "x${enable_hotplug% *}" = "xyes" ; then
925 multi_seat_enabled=no
926 if test "x$multi_seat_avail" = "xyes" ; then
927 if test "x${enable_multi_seat% *}" = "xyes" ; then
928 multi_seat_enabled=yes
934 if test "x$uterm_avail" = "xyes" ; then
935 if test "x${enable_uterm% *}" = "xyes" ; then
941 video_drm3d_enabled=no
942 if test "x$video_drm3d_avail" = "xyes" ; then
943 if test "x${enable_video_drm3d% *}" = "xyes" ; then
944 video_drm3d_enabled=yes
949 video_drm2d_enabled=no
950 if test "x$video_drm2d_avail" = "xyes" ; then
951 if test "x${enable_video_drm2d% *}" = "xyes" ; then
952 video_drm2d_enabled=yes
957 video_fbdev_enabled=no
958 if test "x$video_fbdev_avail" = "xyes" ; then
959 if test "x${enable_video_fbdev% *}" = "xyes" ; then
960 video_fbdev_enabled=yes
966 if test "x$uvt_avail" = "xyes" ; then
967 if test "x${enable_uvt% *}" = "xyes" ; then
974 if test "x$tsm_avail" = "xyes" ; then
975 if test "x${enable_tsm% *}" = "xyes" ; then
982 if test "x$eloop_avail" = "xyes" ; then
983 if test "x${enable_eloop% *}" = "xyes" ; then
989 eloop_dbus_enabled=no
990 if test "x$eloop_dbus_avail" = "xyes" ; then
991 if test "x${enable_eloop_dbus% *}" = "xyes" ; then
992 eloop_dbus_enabled=yes
997 optimizations_enabled=no
998 if test "x$optimizations_avail" = "xyes" ; then
999 if test "x${enable_optimizations% *}" = "xyes" ; then
1000 optimizations_enabled=yes
1006 if test "x$debug_avail" = "xyes" ; then
1007 if test "x${enable_debug% *}" = "xyes" ; then
1013 # Module Configuration
1014 # We have now done all dependency checking and default-value validation and we
1015 # now know which modules are enabled via the *_enabled variables.
1016 # Everything below is related to the configuration of each module and setting
1017 # the correct flags for the build process.
1021 if test "x$debug_enabled" = "xyes" ; then
1022 AC_DEFINE([BUILD_ENABLE_DEBUG], [1], [Enable debug mode])
1024 AC_DEFINE([NDEBUG], [1], [No Debug])
1027 AM_CONDITIONAL([BUILD_ENABLE_DEBUG],
1028 [test "x$debug_enabled" = "xyes"])
1031 AM_CONDITIONAL([BUILD_ENABLE_OPTIMIZATIONS],
1032 [test "x$optimizations_enabled" = "xyes"])
1035 AM_CONDITIONAL([BUILD_ENABLE_ELOOP_DBUS],
1036 [test "x$eloop_dbus_enabled" = "xyes"])
1039 AM_CONDITIONAL([BUILD_ENABLE_ELOOP],
1040 [test "x$eloop_enabled" = "xyes"])
1043 AM_CONDITIONAL([BUILD_ENABLE_TSM],
1044 [test "x$tsm_enabled" = "xyes"])
1047 AM_CONDITIONAL([BUILD_ENABLE_UVT],
1048 [test "x$uvt_enabled" = "xyes"])
1051 if test "x$video_fbdev_enabled" = "xyes" ; then
1052 AC_DEFINE([BUILD_ENABLE_VIDEO_FBDEV], [1],
1053 [Build uterm fbdev video backend])
1056 AM_CONDITIONAL([BUILD_ENABLE_VIDEO_FBDEV],
1057 [test "x$video_fbdev_enabled" = "xyes"])
1060 if test "x$video_drm2d_enabled" = "xyes" ; then
1061 AC_DEFINE([BUILD_ENABLE_VIDEO_DRM2D], [1],
1062 [Build uterm drm2d drm3d video backend])
1065 AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DRM2D],
1066 [test "x$video_drm2d_enabled" = "xyes"])
1069 if test "x$video_drm3d_enabled" = "xyes" ; then
1070 AC_DEFINE([BUILD_ENABLE_VIDEO_DRM3D], [1],
1071 [Build uterm drm3d video backend])
1074 AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DRM3D],
1075 [test "x$video_drm3d_enabled" = "xyes"])
1078 AM_CONDITIONAL([BUILD_ENABLE_UTERM],
1079 [test "x$uterm_enabled" = "xyes"])
1082 if test "x$multi_seat_enabled" = "xyes" ; then
1083 AC_DEFINE([BUILD_ENABLE_MULTI_SEAT], [1],
1084 [Use systemd for multi-seat support])
1087 AM_CONDITIONAL([BUILD_ENABLE_MULTI_SEAT],
1088 [test "x$multi_seat_enabled" = "xyes"])
1091 if test "x$hotplug_enabled" = "xyes" ; then
1092 AC_DEFINE([BUILD_ENABLE_HOTPLUG], [1],
1093 [Use udev for hotplug support])
1096 AM_CONDITIONAL([BUILD_ENABLE_HOTPLUG],
1097 [test "x$hotplug_enabled" = "xyes"])
1100 if test "x$renderer_bbulk_enabled" = "xyes" ; then
1101 AC_DEFINE([BUILD_ENABLE_RENDERER_BBULK], [1],
1102 [Build bbulk rendering backend])
1105 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_BBULK],
1106 [test "x$renderer_bbulk_enabled" = "xyes"])
1109 if test "x$renderer_gltex_enabled" = "xyes" ; then
1110 AC_DEFINE([BUILD_ENABLE_RENDERER_GLTEX], [1],
1111 [Build gltex rendering backend])
1114 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_GLTEX],
1115 [test "x$renderer_gltex_enabled" = "xyes"])
1118 if test "x$renderer_cairo_enabled" = "xyes" ; then
1119 AC_DEFINE([BUILD_ENABLE_RENDERER_CAIRO], [1],
1120 [Build cairo rendering backend])
1123 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_CAIRO],
1124 [test "x$renderer_cairo_enabled" = "xyes"])
1127 if test "x$renderer_pixman_enabled" = "xyes" ; then
1128 AC_DEFINE([BUILD_ENABLE_RENDERER_PIXMAN], [1],
1129 [Build pixman rendering backend])
1132 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_PIXMAN],
1133 [test "x$renderer_pixman_enabled" = "xyes"])
1136 if test "x$font_unifont_enabled" = "xyes" ; then
1137 AC_DEFINE([BUILD_ENABLE_FONT_UNIFONT], [1],
1138 [Build static unifont backend])
1141 AM_CONDITIONAL([BUILD_ENABLE_FONT_UNIFONT],
1142 [test "x$font_unifont_enabled" = "xyes"])
1145 if test "x$font_freetype2_enabled" = "xyes" ; then
1146 AC_DEFINE([BUILD_ENABLE_FONT_FREETYPE2], [1],
1147 [Build freetype2 font backend])
1150 AM_CONDITIONAL([BUILD_ENABLE_FONT_FREETYPE2],
1151 [test "x$font_freetype2_enabled" = "xyes"])
1154 if test "x$font_pango_enabled" = "xyes" ; then
1155 AC_DEFINE([BUILD_ENABLE_FONT_PANGO], [1],
1156 [Build pango font backend])
1159 AM_CONDITIONAL([BUILD_ENABLE_FONT_PANGO],
1160 [test "x$font_pango_enabled" = "xyes"])
1163 if test "x$session_dummy_enabled" = "xyes" ; then
1164 AC_DEFINE([BUILD_ENABLE_SESSION_DUMMY], [1],
1165 [Build dummy session])
1168 AM_CONDITIONAL([BUILD_ENABLE_SESSION_DUMMY],
1169 [test "x$session_dummy_enabled" = "xyes"])
1172 if test "x$session_terminal_enabled" = "xyes" ; then
1173 AC_DEFINE([BUILD_ENABLE_SESSION_TERMINAL], [1],
1174 [Build terminal session])
1177 AM_CONDITIONAL([BUILD_ENABLE_SESSION_TERMINAL],
1178 [test "x$session_terminal_enabled" = "xyes"])
1181 if test "x$session_cdev_enabled" = "xyes" ; then
1182 AC_DEFINE([BUILD_ENABLE_SESSION_CDEV], [1],
1183 [Build cdev session])
1186 AM_CONDITIONAL([BUILD_ENABLE_SESSION_CDEV],
1187 [test "x$session_cdev_enabled" = "xyes"])
1190 AM_CONDITIONAL([BUILD_ENABLE_KMSCON],
1191 [test "x$kmscon_enabled" = "xyes"])
1194 AM_CONDITIONAL([BUILD_ENABLE_WLTERM],
1195 [test "x$wlterm_enabled" = "xyes"])
1198 # Miscellaneous Checks
1199 # All checks below are independent of module checking or depend on the results
1200 # of it. They do not have any dependencies themselves so they are not part of the
1201 # module infrastructure.
1204 # check for _Static_assert
1205 AC_MSG_CHECKING([whether _Static_assert() is supported])
1207 have_static_assert=yes
1208 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[_Static_assert(1, "What?");]])],
1209 [AC_DEFINE([BUILD_HAVE_STATIC_ASSERT],
1211 [Define to 1 if _Static_assert() is supported])],
1212 [have_static_assert=no])
1213 AC_MSG_RESULT([$have_static_assert])
1215 # check for gbm_bo_get_pitch() function, otherwise gbm_bo_get_stride() is used
1216 if test x$have_gbm = xyes ; then
1217 save_CFLAGS="$CFLAGS"
1219 save_LDFLAGS="$LDFLAGS"
1220 CFLAGS="$DRM_CFLAGS $GBM_CFLAGS"
1221 LIBS="$DRM_LIBS $GBM_LIBS"
1225 [AC_DEFINE([BUILD_HAVE_GBM_BO_GET_PITCH],
1227 [Define to 1 if your libgbm provides gbm_bo_get_pitch])])
1228 CFLAGS="$save_CFLAGS"
1230 LDFLAGS="$save_LDFLAGS"
1233 # check for xsltproc
1234 AC_PATH_PROG(XSLTPROC, xsltproc)
1235 AM_CONDITIONAL([BUILD_HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
1237 # check for offline man-pages stylesheet
1238 AC_MSG_CHECKING([for docbook manpages stylesheet])
1239 BUILD_MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
1240 AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
1241 AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$BUILD_MANPAGES_STYLESHEET" > /dev/null 2>&1`],
1242 [BUILD_HAVE_MANPAGES_STYLESHEET=yes]))
1243 if test "x$BUILD_HAVE_MANPAGES_STYLESHEET" = "xyes"; then
1244 AM_CONDITIONAL([BUILD_HAVE_MANPAGES_STYLESHEET], true)
1245 AC_SUBST(BUILD_MANPAGES_STYLESHEET)
1246 AC_MSG_RESULT([yes])
1248 AM_CONDITIONAL([BUILD_HAVE_MANPAGES_STYLESHEET], false)
1254 # After everything is configured, we correctly substitute the values for the
1258 AC_CONFIG_FILES([Makefile
1262 docs/pc/libuterm.pc])
1266 # Configuration output
1267 # Show configuration to the user so they can check whether everything was
1268 # configured as expected.
1271 AC_MSG_NOTICE([Build configuration:
1274 exec-prefix: $exec_prefix
1276 includedir: $includedir
1278 Applications and Libraries:
1279 kmscon: $kmscon_enabled ($kmscon_avail: $kmscon_missing)
1280 wlterm: $wlterm_enabled ($wlterm_avail: $wlterm_missing)
1281 uterm: $uterm_enabled ($uterm_avail: $uterm_missing)
1282 tsm: $tsm_enabled ($tsm_avail: $tsm_missing)
1283 uvt: $uvt_enabled ($uvt_avail: $uvt_missing)
1284 eloop: $eloop_enabled ($eloop_avail: $eloop_missing)
1286 Miscellaneous Options:
1287 debug: $debug_enabled ($debug_avail: $debug_missing)
1288 optimizations: $optimizations_enabled ($optimizations_avail: $optimizations_missing)
1289 multi-seat: $multi_seat_enabled ($multi_seat_avail: $multi_seat_missing)
1290 hotplug: $hotplug_enabled ($hotplug_avail: $hotplug_missing)
1291 eloop-dbus: $eloop_dbus_enabled ($eloop_dbus_avail: $eloop_dbus_missing)
1294 fbdev: $video_fbdev_enabled ($video_fbdev_avail: $video_fbdev_missing)
1295 drm2d: $video_drm2d_enabled ($video_drm2d_avail: $video_drm2d_missing)
1296 drm3d: $video_drm3d_enabled ($video_drm3d_avail: $video_drm3d_missing)
1299 unifont: $font_unifont_enabled ($font_unifont_avail: $font_unifont_missing)
1300 freetype2: $font_freetype2_enabled ($font_freetype2_avail: $font_freetype2_missing)
1301 pango: $font_pango_enabled ($font_pango_avail: $font_pango_missing)
1304 bbulk: $renderer_bbulk_enabled ($renderer_bbulk_avail: $renderer_bbulk_missing)
1305 gltex: $renderer_gltex_enabled ($renderer_gltex_avail: $renderer_gltex_missing)
1306 cairo: $renderer_cairo_enabled ($renderer_cairo_avail: $renderer_cairo_missing)
1307 pixman: $renderer_pixman_enabled ($renderer_pixman_avail: $renderer_pixman_missing)
1310 dummy: $session_dummy_enabled ($session_dummy_avail: $session_dummy_missing)
1311 terminal: $session_terminal_enabled ($session_terminal_avail: $session_terminal_missing)
1312 cdev: $session_cdev_enabled ($session_cdev_avail: $session_cdev_missing)
1314 Run "${MAKE-make}" to start compilation process])