Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5564 serge 1
dnl Copyright © 2011-2014 Intel Corporation
2
dnl Copyright © 2011-2014 Emil Velikov 
3
dnl Copyright © 2007-2010 Dan Nicholson
4
dnl Copyright © 2010-2014 Marek Olšák 
5
dnl Copyright © 2010-2014 Christian König
6
dnl Copyright © 2012-2014 Tom Stellard 
7
dnl Copyright © 2009-2012 Jakob Bornecrantz
8
dnl Copyright © 2009-2014 Jon TURNEY
9
dnl Copyright © 2011-2012 Benjamin Franzke
10
dnl Copyright © 2008-2014 David Airlie
11
dnl Copyright © 2009-2013 Brian Paul
12
dnl Copyright © 2003-2007 Keith Packard, Daniel Stone
13
dnl
14
dnl Permission is hereby granted, free of charge, to any person obtaining a
15
dnl copy of this software and associated documentation files (the "Software"),
16
dnl to deal in the Software without restriction, including without limitation
17
dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
18
dnl and/or sell copies of the Software, and to permit persons to whom the
19
dnl Software is furnished to do so, subject to the following conditions:
20
dnl
21
dnl The above copyright notice and this permission notice (including the next
22
dnl paragraph) shall be included in all copies or substantial portions of the
23
dnl Software.
24
dnl
25
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
28
dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
30
dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
31
dnl DEALINGS IN THE SOFTWARE.
32
dnl
33
dnl Process this file with autoconf to create configure.
34
 
35
AC_PREREQ([2.60])
36
 
37
dnl Tell the user about autoconf.html in the --help output
38
m4_divert_once([HELP_END], [
39
See docs/autoconf.html for more details on the options for Mesa.])
40
 
41
m4_define(MESA_VERSION, m4_normalize(m4_include(VERSION)))
42
AC_INIT([Mesa], [MESA_VERSION],
43
    [https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa])
44
AC_CONFIG_AUX_DIR([bin])
45
AC_CONFIG_MACRO_DIR([m4])
46
AC_CANONICAL_SYSTEM
47
AM_INIT_AUTOMAKE([foreign tar-ustar dist-xz])
48
 
49
dnl We only support native Windows builds (MinGW/MSVC) through SCons.
50
case "$host_os" in
51
mingw*)
52
    AC_MSG_ERROR([MinGW build not supported through autoconf/automake, use SCons instead])
53
    ;;
54
esac
55
 
56
# Support silent build rules, requires at least automake-1.11. Disable
57
# by either passing --disable-silent-rules to configure or passing V=1
58
# to make
59
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
60
    [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
61
 
62
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
63
 
64
dnl Set internal versions
65
OSMESA_VERSION=8
66
AC_SUBST([OSMESA_VERSION])
67
 
68
dnl Versions for external dependencies
69
LIBDRM_REQUIRED=2.4.38
70
LIBDRM_RADEON_REQUIRED=2.4.56
71
LIBDRM_INTEL_REQUIRED=2.4.60
72
LIBDRM_NVVIEUX_REQUIRED=2.4.33
73
LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41"
74
LIBDRM_FREEDRENO_REQUIRED=2.4.57
75
DRI2PROTO_REQUIRED=2.6
76
DRI3PROTO_REQUIRED=1.0
77
PRESENTPROTO_REQUIRED=1.0
78
LIBUDEV_REQUIRED=151
79
GLPROTO_REQUIRED=1.4.14
80
LIBOMXIL_BELLAGIO_REQUIRED=0.0
81
LIBVA_REQUIRED=0.35.0
82
VDPAU_REQUIRED=0.4.1
83
WAYLAND_REQUIRED=1.2.0
84
XCB_REQUIRED=1.9.3
85
XCBDRI2_REQUIRED=1.8
86
XCBGLX_REQUIRED=1.8.1
87
XSHMFENCE_REQUIRED=1.1
88
XVMC_REQUIRED=1.0.6
89
PYTHON_MAKO_REQUIRED=0.3.4
90
 
91
dnl Check for progs
92
AC_PROG_CPP
93
AC_PROG_CC
94
AC_PROG_CXX
95
AM_PROG_CC_C_O
96
AM_PROG_AS
97
AX_CHECK_GNU_MAKE
98
AC_CHECK_PROGS([PYTHON2], [python2 python])
99
AC_PROG_SED
100
AC_PROG_MKDIR_P
101
 
102
AC_SYS_LARGEFILE
103
 
104
LT_PREREQ([2.2])
105
LT_INIT([disable-static])
106
 
107
AX_PROG_BISON([],
108
              AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-parse.c"],
109
                    [AC_MSG_ERROR([bison not found - unable to compile glcpp-parse.y])]))
110
AX_PROG_FLEX([],
111
             AS_IF([test ! -f "$srcdir/src/glsl/glcpp/glcpp-lex.c"],
112
                   [AC_MSG_ERROR([flex not found - unable to compile glcpp-lex.l])]))
113
 
114
AC_CHECK_PROG(INDENT, indent, indent, cat)
115
if test "x$INDENT" != "xcat"; then
116
    # Only GNU indent is supported
117
    INDENT_VERSION=`indent --version | grep GNU`
118
    if test $? -eq 0; then
119
       AC_SUBST(INDENT_FLAGS, '-i4 -nut -br -brs -npcs -ce -TGLubyte -TGLbyte -TBool')
120
    else
121
       INDENT="cat"
122
    fi
123
fi
124
 
125
AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
126
 
127
if test -z "$PYTHON2"; then
128
    if test ! -f "$srcdir/src/util/format_srgb.c"; then
129
        AC_MSG_ERROR([Python not found - unable to generate sources])
130
    fi
131
else
132
    if test "x$acv_mako_found" = xno; then
133
        if test ! -f "$srcdir/src/mesa/main/format_unpack.c"; then
134
            AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
135
        fi
136
    fi
137
fi
138
 
139
AC_PROG_INSTALL
140
 
141
dnl We need a POSIX shell for parts of the build. Assume we have one
142
dnl in most cases.
143
case "$host_os" in
144
solaris*)
145
    # Solaris /bin/sh is too old/non-POSIX compliant
146
    AC_PATH_PROGS(POSIX_SHELL, [ksh93 ksh sh])
147
    SHELL="$POSIX_SHELL"
148
    ;;
149
esac
150
 
151
dnl clang is mostly GCC-compatible, but its version is much lower,
152
dnl so we have to check for it.
153
AC_MSG_CHECKING([if compiling with clang])
154
 
155
AC_COMPILE_IFELSE(
156
[AC_LANG_PROGRAM([], [[
157
#ifndef __clang__
158
       not clang
159
#endif
160
]])],
161
[acv_mesa_CLANG=yes], [acv_mesa_CLANG=no])
162
 
163
AC_MSG_RESULT([$acv_mesa_CLANG])
164
 
165
dnl If we're using GCC, make sure that it is at least version 4.2.0.  Older
166
dnl versions are explictly not supported.
167
GEN_ASM_OFFSETS=no
168
USE_GNU99=no
169
if test "x$GCC" = xyes -a "x$acv_mesa_CLANG" = xno; then
170
    AC_MSG_CHECKING([whether gcc version is sufficient])
171
    major=0
172
    minor=0
173
 
174
    GCC_VERSION=`$CC -dumpversion`
175
    if test $? -eq 0; then
176
        GCC_VERSION_MAJOR=`echo $GCC_VERSION | cut -d. -f1`
177
        GCC_VERSION_MINOR=`echo $GCC_VERSION | cut -d. -f2`
178
    fi
179
 
180
    if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 2 ; then
181
        AC_MSG_RESULT([no])
182
        AC_MSG_ERROR([If using GCC, version 4.2.0 or later is required.])
183
    else
184
        AC_MSG_RESULT([yes])
185
    fi
186
 
187
    if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 6 ; then
188
        USE_GNU99=yes
189
    fi
190
    if test "x$cross_compiling" = xyes; then
191
        GEN_ASM_OFFSETS=yes
192
    fi
193
fi
194
 
195
dnl Check for compiler builtins
196
AX_GCC_BUILTIN([__builtin_bswap32])
197
AX_GCC_BUILTIN([__builtin_bswap64])
198
AX_GCC_BUILTIN([__builtin_clz])
199
AX_GCC_BUILTIN([__builtin_clzll])
200
AX_GCC_BUILTIN([__builtin_ctz])
201
AX_GCC_BUILTIN([__builtin_expect])
202
AX_GCC_BUILTIN([__builtin_ffs])
203
AX_GCC_BUILTIN([__builtin_ffsll])
204
AX_GCC_BUILTIN([__builtin_popcount])
205
AX_GCC_BUILTIN([__builtin_popcountll])
206
AX_GCC_BUILTIN([__builtin_unreachable])
207
 
208
AX_GCC_FUNC_ATTRIBUTE([flatten])
209
AX_GCC_FUNC_ATTRIBUTE([format])
210
AX_GCC_FUNC_ATTRIBUTE([malloc])
211
AX_GCC_FUNC_ATTRIBUTE([packed])
212
AX_GCC_FUNC_ATTRIBUTE([unused])
213
 
214
AM_CONDITIONAL([GEN_ASM_OFFSETS], test "x$GEN_ASM_OFFSETS" = xyes)
215
 
216
dnl Make sure the pkg-config macros are defined
217
m4_ifndef([PKG_PROG_PKG_CONFIG],
218
    [m4_fatal([Could not locate the pkg-config autoconf macros.
219
  These are usually located in /usr/share/aclocal/pkg.m4. If your macros
220
  are in a different location, try setting the environment variable
221
  ACLOCAL="aclocal -I/other/macro/dir" before running autoreconf.])])
222
PKG_PROG_PKG_CONFIG()
223
 
224
dnl LIB_DIR - library basename
225
LIB_DIR=`echo $libdir | $SED 's%.*/%%'`
226
AC_SUBST([LIB_DIR])
227
 
228
dnl Cache LDFLAGS and CPPFLAGS so we can add to them and restore later
229
_SAVE_LDFLAGS="$LDFLAGS"
230
_SAVE_CPPFLAGS="$CPPFLAGS"
231
 
232
dnl Compiler macros
233
DEFINES=""
234
AC_SUBST([DEFINES])
235
case "$host_os" in
236
linux*|*-gnu*|gnu*)
237
    DEFINES="$DEFINES -D_GNU_SOURCE"
238
    ;;
239
solaris*)
240
    DEFINES="$DEFINES -DSVR4"
241
    ;;
242
cygwin*)
243
    DEFINES="$DEFINES -D_XOPEN_SOURCE=700"
244
    ;;
245
esac
246
 
247
dnl Add flags for gcc and g++
248
if test "x$GCC" = xyes; then
249
    CFLAGS="$CFLAGS -Wall"
250
 
251
    if test "x$USE_GNU99" = xyes; then
252
	CFLAGS="$CFLAGS -std=gnu99"
253
    else
254
	CFLAGS="$CFLAGS -std=c99"
255
    fi
256
 
257
    # Enable -Werror=implicit-function-declaration and
258
    # -Werror=missing-prototypes, if available, or otherwise, just
259
    # -Wmissing-prototypes.  This is particularly useful to avoid
260
    # generating a loadable driver module that has undefined symbols.
261
    save_CFLAGS="$CFLAGS"
262
    AC_MSG_CHECKING([whether $CC supports -Werror=missing-prototypes])
263
    CFLAGS="$CFLAGS -Werror=implicit-function-declaration"
264
    CFLAGS="$CFLAGS -Werror=missing-prototypes"
265
    AC_LINK_IFELSE([AC_LANG_PROGRAM()],
266
		   AC_MSG_RESULT([yes]),
267
		   [CFLAGS="$save_CFLAGS -Wmissing-prototypes";
268
		    AC_MSG_RESULT([no])]);
269
 
270
    # Enable -fvisibility=hidden if using a gcc that supports it
271
    save_CFLAGS="$CFLAGS"
272
    AC_MSG_CHECKING([whether $CC supports -fvisibility=hidden])
273
    VISIBILITY_CFLAGS="-fvisibility=hidden"
274
    CFLAGS="$CFLAGS $VISIBILITY_CFLAGS"
275
    AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
276
		   [VISIBILITY_CFLAGS=""; AC_MSG_RESULT([no])]);
277
 
278
    # Restore CFLAGS; VISIBILITY_CFLAGS are added to it where needed.
279
    CFLAGS=$save_CFLAGS
280
 
281
    # Work around aliasing bugs - developers should comment this out
282
    CFLAGS="$CFLAGS -fno-strict-aliasing"
283
 
284
    # gcc's builtin memcmp is slower than glibc's
285
    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
286
    CFLAGS="$CFLAGS -fno-builtin-memcmp"
287
 
288
    # Flags to help ensure that certain portions of the code -- and only those
289
    # portions -- can be built with MSVC:
290
    # - src/util, src/gallium/auxiliary, and src/gallium/drivers/llvmpipe needs
291
    #   to build with Windows SDK 7.0.7600, which bundles MSVC 2008
292
    # - non-Linux/Posix OpenGL portions needs to build on MSVC 2013 (which
293
    #   supports most of C99)
294
    # - the rest has no compiler compiler restrictions
295
    MSVC2013_COMPAT_CFLAGS="-Werror=pointer-arith"
296
    MSVC2013_COMPAT_CXXFLAGS="-Werror=pointer-arith"
297
 
298
    # Enable -Werror=vla if compiler supports it
299
    save_CFLAGS="$CFLAGS"
300
    AC_MSG_CHECKING([whether $CC supports -Werror=vla])
301
    CFLAGS="$CFLAGS -Werror=vla"
302
    AC_LINK_IFELSE([AC_LANG_PROGRAM()],
303
		   [MSVC2013_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=vla";
304
		    MSVC2013_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS -Werror=vla";
305
		    AC_MSG_RESULT([yes])],
306
		    AC_MSG_RESULT([no]));
307
    CFLAGS="$save_CFLAGS"
308
 
309
    MSVC2008_COMPAT_CFLAGS="$MSVC2013_COMPAT_CFLAGS -Werror=declaration-after-statement"
310
    MSVC2008_COMPAT_CXXFLAGS="$MSVC2013_COMPAT_CXXFLAGS"
311
fi
312
if test "x$GXX" = xyes; then
313
    CXXFLAGS="$CXXFLAGS -Wall"
314
 
315
    # Enable -fvisibility=hidden if using a gcc that supports it
316
    save_CXXFLAGS="$CXXFLAGS"
317
    AC_MSG_CHECKING([whether $CXX supports -fvisibility=hidden])
318
    VISIBILITY_CXXFLAGS="-fvisibility=hidden"
319
    CXXFLAGS="$CXXFLAGS $VISIBILITY_CXXFLAGS"
320
    AC_LANG_PUSH([C++])
