blob: c4ce7432d0e0adf652b30fef3864c83014e7f726 [file] [log] [blame]
Dave Airliea3a2c642014-03-31 14:07:58 +10001dnl Process this file with autoconf to create configure.
2
3AC_PREREQ([2.60])
4
Dave Airlie76b3da92017-02-10 14:09:10 +10005AC_INIT([virglrenderer], [0.6.0],
Marc-André Lureau1d82ea12016-03-03 18:46:42 +01006 [virglrenderer-devel@lists.freedesktop.org])
Dave Airliea3a2c642014-03-31 14:07:58 +10007AC_CONFIG_SRCDIR([Makefile.am])
8AC_CONFIG_HEADERS([config.h])
Marc-André Lureau121df9c2015-02-23 18:52:21 +01009AC_CONFIG_AUX_DIR([build-aux])
10AC_CONFIG_MACRO_DIR([build-aux])
11
Dave Airliea3a2c642014-03-31 14:07:58 +100012AM_INIT_AUTOMAKE([foreign dist-bzip2])
13
Marc-André Lureau1c820952016-01-18 13:56:13 +010014AC_USE_SYSTEM_EXTENSIONS
15AC_PROG_CC_C99
16
Dave Airliea3a2c642014-03-31 14:07:58 +100017# Support silent build rules, requires at least automake-1.11. Disable
18# by either passing --disable-silent-rules to configure or passing V=1
19# to make
20m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
21 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
22
23m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
24
25AC_DISABLE_STATIC
Dave Airlied17f2ee2015-04-20 10:58:58 +100026LT_INIT([disable-static])
Dave Airliea3a2c642014-03-31 14:07:58 +100027AC_SYS_LARGEFILE
Ondřej Súkupe115e8f2017-11-13 10:17:02 +010028AC_CHECK_PROGS([PYTHON], [python2 python python3])
Marc-André Lureaud9953a52015-02-23 18:52:40 +010029AX_CODE_COVERAGE
Dave Airliea3a2c642014-03-31 14:07:58 +100030
Dave Airliea7034892018-05-21 13:06:07 +100031AX_CHECK_COMPILE_FLAG([-Wall], [CFLAGS="$CFLAGS -Wall"])
Gert Wollnyc3f749d2018-06-06 10:16:48 +020032AX_CHECK_COMPILE_FLAG([-Wextra], [CFLAGS="$CFLAGS -Wextra"])
Dave Airliea7034892018-05-21 13:06:07 +100033AX_CHECK_COMPILE_FLAG([-Werror=implicit-function-declaration], [CFLAGS="$CFLAGS -Werror=implicit-function-declaration"])
34AX_CHECK_COMPILE_FLAG([-Werror=missing-prototypes], [CFLAGS="$CFLAGS -Werror=missing-prototypes"])
35AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CFLAGS="$CFLAGS -Wmissing-prototypes"])
Gert Wollnyc3f749d2018-06-06 10:16:48 +020036AX_CHECK_COMPILE_FLAG([-Werror=int-to-pointer-cast], [CFLAGS="$CFLAGS -Werror=int-to-pointer-cast"])
Dave Airliea7034892018-05-21 13:06:07 +100037
Marc-André Lureaudddb7f02016-03-03 18:46:43 +010038AC_MSG_CHECKING([for native Win32])
39case "$host_os" in
40 *mingw*|*cygwin*)
41 os_win32=yes
42 ;;
43 *)
44 os_win32=no
45 ;;
46esac
47AC_MSG_RESULT([$os_win32])
48AM_CONDITIONAL([OS_WIN32],[test "$os_win32" = "yes"])
49
50if test "x$os_win32" = xno; then
51 AX_PTHREAD
52fi
Dave Airliefff55a12016-01-18 14:10:50 +100053
Marc-André Lureau6c33fee2015-02-26 16:24:31 +010054AC_ARG_ENABLE([debug],
55 [AS_HELP_STRING([--enable-debug],
56 [use debug compiler flags and macros @<:@default=disabled@:>@])],
57 [enable_debug="$enableval"],
58 [enable_debug=no]
59)
60if test "x$enable_debug" = xyes; then
61 DEFINES="$DEFINES -DDEBUG"
62 if test "x$GCC" = xyes; then
63 if ! echo "$CFLAGS" | grep -q -e '-g'; then
64 CFLAGS="$CFLAGS -g"
65 fi
66 if ! echo "$CFLAGS" | grep -q -e '-O'; then
67 CFLAGS="$CFLAGS -O0"
68 fi
69 fi
70 if test "x$GXX" = xyes; then
71 if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
72 CXXFLAGS="$CXXFLAGS -g"
73 fi
74 if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
75 CXXFLAGS="$CXXFLAGS -O0"
76 fi
77 fi
78fi
79
Dave Airlie6d93aeb2015-02-03 15:53:37 +100080AC_ARG_ENABLE(tests,
81 AS_HELP_STRING([--enable-tests], [Build the tests (default=auto)]),
82 [build_tests="$enableval"],
83 [build_tests="auto"])
84
Joe Kniss94a6aba2018-01-30 20:47:48 -080085AC_ARG_ENABLE([egl], AS_HELP_STRING([--disable-egl], [Disable EGL]))
86
Dave Airlie6d93aeb2015-02-03 15:53:37 +100087PKG_CHECK_MODULES(CHECK, [check >= 0.9.4], [HAVE_CHECK="yes"], [HAVE_CHECK="no"])
88
Marc-André Lureau2f3e5622016-03-03 18:46:52 +010089if test "x$build_tests" = "xauto" && test "x$os_win32" = "xno"; then
Dave Airlie6d93aeb2015-02-03 15:53:37 +100090 build_tests="$HAVE_CHECK"
91fi
92if test "x$build_tests" = "xyes"; then
93 if test "x$HAVE_CHECK" = "xno"; then
94 AC_MSG_ERROR([Cannot build tests, check is missing])
95 fi
96
97 AC_PATH_PROG(VALGRIND, [valgrind])
98fi
99
David Riley87b346a2018-07-17 15:20:57 -0700100AC_ARG_ENABLE(fuzzer,
101 AS_HELP_STRING([--enable-fuzzer], [Build fuzzer targets]),
102 [enable_fuzzer="$enableval"],
103 [enable_fuzzer=no]
104)
105AM_CONDITIONAL(FUZZER, [test "x$enable_fuzzer" = "xyes"])
106
Marc-André Lureau89aea792016-01-18 14:08:56 +1000107AC_CHECK_FUNCS_ONCE([eventfd])
Jakob Bornecrantz026ad192017-11-23 17:12:11 +0000108AC_CHECK_HEADERS_ONCE([sys/uio.h])
Dave Airlie6d93aeb2015-02-03 15:53:37 +1000109AM_CONDITIONAL(HAVE_VALGRIND, [test "x$VALGRIND" != "x"])
110AM_CONDITIONAL(BUILD_TESTS, [test "x$build_tests" = "xyes"])
111
Dave Airliea3a2c642014-03-31 14:07:58 +1000112LIBDRM_REQUIRED=2.4.50
113
Joe Kniss94a6aba2018-01-30 20:47:48 -0800114if test "x$os_win32" = xno && test "x$enable_egl" != "xno"; then
115 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
116 PKG_CHECK_MODULES([GBM], [gbm])
Marc-André Lureaudddb7f02016-03-03 18:46:43 +0100117fi
118
Marc-André Lureauaa340242015-12-15 14:44:54 +0100119PKG_CHECK_MODULES([EPOXY], [epoxy])
Jakob Bornecrantz026ad192017-11-23 17:12:11 +0000120PKG_CHECK_VAR(epoxy_has_egl, [epoxy], [epoxy_has_egl])
Joe Kniss94a6aba2018-01-30 20:47:48 -0800121AS_IF([test "x$epoxy_has_egl" = "x1" && test "x$enable_egl" != "xno"], [
Jakob Bornecrantz026ad192017-11-23 17:12:11 +0000122 epoxy_has_egl=yes
123 AC_DEFINE([HAVE_EPOXY_EGL_H], [1], [Libepoxy has EGL support.])
124],[
125 epoxy_has_egl=no
126])
Joe Kniss94a6aba2018-01-30 20:47:48 -0800127AM_CONDITIONAL([HAVE_EPOXY_EGL], [test "x$epoxy_has_egl" = "xyes"])
128
129if test "x$os_win32" = xno; then
130 AS_IF([test "x$epoxy_has_egl" = "x1"], [
131 PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED])
132 PKG_CHECK_MODULES([GBM], [gbm])
133 ])
134fi
135
136
137AM_CONDITIONAL([HAVE_EPOXY_EGL], [test "x$epoxy_has_egl" = "xyes"])
Dave Airliea3a2c642014-03-31 14:07:58 +1000138
Marc-André Lureau209557f2016-06-10 19:25:00 +0200139AC_ARG_WITH([glx], AS_HELP_STRING([--with-glx], [Build with the x11/glx backend]))
140AS_IF([test "x$with_glx" = "xyes"], [
141 PKG_CHECK_MODULES([X11], [x11])
142 AC_CHECK_HEADER([epoxy/glx.h])
143])
144AM_CONDITIONAL([WITH_GLX], [test "x$with_glx" = "xyes"])
145
Marc-André Lureau6c33fee2015-02-26 16:24:31 +0100146AC_SUBST([DEFINES])
Dave Airliea3a2c642014-03-31 14:07:58 +1000147AC_CONFIG_FILES([
148 virglrenderer.pc
149 Makefile
150 src/Makefile
151 src/gallium/auxiliary/Makefile
Marc-André Lureau0b27e442015-03-12 16:52:31 +0100152 vtest/Makefile
Dave Airlie6d93aeb2015-02-03 15:53:37 +1000153 tests/Makefile
David Riley87b346a2018-07-17 15:20:57 -0700154 tests/fuzzer/Makefile
Dave Airliea3a2c642014-03-31 14:07:58 +1000155])
156AC_OUTPUT
Marc-André Lureau209557f2016-06-10 19:25:00 +0200157
158AC_MSG_NOTICE([
159
160 virgl $VERSION
161 ==============
162
163 prefix: $prefix
164 c compiler: $CC
165 win32: $os_win32
166
167 glx: $with_glx
Jakob Bornecrantz026ad192017-11-23 17:12:11 +0000168 egl: $epoxy_has_egl
Marc-André Lureau209557f2016-06-10 19:25:00 +0200169 debug: $enable_debug
170 tests: $build_tests
David Riley87b346a2018-07-17 15:20:57 -0700171 fuzzer: $enable_fuzzer
Marc-André Lureau209557f2016-06-10 19:25:00 +0200172
173])