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)
15 AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects dist-bzip2 no-dist-gzip tar-pax -Wall -Werror -Wno-portability])
16 AM_SILENT_RULES([yes])
19 # Don't add a default "-g -O2" if CFLAGS wasn't specified. For debugging it is
20 # often more convenient to have "-g -O0". You can still override it by
21 # explicitely setting it on the command line.
26 AC_USE_SYSTEM_EXTENSIONS
31 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
37 # pkg-config dependencies
38 # This unconditionally checks for all dependencies even if they are disabled. We
39 # later look whether all required depedencies are met and finish the
40 # configuration. We group similar packages into one logical group here to avoid
41 # having variables for each single library.
42 # This, however, makes ./configure output very unintuitive error messages if a
43 # package is not found so we must make sure we print more verbose messages
47 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon],
48 [have_xkbcommon=yes], [have_xkbcommon=no])
49 AC_SUBST(XKBCOMMON_CFLAGS)
50 AC_SUBST(XKBCOMMON_LIBS)
52 PKG_CHECK_MODULES([WAYLAND], [wayland-client wayland-server wayland-cursor],
53 [have_wayland=yes], [have_wayland=no])
54 AC_SUBST(WAYLAND_CFLAGS)
55 AC_SUBST(WAYLAND_LIBS)
57 PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon libsystemd-login],
58 [have_systemd=yes], [have_systemd=no])
59 AC_SUBST(SYSTEMD_CFLAGS)
60 AC_SUBST(SYSTEMD_LIBS)
62 PKG_CHECK_MODULES([UDEV], [libudev],
63 [have_udev=yes], [have_udev=no])
67 PKG_CHECK_MODULES([DBUS], [dbus-1],
68 [have_dbus=yes], [have_dbus=no])
72 PKG_CHECK_MODULES([DRM], [libdrm],
73 [have_drm=yes], [have_drm=no])
77 PKG_CHECK_MODULES([GBM], [gbm],
78 [have_gbm=yes], [have_gbm=no])
82 PKG_CHECK_MODULES([EGL], [egl],
83 [have_egl=yes], [have_egl=no])
87 PKG_CHECK_MODULES([GLES2], [glesv2],
88 [have_gles2=yes], [have_gles2=no])
89 AC_SUBST(GLES2_CFLAGS)
92 PKG_CHECK_MODULES([FREETYPE2], [freetype2 fontconfig],
93 [have_freetype2=yes], [have_freetype2=no])
94 AC_SUBST(FREETYPE2_CFLAGS)
95 AC_SUBST(FREETYPE2_LIBS)
97 PKG_CHECK_MODULES([PANGO], [pango pangoft2],
98 [have_pango=yes], [have_pango=no])
99 AC_SUBST(PANGO_CFLAGS)
102 PKG_CHECK_MODULES([FUSE], [fuse],
103 [have_fuse=yes], [have_fuse=no])
104 AC_SUBST(FUSE_CFLAGS)
107 PKG_CHECK_MODULES([PCIACCESS], [pciaccess],
108 [have_pciaccess=yes], [have_pciaccess=no])
109 AC_SUBST(PCIACCESS_CFLAGS)
110 AC_SUBST(PCIACCESS_LIBS)
114 # This parses all arguments that are given via "--enable-XY" or "--with-XY" and
115 # saves the results in local variables. This does not check dependencies or
116 # similar but does only parse the arguments.
120 AC_MSG_CHECKING([whether user wants eloop])
121 AC_ARG_ENABLE([eloop],
122 [AS_HELP_STRING([--enable-eloop],
123 [build eloop library])])
124 if test "x$enable_eloop" = "x" ; then
125 enable_eloop="no (default)"
127 AC_MSG_RESULT([$enable_eloop])
130 AC_MSG_CHECKING([whether user wants TSM])
132 [AS_HELP_STRING([--enable-tsm],
133 [build tsm library])])
134 if test "x$enable_tsm" = "x" ; then
135 enable_tsm="no (default)"
137 AC_MSG_RESULT([$enable_tsm])
140 AC_MSG_CHECKING([whether user wants uterm])
141 AC_ARG_ENABLE([uterm],
142 [AS_HELP_STRING([--enable-uterm],
143 [build uterm library])])
144 if test "x$enable_uterm" = "x" ; then
145 enable_uterm="no (default)"
147 AC_MSG_RESULT([$enable_uterm])
150 AC_MSG_CHECKING([whether user wants kmscon])
151 AC_ARG_ENABLE([kmscon],
152 [AS_HELP_STRING([--disable-kmscon],
153 [do not build kmscon])])
154 if test "x$enable_kmscon" = "x" ; then
155 enable_kmscon="yes (default)"
157 AC_MSG_RESULT([$enable_kmscon])
160 AC_MSG_CHECKING([whether user wants wlterm])
161 AC_ARG_ENABLE([wlterm],
162 [AS_HELP_STRING([--enable-wlterm],
164 if test "x$enable_wlterm" = "x" ; then
165 enable_wlterm="yes (default)"
167 AC_MSG_RESULT([$enable_wlterm])
170 AC_MSG_CHECKING([whether to build with debugging on])
171 AC_ARG_ENABLE([debug],
172 [AS_HELP_STRING([--enable-debug],
173 [whether to build with debugging on])])
174 if test "x$enable_debug" = "x" ; then
175 enable_debug="yes (default)"
177 AC_MSG_RESULT([$enable_debug])
180 AC_MSG_CHECKING([whether to disable code optimizations])
181 AC_ARG_ENABLE([optimizations],
182 [AS_HELP_STRING([--disable-optimizations],
183 [whether to disable code optimizations])])
184 if test "x$enable_optimizations" = "x" ; then
185 enable_optimizations="yes (default)"
187 AC_MSG_RESULT([$enable_optimizations])
190 AC_MSG_CHECKING([whether user wants systemd for multi-seat support])
191 AC_ARG_ENABLE([multi-seat],
192 [AS_HELP_STRING([--enable-multi-seat],
193 [enable multi-seat support with systemd])])
194 if test "x$enable_multi_seat" = "x" ; then
195 enable_multi_seat="yes (default)"
197 AC_MSG_RESULT([$enable_multi_seat])
200 AC_MSG_CHECKING([whether user wants udev for device hotplug support])
201 AC_ARG_ENABLE([hotplug],
202 [AS_HELP_STRING([--enable-hotplug],
203 [enable device hotplug support with udev])])
204 if test "x$enable_hotplug" = "x" ; then
205 enable_hotplug="yes (default)"
207 AC_MSG_RESULT([$enable_hotplug])
210 AC_MSG_CHECKING([whether user wants pciaccess device detection])
211 AC_ARG_ENABLE([pciaccess],
212 [AS_HELP_STRING([--enable-pciaccess],
213 [enable device detection via pciaccess])])
214 if test "x$enable_pciaccess" = "x" ; then
215 enable_pciaccess="yes (default)"
217 AC_MSG_RESULT([$enable_pciaccess])
220 AC_MSG_CHECKING([whether user wants eloop dbus support])
221 AC_ARG_ENABLE([eloop-dbus],
222 [AS_HELP_STRING([--enable-eloop-dbus],
223 [enable eloop dbus support])])
224 if test "x$enable_eloop_dbus" = "x" ; then
225 enable_eloop_dbus="no (default)"
227 AC_MSG_RESULT([$enable_eloop_dbus])
230 AC_MSG_CHECKING([which video backends the user wants])
232 [AS_HELP_STRING([--with-video],
233 [specify list of optional video backends])])
234 enable_video_fbdev="no"
235 enable_video_dumb="no"
236 enable_video_drm="no"
237 if test "x$with_video" = "x" ; then
238 enable_video_fbdev="yes (default)"
239 enable_video_dumb="yes (default)"
240 enable_video_drm="yes (default)"
241 with_video="fbdev,dumb,drm (default)"
245 for i in $with_video ; do
246 if test "x$i" = "xfbdev" ; then
247 enable_video_fbdev="yes"
248 elif test "x$i" = "xdumb" ; then
249 enable_video_dumb="yes"
250 elif test "x$i" = "xdrm" ; then
251 enable_video_drm="yes"
254 AC_ERROR([Invalid video backend $i])
259 AC_MSG_RESULT([$with_video])
262 AC_MSG_CHECKING([which render backends the user wants])
263 AC_ARG_WITH([renderers],
264 [AS_HELP_STRING([--with-renderers],
265 [specify list of optional render backends])])
266 enable_renderer_bblit="no"
267 enable_renderer_bbulk="no"
268 enable_renderer_gltex="no"
269 if test "x$with_renderers" = "x" ; then
270 enable_renderer_bblit="yes (default)"
271 enable_renderer_bbulk="yes (default)"
272 enable_renderer_gltex="yes (default)"
273 with_renderers="bblit,bbulk,gltex (default)"
277 for i in $with_renderers ; do
278 if test "x$i" = "xbblit" ; then
279 enable_renderer_bblit="yes"
280 elif test "x$i" = "xbbulk" ; then
281 enable_renderer_bbulk="yes"
282 elif test "x$i" = "xgltex" ; then
283 enable_renderer_gltex="yes"
286 AC_ERROR([Unknown renderer $i])
291 AC_MSG_RESULT([$with_renderers])
294 AC_MSG_CHECKING([which font backends the user wants])
296 [AS_HELP_STRING([--with-fonts],
297 [specify list of optional font backends])])
298 enable_font_8x16="no"
299 enable_font_unifont="no"
300 enable_font_freetype2="no"
301 enable_font_pango="no"
302 if test "x$with_fonts" = "x" ; then
303 enable_font_8x16="yes (default)"
304 enable_font_unifont="no (default)"
305 enable_font_freetype2="yes (default)"
306 enable_font_pango="yes (default)"
307 with_fonts="8x16,freetype2,pango (default)"
311 for i in $with_fonts ; do
312 if test "x$i" = "x8x16" ; then
313 enable_font_8x16="yes"
314 elif test "x$i" = "xunifont" ; then
315 enable_font_unifont="yes"
316 elif test "x$i" = "xfreetype2" ; then
317 enable_font_freetype2="yes"
318 elif test "x$i" = "xpango" ; then
319 enable_font_pango="yes"
322 AC_ERROR([Unknown font backend $i])
327 AC_MSG_RESULT([$with_fonts])
330 AC_MSG_CHECKING([which sessions the user wants])
331 AC_ARG_WITH([sessions],
332 [AS_HELP_STRING([--with-sessions],
333 [specify list of optional sessions])])
334 enable_session_dummy="no"
335 enable_session_terminal="no"
336 enable_session_cdev="no"
337 if test "x$with_sessions" = "x" ; then
338 enable_session_dummy="yes (default)"
339 enable_session_terminal="yes (default)"
340 enable_session_cdev="yes (default)"
341 with_sessions="dummy,terminal,cdev (default)"
345 for i in $with_sessions ; do
346 if test "x$i" = "xdummy" ; then
347 enable_session_dummy="yes"
348 elif test "x$i" = "xterminal" ; then
349 enable_session_terminal="yes"
350 elif test "x$i" = "xcdev" ; then
351 enable_session_cdev="yes"
354 AC_ERROR([Unknown session type $i])
359 AC_MSG_RESULT([$with_sessions])
362 # Check what can be built
363 # This checks each configuration option and tests whether all dependencies are
364 # met. This is done from bottom up to ensure the right order.
370 if test ! "x$enable_debug" = "xno" ; then
373 debug_missing="enable-debug"
377 optimizations_avail=no
378 optimizations_missing=""
379 if test ! "x$enable_optimizations" = "xno" ; then
380 optimizations_avail=yes
382 optimizations_missing="enable-optimizations"
387 eloop_dbus_missing=""
388 if test ! "x$enable_eloop_dbus" = "xno" ; then
390 if test "x$have_dbus" = "xno" ; then
392 eloop_dbus_missing="libdbus"
395 if test "x$eloop_dbus_avail" = "xno" ; then
396 if test "x$enable_eloop_dbus" = "xyes" ; then
397 AC_ERROR([missing for eloop-dbus: $eloop_dbus_missing])
401 eloop_dbus_missing="enable-eloop-dbus"
407 if test ! "x$enable_eloop" = "xno" ; then
410 eloop_missing="enable-eloop"
416 if test ! "x$enable_tsm" = "xno" ; then
418 if test "x$have_xkbcommon" = "xno" ; then
420 tsm_missing="libxkbcommon"
423 if test "x$tsm_avail" = "xno" ; then
424 if test "x$enable_tsm" = "xyes" ; then
425 AC_ERROR([missing for TSM: $tsm_missing])
429 tsm_missing="enable-tsm"
434 video_fbdev_missing=""
435 if test ! "x$enable_video_fbdev" = "xno" ; then
436 # TODO: check for kernel headers
437 video_fbdev_avail=yes
439 video_fbdev_missing="enable-video-fbdev"
444 video_dumb_missing=""
445 if test ! "x$enable_video_dumb" = "xno" ; then
447 if test "x$have_drm" = "xno" ; then
449 video_dumb_missing="libdrm"
452 if test "x$video_dumb_avail" = "xno" ; then
453 if test "x$enable_video_dumb" = "xyes" ; then
454 AC_ERROR([missing for dumb video backend: $video_dumb_missing])
458 video_dumb_missing="enable-video-dumb"
464 if test ! "x$enable_video_drm" = "xno" ; then
466 if test "x$have_drm" = "xno" ; then
468 video_drm_missing="libdrm,$video_drm_missing"
470 if test "x$have_gbm" = "xno" ; then
472 video_drm_missing="libgbm,$video_drm_missing"
474 if test "x$have_egl" = "xno" ; then
476 video_drm_missing="libegl,$video_drm_missing"
478 if test "x$have_gles2" = "xno" ; then
480 video_drm_missing="libgles2,$video_drm_missing"
483 if test "x$video_drm_avail" = "xno" ; then
484 if test "x$enable_video_drm" = "xyes" ; then
485 AC_ERROR([missing for drm video backend: $video_drm_missing])
489 video_drm_missing="enable-video-drm"
495 if test ! "x$enable_uterm" = "xno" ; then
498 uterm_missing="enable-uterm"
503 multi_seat_missing=""
504 if test ! "x$enable_multi_seat" = "xno" ; then
506 if test "x$have_systemd" = "xno" ; then
508 multi_seat_missing="libsystemd"
511 if test "x$multi_seat_avail" = "xno" ; then
512 if test "x$enable_multi_seat" = "xyes" ; then
513 AC_ERROR([missing for multi-seat support: $multi_seat_missing])
517 multi_seat_missing="enable-multi-seat"
523 if test ! "x$enable_hotplug" = "xno" ; then
525 if test "x$have_udev" = "xno" ; then
527 hotplug_missing="libudev"
530 if test "x$hotplug_avail" = "xno" ; then
531 if test "x$enable_hotplug" = "xyes" ; then
532 AC_ERROR([missing for hotplug-support: $hotplug_missing])
536 hotplug_missing="enable-hotplug"
542 if test ! "x$enable_pciaccess" = "xno" ; then
544 if test "x$have_pciaccess" = "xno" ; then
546 pciaccess_missing="libpciaccess"
549 if test "x$pciaccess_avail" = "xno" ; then
550 if test "x$enable_pciaccess" = "xyes" ; then
551 AC_ERROR([missing for pciaccess: $pciaccess_missing])
555 pciaccess_missing="enable-pciaccess"
559 renderer_bblit_avail=no
560 renderer_bblit_missing=""
561 if test ! "x$enable_renderer_bblit" = "xno" ; then
562 renderer_bblit_avail=yes
564 renderer_bblit_missing="enable-renderer-bblit"
568 renderer_bbulk_avail=no
569 renderer_bbulk_missing=""
570 if test ! "x$enable_renderer_bbulk" = "xno" ; then
571 renderer_bbulk_avail=yes
573 renderer_bbulk_missing="enable-renderer-bbulk"
577 renderer_gltex_avail=no
578 renderer_gltex_missing=""
579 if test ! "x$enable_renderer_gltex" = "xno" ; then
580 renderer_gltex_avail=yes
581 if test "x$have_gles2" = "xno" ; then
582 renderer_gltex_avail=no
583 renderer_gltex_missing="libgles2"
586 if test "x$renderer_gltex_avail" = "xno" ; then
587 if test "x$enable_renderer_gltex" = "xyes" ; then
588 AC_ERROR([missing for renderer-gltex: $renderer_gltex_missing])
592 renderer_gltex_missing="enable-renderer-gltex"
598 if test ! "x$enable_font_8x16" = "xno" ; then
601 font_8x16_missing="enable-font-8x16"
605 font_unifont_avail=no
606 font_unifont_missing=""
607 if test ! "x$enable_font_unifont" = "xno" ; then
608 font_unifont_avail=yes
610 font_unifont_missing="enable-font-unifont"
614 font_freetype2_avail=no
615 font_freetype2_missing=""
616 if test ! "x$enable_font_freetype2" = "xno" ; then
617 font_freetype2_avail=yes
618 if test "x$have_freetype2" = "xno" ; then
619 font_freetype2_avail=no
620 font_freetype2_missing="libfontconfig,libfreetype2"
623 if test "x$font_freetype2_avail" = "xno" ; then
624 if test "x$enable_font_freetype2" = "xyes" ; then
625 AC_ERROR([missing for font-freetype2: $font_freetype2_missing])
629 font_freetype2_missing="enable-font-freetype2"
634 font_pango_missing=""
635 if test ! "x$enable_font_pango" = "xno" ; then
637 if test "x$have_pango" = "xno" ; then
639 font_pango_missing="libpango"
642 if test "x$font_pango_avail" = "xno" ; then
643 if test "x$enable_font_pango" = "xyes" ; then
644 AC_ERROR([missing for font-pango: $font_pango_missing])
648 font_pango_missing="enable-font-pango"
652 session_dummy_avail=no
653 session_dummy_missing=""
654 if test ! "x$enable_session_dummy" = "xno" ; then
655 session_dummy_avail=yes
657 session_dummy_missing="enable-session-dummy"
661 session_terminal_avail=no
662 session_terminal_missing=""
663 if test ! "x$enable_session_terminal" = "xno" ; then
664 session_terminal_avail=yes
665 if test "x$tsm_avail" = "xno" ; then
666 session_terminal_avail=no
667 session_terminal_missing="$tsm_missing"
670 if test "x$session_terminal_avail" = "xno" ; then
671 if test "x$enable_session_terminal" = "xyes" ; then
672 AC_ERROR([missing for session-terminal: $session_terminal_missing])
676 session_terminal_missing="enable-session-terminal"
680 session_cdev_avail=no
681 session_cdev_missing=""
682 if test ! "x$enable_session_cdev" = "xno" ; then
683 session_cdev_avail=yes
684 if test "x$have_fuse" = "xno" ; then
685 session_cdev_avail=no
686 session_cdev_missing="libfuse,$session_cdev_missing"
689 if test "x$tsm_avail" = "xno" ; then
690 session_cdev_avail=no
691 session_cdev_missing="$tsm_missing,$session_cdev_missing"
694 if test "x$session_cdev_avail" = "xno" ; then
695 if test "x$enable_session_cdev" = "xyes" ; then
696 AC_ERROR([missing for session-cdev: $session_cdev_missing])
700 session_cdev_missing="enable-session-cdev"
706 if test ! "x$enable_kmscon" = "xno" ; then
708 if test "x$eloop_avail" = "xno" ; then
710 kmscon_missing="$eloop_missing,$kmscon_missing"
713 if test "x$tsm_avail" = "xno" ; then
715 kmscon_missing="$tsm_missing,$kmscon_missing"
718 if test "x$uterm_avail" = "xno" ; then
720 kmscon_missing="$uterm_missing,$kmscon_missing"
723 if test "x$kmscon_avail" = "xno" ; then
724 if test "x$enable_kmscon" = "xyes" ; then
725 AC_ERROR([missing for kmscon: $kmscon_missing])
729 kmscon_missing="enable-kmscon"
735 if test ! "x$enable_wlterm" = "xno" ; then
737 if test "x$tsm_avail" = "xno" ; then
739 wlterm_missing="$tsm_missing,$wlterm_missing"
742 if test "x$eloop_avail" = "xno" ; then
744 wlterm_missing="$eloop_missing,$wlterm_missing"
747 if test "x$have_wayland" = "xno" ; then
749 wlterm_missing="libwayland,$wlterm_missing"
752 if test "x$wlterm_avail" = "xno" ; then
753 if test "x$enable_wlterm" = "xyes" ; then
754 AC_ERROR([missing for wlterm: $wlterm_missing])
758 wlterm_missing="enable-wlterm"
762 # Enable all required modules
763 # We now know which modules can be built by checking the *_avail variables set
764 # above. We now only have to disable all modules that are disabled by default
765 # and the user didn't force-enable them and no other module that is enabled
766 # needs them. This is done top-down of course.
771 if test "x$wlterm_avail" = "xyes" ; then
772 if test "x${enable_wlterm% *}" = "xyes" ; then
781 if test "x$kmscon_avail" = "xyes" ; then
782 if test "x${enable_kmscon% *}" = "xyes" ; then
790 session_cdev_enabled=no
791 if test "x$session_cdev_avail" = "xyes" ; then
792 if test "x${enable_session_cdev% *}" = "xyes" ; then
793 session_cdev_enabled=yes
798 session_terminal_enabled=no
799 if test "x$session_terminal_avail" = "xyes" ; then
800 if test "x${enable_session_terminal% *}" = "xyes" ; then
801 session_terminal_enabled=yes
807 session_dummy_enabled=no
808 if test "x$session_dummy_avail" = "xyes" ; then
809 if test "x${enable_session_dummy% *}" = "xyes" ; then
810 session_dummy_enabled=yes
815 font_pango_enabled=no
816 if test "x$font_pango_avail" = "xyes" ; then
817 if test "x${enable_font_pango% *}" = "xyes" ; then
818 font_pango_enabled=yes
823 font_freetype2_enabled=no
824 if test "x$font_freetype2_avail" = "xyes" ; then
825 if test "x${enable_font_freetype2% *}" = "xyes" ; then
826 font_freetype2_enabled=yes
831 font_unifont_enabled=no
832 if test "x$font_unifont_avail" = "xyes" ; then
833 if test "x${enable_font_unifont% *}" = "xyes" ; then
834 font_unifont_enabled=yes
840 if test "x$font_8x16_avail" = "xyes" ; then
841 if test "x${enable_font_8x16% *}" = "xyes" ; then
842 font_8x16_enabled=yes
847 renderer_gltex_enabled=no
848 if test "x$renderer_gltex_avail" = "xyes" ; then
849 if test "x${enable_renderer_gltex% *}" = "xyes" ; then
850 renderer_gltex_enabled=yes
855 renderer_bbulk_enabled=no
856 if test "x$renderer_bbulk_avail" = "xyes" ; then
857 if test "x${enable_renderer_bbulk% *}" = "xyes" ; then
858 renderer_bbulk_enabled=yes
863 renderer_bblit_enabled=no
864 if test "x$renderer_bblit_avail" = "xyes" ; then
865 if test "x${enable_renderer_bblit% *}" = "xyes" ; then
866 renderer_bblit_enabled=yes
872 if test "x$pciaccess_avail" = "xyes" ; then
873 if test "x${enable_pciaccess% *}" = "xyes" ; then
874 pciaccess_enabled=yes
880 if test "x$hotplug_avail" = "xyes" ; then
881 if test "x${enable_hotplug% *}" = "xyes" ; then
887 multi_seat_enabled=no
888 if test "x$multi_seat_avail" = "xyes" ; then
889 if test "x${enable_multi_seat% *}" = "xyes" ; then
890 multi_seat_enabled=yes
896 if test "x$uterm_avail" = "xyes" ; then
897 if test "x${enable_uterm% *}" = "xyes" ; then
904 if test "x$video_drm_avail" = "xyes" ; then
905 if test "x${enable_video_drm% *}" = "xyes" ; then
906 video_drm_enabled=yes
911 video_dumb_enabled=no
912 if test "x$video_dumb_avail" = "xyes" ; then
913 if test "x${enable_video_dumb% *}" = "xyes" ; then
914 video_dumb_enabled=yes
919 video_fbdev_enabled=no
920 if test "x$video_fbdev_avail" = "xyes" ; then
921 if test "x${enable_video_fbdev% *}" = "xyes" ; then
922 video_fbdev_enabled=yes
928 if test "x$tsm_avail" = "xyes" ; then
929 if test "x${enable_tsm% *}" = "xyes" ; then
936 if test "x$eloop_avail" = "xyes" ; then
937 if test "x${enable_eloop% *}" = "xyes" ; then
943 eloop_dbus_enabled=no
944 if test "x$eloop_dbus_avail" = "xyes" ; then
945 if test "x${enable_eloop_dbus% *}" = "xyes" ; then
946 eloop_dbus_enabled=yes
951 optimizations_enabled=no
952 if test "x$optimizations_avail" = "xyes" ; then
953 if test "x${enable_optimizations% *}" = "xyes" ; then
954 optimizations_enabled=yes
960 if test "x$debug_avail" = "xyes" ; then
961 if test "x${enable_debug% *}" = "xyes" ; then
967 # Module Configuration
968 # We have now done all dependency checking and default-value validation and we
969 # now know which modules are enabled via the *_enabled variables.
970 # Everything below is related to the configuration of each module and setting
971 # the correct flags for the build process.
975 if test "x$debug_enabled" = "xyes" ; then
976 AC_DEFINE([BUILD_ENABLE_DEBUG], [1], [Enable debug mode])
978 AC_DEFINE([NDEBUG], [1], [No Debug])
981 AM_CONDITIONAL([BUILD_ENABLE_DEBUG],
982 [test "x$debug_enabled" = "xyes"])
985 AM_CONDITIONAL([BUILD_ENABLE_OPTIMIZATIONS],
986 [test "x$optimizations_enabled" = "xyes"])
989 AM_CONDITIONAL([BUILD_ENABLE_ELOOP_DBUS],
990 [test "x$eloop_dbus_enabled" = "xyes"])
993 AM_CONDITIONAL([BUILD_ENABLE_ELOOP],
994 [test "x$eloop_enabled" = "xyes"])
997 AM_CONDITIONAL([BUILD_ENABLE_TSM],
998 [test "x$tsm_enabled" = "xyes"])
1001 if test "x$video_fbdev_enabled" = "xyes" ; then
1002 AC_DEFINE([BUILD_ENABLE_VIDEO_FBDEV], [1],
1003 [Build uterm fbdev video backend])
1006 AM_CONDITIONAL([BUILD_ENABLE_VIDEO_FBDEV],
1007 [test "x$video_fbdev_enabled" = "xyes"])
1010 if test "x$video_dumb_enabled" = "xyes" ; then
1011 AC_DEFINE([BUILD_ENABLE_VIDEO_DUMB], [1],
1012 [Build uterm dumb drm video backend])
1015 AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DUMB],
1016 [test "x$video_dumb_enabled" = "xyes"])
1019 if test "x$video_drm_enabled" = "xyes" ; then
1020 AC_DEFINE([BUILD_ENABLE_VIDEO_DRM], [1],
1021 [Build uterm drm video backend])
1024 AM_CONDITIONAL([BUILD_ENABLE_VIDEO_DRM],
1025 [test "x$video_drm_enabled" = "xyes"])
1028 AM_CONDITIONAL([BUILD_ENABLE_UTERM],
1029 [test "x$uterm_enabled" = "xyes"])
1032 if test "x$multi_seat_enabled" = "xyes" ; then
1033 AC_DEFINE([BUILD_ENABLE_MULTI_SEAT], [1],
1034 [Use systemd for multi-seat support])
1037 AM_CONDITIONAL([BUILD_ENABLE_MULTI_SEAT],
1038 [test "x$multi_seat_enabled" = "xyes"])
1041 if test "x$hotplug_enabled" = "xyes" ; then
1042 AC_DEFINE([BUILD_ENABLE_HOTPLUG], [1],
1043 [Use udev for hotplug support])
1046 AM_CONDITIONAL([BUILD_ENABLE_HOTPLUG],
1047 [test "x$hotplug_enabled" = "xyes"])
1050 if test "x$pciaccess_enabled" = "xyes" ; then
1051 AC_DEFINE([BUILD_ENABLE_PCIACCESS], [1],
1052 [Use pciaccess for device detection])
1055 AM_CONDITIONAL([BUILD_ENABLE_PCIACCESS],
1056 [test "x$pciaccess_enabled" = "xyes"])
1059 if test "x$renderer_bblit_enabled" = "xyes" ; then
1060 AC_DEFINE([BUILD_ENABLE_RENDERER_BBLIT], [1],
1061 [Build bblit rendering backend])
1064 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_BBLIT],
1065 [test "x$renderer_bblit_enabled" = "xyes"])
1068 if test "x$renderer_bbulk_enabled" = "xyes" ; then
1069 AC_DEFINE([BUILD_ENABLE_RENDERER_BBULK], [1],
1070 [Build bbulk rendering backend])
1073 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_BBULK],
1074 [test "x$renderer_bbulk_enabled" = "xyes"])
1077 if test "x$renderer_gltex_enabled" = "xyes" ; then
1078 AC_DEFINE([BUILD_ENABLE_RENDERER_GLTEX], [1],
1079 [Build gltex rendering backend])
1082 AM_CONDITIONAL([BUILD_ENABLE_RENDERER_GLTEX],
1083 [test "x$renderer_gltex_enabled" = "xyes"])
1086 if test "x$font_8x16_enabled" = "xyes" ; then
1087 AC_DEFINE([BUILD_ENABLE_FONT_8X16], [1],
1088 [Build static 8x16 font backend])
1091 AM_CONDITIONAL([BUILD_ENABLE_FONT_8X16],
1092 [test "x$font_8x16_enabled" = "xyes"])
1095 if test "x$font_unifont_enabled" = "xyes" ; then
1096 AC_DEFINE([BUILD_ENABLE_FONT_UNIFONT], [1],
1097 [Build static unifont backend])
1100 AM_CONDITIONAL([BUILD_ENABLE_FONT_UNIFONT],
1101 [test "x$font_unifont_enabled" = "xyes"])
1104 if test "x$font_freetype2_enabled" = "xyes" ; then
1105 AC_DEFINE([BUILD_ENABLE_FONT_FREETYPE2], [1],
1106 [Build freetype2 font backend])
1109 AM_CONDITIONAL([BUILD_ENABLE_FONT_FREETYPE2],
1110 [test "x$font_freetype2_enabled" = "xyes"])
1113 if test "x$font_pango_enabled" = "xyes" ; then
1114 AC_DEFINE([BUILD_ENABLE_FONT_PANGO], [1],
1115 [Build pango font backend])
1118 AM_CONDITIONAL([BUILD_ENABLE_FONT_PANGO],
1119 [test "x$font_pango_enabled" = "xyes"])
1122 if test "x$session_dummy_enabled" = "xyes" ; then
1123 AC_DEFINE([BUILD_ENABLE_SESSION_DUMMY], [1],
1124 [Build dummy session])
1127 AM_CONDITIONAL([BUILD_ENABLE_SESSION_DUMMY],
1128 [test "x$session_dummy_enabled" = "xyes"])
1131 if test "x$session_terminal_enabled" = "xyes" ; then
1132 AC_DEFINE([BUILD_ENABLE_SESSION_TERMINAL], [1],
1133 [Build terminal session])
1136 AM_CONDITIONAL([BUILD_ENABLE_SESSION_TERMINAL],
1137 [test "x$session_terminal_enabled" = "xyes"])
1140 if test "x$session_cdev_enabled" = "xyes" ; then
1141 AC_DEFINE([BUILD_ENABLE_SESSION_CDEV], [1],
1142 [Build cdev session])
1145 AM_CONDITIONAL([BUILD_ENABLE_SESSION_CDEV],
1146 [test "x$session_cdev_enabled" = "xyes"])
1149 AM_CONDITIONAL([BUILD_ENABLE_KMSCON],
1150 [test "x$kmscon_enabled" = "xyes"])
1153 AM_CONDITIONAL([BUILD_ENABLE_WLTERM],
1154 [test "x$wlterm_enabled" = "xyes"])
1157 # Miscellaneous Checks
1158 # All checks below are independent of module checking or depend on the results
1159 # of it. They do not have any dependencies themself so they are not part of the
1160 # module infrastructure.
1163 # check for _Static_assert
1164 AC_MSG_CHECKING([whether _Static_assert() is supported])
1166 have_static_assert=yes
1167 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[_Static_assert(1, "What?");]])],
1168 [AC_DEFINE([BUILD_HAVE_STATIC_ASSERT],
1170 [Define to 1 if _Static_assert() is supported])],
1171 [have_static_assert=no])
1172 AC_MSG_RESULT([$have_static_assert])
1174 # check for gbm_bo_get_pitch() function, otherwise gbm_bo_get_stride() is used
1175 if test x$have_gbm = xyes ; then
1176 save_CFLAGS="$CFLAGS"
1178 save_LDFLAGS="$LDFLAGS"
1179 CFLAGS="$DRM_CFLAGS $GBM_CFLAGS"
1180 LIBS="$DRM_LIBS $GBM_LIBS"
1184 [AC_DEFINE([BUILD_HAVE_GBM_BO_GET_PITCH],
1186 [Define to 1 if your libgbm provides gbm_bo_get_pitch])])
1187 CFLAGS="$save_CFLAGS"
1189 LDFLAGS="$save_LDFLAGS"
1192 # check for xsltproc
1193 AC_PATH_PROG(XSLTPROC, xsltproc)
1194 AM_CONDITIONAL([BUILD_HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
1196 # check for offline man-pages stylesheet
1197 AC_MSG_CHECKING([for docbook manpages stylesheet])
1198 BUILD_MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
1199 AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
1200 AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$BUILD_MANPAGES_STYLESHEET" > /dev/null 2>&1`],
1201 [BUILD_HAVE_MANPAGES_STYLESHEET=yes]))
1202 if test "x$BUILD_HAVE_MANPAGES_STYLESHEET" = "xyes"; then
1203 AM_CONDITIONAL([BUILD_HAVE_MANPAGES_STYLESHEET], true)
1204 AC_SUBST(BUILD_MANPAGES_STYLESHEET)
1205 AC_MSG_RESULT([yes])
1207 AM_CONDITIONAL([BUILD_HAVE_MANPAGES_STYLESHEET], false)
1213 # After everything is configured, we correctly substitute the values for the
1217 AC_CONFIG_FILES([Makefile
1220 docs/pc/libuterm.pc])
1224 # Configuration output
1225 # Show configuration to the user so they can check whether everything was
1226 # configured as expected.
1229 AC_MSG_NOTICE([Build configuration:
1232 exec-prefix: $exec_prefix
1234 includedir: $includedir
1236 Applications and Libraries:
1237 kmscon: $kmscon_enabled ($kmscon_avail: $kmscon_missing)
1238 wlterm: $wlterm_enabled ($wlterm_avail: $wlterm_missing)
1239 uterm: $uterm_enabled ($uterm_avail: $uterm_missing)
1240 tsm: $tsm_enabled ($tsm_avail: $tsm_missing)
1241 eloop: $eloop_enabled ($eloop_avail: $eloop_missing)
1243 Miscellaneous Options:
1244 debug: $debug_enabled ($debug_avail: $debug_missing)
1245 optimizations: $optimizations_enabled ($optimizations_avail: $optimizations_missing)
1246 multi-seat: $multi_seat_enabled ($multi_seat_avail: $multi_seat_missing)
1247 hotplug: $hotplug_enabled ($hotplug_avail: $hotplug_missing)
1248 pciaccess: $pciaccess_enabled ($pciaccess_avail: $pciaccess_missing)
1249 eloop-dbus: $eloop_dbus_enabled ($eloop_dbus_avail: $eloop_dbus_missing)
1252 fbdev: $video_fbdev_enabled ($video_fbdev_avail: $video_fbdev_missing)
1253 dumb drm: $video_dumb_enabled ($video_dumb_avail: $video_dumb_missing)
1254 drm: $video_drm_enabled ($video_drm_avail: $video_drm_missing)
1257 8x16: $font_8x16_enabled ($font_8x16_avail: $font_8x16_missing)
1258 unifont: $font_unifont_enabled ($font_unifont_avail: $font_unifont_missing)
1259 freetype2: $font_freetype2_enabled ($font_freetype2_avail: $font_freetype2_missing)
1260 pango: $font_pango_enabled ($font_pango_avail: $font_pango_missing)
1263 bblit: $renderer_bblit_enabled ($renderer_bblit_avail: $renderer_bblit_missing)
1264 bbulk: $renderer_bbulk_enabled ($renderer_bbulk_avail: $renderer_bbulk_missing)
1265 gltex: $renderer_gltex_enabled ($renderer_gltex_avail: $renderer_gltex_missing)
1268 dummy: $session_dummy_enabled ($session_dummy_avail: $session_dummy_missing)
1269 terminal: $session_terminal_enabled ($session_terminal_avail: $session_terminal_missing)
1270 cdev: $session_cdev_enabled ($session_cdev_avail: $session_cdev_missing)
1272 Run "${MAKE-make}" to start compilation process])