321
    AC_LINK_IFELSE([AC_LANG_PROGRAM()], AC_MSG_RESULT([yes]),
322
		   [VISIBILITY_CXXFLAGS="" ; AC_MSG_RESULT([no])]);
323
    AC_LANG_POP([C++])
324
 
325
    # Restore CXXFLAGS; VISIBILITY_CXXFLAGS are added to it where needed.
326
    CXXFLAGS=$save_CXXFLAGS
327
 
328
    # Work around aliasing bugs - developers should comment this out
329
    CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
330
 
331
    # gcc's builtin memcmp is slower than glibc's
332
    # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43052
333
    CXXFLAGS="$CXXFLAGS -fno-builtin-memcmp"
334
fi
335
 
336
AC_SUBST([MSVC2013_COMPAT_CFLAGS])
337
AC_SUBST([MSVC2013_COMPAT_CXXFLAGS])
338
AC_SUBST([MSVC2008_COMPAT_CFLAGS])
339
AC_SUBST([MSVC2008_COMPAT_CXXFLAGS])
340
 
341
dnl even if the compiler appears to support it, using visibility attributes isn't
342
dnl going to do anything useful currently on cygwin apart from emit lots of warnings
343
case "$host_os" in
344
cygwin*)
345
    VISIBILITY_CFLAGS=""
346
    VISIBILITY_CXXFLAGS=""
347
    ;;
348
esac
349
 
350
AC_SUBST([VISIBILITY_CFLAGS])
351
AC_SUBST([VISIBILITY_CXXFLAGS])
352
 
353
dnl
354
dnl Optional flags, check for compiler support
355
dnl
356
SSE41_CFLAGS="-msse4.1"
357
dnl Code compiled by GCC with -msse* assumes a 16 byte aligned
358
dnl stack, but on x86-32 such alignment is not guaranteed.
359
case "$target_cpu" in
360
i?86)
361
    SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign"
362
    ;;
363
esac
364
save_CFLAGS="$CFLAGS"
365
CFLAGS="$SSE41_CFLAGS $CFLAGS"
366
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
367
#include 
368
int main () {
369
    __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
370
    c = _mm_max_epu32(a, b);
371
    return 0;
372
}]])], SSE41_SUPPORTED=1)
373
CFLAGS="$save_CFLAGS"
374
if test "x$SSE41_SUPPORTED" = x1; then
375
    DEFINES="$DEFINES -DUSE_SSE41"
376
fi
377
AM_CONDITIONAL([SSE41_SUPPORTED], [test x$SSE41_SUPPORTED = x1])
378
AC_SUBST([SSE41_CFLAGS], $SSE41_CFLAGS)
379
 
380
dnl Can't have static and shared libraries, default to static if user
381
dnl explicitly requested. If both disabled, set to static since shared
382
dnl was explicitly requested.
383
case "x$enable_static$enable_shared" in
384
xyesyes)
385
    AC_MSG_WARN([Cannot build static and shared libraries, disabling shared])
386
    enable_shared=no
387
    ;;
388
xnono)
389
    AC_MSG_WARN([Cannot disable both static and shared libraries, enabling shared])
390
    enable_shared=yes
391
    ;;
392
esac
393
 
394
AM_CONDITIONAL(BUILD_SHARED, test "x$enable_shared" = xyes)
395
 
396
dnl
397
dnl other compiler options
398
dnl
399
AC_ARG_ENABLE([debug],
400
    [AS_HELP_STRING([--enable-debug],
401
        [use debug compiler flags and macros @<:@default=disabled@:>@])],
402
    [enable_debug="$enableval"],
403
    [enable_debug=no]
404
)
405
if test "x$enable_debug" = xyes; then
406
    DEFINES="$DEFINES -DDEBUG"
407
    if test "x$GCC" = xyes; then
408
        if ! echo "$CFLAGS" | grep -q -e '-g'; then
409
            CFLAGS="$CFLAGS -g"
410
        fi
411
        if ! echo "$CFLAGS" | grep -q -e '-O'; then
412
            CFLAGS="$CFLAGS -O0"
413
        fi
414
    fi
415
    if test "x$GXX" = xyes; then
416
        if ! echo "$CXXFLAGS" | grep -q -e '-g'; then
417
            CXXFLAGS="$CXXFLAGS -g"
418
        fi
419
        if ! echo "$CXXFLAGS" | grep -q -e '-O'; then
420
            CXXFLAGS="$CXXFLAGS -O0"
421
        fi
422
    fi
423
else
424
   DEFINES="$DEFINES -DNDEBUG"
425
fi
426
 
427
dnl
428
dnl Check if linker supports -Bsymbolic
429
dnl
430
save_LDFLAGS=$LDFLAGS
431
LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
432
AC_MSG_CHECKING([if ld supports -Bsymbolic])
433
AC_LINK_IFELSE(
434
    [AC_LANG_SOURCE([int main() { return 0;}])],
435
    [AC_MSG_RESULT([yes])
436
        BSYMBOLIC="-Wl,-Bsymbolic";],
437
    [AC_MSG_RESULT([no])
438
        BSYMBOLIC="";])
439
LDFLAGS=$save_LDFLAGS
440
 
441
AC_SUBST([BSYMBOLIC])
442
 
443
dnl
444
dnl Check if linker supports garbage collection
445
dnl
446
save_LDFLAGS=$LDFLAGS
447
LDFLAGS="$LDFLAGS -Wl,--gc-sections"
448
AC_MSG_CHECKING([whether ld supports --gc-sections])
449
AC_LINK_IFELSE(
450
    [AC_LANG_SOURCE([static char UnusedFunc() { return 5; } int main() { return 0;}])],
451
    [AC_MSG_RESULT([yes])
452
        GC_SECTIONS="-Wl,--gc-sections";],
453
    [AC_MSG_RESULT([no])
454
        GC_SECTIONS="";])
455
LDFLAGS=$save_LDFLAGS
456
 
457
AC_SUBST([GC_SECTIONS])
458
 
459
dnl
460
dnl OpenBSD does not have DT_NEEDED entries for libc by design
461
dnl so when these flags are passed to ld via libtool the checks will fail
462
dnl
463
case "$host_os" in
464
openbsd* | darwin* )
465
    LD_NO_UNDEFINED="" ;;
466
*)
467
    LD_NO_UNDEFINED="-Wl,--no-undefined" ;;
468
esac
469
 
470
AC_SUBST([LD_NO_UNDEFINED])
471
 
472
dnl
473
dnl Check if linker supports version scripts
474
dnl
475
AC_MSG_CHECKING([if the linker supports version-scripts])
476
save_LDFLAGS=$LDFLAGS
477
LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
478
cat > conftest.map <
479
VERSION_1 {
480
     global:
481
         main;
482
 
483
     local:
484
         *;
485
};
486
EOF
487
AC_LINK_IFELSE(
488
    [AC_LANG_SOURCE([int main() { return 0;}])],
489
    [have_ld_version_script=yes;AC_MSG_RESULT(yes)],
490
    [have_ld_version_script=no; AC_MSG_RESULT(no)])
491
LDFLAGS=$save_LDFLAGS
492
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
493
 
494
dnl
495
dnl Check if linker supports dynamic list files
496
dnl
497
AC_MSG_CHECKING([if the linker supports --dynamic-list])
498
save_LDFLAGS=$LDFLAGS
499
LDFLAGS="$LDFLAGS -Wl,--dynamic-list=conftest.dyn"
500
cat > conftest.dyn <
501
{
502
	radeon_drm_winsys_create;
503
};
504
EOF
505
AC_LINK_IFELSE(
506
    [AC_LANG_SOURCE([int main() { return 0;}])],
507
    [have_ld_dynamic_list=yes;AC_MSG_RESULT(yes)],
508
    [have_ld_dynamic_list=no; AC_MSG_RESULT(no)])
509
LDFLAGS=$save_LDFLAGS
510
AM_CONDITIONAL(HAVE_LD_DYNAMIC_LIST, test "$have_ld_dynamic_list" = "yes")
511
 
512
dnl
513
dnl compatibility symlinks
514
dnl
515
case "$host_os" in
516
linux* )
517
    HAVE_COMPAT_SYMLINKS=yes ;;
518
* )
519
    HAVE_COMPAT_SYMLINKS=no ;;
520
esac
521
 
522
AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes)
523
 
524
dnl
525
dnl library names
526
dnl
527
case "$host_os" in
528
darwin* )
529
    LIB_EXT='dylib' ;;
530
cygwin* )
531
    LIB_EXT='dll' ;;
532
aix* )
533
    LIB_EXT='a' ;;
534
* )
535
    LIB_EXT='so' ;;
536
esac
537
 
538
AC_SUBST([LIB_EXT])
539
 
540
AC_ARG_WITH([gl-lib-name],
541
  [AS_HELP_STRING([--with-gl-lib-name@<:@=NAME@:>@],
542
    [specify GL library name @<:@default=GL@:>@])],
543
  [GL_LIB=$withval],
544
  [GL_LIB=GL])
545
AC_ARG_WITH([osmesa-lib-name],
546
  [AS_HELP_STRING([--with-osmesa-lib-name@<:@=NAME@:>@],
547
    [specify OSMesa library name @<:@default=OSMesa@:>@])],
548
  [OSMESA_LIB=$withval],
549
  [OSMESA_LIB=OSMesa])
550
AS_IF([test "x$GL_LIB" = xyes], [GL_LIB=GL])
551
AS_IF([test "x$OSMESA_LIB" = xyes], [OSMESA_LIB=OSMesa])
552
 
553
dnl
554
dnl Mangled Mesa support
555
dnl
556
AC_ARG_ENABLE([mangling],
557
  [AS_HELP_STRING([--enable-mangling],
558
    [enable mangled symbols and library name @<:@default=disabled@:>@])],
559
  [enable_mangling="${enableval}"],
560
  [enable_mangling=no]
561
)
562
if test "x${enable_mangling}" = "xyes" ; then
563
  DEFINES="${DEFINES} -DUSE_MGL_NAMESPACE"
564
  GL_LIB="Mangled${GL_LIB}"
565
  OSMESA_LIB="Mangled${OSMESA_LIB}"
566
fi
567
AC_SUBST([GL_LIB])
568
AC_SUBST([OSMESA_LIB])
569
 
570
dnl
571
dnl potentially-infringing-but-nobody-knows-for-sure stuff
572
dnl
573
AC_ARG_ENABLE([texture-float],
574
    [AS_HELP_STRING([--enable-texture-float],
575
        [enable floating-point textures and renderbuffers @<:@default=disabled@:>@])],
576
    [enable_texture_float="$enableval"],
577
    [enable_texture_float=no]
578
)
579
if test "x$enable_texture_float" = xyes; then
580
    AC_MSG_WARN([Floating-point textures enabled.])
581
    AC_MSG_WARN([Please consult docs/patents.txt with your lawyer before building Mesa.])
582
    DEFINES="$DEFINES -DTEXTURE_FLOAT_ENABLED"
583
fi
584
 
585
dnl
586
dnl Arch/platform-specific settings
587
dnl
588
AC_ARG_ENABLE([asm],
589
    [AS_HELP_STRING([--disable-asm],
590
        [disable assembly usage @<:@default=enabled on supported plaforms@:>@])],
591
    [enable_asm="$enableval"],
592
    [enable_asm=yes]
593
)
594
asm_arch=""
595
AC_MSG_CHECKING([whether to enable assembly])
596
test "x$enable_asm" = xno && AC_MSG_RESULT([no])
597
# disable if cross compiling on x86/x86_64 since we must run gen_matypes
598
if test "x$enable_asm" = xyes -a "x$cross_compiling" = xyes; then
599
    case "$host_cpu" in
600
    i?86 | x86_64 | amd64)
601
        enable_asm=no
602
        AC_MSG_RESULT([no, cross compiling])
603
        ;;
604
    esac
605
fi
606
# check for supported arches
607
if test "x$enable_asm" = xyes; then
608
    case "$host_cpu" in
609
    i?86)
610
        case "$host_os" in
611
        linux* | *freebsd* | dragonfly* | *netbsd* | openbsd* | gnu*)
612
            asm_arch=x86
613
            ;;
614
        esac
615
        ;;
616
    x86_64|amd64)
617
        case "$host_os" in
618
        linux* | *freebsd* | dragonfly* | *netbsd* | openbsd*)
619
            asm_arch=x86_64
620
            ;;
621
        esac
622
        ;;
623
    sparc*)
624
        case "$host_os" in
625
        linux*)
626
            asm_arch=sparc
627
            ;;
628
        esac
629
        ;;
630
    esac
631
 
632
    case "$asm_arch" in
633
    x86)
634
        DEFINES="$DEFINES -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM"
635
        AC_MSG_RESULT([yes, x86])
636
        ;;
637
    x86_64|amd64)
638
        DEFINES="$DEFINES -DUSE_X86_64_ASM"
639
        AC_MSG_RESULT([yes, x86_64])
640
        ;;
641
    sparc)
642
        DEFINES="$DEFINES -DUSE_SPARC_ASM"
643
        AC_MSG_RESULT([yes, sparc])
644
        ;;
645
    *)
646
        AC_MSG_RESULT([no, platform not supported])
647
        ;;
648
    esac
649
fi
650
 
651
AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"])
652
AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"])
653
AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"])
654
 
655
dnl Check to see if dlopen is in default libraries (like Solaris, which
656
dnl has it in libc), or if libdl is needed to get it.
657
AC_CHECK_FUNC([dlopen], [DEFINES="$DEFINES -DHAVE_DLOPEN"],
658
    [AC_CHECK_LIB([dl], [dlopen],
659
       [DEFINES="$DEFINES -DHAVE_DLOPEN"; DLOPEN_LIBS="-ldl"])])
660
AC_SUBST([DLOPEN_LIBS])
661
 
662
dnl Check if that library also has dladdr
663
save_LIBS="$LIBS"
664
LIBS="$LIBS $DLOPEN_LIBS"
665
AC_CHECK_FUNCS([dladdr])
666
LIBS="$save_LIBS"
667
 
668
case "$host_os" in
669
darwin*)
670
    ;;
671
*)
672
    AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
673
                   [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
674
                                 [AC_MSG_ERROR([Could not find clock_gettime])])])
675
    AC_SUBST([CLOCK_LIB])
676
    ;;
677
esac
678
 
679
dnl See if posix_memalign is available
680
AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
681
 
682
dnl Check for pthreads
683
AX_PTHREAD
684
if test "x$ax_pthread_ok" = xno; then
685
    AC_MSG_ERROR([Building mesa on this platform requires pthreads])
686
fi
687
dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
688
dnl to -pthread, which causes problems if we need -lpthread to appear in
689
dnl pkgconfig files.
690
test -z "$PTHREAD_LIBS" && PTHREAD_LIBS="-lpthread"
691
 
692
dnl SELinux awareness.
693
AC_ARG_ENABLE([selinux],
694
    [AS_HELP_STRING([--enable-selinux],
695
        [Build SELinux-aware Mesa @<:@default=disabled@:>@])],
696
    [MESA_SELINUX="$enableval"],
697
    [MESA_SELINUX=no])
698
if test "x$enable_selinux" = "xyes"; then
699
    PKG_CHECK_MODULES([SELINUX], [libselinux], [],
700
        [AC_CHECK_HEADER([selinux/selinux.h],[],
701
                         [AC_MSG_ERROR([SELinux headers not found])])
702
         AC_CHECK_LIB([selinux],[is_selinux_enabled],[],
703
                      [AC_MSG_ERROR([SELinux library not found])])
704
         SELINUX_LIBS="-lselinux"])
705
    DEFINES="$DEFINES -DMESA_SELINUX"
706
fi
707
AC_SUBST([SELINUX_CFLAGS])
708
AC_SUBST([SELINUX_LIBS])
709
 
710
dnl Options for APIs
711
AC_ARG_ENABLE([opengl],
712
    [AS_HELP_STRING([--disable-opengl],
713
        [disable support for standard OpenGL API @<:@default=enabled@:>@])],
714
    [enable_opengl="$enableval"],
715
    [enable_opengl=yes])
716
AC_ARG_ENABLE([gles1],
717
    [AS_HELP_STRING([--enable-gles1],
718
        [enable support for OpenGL ES 1.x API @<:@default=disabled@:>@])],
719
    [enable_gles1="$enableval"],
720
    [enable_gles1=no])
721
AC_ARG_ENABLE([gles2],
722
    [AS_HELP_STRING([--enable-gles2],
723
        [enable support for OpenGL ES 2.x API @<:@default=disabled@:>@])],
724
    [enable_gles2="$enableval"],
725
    [enable_gles2=no])
726
 
727
AC_ARG_ENABLE([dri],
728
    [AS_HELP_STRING([--enable-dri],
729
        [enable DRI modules @<:@default=enabled@:>@])],
730
    [enable_dri="$enableval"],
731
    [enable_dri=yes])
732
 
733
case "$host_os" in
734
linux*)
735
    dri3_default=yes
736
    ;;
737
*)
738
    dri3_default=no
739
    ;;
740
esac
741
AC_ARG_ENABLE([dri3],
742
    [AS_HELP_STRING([--enable-dri3],
743
        [enable DRI3 @<:@default=auto@:>@])],
744
    [enable_dri3="$enableval"],
745
    [enable_dri3="$dri3_default"])
746
AC_ARG_ENABLE([glx],
747
    [AS_HELP_STRING([--enable-glx],
748
        [enable GLX library @<:@default=enabled@:>@])],
749
    [enable_glx="$enableval"],
750
    [enable_glx=yes])
751
AC_ARG_ENABLE([osmesa],
752
    [AS_HELP_STRING([--enable-osmesa],
753
        [enable OSMesa library @<:@default=disabled@:>@])],
754
    [enable_osmesa="$enableval"],
755
    [enable_osmesa=no])
756
AC_ARG_ENABLE([gallium-osmesa],
757
    [AS_HELP_STRING([--enable-gallium-osmesa],
758
        [enable Gallium implementation of the OSMesa library @<:@default=disabled@:>@])],
759
    [enable_gallium_osmesa="$enableval"],
760
    [enable_gallium_osmesa=no])
761
AC_ARG_ENABLE([egl],
762
    [AS_HELP_STRING([--disable-egl],
763
        [disable EGL library @<:@default=enabled@:>@])],
764
    [enable_egl="$enableval"],
765
    [enable_egl=yes])
766
 
767
AC_ARG_ENABLE([xa],
768
    [AS_HELP_STRING([--enable-xa],
769
        [enable build of the XA X Acceleration API @<:@default=disabled@:>@])],
770
    [enable_xa="$enableval"],
771
    [enable_xa=no])
772
AC_ARG_ENABLE([gbm],
773
   [AS_HELP_STRING([--enable-gbm],
774
         [enable gbm library @<:@default=auto@:>@])],
775
   [enable_gbm="$enableval"],
776
   [enable_gbm=auto])
777
AC_ARG_ENABLE([nine],
778
    [AS_HELP_STRING([--enable-nine],
779
        [enable build of the nine Direct3D9 API @<:@default=no@:>@])],
780
    [enable_nine="$enableval"],
781
    [enable_nine=no])
782
 
783
AC_ARG_ENABLE([xvmc],
784
   [AS_HELP_STRING([--enable-xvmc],
785
         [enable xvmc library @<:@default=auto@:>@])],
786
   [enable_xvmc="$enableval"],
787
   [enable_xvmc=auto])
788
AC_ARG_ENABLE([vdpau],
789
   [AS_HELP_STRING([--enable-vdpau],
790
         [enable vdpau library @<:@default=auto@:>@])],
791
   [enable_vdpau="$enableval"],
792
   [enable_vdpau=auto])
793
AC_ARG_ENABLE([omx],
794
   [AS_HELP_STRING([--enable-omx],
795
         [enable OpenMAX library @<:@default=disabled@:>@])],
796
   [enable_omx="$enableval"],
797
   [enable_omx=no])
798
AC_ARG_ENABLE([va],
799
   [AS_HELP_STRING([--enable-va],
800
         [enable va library @<:@default=auto@:>@])],
801
   [enable_va="$enableval"],
802
   [enable_va=auto])
803
AC_ARG_ENABLE([opencl],
804
   [AS_HELP_STRING([--enable-opencl],
805
         [enable OpenCL library @<:@default=disabled@:>@])],
806
   [enable_opencl="$enableval"],
807
   [enable_opencl=no])
808
AC_ARG_ENABLE([opencl_icd],
809
   [AS_HELP_STRING([--enable-opencl-icd],
810
          [Build an OpenCL ICD library to be loaded by an ICD implementation
811
           @<:@default=disabled@:>@])],
812
    [enable_opencl_icd="$enableval"],
813
    [enable_opencl_icd=no])
814
AC_ARG_ENABLE([xlib-glx],
815
    [AS_HELP_STRING([--enable-xlib-glx],
816
        [make GLX library Xlib-based instead of DRI-based @<:@default=disabled@:>@])],
817
    [enable_xlib_glx="$enableval"],
818
    [enable_xlib_glx=no])
819
 
820
AC_ARG_ENABLE([r600-llvm-compiler],
821
    [AS_HELP_STRING([--enable-r600-llvm-compiler],
822
        [Enable experimental LLVM backend for graphics shaders @<:@default=disabled@:>@])],
823
    [enable_r600_llvm="$enableval"],
824
    [enable_r600_llvm=no])
825
 
826
AC_ARG_ENABLE([gallium-tests],
827
    [AS_HELP_STRING([--enable-gallium-tests],
828
        [Enable optional Gallium tests) @<:@default=disabled@:>@])],
829
    [enable_gallium_tests="$enableval"],
830
    [enable_gallium_tests=no])
831
 
832
# Option for Gallium drivers
833
 
834
# Keep this in sync with the --with-gallium-drivers help string default value
835
GALLIUM_DRIVERS_DEFAULT="r300,r600,svga,swrast"
836
 
837
AC_ARG_WITH([gallium-drivers],
838
    [AS_HELP_STRING([--with-gallium-drivers@<:@=DIRS...@:>@],
839
        [comma delimited Gallium drivers list, e.g.
840
        "i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4"
841
        @<:@default=r300,r600,svga,swrast@:>@])],
842
    [with_gallium_drivers="$withval"],
843
    [with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT"])
844
 
845
# Doing '--without-gallium-drivers' will set this variable to 'no'.  Clear it
846
# here so that the script doesn't choke on an unknown driver name later.
847
case "$with_gallium_drivers" in
848
    yes) with_gallium_drivers="$GALLIUM_DRIVERS_DEFAULT" ;;
849
    no) with_gallium_drivers='' ;;
850
esac
851
 
852
if test "x$enable_opengl" = xno -a \
853
        "x$enable_gles1" = xno -a \
854
        "x$enable_gles2" = xno -a \
855
        "x$enable_nine" = xno -a \
856
        "x$enable_xa" = xno -a \
857
        "x$enable_xvmc" = xno -a \
858
        "x$enable_vdpau" = xno -a \
859
        "x$enable_omx" = xno -a \
860
        "x$enable_va" = xno -a \
861
        "x$enable_opencl" = xno; then
862
    AC_MSG_ERROR([at least one API should be enabled])
863
fi
864
 
865
# Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
866
if test "x$enable_opengl" = xno -a \
867
        "x$enable_gles1" = xyes; then
868
    AC_MSG_ERROR([Building OpenGL ES1 without OpenGL is not supported])
869
fi
870
 
871
if test "x$enable_opengl" = xno -a \
872
        "x$enable_gles2" = xyes; then
873
    AC_MSG_ERROR([Building OpenGL ES2 without OpenGL is not supported])
874
fi
875
 
876
AM_CONDITIONAL(HAVE_OPENGL, test "x$enable_opengl" = xyes)
877
AM_CONDITIONAL(HAVE_OPENGL_ES1, test "x$enable_gles1" = xyes)
878
AM_CONDITIONAL(HAVE_OPENGL_ES2, test "x$enable_gles2" = xyes)
879
AM_CONDITIONAL(NEED_OPENGL_COMMON, test "x$enable_opengl" = xyes -o \
880
                                        "x$enable_gles1" = xyes -o \
881
                                        "x$enable_gles2" = xyes)
882
 
883
if test "x$enable_glx" = xno; then
884
    AC_MSG_WARN([GLX disabled, disabling Xlib-GLX])
885
    enable_xlib_glx=no
886
fi
887
 
888
if test "x$enable_dri$enable_xlib_glx" = xyesyes; then
889
    AC_MSG_ERROR([DRI and Xlib-GLX cannot be built together])
890
fi
891
 
892
if test "x$enable_opengl$enable_xlib_glx" = xnoyes; then
893
    AC_MSG_ERROR([Xlib-GLX cannot be built without OpenGL])
894
fi
895
 
896
# Disable GLX if OpenGL is not enabled
897
if test "x$enable_glx$enable_opengl" = xyesno; then
898
    AC_MSG_WARN([OpenGL not enabled, disabling GLX])
899
    enable_glx=no
900
fi
901
 
902
# Disable GLX if DRI and Xlib-GLX are not enabled
903
if test "x$enable_glx" = xyes -a \
904
        "x$enable_dri" = xno -a \
905
        "x$enable_xlib_glx" = xno; then
906
    AC_MSG_WARN([Neither DRI nor Xlib-GLX enabled, disabling GLX])
907
    enable_glx=no
908
fi
909
 
910
AM_CONDITIONAL(HAVE_DRI_GLX, test "x$enable_glx" = xyes -a \
911
                                  "x$enable_dri" = xyes)
912
 
913
# Select which platform-dependent DRI code gets built
914
case "$host_os" in
915
darwin*)
916
    dri_platform='apple' ;;
917
gnu*|cygwin*)
918
    dri_platform='none' ;;
919
*)
920
    dri_platform='drm' ;;
921
esac
922
 
923
AM_CONDITIONAL(HAVE_DRICOMMON, test "x$enable_dri" = xyes )
924
AM_CONDITIONAL(HAVE_DRISW, test "x$enable_dri" = xyes )
925
AM_CONDITIONAL(HAVE_DRI2, test "x$enable_dri" = xyes -a "x$dri_platform" = xdrm )
926
AM_CONDITIONAL(HAVE_DRI3, test "x$enable_dri3" = xyes -a "x$dri_platform" = xdrm )
927
AM_CONDITIONAL(HAVE_APPLEDRI, test "x$enable_dri" = xyes -a "x$dri_platform" = xapple )
928
 
929
AC_ARG_ENABLE([shared-glapi],
930
    [AS_HELP_STRING([--enable-shared-glapi],
931
        [Enable shared glapi for OpenGL @<:@default=enabled@:>@])],
932
    [enable_shared_glapi="$enableval"],
933
    [enable_shared_glapi=yes])
934
 
935
case "x$enable_opengl$enable_gles1$enable_gles2" in
936
x*yes*yes*)
937
    if test "x$enable_shared_glapi" = xno; then
938
        AC_MSG_ERROR([shared GLAPI required when building two or more of
939
                      the following APIs - opengl, gles1 gles2])
940
    fi
941
    ;;
942
esac
943
 
944
# Building Xlib-GLX requires shared glapi to be disabled.
945
if test "x$enable_xlib_glx" = xyes; then
946
    AC_MSG_NOTICE([Shared GLAPI should not used with Xlib-GLX, disabling])
947
    enable_shared_glapi=no
948
fi
949
 
950
AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes)
951
 
952
# Build the pipe-drivers as separate libraries/modules.
953
# Do not touch this unless you know what you are doing.
954
# XXX: Expose via configure option ?
955
enable_shared_pipe_drivers=no
956
 
957
dnl
958
dnl Driver specific build directories
959
dnl
960
 
961
case "x$enable_glx$enable_xlib_glx" in
962
xyesyes)
963
    NEED_WINSYS_XLIB="yes"
964
    ;;
965
esac
966
 
967
if test "x$enable_dri" = xyes; then
968
    enable_gallium_loader="$enable_shared_pipe_drivers"
969
fi
970
 
971
if test "x$enable_gallium_osmesa" = xyes; then
972
    if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
973
        AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver])
974
    fi
975
    if test "x$enable_osmesa" = xyes; then
976
        AC_MSG_ERROR([Cannot enable both classic and Gallium OSMesa implementations])
977
    fi
978
fi
979
 
980
AC_SUBST([MESA_LLVM])
981
 
982
# SHA1 hashing
983
AC_ARG_WITH([sha1],
984
        [AS_HELP_STRING([--with-sha1=libc|libmd|libnettle|libgcrypt|libcrypto|libsha1|CommonCrypto|CryptoAPI],
985
        [choose SHA1 implementation])])
986
case "x$with_sha1" in
987
x | xlibc | xlibmd | xlibnettle | xlibgcrypt | xlibcrypto | xlibsha1 | xCommonCrypto | xCryptoAPI)
988
  ;;
989
*)
990
        AC_MSG_ERROR([Illegal value for --with-sha1: $with_sha1])
991
esac
992
 
993
AC_CHECK_FUNC([SHA1Init], [HAVE_SHA1_IN_LIBC=yes])
994
if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_LIBC" = xyes; then
995
	with_sha1=libc
996
fi
997
if test "x$with_sha1" = xlibc && test "x$HAVE_SHA1_IN_LIBC" != xyes; then
998
	AC_MSG_ERROR([sha1 in libc requested but not found])
999
fi
1000
if test "x$with_sha1" = xlibc; then
1001
	AC_DEFINE([HAVE_SHA1_IN_LIBC], [1],
1002
		[Use libc SHA1 functions])
1003
	SHA1_LIBS=""
1004
fi
1005
AC_CHECK_FUNC([CC_SHA1_Init], [HAVE_SHA1_IN_COMMONCRYPTO=yes])
1006
if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_COMMONCRYPTO" = xyes; then
1007
	with_sha1=CommonCrypto
1008
fi
1009
if test "x$with_sha1" = xCommonCrypto && test "x$HAVE_SHA1_IN_COMMONCRYPTO" != xyes; then
1010
	AC_MSG_ERROR([CommonCrypto requested but not found])
1011
fi
1012
if test "x$with_sha1" = xCommonCrypto; then
1013
	AC_DEFINE([HAVE_SHA1_IN_COMMONCRYPTO], [1],
1014
		[Use CommonCrypto SHA1 functions])
1015
	SHA1_LIBS=""
1016
fi
1017
dnl stdcall functions cannot be tested with AC_CHECK_LIB
1018
AC_CHECK_HEADER([wincrypt.h], [HAVE_SHA1_IN_CRYPTOAPI=yes], [], [#include ])
1019
if test "x$with_sha1" = x && test "x$HAVE_SHA1_IN_CRYPTOAPI" = xyes; then
1020
	with_sha1=CryptoAPI
1021
fi
1022
if test "x$with_sha1" = xCryptoAPI && test "x$HAVE_SHA1_IN_CRYPTOAPI" != xyes; then
1023
	AC_MSG_ERROR([CryptoAPI requested but not found])
1024
fi
1025
if test "x$with_sha1" = xCryptoAPI; then
1026
	AC_DEFINE([HAVE_SHA1_IN_CRYPTOAPI], [1],
1027
		[Use CryptoAPI SHA1 functions])
1028
	SHA1_LIBS=""
1029
fi
1030
AC_CHECK_LIB([md], [SHA1Init], [HAVE_LIBMD=yes])
1031
if test "x$with_sha1" = x && test "x$HAVE_LIBMD" = xyes; then
1032
	with_sha1=libmd
1033
fi
1034
if test "x$with_sha1" = xlibmd && test "x$HAVE_LIBMD" != xyes; then
1035
	AC_MSG_ERROR([libmd requested but not found])
1036
fi
1037
if test "x$with_sha1" = xlibmd; then
1038
	AC_DEFINE([HAVE_SHA1_IN_LIBMD], [1],
1039
	          [Use libmd SHA1 functions])
1040
	SHA1_LIBS=-lmd
1041
fi
1042
PKG_CHECK_MODULES([LIBSHA1], [libsha1], [HAVE_LIBSHA1=yes], [HAVE_LIBSHA1=no])
1043
if test "x$with_sha1" = x && test "x$HAVE_LIBSHA1" = xyes; then
1044
   with_sha1=libsha1
1045
fi
1046
if test "x$with_sha1" = xlibsha1 && test "x$HAVE_LIBSHA1" != xyes; then
1047
	AC_MSG_ERROR([libsha1 requested but not found])
1048
fi
1049
if test "x$with_sha1" = xlibsha1; then
1050
	AC_DEFINE([HAVE_SHA1_IN_LIBSHA1], [1],
1051
	          [Use libsha1 for SHA1])
1052
	SHA1_LIBS=-lsha1
1053
fi
1054
AC_CHECK_LIB([nettle], [nettle_sha1_init], [HAVE_LIBNETTLE=yes])
1055
if test "x$with_sha1" = x && test "x$HAVE_LIBNETTLE" = xyes; then
1056
	with_sha1=libnettle
1057
fi
1058
if test "x$with_sha1" = xlibnettle && test "x$HAVE_LIBNETTLE" != xyes; then
1059
	AC_MSG_ERROR([libnettle requested but not found])
1060
fi
1061
if test "x$with_sha1" = xlibnettle; then
1062
	AC_DEFINE([HAVE_SHA1_IN_LIBNETTLE], [1],
1063
	          [Use libnettle SHA1 functions])
1064
	SHA1_LIBS=-lnettle
1065
fi
1066
AC_CHECK_LIB([gcrypt], [gcry_md_open], [HAVE_LIBGCRYPT=yes])
1067
if test "x$with_sha1" = x && test "x$HAVE_LIBGCRYPT" = xyes; then
1068
	with_sha1=libgcrypt
1069
fi
1070
if test "x$with_sha1" = xlibgcrypt && test "x$HAVE_LIBGCRYPT" != xyes; then
1071
	AC_MSG_ERROR([libgcrypt requested but not found])
1072
fi
1073
if test "x$with_sha1" = xlibgcrypt; then
1074
	AC_DEFINE([HAVE_SHA1_IN_LIBGCRYPT], [1],
1075
	          [Use libgcrypt SHA1 functions])
1076
	SHA1_LIBS=-lgcrypt
1077
fi
1078
# We don't need all of the OpenSSL libraries, just libcrypto
1079
AC_CHECK_LIB([crypto], [SHA1_Init], [HAVE_LIBCRYPTO=yes])
1080
PKG_CHECK_MODULES([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
1081
                  [HAVE_OPENSSL_PKC=no])
1082
if test "x$HAVE_LIBCRYPTO" = xyes || test "x$HAVE_OPENSSL_PKC" = xyes; then
1083
	if test "x$with_sha1" = x; then
1084
		with_sha1=libcrypto
1085
	fi
1086
else
1087
	if test "x$with_sha1" = xlibcrypto; then
1088
		AC_MSG_ERROR([OpenSSL libcrypto requested but not found])
1089
	fi
1090
fi
1091
if test "x$with_sha1" = xlibcrypto; then
1092
	if test "x$HAVE_LIBCRYPTO" = xyes; then
1093
		SHA1_LIBS=-lcrypto
1094
	else
1095
		SHA1_LIBS="$OPENSSL_LIBS"
1096
		SHA1_CFLAGS="$OPENSSL_CFLAGS"
1097
	fi
1098
fi
1099
AC_MSG_CHECKING([for SHA1 implementation])
1100
AC_MSG_RESULT([$with_sha1])
1101
AC_SUBST(SHA1_LIBS)
1102
AC_SUBST(SHA1_CFLAGS)
1103
 
1104
# Allow user to configure out the shader-cache feature
1105
AC_ARG_ENABLE([shader-cache],
1106
    AS_HELP_STRING([--disable-shader-cache], [Disable binary shader cache]),
1107
    [enable_shader_cache="$enableval"],
1108
    [if test "x$with_sha1" != "x"; then
1109
        enable_shader_cache=yes
1110
     else
1111
        enable_shader_cache=no
1112
     fi])
1113
if test "x$with_sha1" = "x"; then
1114
    if test "x$enable_shader_cache" = "xyes"; then
1115
        AC_MSG_ERROR([Cannot enable shader cache (no SHA-1 implementation found)])
1116
    fi
1117
fi
1118
AM_CONDITIONAL([ENABLE_SHADER_CACHE], [test x$enable_shader_cache = xyes])
1119
 
1120
# Check for libdrm
1121
PKG_CHECK_MODULES([LIBDRM], [libdrm >= $LIBDRM_REQUIRED],
1122
                  [have_libdrm=yes], [have_libdrm=no])
1123
if test "x$have_libdrm" = xyes; then
1124
	DEFINES="$DEFINES -DHAVE_LIBDRM"
1125
fi
1126
 
1127
case "$host_os" in
1128
linux*)
1129
    need_pci_id=yes ;;
1130
*)
1131
    need_pci_id=no ;;
1132
esac
1133
 
1134
PKG_CHECK_MODULES([LIBUDEV], [libudev >= $LIBUDEV_REQUIRED],
1135
                  have_libudev=yes, have_libudev=no)
1136
 
1137
AC_ARG_ENABLE([sysfs],
1138
    [AS_HELP_STRING([--enable-sysfs],
1139
        [enable /sys PCI identification @<:@default=disabled@:>@])],
1140
    [have_sysfs="$enableval"],
1141
    [have_sysfs=no]
1142
)
1143
 
1144
if test "x$enable_dri" = xyes; then
1145
    if test "$enable_static" = yes; then
1146
        AC_MSG_ERROR([Cannot use static libraries for DRI drivers])
1147
    fi
1148
 
1149
    # not a hard requirement as swrast does not depend on it
1150
    if test "x$have_libdrm" = xyes; then
1151
        DRI_PC_REQ_PRIV="libdrm >= $LIBDRM_REQUIRED"
1152
    fi
1153
fi
1154
 
1155
AC_ARG_ENABLE([driglx-direct],
1156
    [AS_HELP_STRING([--disable-driglx-direct],
1157
        [disable direct rendering in GLX and EGL for DRI \
1158
            @<:@default=auto@:>@])],
1159
    [driglx_direct="$enableval"],
1160
    [driglx_direct="yes"])
1161
 
1162
dnl
1163
dnl libGL configuration per driver
1164
dnl
1165
case "x$enable_glx$enable_xlib_glx" in
1166
xyesyes)
1167
    # Xlib-based GLX
1168
    dri_modules="x11 xext xcb"
1169
    PKG_CHECK_MODULES([XLIBGL], [$dri_modules])
1170
    GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1171
    X11_INCLUDES="$X11_INCLUDES $XLIBGL_CFLAGS"
1172
    GL_LIB_DEPS="$XLIBGL_LIBS"
1173
    GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1174
    GL_PC_LIB_PRIV="$GL_PC_LIB_PRIV $SELINUX_LIBS -lm $PTHREAD_LIBS"
1175
    ;;
1176
xyesno)
1177
    # DRI-based GLX
1178
    PKG_CHECK_MODULES([GLPROTO], [glproto >= $GLPROTO_REQUIRED])
1179
 
1180
    # find the DRI deps for libGL
1181
    dri_modules="x11 xext xdamage xfixes x11-xcb xcb xcb-glx >= $XCBGLX_REQUIRED"
1182
 
1183
    if test x"$driglx_direct" = xyes; then
1184
        if test x"$dri_platform" = xdrm ; then
1185
            DEFINES="$DEFINES -DGLX_USE_DRM"
1186
            if test "x$have_libdrm" != xyes; then
1187
               AC_MSG_ERROR([Direct rendering requires libdrm >= $LIBDRM_REQUIRED])
1188
            fi
1189
 
1190
            PKG_CHECK_MODULES([DRI2PROTO], [dri2proto >= $DRI2PROTO_REQUIRED])
1191
            GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV libdrm >= $LIBDRM_REQUIRED"
1192
            if test x"$enable_dri3" = xyes; then
1193
               PKG_CHECK_MODULES([DRI3PROTO], [dri3proto >= $DRI3PROTO_REQUIRED])
1194
               PKG_CHECK_MODULES([PRESENTPROTO], [presentproto >= $PRESENTPROTO_REQUIRED])
1195
            fi
1196
 
1197
            if test x"$enable_dri" = xyes; then
1198
               dri_modules="$dri_modules xcb-dri2 >= $XCBDRI2_REQUIRED"
1199
            fi
1200
 
1201
            if test x"$enable_dri3" = xyes; then
1202
               PKG_CHECK_EXISTS([xcb >= $XCB_REQUIRED], [], AC_MSG_ERROR([DRI3 requires xcb >= $XCB_REQUIRED]))
1203
               dri_modules="$dri_modules xcb-dri3 xcb-present xcb-sync xshmfence >= $XSHMFENCE_REQUIRED"
1204
            fi
1205
        fi
1206
        if test x"$dri_platform" = xapple ; then
1207
            DEFINES="$DEFINES -DGLX_USE_APPLEGL"
1208
        fi
1209
    fi
1210
 
1211
    # add xf86vidmode if available
1212
    PKG_CHECK_MODULES([XF86VIDMODE], [xxf86vm], HAVE_XF86VIDMODE=yes, HAVE_XF86VIDMODE=no)
1213
    if test "$HAVE_XF86VIDMODE" = yes ; then
1214
        dri_modules="$dri_modules xxf86vm"
1215
    fi
1216
 
1217
    PKG_CHECK_MODULES([DRIGL], [$dri_modules])
1218
    GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV $dri_modules"
1219
    X11_INCLUDES="$X11_INCLUDES $DRIGL_CFLAGS"
1220
    GL_LIB_DEPS="$DRIGL_LIBS"
1221
 
1222
    # need DRM libs, $PTHREAD_LIBS, etc.
1223
    GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1224
    GL_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1225
    ;;
1226
esac
1227
 
1228
have_pci_id=no
1229
if test "$have_libudev" = yes; then
1230
    DEFINES="$DEFINES -DHAVE_LIBUDEV"
1231
    have_pci_id=yes
1232
fi
1233
 
1234
if test "$have_sysfs" = yes; then
1235
    DEFINES="$DEFINES -DHAVE_SYSFS"
1236
    have_pci_id=yes
1237
fi
1238
 
1239
# This is outside the case (above) so that it is invoked even for non-GLX
1240
# builds.
1241
AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
1242
 
1243
GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1244
GLESv1_CM_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1245
GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1246
GLESv2_PC_LIB_PRIV="-lm $PTHREAD_LIBS $DLOPEN_LIBS"
1247
 
1248
AC_SUBST([X11_INCLUDES])
1249
AC_SUBST([GL_LIB_DEPS])
1250
AC_SUBST([GL_PC_REQ_PRIV])
1251
AC_SUBST([GL_PC_LIB_PRIV])
1252
AC_SUBST([GL_PC_CFLAGS])
1253
AC_SUBST([DRI_PC_REQ_PRIV])
1254
AC_SUBST([GLESv1_CM_LIB_DEPS])
1255
AC_SUBST([GLESv1_CM_PC_LIB_PRIV])
1256
AC_SUBST([GLESv2_LIB_DEPS])
1257
AC_SUBST([GLESv2_PC_LIB_PRIV])
1258
 
1259
AC_SUBST([HAVE_XF86VIDMODE])
1260
 
1261
dnl
1262
dnl More GLX setup
1263
dnl
1264
case "x$enable_glx$enable_xlib_glx" in
1265
xyesyes)
1266
    DEFINES="$DEFINES -DUSE_XSHM"
1267
    ;;
1268
xyesno)
1269
    DEFINES="$DEFINES -DGLX_INDIRECT_RENDERING"
1270
    if test "x$driglx_direct" = xyes; then
1271
        DEFINES="$DEFINES -DGLX_DIRECT_RENDERING"
1272
    fi
1273
    ;;
1274
esac
1275
 
1276
dnl
1277
dnl TLS detection
1278
dnl
1279
 
1280
AC_ARG_ENABLE([glx-tls],
1281
    [AS_HELP_STRING([--enable-glx-tls],
1282
        [enable TLS support in GLX @<:@default=disabled@:>@])],
1283
    [GLX_USE_TLS="$enableval"],
1284
    [GLX_USE_TLS=no])
1285
AC_SUBST(GLX_TLS, ${GLX_USE_TLS})
1286
 
1287
AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes],
1288
      [DEFINES="${DEFINES} -DGLX_USE_TLS"])
1289
 
1290
dnl
1291
dnl More DRI setup
1292
dnl
1293
dnl Directory for DRI drivers
1294
AC_ARG_WITH([dri-driverdir],
1295
    [AS_HELP_STRING([--with-dri-driverdir=DIR],
1296
        [directory for the DRI drivers @<:@${libdir}/dri@:>@])],
1297
    [DRI_DRIVER_INSTALL_DIR="$withval"],
1298
    [DRI_DRIVER_INSTALL_DIR='${libdir}/dri'])
1299
AC_SUBST([DRI_DRIVER_INSTALL_DIR])
1300
dnl Extra search path for DRI drivers
1301
AC_ARG_WITH([dri-searchpath],
1302
    [AS_HELP_STRING([--with-dri-searchpath=DIRS...],
1303
        [semicolon delimited DRI driver search directories @<:@${libdir}/dri@:>@])],
1304
    [DRI_DRIVER_SEARCH_DIR="$withval"],
1305
    [DRI_DRIVER_SEARCH_DIR='${DRI_DRIVER_INSTALL_DIR}'])
1306
AC_SUBST([DRI_DRIVER_SEARCH_DIR])
1307
dnl Which drivers to build - default is chosen by platform
1308
AC_ARG_WITH([dri-drivers],
1309
    [AS_HELP_STRING([--with-dri-drivers@<:@=DIRS...@:>@],
1310
        [comma delimited classic DRI drivers list, e.g.
1311
        "swrast,i965,radeon" @<:@default=auto@:>@])],
1312
    [with_dri_drivers="$withval"],
1313
    [with_dri_drivers=auto])
1314
 
1315
if test "x$with_dri_drivers" = xauto; then
1316
    if test "x$enable_opengl" = xyes -a "x$enable_dri" = xyes; then
1317
        with_dri_drivers="yes"
1318
    else
1319
        with_dri_drivers="no"
1320
    fi
1321
fi
1322
if test "x$with_dri_drivers" = xno; then
1323
    with_dri_drivers=''
1324
fi
1325
 
1326
dnl If $with_dri_drivers is yes, drivers will be added through
1327
dnl platform checks. Set DEFINES and LIB_DEPS
1328
if test "x$enable_dri" = xyes; then
1329
    # Platform specific settings and drivers to build
1330
    case "$host_os" in
1331
    linux*)
1332
        DEFINES="$DEFINES -DHAVE_ALIAS"
1333
        if test "x$enable_dri3" = xyes; then
1334
            DEFINES="$DEFINES -DHAVE_DRI3"
1335
        fi
1336
 
1337
        if test "x$have_pci_id" != xyes; then
1338
            AC_MSG_ERROR([libudev-dev or sysfs required for building DRI])
1339
        fi
1340
 
1341
        case "$host_cpu" in
1342
        powerpc* | sparc*)
1343
            # Build only the drivers for cards that exist on PowerPC/sparc
1344
            if test "x$with_dri_drivers" = "xyes"; then
1345
                with_dri_drivers="r200 radeon swrast"
1346
            fi
1347
            ;;
1348
        esac
1349
        ;;
1350
    *freebsd* | dragonfly* | *netbsd* | openbsd*)
1351
        DEFINES="$DEFINES -DHAVE_ALIAS"
1352
        ;;
1353
    gnu*)
1354
        DEFINES="$DEFINES -DHAVE_ALIAS"
1355
        ;;
1356
    cygwin*)
1357
        if test "x$with_dri_drivers" = "xyes"; then
1358
            with_dri_drivers="swrast"
1359
        fi
1360
        ;;
1361
    darwin*)
1362
        DEFINES="$DEFINES -DGLX_ALIAS_UNSUPPORTED"
1363
        if test "x$with_dri_drivers" = "xyes"; then
1364
            with_dri_drivers="swrast"
1365
        fi
1366
        ;;
1367
    esac
1368
 
1369
    # default drivers
1370
    if test "x$with_dri_drivers" = "xyes"; then
1371
        with_dri_drivers="i915 i965 nouveau r200 radeon swrast"
1372
    fi
1373
 
1374
    # Check for expat
1375
    PKG_CHECK_MODULES([EXPAT], [expat], [],
1376
        # expat version 2.0 and earlier do not provide expat.pc
1377
        [AC_CHECK_HEADER([expat.h],[],
1378
                         [AC_MSG_ERROR([Expat headers required for DRI not found])])
1379
         AC_CHECK_LIB([expat],[XML_ParserCreate],[],
1380
                     [AC_MSG_ERROR([Expat library required for DRI not found])])
1381
         EXPAT_LIBS="-lexpat"])
1382
 
1383
    DRICOMMON_NEED_LIBDRM=no
1384
    # If we are building any DRI driver other than swrast.
1385
    if test -n "$with_dri_drivers"; then
1386
        if test "x$with_dri_drivers" != xswrast; then
1387
            # ... libdrm is required
1388
            if test "x$have_libdrm" != xyes; then
1389
                AC_MSG_ERROR([DRI drivers requires libdrm >= $LIBDRM_REQUIRED])
1390
            fi
1391
            DRICOMMON_NEED_LIBDRM=yes
1392
        fi
1393
    fi
1394
 
1395
    # If we're building any gallium DRI driver other than swrast
1396
    if test -n "$with_gallium_drivers" -a "x$DRICOMMON_NEED_LIBDRM" = xno; then
1397
        if test "x$with_gallium_drivers" != xswrast; then
1398
            # ... build a libdrm aware dricommon
1399
            DRICOMMON_NEED_LIBDRM=yes
1400
        fi
1401
    fi
1402
 
1403
    # put all the necessary libs together
1404
    DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
1405
fi
1406
 
1407
AC_SUBST([DRI_LIB_DEPS])
1408
 
1409
DRI_DIRS=''
1410
dnl Duplicates in DRI_DIRS are removed by sorting it at the end of this block
1411
if test -n "$with_dri_drivers"; then
1412
    if test "x$enable_opengl" != xyes; then
1413
        AC_MSG_ERROR([--with-dri-drivers requires OpenGL])
1414
    fi
1415
 
1416
    dri_drivers=`IFS=', '; echo $with_dri_drivers`
1417
    for driver in $dri_drivers; do
1418
        DRI_DIRS="$DRI_DIRS $driver"
1419
        case "x$driver" in
1420
        xi915)
1421
            HAVE_I915_DRI=yes;
1422
            PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1423
            ;;
1424
        xi965)
1425
            HAVE_I965_DRI=yes;
1426
            PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
1427
            ;;
1428
        xnouveau)
1429
            HAVE_NOUVEAU_DRI=yes;
1430
            PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NVVIEUX_REQUIRED])
1431
            ;;
1432
        xradeon)
1433
            HAVE_RADEON_DRI=yes;
1434
            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1435
            ;;
1436
        xr200)
1437
            HAVE_R200_DRI=yes;
1438
            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
1439
            ;;
1440
        xswrast)
1441
            HAVE_SWRAST_DRI=yes;
1442
            ;;
1443
        *)
1444
            AC_MSG_ERROR([classic DRI driver '$driver' does not exist])
1445
            ;;
1446
        esac
1447
    done
1448
    DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "`
1449
fi
1450
 
1451
AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
1452
AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_xlib_glx" = xyes -o \
1453
                                  "x$enable_osmesa" = xyes -o \
1454
                                  -n "$DRI_DIRS")
1455
 
1456
dnl
1457
dnl OSMesa configuration
1458
dnl
1459
 
1460
dnl Configure the channel bits for OSMesa (libOSMesa, libOSMesa16, ...)
1461
AC_ARG_WITH([osmesa-bits],
1462
    [AS_HELP_STRING([--with-osmesa-bits=BITS],
1463
        [OSMesa channel bits and library name: 8, 16, 32 @<:@default=8@:>@])],
1464
    [osmesa_bits="$withval"],
1465
    [osmesa_bits=8])
1466
if test "x$osmesa_bits" != x8; then
1467
    if test "x$enable_dri" = xyes -o "x$enable_glx" = xyes; then
1468
        AC_MSG_WARN([Ignoring OSMesa channel bits because of non-OSMesa driver])
1469
        osmesa_bits=8
1470
    fi
1471
fi
1472
case "x$osmesa_bits" in
1473
x8)
1474
    OSMESA_LIB="${OSMESA_LIB}"
1475
    ;;
1476
x16|x32)
1477
    OSMESA_LIB="${OSMESA_LIB}$osmesa_bits"
1478
    DEFINES="$DEFINES -DCHAN_BITS=$osmesa_bits -DDEFAULT_SOFTWARE_DEPTH_BITS=31"
1479
    ;;
1480
*)
1481
    AC_MSG_ERROR([OSMesa bits '$osmesa_bits' is not a valid option])
1482
    ;;
1483
esac
1484
 
1485
if test "x$enable_osmesa" = xyes -o "x$enable_gallium_osmesa" = xyes; then
1486
    # only link libraries with osmesa if shared
1487
    if test "$enable_static" = no; then
1488
        OSMESA_LIB_DEPS="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1489
    else
1490
        OSMESA_LIB_DEPS=""
1491
    fi
1492
    OSMESA_PC_LIB_PRIV="-lm $PTHREAD_LIBS $SELINUX_LIBS $DLOPEN_LIBS"
1493
fi
1494
 
1495
AC_SUBST([OSMESA_LIB_DEPS])
1496
AC_SUBST([OSMESA_PC_REQ])
1497
AC_SUBST([OSMESA_PC_LIB_PRIV])
1498
 
1499
dnl
1500
dnl gbm configuration
1501
dnl
1502
if test "x$enable_gbm" = xauto; then
1503
    case "$with_egl_platforms" in
1504
        *drm*)
1505
            enable_gbm=yes ;;
1506
         *)
1507
            enable_gbm=no ;;
1508
    esac
1509
fi
1510
if test "x$enable_gbm" = xyes; then
1511
    if test "x$need_pci_id$have_pci_id" = xyesno; then
1512
        AC_MSG_ERROR([gbm requires udev >= $LIBUDEV_REQUIRED or sysfs])
1513
    fi
1514
 
1515
    if test "x$enable_dri" = xyes; then
1516
        GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri"
1517
        if test "x$enable_shared_glapi" = xno; then
1518
            AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi])
1519
        fi
1520
    else
1521
        # Strictly speaking libgbm does not require --enable-dri, although
1522
        # both of its backends do. Thus one can build libgbm without any
1523
        # backends if --disable-dri is set.
1524
        # To avoid unnecessary complexity of checking if at least one backend
1525
        # is available when building, just mandate --enable-dri.
1526
        AC_MSG_ERROR([gbm requires --enable-dri])
1527
    fi
1528
fi
1529
AM_CONDITIONAL(HAVE_GBM, test "x$enable_gbm" = xyes)
1530
if test "x$need_pci_id$have_libudev" = xyesyes; then
1531
    GBM_PC_REQ_PRIV="libudev >= $LIBUDEV_REQUIRED"
1532
else
1533
    GBM_PC_REQ_PRIV=""
1534
fi
1535
GBM_PC_LIB_PRIV="$DLOPEN_LIBS"
1536
AC_SUBST([GBM_PC_REQ_PRIV])
1537
AC_SUBST([GBM_PC_LIB_PRIV])
1538
 
1539
dnl
1540
dnl EGL configuration
1541
dnl
1542
EGL_CLIENT_APIS=""
1543
 
1544
if test "x$enable_egl" = xyes; then
1545
    EGL_LIB_DEPS="$DLOPEN_LIBS $SELINUX_LIBS $PTHREAD_LIBS"
1546
 
1547
    AC_CHECK_FUNC(mincore, [DEFINES="$DEFINES -DHAVE_MINCORE"])
1548
 
1549
    if test "$enable_static" != yes; then
1550
        if test "x$enable_dri" = xyes; then
1551
	    HAVE_EGL_DRIVER_DRI2=1
1552
	fi
1553
 
1554
    fi
1555
fi
1556
AM_CONDITIONAL(HAVE_EGL, test "x$enable_egl" = xyes)
1557
AC_SUBST([EGL_LIB_DEPS])
1558
 
1559
dnl
1560
dnl XA configuration
1561
dnl
1562
if test "x$enable_xa" = xyes; then
1563
    if test "x$with_gallium_drivers" = xswrast; then
1564
       AC_MSG_ERROR([
1565
          Building xa requires at least one non swrast gallium driver.
1566
          If you are looking to use libxatracker.so with the VMware driver,
1567
          make sure to include svga in the gallium drivers list, apart from
1568
          enabling XA.
1569
          Example: ./configure --enable-xa --with-gallium-drivers=svga...])
1570
    fi
1571
    enable_gallium_loader=$enable_shared_pipe_drivers
1572
fi
1573
AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes)
1574
 
1575
dnl
1576
dnl Gallium G3DVL configuration
1577
dnl
1578
if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
1579
    if test "x$enable_xvmc" = xauto; then
1580
	PKG_CHECK_EXISTS([xvmc >= $XVMC_REQUIRED], [enable_xvmc=yes], [enable_xvmc=no])
1581
    fi
1582
 
1583
    if test "x$enable_vdpau" = xauto; then
1584
	PKG_CHECK_EXISTS([vdpau >= $VDPAU_REQUIRED], [enable_vdpau=yes], [enable_vdpau=no])
1585
    fi
1586
 
1587
    if test "x$enable_omx" = xauto; then
1588
	PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx=yes], [enable_omx=no])
1589
    fi
1590
 
1591
    if test "x$enable_va" = xauto; then
1592
        PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
1593
    fi
1594
fi
1595
 
1596
if test "x$enable_dri" = xyes -o \
1597
        "x$enable_xvmc" = xyes -o \
1598
        "x$enable_vdpau" = xyes -o \
1599
        "x$enable_omx" = xyes -o \
1600
        "x$enable_va" = xyes; then
1601
    need_gallium_vl=yes
1602
fi
1603
AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
1604
 
1605
if test "x$enable_xvmc" = xyes -o \
1606
        "x$enable_vdpau" = xyes -o \
1607
        "x$enable_omx" = xyes -o \
1608
        "x$enable_va" = xyes; then
1609
    PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
1610
    need_gallium_vl_winsys=yes
1611
fi
1612
AM_CONDITIONAL(NEED_GALLIUM_VL_WINSYS, test "x$need_gallium_vl_winsys" = xyes)
1613
 
1614
if test "x$enable_xvmc" = xyes; then
1615
    PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
1616
    enable_gallium_loader=$enable_shared_pipe_drivers
1617
fi
1618
AM_CONDITIONAL(HAVE_ST_XVMC, test "x$enable_xvmc" = xyes)
1619
 
1620
if test "x$enable_vdpau" = xyes; then
1621
    PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
1622
    enable_gallium_loader=$enable_shared_pipe_drivers
1623
fi
1624
AM_CONDITIONAL(HAVE_ST_VDPAU, test "x$enable_vdpau" = xyes)
1625
 
1626
if test "x$enable_omx" = xyes; then
1627
    PKG_CHECK_MODULES([OMX], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
1628
    enable_gallium_loader=$enable_shared_pipe_drivers
1629
fi
1630
AM_CONDITIONAL(HAVE_ST_OMX, test "x$enable_omx" = xyes)
1631
 
1632
if test "x$enable_va" = xyes; then
1633
    PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
1634
    enable_gallium_loader=$enable_shared_pipe_drivers
1635
fi
1636
AM_CONDITIONAL(HAVE_ST_VA, test "x$enable_va" = xyes)
1637
 
1638
dnl
1639
dnl Nine Direct3D9 configuration
1640
dnl
1641
if test "x$enable_nine" = xyes; then
1642
    if ! echo "$with_gallium_drivers" | grep -q 'swrast'; then
1643
        AC_MSG_ERROR([nine requires the gallium swrast driver])
1644
    fi
1645
    if test "x$with_gallium_drivers" = xswrast; then
1646
        AC_MSG_ERROR([nine requires at least one non-swrast gallium driver])
1647
    fi
1648
    if test "x$enable_dri3" = xno; then
1649
        AC_MSG_WARN([using nine together with wine requires DRI3 enabled system])
1650
    fi
1651
 
1652
    enable_gallium_loader=$enable_shared_pipe_drivers
1653
fi
1654
AM_CONDITIONAL(HAVE_ST_NINE, test "x$enable_nine" = xyes)
1655
 
1656
dnl
1657
dnl OpenCL configuration
1658
dnl
1659
 
1660
AC_ARG_WITH([clang-libdir],
1661
   [AS_HELP_STRING([--with-clang-libdir],
1662
         [Path to Clang libraries @<:@default=llvm-config --libdir@:>@])],
1663
   [CLANG_LIBDIR="$withval"],
1664
   [CLANG_LIBDIR=''])
1665
 
1666
PKG_CHECK_EXISTS([libclc], [have_libclc=yes], [have_libclc=no])
1667
AC_CHECK_LIB([elf], [elf_memory], [have_libelf=yes;ELF_LIB=-lelf])
1668
 
1669
if test "x$enable_opencl" = xyes; then
1670
    if test -z "$with_gallium_drivers"; then
1671
        AC_MSG_ERROR([cannot enable OpenCL without Gallium])
1672
    fi
1673
 
1674
    if test $GCC_VERSION_MAJOR -lt 4 -o $GCC_VERSION_MAJOR -eq 4 -a $GCC_VERSION_MINOR -lt 7; then
1675
        AC_MSG_ERROR([gcc >= 4.7 is required to build clover])
1676
    fi
1677
 
1678
    if test "x$have_libclc" = xno; then
1679
        AC_MSG_ERROR([pkg-config cannot find libclc.pc which is required to build clover.
1680
                    Make sure the directory containing libclc.pc is specified in your
1681
                    PKG_CONFIG_PATH environment variable.
1682
                    By default libclc.pc is installed to /usr/local/share/pkgconfig/])
1683
    else
1684
        LIBCLC_INCLUDEDIR=`$PKG_CONFIG --variable=includedir libclc`
1685
        LIBCLC_LIBEXECDIR=`$PKG_CONFIG --variable=libexecdir libclc`
1686
        AC_SUBST([LIBCLC_INCLUDEDIR])
1687
        AC_SUBST([LIBCLC_LIBEXECDIR])
1688
    fi
1689
 
1690
    # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1691
    enable_gallium_loader=yes
1692
 
1693
    if test "x$enable_opencl_icd" = xyes; then
1694
        OPENCL_LIBNAME="MesaOpenCL"
1695
    else
1696
        OPENCL_LIBNAME="OpenCL"
1697
    fi
1698
 
1699
    if test "x$have_libelf" != xyes; then
1700
       AC_MSG_ERROR([Clover requires libelf])
1701
    fi
1702
fi
1703
AM_CONDITIONAL(HAVE_CLOVER, test "x$enable_opencl" = xyes)
1704
AM_CONDITIONAL(HAVE_CLOVER_ICD, test "x$enable_opencl_icd" = xyes)
1705
AC_SUBST([OPENCL_LIBNAME])
1706
 
1707
dnl
1708
dnl Gallium configuration
1709
dnl
1710
AM_CONDITIONAL(HAVE_GALLIUM, test -n "$with_gallium_drivers")
1711
 
1712
AC_SUBST([LLVM_BINDIR])
1713
AC_SUBST([LLVM_CFLAGS])
1714
AC_SUBST([LLVM_CPPFLAGS])
1715
AC_SUBST([LLVM_CXXFLAGS])
1716
AC_SUBST([LLVM_LIBDIR])
1717
AC_SUBST([LLVM_LIBS])
1718
AC_SUBST([LLVM_LDFLAGS])
1719
AC_SUBST([LLVM_INCLUDEDIR])
1720
AC_SUBST([LLVM_VERSION])
1721
AC_SUBST([CLANG_RESOURCE_DIR])
1722
 
1723
case "x$enable_opengl$enable_gles1$enable_gles2" in
1724
x*yes*)
1725
    EGL_CLIENT_APIS="$EGL_CLIENT_APIS "'$(GL_LIB)'
1726
    ;;
1727
esac
1728
 
1729
AC_SUBST([VG_LIB_DEPS])
1730
AC_SUBST([EGL_CLIENT_APIS])
1731
 
1732
dnl
1733
dnl EGL Platforms configuration
1734
dnl
1735
AC_ARG_WITH([egl-platforms],
1736
    [AS_HELP_STRING([--with-egl-platforms@<:@=DIRS...@:>@],
1737
        [comma delimited native platforms libEGL supports, e.g.
1738
        "x11,drm" @<:@default=auto@:>@])],
1739
    [with_egl_platforms="$withval"],
1740
    [if test "x$enable_egl" = xyes; then
1741
	with_egl_platforms="x11"
1742
    else
1743
	with_egl_platforms=""
1744
    fi])
1745
 
1746
if test "x$with_egl_platforms" != "x" -a "x$enable_egl" != xyes; then
1747
    AC_MSG_ERROR([cannot build egl state tracker without EGL library])
1748
fi
1749
 
1750
PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland_scanner],
1751
        WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland_scanner`,
1752
        WAYLAND_SCANNER='')
1753
if test "x$WAYLAND_SCANNER" = x; then
1754
    AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner])
1755
fi
1756
 
1757
# Do per-EGL platform setups and checks
1758
egl_platforms=`IFS=', '; echo $with_egl_platforms`
1759
for plat in $egl_platforms; do
1760
	case "$plat" in
1761
	wayland)
1762
		PKG_CHECK_MODULES([WAYLAND], [wayland-client >= $WAYLAND_REQUIRED wayland-server >= $WAYLAND_REQUIRED])
1763
 
1764
		if test "x$WAYLAND_SCANNER" = x; then
1765
			AC_MSG_ERROR([wayland-scanner is needed to compile the wayland egl platform])
1766
		fi
1767
		;;
1768
 
1769
	x11)
1770
		PKG_CHECK_MODULES([XCB_DRI2], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED xcb-xfixes])
1771
		;;
1772
 
1773
	drm)
1774
		test "x$enable_gbm" = "xno" &&
1775
			AC_MSG_ERROR([EGL platform drm needs gbm])
1776
		test "x$have_libdrm" != xyes &&
1777
			AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED])
1778
		;;
1779
 
1780
	android|gdi|null)
1781
		;;
1782
 
1783
	*)
1784
		AC_MSG_ERROR([EGL platform '$plat' does not exist])
1785
		;;
1786
	esac
1787
 
1788
        case "$plat$need_pci_id$have_pci_id" in
1789
                waylandyesno|drmyesno)
1790
                    AC_MSG_ERROR([cannot build $plat platform without udev >= $LIBUDEV_REQUIRED or sysfs]) ;;
1791
        esac
1792
done
1793
 
1794
# libEGL wants to default to the first platform specified in
1795
# ./configure.  parse that here.
1796
if test "x$egl_platforms" != "x"; then
1797
    FIRST_PLATFORM_CAPS=`echo $egl_platforms | sed 's| .*||' | tr '[[a-z]]' '[[A-Z]]'`
1798
    EGL_NATIVE_PLATFORM="_EGL_PLATFORM_$FIRST_PLATFORM_CAPS"
1799
else
1800
    EGL_NATIVE_PLATFORM="_EGL_INVALID_PLATFORM"
1801
fi
1802
 
1803
if echo "$egl_platforms" | grep -q 'x11'; then
1804
    NEED_WINSYS_XLIB=yes
1805
fi
1806
AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11')
1807
AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland')
1808
AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm')
1809
AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null')
1810
 
1811
AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x")
1812
 
1813
AC_SUBST([EGL_NATIVE_PLATFORM])
1814
AC_SUBST([EGL_CFLAGS])
1815
 
1816
# If we don't have the X11 platform, set this define so we don't try to include
1817
# the X11 headers.
1818
if ! echo "$egl_platforms" | grep -q 'x11'; then
1819
    DEFINES="$DEFINES -DMESA_EGL_NO_X11_HEADERS"
1820
    GL_PC_CFLAGS="$GL_PC_CFLAGS -DMESA_EGL_NO_X11_HEADERS"
1821
fi
1822
 
1823
dnl
1824
dnl Gallium LLVM
1825
dnl
1826
AC_ARG_ENABLE([gallium-llvm],
1827
    [AS_HELP_STRING([--enable-gallium-llvm],
1828
        [build gallium LLVM support @<:@default=enabled on x86/x86_64@:>@])],
1829
    [enable_gallium_llvm="$enableval"],
1830
    [enable_gallium_llvm=auto])
1831
 
1832
AC_ARG_ENABLE([llvm-shared-libs],
1833
    [AS_HELP_STRING([--enable-llvm-shared-libs],
1834
        [link with LLVM shared libraries @<:@default=enabled@:>@])],
1835
    [enable_llvm_shared_libs="$enableval"],
1836
    [enable_llvm_shared_libs=yes])
1837
 
1838
AC_ARG_WITH([llvm-prefix],
1839
    [AS_HELP_STRING([--with-llvm-prefix],
1840
        [Prefix for LLVM installations in non-standard locations])],
1841
    [llvm_prefix="$withval"],
1842
    [llvm_prefix=''])
1843
 
1844
 
1845
# Call this inside ` ` to get the return value.
1846
# $1 is the llvm-config command with arguments.
1847
strip_unwanted_llvm_flags() {
1848
    # Use \> (marks the end of the word)
1849
    echo `$1` | sed \
1850
	-e 's/-DNDEBUG\>//g' \
1851
	-e 's/-D_GNU_SOURCE\>//g' \
1852
	-e 's/-pedantic\>//g' \
1853
	-e 's/-Wcovered-switch-default\>//g' \
1854
	-e 's/-O.\>//g' \
1855
	-e 's/-g\>//g' \
1856
	-e 's/-Wall\>//g' \
1857
	-e 's/-Wcast-qual\>//g' \
1858
	-e 's/-Woverloaded-virtual\>//g' \
1859
	-e 's/-fcolor-diagnostics\>//g' \
1860
	-e 's/-fdata-sections\>//g' \
1861
	-e 's/-ffunction-sections\>//g' \
1862
	-e 's/-fno-exceptions\>//g' \
1863
	-e 's/-fomit-frame-pointer\>//g' \
1864
	-e 's/-fvisibility-inlines-hidden\>//g' \
1865
	-e 's/-fPIC\>//g' \
1866
	-e 's/-fstack-protector-strong\>//g'
1867
}
1868
 
1869
llvm_check_version_for() {
1870
    if test "${LLVM_VERSION_INT}${LLVM_VERSION_PATCH}" -lt "${1}0${2}${3}"; then
1871
        AC_MSG_ERROR([LLVM $1.$2.$3 or newer is required for $4])
1872
    fi
1873
}
1874
 
1875
 
1876
 
1877
if test -z "$with_gallium_drivers"; then
1878
    enable_gallium_llvm=no
1879
fi
1880
if test "x$enable_gallium_llvm" = xauto; then
1881
    case "$host_cpu" in
1882
    i*86|x86_64|amd64) enable_gallium_llvm=yes;;
1883
    esac
1884
fi
1885
if test "x$enable_gallium_llvm" = xyes; then
1886
    if test -n "$llvm_prefix"; then
1887
        AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
1888
    else
1889
        AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no])
1890
    fi
1891
 
1892
    if test "x$LLVM_CONFIG" != xno; then
1893
        LLVM_VERSION=`$LLVM_CONFIG --version | egrep -o '^[[0-9.]]+'`
1894
        LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags`
1895
        LLVM_BINDIR=`$LLVM_CONFIG --bindir`
1896
        LLVM_CPPFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cppflags"`
1897
        LLVM_CFLAGS=$LLVM_CPPFLAGS   # CPPFLAGS seem to be sufficient
1898
        LLVM_CXXFLAGS=`strip_unwanted_llvm_flags "$LLVM_CONFIG --cxxflags"`
1899
        LLVM_INCLUDEDIR=`$LLVM_CONFIG --includedir`
1900
        LLVM_LIBDIR=`$LLVM_CONFIG --libdir`
1901
 
1902
        AC_COMPUTE_INT([LLVM_VERSION_MAJOR], [LLVM_VERSION_MAJOR],
1903
            [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1904
        AC_COMPUTE_INT([LLVM_VERSION_MINOR], [LLVM_VERSION_MINOR],
1905
            [#include "${LLVM_INCLUDEDIR}/llvm/Config/llvm-config.h"])
1906
 
1907
        LLVM_VERSION_PATCH=`echo $LLVM_VERSION | cut -d. -f3 | egrep -o '^[[0-9]]+'`
1908
        if test -z "$LLVM_VERSION_PATCH"; then
1909
            LLVM_VERSION_PATCH=0
1910
        fi
1911
 
1912
        if test -n "${LLVM_VERSION_MAJOR}"; then
1913
            LLVM_VERSION_INT="${LLVM_VERSION_MAJOR}0${LLVM_VERSION_MINOR}"
1914
        else
1915
            LLVM_VERSION_INT=`echo $LLVM_VERSION | sed -e 's/\([[0-9]]\)\.\([[0-9]]\)/\10\2/g'`
1916
        fi
1917
 
1918
        LLVM_REQUIRED_VERSION_MAJOR="3"
1919
        LLVM_REQUIRED_VERSION_MINOR="3"
1920
        if test "$LLVM_VERSION_INT" -lt "${LLVM_REQUIRED_VERSION_MAJOR}0${LLVM_REQUIRED_VERSION_MINOR}"; then
1921
            AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required])
1922
        fi
1923
 
1924
        LLVM_COMPONENTS="engine bitwriter"
1925
        if $LLVM_CONFIG --components | grep -qw 'mcjit'; then
1926
            LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit"
1927
        fi
1928
 
1929
        if test "x$enable_opencl" = xyes; then
1930
            llvm_check_version_for "3" "5" "0" "opencl"
1931
 
1932
            LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation"
1933
            LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata"
1934
        fi
1935
        DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH"
1936
        MESA_LLVM=1
1937
 
1938
        dnl Check for Clang internal headers
1939
        if test "x$enable_opencl" = xyes; then
1940
            if test -z "$CLANG_LIBDIR"; then
1941
                CLANG_LIBDIR=${LLVM_LIBDIR}
1942
            fi
1943
            CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION}
1944
            AS_IF([test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"],
1945
                [AC_MSG_ERROR([Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries.])])
1946
        fi
1947
    else
1948
        MESA_LLVM=0
1949
        LLVM_VERSION_INT=0
1950
    fi
1951
else
1952
    MESA_LLVM=0
1953
    LLVM_VERSION_INT=0
1954
 
1955
    if test "x$enable_opencl" = xyes; then
1956
        AC_MSG_ERROR([cannot enable OpenCL without LLVM])
1957
    fi
1958
fi
1959
 
1960
dnl Directory for XVMC libs
1961
AC_ARG_WITH([xvmc-libdir],
1962
    [AS_HELP_STRING([--with-xvmc-libdir=DIR],
1963
        [directory for the XVMC libraries @<:@default=${libdir}@:>@])],
1964
    [XVMC_LIB_INSTALL_DIR="$withval"],
1965
    [XVMC_LIB_INSTALL_DIR='${libdir}'])
1966
AC_SUBST([XVMC_LIB_INSTALL_DIR])
1967
 
1968
dnl
1969
dnl Gallium Tests
1970
dnl
1971
if test "x$enable_gallium_tests" = xyes; then
1972
    # XXX: Use $enable_shared_pipe_drivers once converted to use static/shared pipe-drivers
1973
    enable_gallium_loader=yes
1974
fi
1975
AM_CONDITIONAL(HAVE_GALLIUM_TESTS, test "x$enable_gallium_tests" = xyes)
1976
 
1977
dnl Directory for VDPAU libs
1978
AC_ARG_WITH([vdpau-libdir],
1979
    [AS_HELP_STRING([--with-vdpau-libdir=DIR],
1980
        [directory for the VDPAU libraries @<:@default=${libdir}/vdpau@:>@])],
1981
    [VDPAU_LIB_INSTALL_DIR="$withval"],
1982
    [VDPAU_LIB_INSTALL_DIR='${libdir}/vdpau'])
1983
AC_SUBST([VDPAU_LIB_INSTALL_DIR])
1984
 
1985
dnl Directory for OMX libs
1986
 
1987
AC_ARG_WITH([omx-libdir],
1988
    [AS_HELP_STRING([--with-omx-libdir=DIR],
1989
        [directory for the OMX libraries])],
1990
    [OMX_LIB_INSTALL_DIR="$withval"],
1991
    [OMX_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
1992
AC_SUBST([OMX_LIB_INSTALL_DIR])
1993
 
1994
dnl Directory for VA libs
1995
 
1996
AC_ARG_WITH([va-libdir],
1997
    [AS_HELP_STRING([--with-va-libdir=DIR],
1998
        [directory for the VA libraries @<:@${libdir}/dri@:>@])],
1999
    [VA_LIB_INSTALL_DIR="$withval"],
2000
    [VA_LIB_INSTALL_DIR="${libdir}/dri"])
2001
AC_SUBST([VA_LIB_INSTALL_DIR])
2002
 
2003
AC_ARG_WITH([d3d-libdir],
2004
    [AS_HELP_STRING([--with-d3d-libdir=DIR],
2005
        [directory for the D3D modules @<:@${libdir}/d3d@:>@])],
2006
    [D3D_DRIVER_INSTALL_DIR="$withval"],
2007
    [D3D_DRIVER_INSTALL_DIR="${libdir}/d3d"])
2008
AC_SUBST([D3D_DRIVER_INSTALL_DIR])
2009
 
2010
dnl
2011
dnl Gallium helper functions
2012
dnl
2013
gallium_require_drm() {
2014
    if test "x$have_libdrm" != xyes; then
2015
       AC_MSG_ERROR([$1 requires libdrm >= $LIBDRM_REQUIRED])
2016
    fi
2017
}
2018
 
2019
gallium_require_llvm() {
2020
    if test "x$MESA_LLVM" = x0; then
2021
        case "$host" in *gnux32) return;; esac
2022
        case "$host_cpu" in
2023
        i*86|x86_64|amd64) AC_MSG_ERROR([LLVM is required to build $1 on x86 and x86_64]);;
2024
        esac
2025
    fi
2026
}
2027
 
2028
gallium_require_drm_loader() {
2029
    if test "x$enable_gallium_loader" = xyes; then
2030
        if test "x$need_pci_id$have_pci_id" = xyesno; then
2031
            AC_MSG_ERROR([Gallium drm loader requires libudev >= $LIBUDEV_REQUIRED or sysfs])
2032
        fi
2033
        enable_gallium_drm_loader=yes
2034
    fi
2035
    if test "x$enable_va" = xyes && test "x$7" != x; then
2036
         GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS $7"
2037
    fi
2038
}
2039
 
2040
require_egl_drm() {
2041
    case "$with_egl_platforms" in
2042
        *drm*)
2043
            ;;
2044
         *)
2045
            AC_MSG_ERROR([--with-egl-platforms=drm is required to build the $1 driver.])
2046
            ;;
2047
    esac
2048
    if test "x$enable_gbm" != xyes; then
2049
            AC_MSG_ERROR([--enable-gbm is required to build the $1 driver.])
2050
    fi
2051
}
2052
 
2053
radeon_llvm_check() {
2054
    if test "x$enable_gallium_llvm" != "xyes"; then
2055
        AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
2056
    fi
2057
    llvm_check_version_for "3" "4" "2" $1
2058
    if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then
2059
        AC_MSG_ERROR([LLVM R600 Target not enabled.  You can enable it when building the LLVM
2060
                      sources with the --enable-experimental-targets=R600
2061
                      configure flag])
2062
    fi
2063
    LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo"
2064
    NEED_RADEON_LLVM=yes
2065
    if test "x$have_libelf" != xyes; then
2066
       AC_MSG_ERROR([$1 requires libelf when using llvm])
2067
    fi
2068
}
2069
 
2070
dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
2071
if test -n "$with_gallium_drivers"; then
2072
    gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
2073
    for driver in $gallium_drivers; do
2074
        case "x$driver" in
2075
        xsvga)
2076
            HAVE_GALLIUM_SVGA=yes
2077
            gallium_require_drm "svga"
2078
            gallium_require_drm_loader
2079
            ;;
2080
        xi915)
2081
            HAVE_GALLIUM_I915=yes
2082
            PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
2083
            gallium_require_drm "Gallium i915"
2084
            gallium_require_drm_loader
2085
            ;;
2086
        xilo)
2087
            HAVE_GALLIUM_ILO=yes
2088
            PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
2089
            gallium_require_drm "Gallium i965/ilo"
2090
            gallium_require_drm_loader
2091
            ;;
2092
        xr300)
2093
            HAVE_GALLIUM_R300=yes
2094
            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2095
            gallium_require_drm "Gallium R300"
2096
            gallium_require_drm_loader
2097
            gallium_require_llvm "Gallium R300"
2098
            ;;
2099
        xr600)
2100
            HAVE_GALLIUM_R600=yes
2101
            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2102
            gallium_require_drm "Gallium R600"
2103
            gallium_require_drm_loader
2104
            if test "x$enable_r600_llvm" = xyes -o "x$enable_opencl" = xyes; then
2105
                radeon_llvm_check "r600g"
2106
                LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
2107
            fi
2108
            if test "x$enable_r600_llvm" = xyes; then
2109
                USE_R600_LLVM_COMPILER=yes;
2110
            fi
2111
            if test "x$enable_opencl" = xyes; then
2112
                LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
2113
            fi
2114
            ;;
2115
        xradeonsi)
2116
            HAVE_GALLIUM_RADEONSI=yes
2117
            PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
2118
            gallium_require_drm "radeonsi"
2119
            gallium_require_drm_loader
2120
            radeon_llvm_check "radeonsi"
2121
            require_egl_drm "radeonsi"
2122
            ;;
2123
        xnouveau)
2124
            HAVE_GALLIUM_NOUVEAU=yes
2125
            PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
2126
            gallium_require_drm "nouveau"
2127
            gallium_require_drm_loader
2128
            ;;
2129
        xfreedreno)
2130
            HAVE_GALLIUM_FREEDRENO=yes
2131
            PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
2132
            gallium_require_drm "freedreno"
2133
            gallium_require_drm_loader
2134
            ;;
2135
        xswrast)
2136
            HAVE_GALLIUM_SOFTPIPE=yes
2137
            if test "x$MESA_LLVM" = x1; then
2138
                HAVE_GALLIUM_LLVMPIPE=yes
2139
            fi
2140
            ;;
2141
        xvc4)
2142
            HAVE_GALLIUM_VC4=yes
2143
            gallium_require_drm "vc4"
2144
            gallium_require_drm_loader
2145
 
2146
            case "$host_cpu" in
2147
                i?86 | x86_64 | amd64)
2148
                USE_VC4_SIMULATOR=yes
2149
                ;;
2150
            esac
2151
            ;;
2152
        *)
2153
            AC_MSG_ERROR([Unknown Gallium driver: $driver])
2154
            ;;
2155
        esac
2156
    done
2157
fi
2158
 
2159
dnl Set LLVM_LIBS - This is done after the driver configuration so
2160
dnl that drivers can add additional components to LLVM_COMPONENTS.
2161
dnl Previously, gallium drivers were updating LLVM_LIBS directly
2162
dnl by calling llvm-config --libs ${DRIVER_LLVM_COMPONENTS}, but
2163
dnl this was causing the same libraries to be appear multiple times
2164
dnl in LLVM_LIBS.
2165
 
2166
if test "x$MESA_LLVM" != x0; then
2167
 
2168
    LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`"
2169
 
2170
    if test "x$enable_llvm_shared_libs" = xyes; then
2171
        dnl We can't use $LLVM_VERSION because it has 'svn' stripped out,
2172
        LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version`
2173
        AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes])
2174
 
2175
        if test "x$llvm_have_one_so" = xyes; then
2176
            dnl LLVM was built using auto*, so there is only one shared object.
2177
            LLVM_LIBS="-l$LLVM_SO_NAME"
2178
        else
2179
            dnl If LLVM was built with CMake, there will be one shared object per
2180
            dnl component.
2181
            AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"],
2182
                    [AC_MSG_ERROR([Could not find llvm shared libraries:
2183
	Please make sure you have built llvm with the --enable-shared option
2184
	and that your llvm libraries are installed in $LLVM_LIBDIR
2185
	If you have installed your llvm libraries to a different directory you
2186
	can use the --with-llvm-prefix= configure flag to specify this directory.
2187
	NOTE: Mesa is attempting to use llvm shared libraries by default.
2188
	If you do not want to build with llvm shared libraries and instead want to
2189
	use llvm static libraries then add --disable-llvm-shared-libs to your configure
2190
	invocation and rebuild.])])
2191
 
2192
           dnl We don't need to update LLVM_LIBS in this case because the LLVM
2193
           dnl install uses a shared object for each component and we have
2194
           dnl already added all of these objects to LLVM_LIBS.
2195
        fi
2196
    else
2197
        AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
2198
        dnl We need to link to llvm system libs when using static libs
2199
        dnl However, only llvm 3.5+ provides --system-libs
2200
        if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
2201
            LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`"
2202
        fi
2203
    fi
2204
fi
2205
 
2206
AM_CONDITIONAL(HAVE_GALLIUM_SVGA, test "x$HAVE_GALLIUM_SVGA" = xyes)
2207
AM_CONDITIONAL(HAVE_GALLIUM_I915, test "x$HAVE_GALLIUM_I915" = xyes)
2208
AM_CONDITIONAL(HAVE_GALLIUM_ILO, test "x$HAVE_GALLIUM_ILO" = xyes)
2209
AM_CONDITIONAL(HAVE_GALLIUM_R300, test "x$HAVE_GALLIUM_R300" = xyes)
2210
AM_CONDITIONAL(HAVE_GALLIUM_R600, test "x$HAVE_GALLIUM_R600" = xyes)
2211
AM_CONDITIONAL(HAVE_GALLIUM_RADEONSI, test "x$HAVE_GALLIUM_RADEONSI" = xyes)
2212
AM_CONDITIONAL(HAVE_GALLIUM_RADEON_COMMON, test "x$HAVE_GALLIUM_R600" = xyes -o \
2213
                                                "x$HAVE_GALLIUM_RADEONSI" = xyes)
2214
AM_CONDITIONAL(HAVE_GALLIUM_NOUVEAU, test "x$HAVE_GALLIUM_NOUVEAU" = xyes)
2215
AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
2216
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
2217
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
2218
AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
2219
 
2220
AM_CONDITIONAL(HAVE_GALLIUM_STATIC_TARGETS, test "x$enable_shared_pipe_drivers" = xno)
2221
 
2222
# NOTE: anything using xcb or other client side libs ends up in separate
2223
#       _CLIENT variables.  The pipe loader is built in two variants,
2224
#       one that is standalone and does not link any x client libs (for
2225
#       use by XA tracker in particular, but could be used in any case
2226
#       where communication with xserver is not desired).
2227
if test "x$enable_gallium_loader" = xyes; then
2228
    if test "x$NEED_WINSYS_XLIB" = xyes; then
2229
        GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
2230
    fi
2231
 
2232
    if test "x$enable_dri" = xyes; then
2233
        GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRI"
2234
    fi
2235
 
2236
    if test "x$enable_gallium_drm_loader" = xyes; then
2237
        GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
2238
        PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
2239
                          pipe_loader_have_xcb=yes, pipe_loader_have_xcb=no)
2240
        if test "x$pipe_loader_have_xcb" = xyes; then
2241
            GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES -DHAVE_PIPE_LOADER_XCB"
2242
            GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_XCB_LIBS $LIBDRM_LIBS"
2243
        fi
2244
    fi
2245
 
2246
    GALLIUM_PIPE_LOADER_CLIENT_DEFINES="$GALLIUM_PIPE_LOADER_CLIENT_DEFINES $GALLIUM_PIPE_LOADER_DEFINES"
2247
    GALLIUM_PIPE_LOADER_CLIENT_LIBS="$GALLIUM_PIPE_LOADER_CLIENT_LIBS $GALLIUM_PIPE_LOADER_LIBS"
2248
 
2249
    AC_SUBST([GALLIUM_PIPE_LOADER_DEFINES])
2250
    AC_SUBST([GALLIUM_PIPE_LOADER_LIBS])
2251
    AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_DEFINES])
2252
    AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_LIBS])
2253
fi
2254
 
2255
AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
2256
AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
2257
AM_CONDITIONAL(HAVE_NOUVEAU_DRI, test x$HAVE_NOUVEAU_DRI = xyes)
2258
AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes)
2259
AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes)
2260
AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes)
2261
 
2262
AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \
2263
                                            "x$HAVE_GALLIUM_R600" = xyes -o \
2264
                                            "x$HAVE_GALLIUM_RADEONSI" = xyes)
2265
AM_CONDITIONAL(NEED_WINSYS_XLIB, test "x$NEED_WINSYS_XLIB" = xyes)
2266
AM_CONDITIONAL(NEED_RADEON_LLVM, test x$NEED_RADEON_LLVM = xyes)
2267
AM_CONDITIONAL(USE_R600_LLVM_COMPILER, test x$USE_R600_LLVM_COMPILER = xyes)
2268
AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes)
2269
AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes)
2270
AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes)
2271
AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1)
2272
AM_CONDITIONAL(USE_VC4_SIMULATOR, test x$USE_VC4_SIMULATOR = xyes)
2273
if test "x$USE_VC4_SIMULATOR" = xyes -a "x$HAVE_GALLIUM_ILO" = xyes; then
2274
    AC_MSG_ERROR([VC4 simulator on x86 replaces i965 driver build, so ilo must be disabled.])
2275
fi
2276
 
2277
AC_SUBST([ELF_LIB])
2278
 
2279
AM_CONDITIONAL(DRICOMMON_NEED_LIBDRM, test "x$DRICOMMON_NEED_LIBDRM" = xyes)
2280
AM_CONDITIONAL(HAVE_LIBDRM, test "x$have_libdrm" = xyes)
2281
AM_CONDITIONAL(HAVE_X11_DRIVER, test "x$enable_xlib_glx" = xyes)
2282
AM_CONDITIONAL(HAVE_OSMESA, test "x$enable_osmesa" = xyes)
2283
AM_CONDITIONAL(HAVE_GALLIUM_OSMESA, test "x$enable_gallium_osmesa" = xyes)
2284
 
2285
AM_CONDITIONAL(HAVE_X86_ASM, test "x$asm_arch" = xx86 -o "x$asm_arch" = xx86_64)
2286
AM_CONDITIONAL(HAVE_X86_64_ASM, test "x$asm_arch" = xx86_64)
2287
AM_CONDITIONAL(HAVE_SPARC_ASM, test "x$asm_arch" = xsparc)
2288
 
2289
AC_SUBST([NINE_MAJOR], 1)
2290
AC_SUBST([NINE_MINOR], 0)
2291
AC_SUBST([NINE_TINY], 0)
2292
AC_SUBST([NINE_VERSION], "$NINE_MAJOR.$NINE_MINOR.$NINE_TINY")
2293
 
2294
AC_SUBST([VDPAU_MAJOR], 1)
2295
AC_SUBST([VDPAU_MINOR], 0)
2296
 
2297
VA_MAJOR=`$PKG_CONFIG --modversion libva | $SED -n 's/\([[^\.]]*\)\..*$/\1/p'`
2298
VA_MINOR=`$PKG_CONFIG --modversion libva | $SED -n 's/.*\.\(.*\)\..*$/\1/p'`
2299
AC_SUBST([VA_MAJOR], $VA_MAJOR)
2300
AC_SUBST([VA_MINOR], $VA_MINOR)
2301
 
2302
AC_SUBST([XVMC_MAJOR], 1)
2303
AC_SUBST([XVMC_MINOR], 0)
2304
 
2305
XA_HEADER="$srcdir/src/gallium/state_trackers/xa/xa_tracker.h"
2306
XA_MAJOR=`grep "#define XA_TRACKER_VERSION_MAJOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MAJOR //'`
2307
XA_MINOR=`grep "#define XA_TRACKER_VERSION_MINOR" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_MINOR //'`
2308
XA_TINY=`grep "#define XA_TRACKER_VERSION_PATCH" $XA_HEADER | $SED 's/^#define XA_TRACKER_VERSION_PATCH //'`
2309
 
2310
AC_SUBST([XA_MAJOR], $XA_MAJOR)
2311
AC_SUBST([XA_MINOR], $XA_MINOR)
2312
AC_SUBST([XA_TINY], $XA_TINY)
2313
AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY")
2314
 
2315
dnl Restore LDFLAGS and CPPFLAGS
2316
LDFLAGS="$_SAVE_LDFLAGS"
2317
CPPFLAGS="$_SAVE_CPPFLAGS"
2318
 
2319
dnl Suppress clang's warnings about unused CFLAGS and CXXFLAGS
2320
if test "x$acv_mesa_CLANG" = xyes; then
2321
    CFLAGS="$CFLAGS -Qunused-arguments"
2322
    CXXFLAGS="$CXXFLAGS -Qunused-arguments"
2323
fi
2324
 
2325
dnl Add user CFLAGS and CXXFLAGS
2326
CFLAGS="$CFLAGS $USER_CFLAGS"
2327
CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
2328
 
2329
dnl Substitute the config
2330
AC_CONFIG_FILES([Makefile
2331
		src/Makefile
2332
		src/egl/drivers/dri2/Makefile
2333
		src/egl/main/Makefile
2334
		src/egl/main/egl.pc
2335
		src/egl/wayland/wayland-drm/Makefile
2336
		src/egl/wayland/wayland-egl/Makefile
2337
		src/egl/wayland/wayland-egl/wayland-egl.pc
2338
		src/gallium/Makefile
2339
		src/gallium/auxiliary/Makefile
2340
		src/gallium/auxiliary/pipe-loader/Makefile
2341
		src/gallium/drivers/freedreno/Makefile
2342
		src/gallium/drivers/i915/Makefile
2343
		src/gallium/drivers/ilo/Makefile
2344
		src/gallium/drivers/llvmpipe/Makefile
2345
		src/gallium/drivers/noop/Makefile
2346
		src/gallium/drivers/nouveau/Makefile
2347
		src/gallium/drivers/r300/Makefile
2348
		src/gallium/drivers/r600/Makefile
2349
		src/gallium/drivers/radeon/Makefile
2350
		src/gallium/drivers/radeonsi/Makefile
2351
		src/gallium/drivers/rbug/Makefile
2352
		src/gallium/drivers/softpipe/Makefile
2353
		src/gallium/drivers/svga/Makefile
2354
		src/gallium/drivers/trace/Makefile
2355
		src/gallium/drivers/vc4/Makefile
2356
		src/gallium/drivers/vc4/kernel/Makefile
2357
		src/gallium/state_trackers/clover/Makefile
2358
		src/gallium/state_trackers/dri/Makefile
2359
		src/gallium/state_trackers/glx/xlib/Makefile
2360
		src/gallium/state_trackers/nine/Makefile
2361
		src/gallium/state_trackers/omx/Makefile
2362
		src/gallium/state_trackers/osmesa/Makefile
2363
		src/gallium/state_trackers/va/Makefile
2364
		src/gallium/state_trackers/vdpau/Makefile
2365
		src/gallium/state_trackers/xa/Makefile
2366
		src/gallium/state_trackers/xvmc/Makefile
2367
		src/gallium/targets/d3dadapter9/Makefile
2368
		src/gallium/targets/d3dadapter9/d3d.pc
2369
		src/gallium/targets/dri/Makefile
2370
		src/gallium/targets/libgl-xlib/Makefile
2371
		src/gallium/targets/omx/Makefile
2372
		src/gallium/targets/opencl/Makefile
2373
		src/gallium/targets/osmesa/Makefile
2374
		src/gallium/targets/osmesa/osmesa.pc
2375
		src/gallium/targets/pipe-loader/Makefile
2376
		src/gallium/targets/va/Makefile
2377
		src/gallium/targets/vdpau/Makefile
2378
		src/gallium/targets/xa/Makefile
2379
		src/gallium/targets/xa/xatracker.pc
2380
		src/gallium/targets/xvmc/Makefile
2381
		src/gallium/tests/trivial/Makefile
2382
		src/gallium/tests/unit/Makefile
2383
		src/gallium/winsys/freedreno/drm/Makefile
2384
		src/gallium/winsys/i915/drm/Makefile
2385
		src/gallium/winsys/intel/drm/Makefile
2386
		src/gallium/winsys/nouveau/drm/Makefile
2387
		src/gallium/winsys/radeon/drm/Makefile
2388
		src/gallium/winsys/svga/drm/Makefile
2389
		src/gallium/winsys/sw/dri/Makefile
2390
		src/gallium/winsys/sw/kms-dri/Makefile
2391
		src/gallium/winsys/sw/null/Makefile
2392
		src/gallium/winsys/sw/wrapper/Makefile
2393
		src/gallium/winsys/sw/xlib/Makefile
2394
		src/gallium/winsys/vc4/drm/Makefile
2395
		src/gbm/Makefile
2396
		src/gbm/main/gbm.pc
2397
		src/glsl/Makefile
2398
		src/glx/Makefile
2399
		src/glx/apple/Makefile
2400
		src/glx/tests/Makefile
2401
		src/gtest/Makefile
2402
		src/loader/Makefile
2403
		src/mapi/Makefile
2404
		src/mapi/es1api/glesv1_cm.pc
2405
		src/mapi/es2api/glesv2.pc
2406
		src/mapi/glapi/gen/Makefile
2407
		src/mesa/Makefile
2408
		src/mesa/gl.pc
2409
		src/mesa/drivers/dri/dri.pc
2410
		src/mesa/drivers/dri/common/Makefile
2411
		src/mesa/drivers/dri/common/xmlpool/Makefile
2412
		src/mesa/drivers/dri/i915/Makefile
2413
		src/mesa/drivers/dri/i965/Makefile
2414
		src/mesa/drivers/dri/Makefile
2415
		src/mesa/drivers/dri/nouveau/Makefile
2416
		src/mesa/drivers/dri/r200/Makefile
2417
		src/mesa/drivers/dri/radeon/Makefile
2418
		src/mesa/drivers/dri/swrast/Makefile
2419
		src/mesa/drivers/osmesa/Makefile
2420
		src/mesa/drivers/osmesa/osmesa.pc
2421
		src/mesa/drivers/x11/Makefile
2422
		src/mesa/main/tests/Makefile
2423
		src/util/Makefile
2424
		src/util/tests/hash_table/Makefile])
2425
 
2426
AC_OUTPUT
2427
 
2428
dnl
2429
dnl Output some configuration info for the user
2430
dnl
2431
echo ""
2432
echo "        prefix:          $prefix"
2433
echo "        exec_prefix:     $exec_prefix"
2434
echo "        libdir:          $libdir"
2435
echo "        includedir:      $includedir"
2436
 
2437
dnl API info
2438
echo ""
2439
echo "        OpenGL:          $enable_opengl (ES1: $enable_gles1 ES2: $enable_gles2)"
2440
 
2441
dnl Driver info
2442
echo ""
2443
case "x$enable_osmesa$enable_gallium_osmesa" in
2444
xnoyes)
2445
        echo "        OSMesa:          lib$OSMESA_LIB (Gallium)"
2446
        ;;
2447
xyesno)
2448
        echo "        OSMesa:          lib$OSMESA_LIB"
2449
        ;;
2450
xnono)
2451
        echo "        OSMesa:          no"
2452
        ;;
2453
esac
2454
 
2455
echo ""
2456
if test "x$enable_dri" != xno; then
2457
        echo "        DRI platform:    $dri_platform"
2458
        if test -z "$DRI_DIRS"; then
2459
            echo "        DRI drivers:     no"
2460
        else
2461
            echo "        DRI drivers:     $DRI_DIRS"
2462
        fi
2463
        echo "        DRI driver dir:  $DRI_DRIVER_INSTALL_DIR"
2464
fi
2465
 
2466
case "x$enable_glx$enable_xlib_glx" in
2467
xyesyes)
2468
    echo "        GLX:             Xlib-based"
2469
    ;;
2470
xyesno)
2471
    echo "        GLX:             DRI-based"
2472
    ;;
2473
*)
2474
    echo "        GLX:             $enable_glx"
2475
    ;;
2476
esac
2477
 
2478
dnl EGL
2479
echo ""
2480
echo "        EGL:             $enable_egl"
2481
if test "$enable_egl" = yes; then
2482
    echo "        EGL platforms:   $egl_platforms"
2483
 
2484
    egl_drivers=""
2485
    if test "x$HAVE_EGL_DRIVER_DRI2" != "x"; then
2486
        egl_drivers="$egl_drivers builtin:egl_dri2"
2487
    fi
2488
 
2489
    echo "        EGL drivers:    $egl_drivers"
2490
fi
2491
 
2492
echo ""
2493
if test "x$MESA_LLVM" = x1; then
2494
    echo "        llvm:            yes"
2495
    echo "        llvm-config:     $LLVM_CONFIG"
2496
    echo "        llvm-version:    $LLVM_VERSION"
2497
else
2498
    echo "        llvm:            no"
2499
fi
2500
 
2501
echo ""
2502
if test -n "$with_gallium_drivers"; then
2503
    echo "        Gallium:         yes"
2504
else
2505
    echo "        Gallium:         no"
2506
fi
2507
 
2508
dnl Shader cache
2509
echo ""
2510
echo "        Shader cache:    $enable_shader_cache"
2511
if test "x$enable_shader_cache" = "xyes"; then
2512
    echo "        With SHA1 from:  $with_sha1"
2513
fi
2514
 
2515
dnl Libraries
2516
echo ""
2517
echo "        Shared libs:     $enable_shared"
2518
echo "        Static libs:     $enable_static"
2519
echo "        Shared-glapi:    $enable_shared_glapi"
2520
 
2521
dnl Compiler options
2522
# cleanup the CFLAGS/CXXFLAGS/DEFINES vars
2523
cflags=`echo $CFLAGS | \
2524
    $SED 's/^ *//;s/  */ /;s/ *$//'`
2525
cxxflags=`echo $CXXFLAGS | \
2526
    $SED 's/^ *//;s/  */ /;s/ *$//'`
2527
defines=`echo $DEFINES | $SED 's/^ *//;s/  */ /;s/ *$//'`
2528
echo ""
2529
echo "        CFLAGS:          $cflags"
2530
echo "        CXXFLAGS:        $cxxflags"
2531
echo "        Macros:          $defines"
2532
echo ""
2533
if test "x$MESA_LLVM" = x1; then
2534
    echo "        LLVM_CFLAGS:     $LLVM_CFLAGS"
2535
    echo "        LLVM_CXXFLAGS:   $LLVM_CXXFLAGS"
2536
    echo "        LLVM_CPPFLAGS:   $LLVM_CPPFLAGS"
2537
    echo "        LLVM_LDFLAGS:    $LLVM_LDFLAGS"
2538
    echo ""
2539
fi
2540
echo "        PYTHON2:         $PYTHON2"
2541
 
2542
echo ""
2543
echo "        Run '${MAKE-make}' to build Mesa"
2544
echo ""