configure.ac 14.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#  Copyright 2005 Adam Jackson.
#
#  Permission is hereby granted, free of charge, to any person obtaining a
#  copy of this software and associated documentation files (the "Software"),
#  to deal in the Software without restriction, including without limitation
#  on the rights to use, copy, modify, merge, publish, distribute, sub
#  license, and/or sell copies of the Software, and to permit persons to whom
#  the Software is furnished to do so, subject to the following conditions:
#
#  The above copyright notice and this permission notice (including the next
#  paragraph) shall be included in all copies or substantial portions of the
#  Software.
#
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
#  ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Process this file with autoconf to produce a configure script

23
AC_PREREQ([2.60])
Eric Anholt's avatar
Eric Anholt committed
24
AC_INIT([intel-gpu-tools],
25
	[1.20],
26
	[https://bugs.freedesktop.org/enter_bug.cgi?product=DRI&component=IGT],
Ben Widawsky's avatar
Ben Widawsky committed
27
	[intel-gpu-tools])
28 29

AC_CONFIG_SRCDIR([Makefile.am])
30 31 32
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
33
AC_USE_SYSTEM_EXTENSIONS
34
AC_SYS_LARGEFILE
35
AC_GNU_SOURCE
36
AC_CANONICAL_HOST
37
AC_CANONICAL_TARGET
38

39
AM_INIT_AUTOMAKE([1.12 foreign subdir-objects dist-bzip2])
40
AM_PATH_PYTHON([3],, [:])
41

42
AC_PROG_CC
43
AC_PROG_LEX
44 45
AC_PROG_YACC

46 47 48 49 50
# check for gtk-doc
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
],[
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
51
enable_gtk_doc=no
52 53
])

54 55 56
# check for rst2man for generating man pages
AC_CHECK_PROG(RST2MAN, rst2man, yes, no)
AM_CONDITIONAL(HAVE_RST2MAN, [test "x$RST2MAN" = xyes])
57

58
# Checks for functions, headers, structures, etc.
59
AC_HEADER_STDC
60
AC_CHECK_HEADERS([termios.h linux/kd.h sys/kd.h libgen.h sys/io.h])
61
AC_CHECK_MEMBERS([struct sysinfo.totalram],[],[],[AC_INCLUDES_DEFAULT
Ben Widawsky's avatar
Ben Widawsky committed
62 63
		  #include <sys/sysinfo.h>
		  ])
64 65
AC_CHECK_TYPES([sighandler_t],[],[],[AC_INCLUDES_DEFAULT
#include <signal.h>])
66
AC_CHECK_FUNCS([swapctl])
67
AC_CHECK_FUNCS([asprintf])
68
AX_GCC_FUNC_ATTRIBUTE([constructor])
69

70 71 72 73 74 75 76 77 78 79 80 81 82 83
dnl Check for POSIX timers
AC_CHECK_FUNCS(timer_create, [], [
	AC_CHECK_LIB(rt, timer_create, [
		AC_DEFINE(HAVE_TIMER_CREATE, 1)
		TIMER_LIBS="-lrt"
		], [
		AC_CHECK_LIB(pthread, timer_create, [
			AC_DEFINE(HAVE_TIMER_CREATE, 1)
			TIMER_LIBS="-lpthread"
		])
	])
])
AC_SUBST(TIMER_LIBS)

84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
dnl Check for CPUID
cpuid="yes"
AC_TRY_LINK([
	#include <cpuid.h>
	#include <stddef.h>
	],
	[
	int eax, ebx, ecx, edx;
	if (__get_cpuid_max(0, NULL) < 4)
		return 0;
	__cpuid_count(4, 0, eax, ebx, ecx, edx);
	],
	[cpuid="yes"],
	[cpuid="no"]
)
if test "x$cpuid" = "xyes"; then
	AC_DEFINE(HAVE_CPUID_H, 1, [Found a useable cpuid.h])
fi

103
# Initialize libtool
104 105
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
106

107
# Require X.Org macros 1.16 or later for XORG_TESTSET_CFLAG
108
m4_ifndef([XORG_MACROS_VERSION],
109
	  [m4_fatal([must install xorg-macros 1.16 or later before running autoconf/autogen])])
110
XORG_MACROS_VERSION(1.16)
111 112
XORG_DEFAULT_OPTIONS

113
# warning flags for the assembler. We can't quite use CWARNFLAGS for it yet as
114
# it generates waaaay too many warnings.
115 116
ASSEMBLER_WARN_CFLAGS=""
if test "x$GCC" = "xyes"; then
117
	ASSEMBLER_WARN_CFLAGS="-Wall -Wstrict-prototypes \
118 119 120 121 122
	-Wmissing-prototypes -Wmissing-declarations \
	-Wnested-externs -fno-strict-aliasing"
fi
AC_SUBST(ASSEMBLER_WARN_CFLAGS)

123
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.82])
124
PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
125
PKG_CHECK_MODULES(KMOD, [libkmod])
126 127 128 129 130
PKG_CHECK_MODULES(PROCPS, [libprocps], [procps=yes], [procps=no])
AM_CONDITIONAL(HAVE_PROCPS, [test "x$procps" = xyes])
if test x"$procps" = xyes; then
	AC_DEFINE(HAVE_PROCPS,1,[Enable process managment without shelling out])
fi
131 132 133 134 135
PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])

if test x$have_valgrind = xyes; then
	AC_DEFINE(HAVE_VALGRIND, 1, [Enable valgrind annotation support.])
fi
136 137

case "$target_cpu" in
138
	x86*|i?86)
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
		build_x86="yes"
		;;
	*)
		build_x86="no"
		;;
esac

if test x"$build_x86" = xyes; then
	PKG_CHECK_MODULES(OVERLAY_XVLIB, [xv x11 xext dri2proto >= 2.6], enable_overlay_xvlib=yes, enable_overlay_xvlib=no)
	PKG_CHECK_MODULES(OVERLAY_XLIB, [cairo-xlib dri2proto >= 2.6], enable_overlay_xlib=yes, enable_overlay_xlib=no)
	AS_IF([test x"$LEX" != "x:" -a x"$YACC" != xyacc],
		[enable_assembler=yes],
		[enable_assembler=no])
else
	enable_overlay_xvlib="no"
	enable_overlay_xlib="no"
	enable_assembler="no"
	BUILD_SHADER_DEBUGGER="no"
fi
AM_CONDITIONAL(BUILD_X86, [test "x$build_x86" = xyes])

AM_CONDITIONAL(BUILD_ASSEMBLER, [test "x$enable_assembler" = xyes])
161

162 163 164 165 166 167 168 169 170
AM_CONDITIONAL(BUILD_OVERLAY_XVLIB, [test "x$enable_overlay_xvlib" = xyes])
AM_CONDITIONAL(BUILD_OVERLAY_XLIB, [test "x$enable_overlay_xlib" = xyes])
AM_CONDITIONAL(BUILD_OVERLAY, [test "x$enable_overlay_xlib" = xyes -o "x$enable_overlay_xvlib"])
if test x$enable_overlay_xvlib = xyes; then
	AC_DEFINE(HAVE_OVERLAY_XVLIB, 1, [Enable XV backend])
fi
if test x$enable_overlay_xlib = xyes; then
	AC_DEFINE(HAVE_OVERLAY_XLIB, 1, [Enable X backend])
fi
171
PKG_CHECK_MODULES(XRANDR, xrandr >= 1.3, AC_DEFINE(HAVE_XRANDR, 1, [Have libXrandr]), [have_xrandr=no])
172

173
# for testdisplay
174
PKG_CHECK_MODULES(CAIRO, [cairo >= 1.12.0])
175
PKG_CHECK_MODULES(LIBUDEV, [libudev], [udev=yes], [udev=no])
176
AM_CONDITIONAL(HAVE_UDEV, [test "x$udev" = xyes])
177 178 179
if test x"$udev" = xyes; then
	AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection])
fi
180 181 182 183
PKG_CHECK_MODULES(GLIB, [glib-2.0], [glib=yes], [glib=no])
if test x"$glib" = xyes; then
	AC_DEFINE(HAVE_GLIB,1,[Enable glib support])
fi
184 185
PKG_CHECK_MODULES(GSL, [gsl], [gsl=yes], [gsl=no])
AM_CONDITIONAL(HAVE_GSL, [test "x$gsl" = xyes])
186

187
# for chamelium
188 189 190 191
AC_ARG_ENABLE(chamelium, AS_HELP_STRING([--enable-chamelium],
	      [Enable building of chamelium libraries and tests (default: no)]),
	      [if test x$enableval = xyes; then enable_chamelium=yes; fi],
	      [enable_chamelium=no])
192 193
AM_CONDITIONAL(HAVE_CHAMELIUM, [test "x$enable_chamelium" = xyes])
if test "x$enable_chamelium" = xyes; then
194 195 196 197 198 199 200 201 202 203 204 205 206
	PKG_CHECK_MODULES(XMLRPC, xmlrpc xmlrpc_util xmlrpc_client,
		          [xmlrpc=yes], [xmlrpc=no])
	if test x"$xmlrpc" != xyes; then
		AC_CHECK_PROG([XMLRPC_C_CONFIG], [xmlrpc-c-config], [yes], [no])
		if test x"$XMLRPC_C_CONFIG" = xyes; then
			XMLRPC_CFLAGS=$(xmlrpc-c-config client --cflags)
			XMLRPC_LIBS=$(xmlrpc-c-config client --libs)
			AC_SUBST(XMLRPC_CFLAGS)
			AC_SUBST(XMLRPC_LIBS)
		else
			AC_MSG_ERROR([Failed to find xmlrpc, required by chamelium.])
		fi
	fi
207
	PKG_CHECK_MODULES(PIXMAN, pixman-1, [],
208
			  [AC_MSG_ERROR([Failed to find pixman, required by chamelium.])])
209
	if test x"$udev" != xyes; then
210
		AC_MSG_ERROR([Failed to find udev, required by chamelium.])
211
	fi
212
	if test x"$glib" != xyes; then
213
		AC_MSG_ERROR([Failed to find glib, required by chamelium.])
214
	fi
215
	if test x"$gsl" != xyes; then
216
		AC_MSG_ERROR([Failed to find gsl, required by chamelium.])
217 218
	fi

219 220
	AC_DEFINE(HAVE_CHAMELIUM, 1, [Enable Chamelium support])
fi
221

222 223 224
PKG_CHECK_MODULES(ALSA, [alsa], [alsa=yes], [alsa=no])
AM_CONDITIONAL(HAVE_ALSA, [test "x$alsa" = xyes])

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241
# for audio
AC_ARG_ENABLE(audio, AS_HELP_STRING([--enable-audio],
	      [Enable building of audio tests (default: no)]),
	      [if test x$enableval = xyes; then enable_audio=yes; fi],
	      [enable_audio=no])
AM_CONDITIONAL(HAVE_AUDIO, [test "x$enable_audio" = xyes])
if test "x$enable_audio" = xyes; then
	if test x"$alsa" != xyes; then
		AC_MSG_ERROR([Failed to find ALSA, required by audio.])
	fi
	if test x"$gsl" != xyes; then
		AC_MSG_ERROR([Failed to find gsl, required by audio.])
	fi

	AC_DEFINE(HAVE_AUDIO, 1, [Enable Audio support])
fi

242 243 244
# -----------------------------------------------------------------------------
#			Configuration options
# -----------------------------------------------------------------------------
245 246 247 248
AC_ARG_ENABLE(intel, AS_HELP_STRING([--disable-intel],
	      [Enable building of intel specific parts (default: auto)]),
	      [INTEL=$enableval], [INTEL=auto])
if test "x$INTEL" = xauto; then
249
	PKG_CHECK_EXISTS([libdrm_intel >= 2.4.75], [INTEL=yes], [INTEL=no])
250 251
fi
if test "x$INTEL" = xyes; then
252
	PKG_CHECK_MODULES(DRM_INTEL, [libdrm_intel >= 2.4.75])
253 254
	AC_DEFINE(HAVE_LIBDRM_INTEL, 1, [Have intel support])
else
255 256
	DRM_INTEL_CFLAGS=-I$\(top_srcdir\)/lib/stubs/drm/
	DRM_INTEL_LIBS=
257
fi
258 259 260 261 262
DRM_CFLAGS="$DRM_CFLAGS $DRM_INTEL_CFLAGS"
DRM_LIBS="$DRM_LIBS $DRM_INTEL_LIBS"
AC_SUBST([DRM_CFLAGS])
AC_SUBST([DRM_LIBS])

263 264
AM_CONDITIONAL(HAVE_LIBDRM_INTEL, [test "x$INTEL" = xyes])

265 266 267 268 269 270 271
AC_ARG_ENABLE(amdgpu, AS_HELP_STRING([--disable-amdgpu],
	      [Enable building of amdgpu tests (default: auto)]),
	      [AMDGPU=$enableval], [AMDGPU=auto])
if test "x$AMDGPU" = xauto; then
	PKG_CHECK_EXISTS([libdrm_amdgpu], [AMDGPU=yes], [AMDGPU=no])
fi
if test "x$AMDGPU" = xyes; then
272
	PKG_CHECK_MODULES(DRM_AMDGPU, [libdrm_amdgpu >= 2.4.76])
273 274 275 276
	AC_DEFINE(HAVE_LIBDRM_AMDGPU, 1, [Have amdgpu support])
fi
AM_CONDITIONAL(HAVE_LIBDRM_AMDGPU, [test "x$AMDGPU" = xyes])

277 278
# for dma-buf tests
AC_ARG_ENABLE(nouveau, AS_HELP_STRING([--disable-nouveau],
279 280 281 282 283
	      [Enable use of nouveau API for prime tests (default: auto)]),
	      [NOUVEAU=$enableval], [NOUVEAU=auto])
if test "x$NOUVEAU" = xauto; then
	PKG_CHECK_EXISTS([libdrm_nouveau >= 2.4.33], [NOUVEAU=yes], [NOUVEAU=no])
fi
284 285
if test "x$NOUVEAU" = xyes; then
	PKG_CHECK_MODULES(DRM_NOUVEAU, [libdrm_nouveau >= 2.4.33])
286
	AC_DEFINE(HAVE_LIBDRM_NOUVEAU, 1, [Have nouveau support])
287
fi
288
AM_CONDITIONAL(HAVE_LIBDRM_NOUVEAU, [test "x$NOUVEAU" = xyes])
289

290 291 292 293 294 295 296 297
AC_ARG_ENABLE(vc4, AS_HELP_STRING([--disable-vc4],
	      [Enable building of vc4 tests (default: auto)]),
	      [VC4=$enableval], [VC4=auto])
if test "x$VC4" = xauto; then
	PKG_CHECK_EXISTS([libdrm_vc4], [VC4=yes], [VC4=no])
fi
if test "x$VC4" = xyes; then
	PKG_CHECK_MODULES(DRM_VC4, [libdrm_vc4])
298
	AC_DEFINE(HAVE_LIBDRM_VC4, 1, [Have vc4 support])
299
fi
300
AM_CONDITIONAL(HAVE_LIBDRM_VC4, [test "x$VC4" = xyes])
301

302
# Define a configure option for the shader debugger
303
AC_ARG_ENABLE(shader-debugger, AS_HELP_STRING([--enable-shader-debugger],
Ben Widawsky's avatar
Ben Widawsky committed
304
	      [Enable shader debugging support [autodetected]]),
305
	      [BUILD_SHADER_DEBUGGER="$enableval"], [BUILD_SHADER_DEBUGGER=no])
306

307
# Shader debugger depends on python3, intel-genasm and objcopy
308
if test "x$BUILD_SHADER_DEBUGGER" != xno; then
309
	# Check that the assembler is built
310
	if test "x$enable_assembler" = xno; then
311
		BUILD_SHADER_DEBUGGER=no
312 313 314
		if test "x$BUILD_SHADER_DEBUGGER" = xyes; then
			AC_MSG_ERROR([Shader debugger requested, but assembler not enabled.])
		fi
315 316
	fi

Ben Widawsky's avatar
Ben Widawsky committed
317 318 319 320 321 322 323
	# Check Python 3 is installed
	if test "$PYTHON" = ":" ; then
		if test "x$BUILD_SHADER_DEBUGGER" = xyes; then
			AC_MSG_ERROR([Shader debugger requested, python version 3 not found.])
		else
			BUILD_SHADER_DEBUGGER=no
		fi
324
	fi
325

Ben Widawsky's avatar
Ben Widawsky committed
326 327 328 329 330 331 332 333
	# Check for the objcopy GNU binary utiliy command
	AC_PATH_PROGS([OBJCOPY], objcopy)
	if test -z "$OBJCOPY" ; then
		if test "x$BUILD_SHADER_DEBUGGER" = xyes; then
			AC_MSG_ERROR([Shader debugger requested, but objcopy command not found.])
		else
			BUILD_SHADER_DEBUGGER=no
		fi
334
	fi
335 336
fi

337
AM_CONDITIONAL(BUILD_SHADER_DEBUGGER, [test "x$BUILD_SHADER_DEBUGGER" != xno])
338
AS_IF([test "x$BUILD_SHADER_DEBUGGER" != xno],
339 340
      [enable_debugger=yes], [enable_debugger=no])

341 342 343 344 345 346 347 348 349
AC_ARG_WITH(libunwind,
	    AS_HELP_STRING([--without-libunwind],
			   [Build tests without libunwind support]),
	    [], [with_libunwind=yes])
if test "x$with_libunwind" = xyes; then
	PKG_CHECK_MODULES(LIBUNWIND, libunwind, AC_DEFINE(HAVE_LIBUNWIND, 1, [libunwind support]),
			  AC_MSG_ERROR([libunwind not found. Use --without-libunwind to disable libunwind support.]))
fi

350 351 352 353 354 355
# enable debug symbols
AC_ARG_ENABLE(debug,
	      AS_HELP_STRING([--disable-debug],
			     [Build tests without debug symbols]),
	      [], [enable_debug=yes])

356 357 358 359 360
AC_ARG_ENABLE(werror,
	      AS_HELP_STRING([--enable-werror],
			     [Fail on warnings]),
	      [], [enable_werror=no])

361 362 363 364 365 366 367
if test "x$enable_debug" = xyes; then
	AS_COMPILER_FLAG([-g3], [DEBUG_CFLAGS="-g3"], [DEBUG_CFLAGS="-g"])
	AS_COMPILER_FLAG([-Og], [DEBUG_CFLAGS+=" -Og -Wno-maybe-uninitialized"], # disable maybe-uninitialized due to false positives
			 [DEBUG_CFLAGS+=" -O0"])
	AC_SUBST([DEBUG_CFLAGS])
fi

368 369 370 371
if test "x$enable_werror" = xyes; then
	AS_COMPILER_FLAG([-Werror], [WERROR_CFLAGS="-Werror"])
fi

372 373 374 375 376
# prevent relinking the world on every commit for developers
AC_ARG_ENABLE(git-hash,
	      AS_HELP_STRING([--disable-git-hash],
			     [Do not use git hash in version]),
	      [git_hash=$enableval], [git_hash=yes])
377
AC_SUBST(GIT_HASH, [$git_hash])
378

379 380
# -----------------------------------------------------------------------------

381 382 383 384
# To build multithread code, gcc uses -pthread, Solaris Studio cc uses -mt
XORG_TESTSET_CFLAG([THREAD_CFLAGS], [-pthread], [-mt])
AC_SUBST([THREAD_CFLAGS])

385 386 387 388 389 390 391 392
AC_ARG_ENABLE(tests,
	      AS_HELP_STRING([--disable-tests],
	      [Disable tests build (default: enabled)]),
	      [BUILD_TESTS=$enableval], [BUILD_TESTS="yes"])
if test "x$BUILD_TESTS" = xyes; then
	AC_DEFINE(BUILD_TESTS, 1, [Build tests])
fi
AM_CONDITIONAL(BUILD_TESTS, [test "x$BUILD_TESTS" = xyes])
393
AC_DEFINE_UNQUOTED(TARGET_CPU_PLATFORM, ["$host_cpu"], [Target platform])
394

395
files="broadwell cherryview haswell ivybridge sandybridge valleyview skylake"
396
for file in $files; do
397
	REGISTER_FILES="$REGISTER_FILES $file `cat $srcdir/tools/registers/$file`"
398
done
399 400
REGISTER_FILES=`echo $REGISTER_FILES | tr ' ' '\n' | sort -u | tr '\n' ' '`
AC_SUBST(REGISTER_FILES)
401

402
AC_CONFIG_FILES([
Ben Widawsky's avatar
Ben Widawsky committed
403 404
		 Makefile
		 benchmarks/Makefile
405
		 benchmarks/ezbench.d/Makefile
406
		 benchmarks/wsim/Makefile
407 408 409 410
		 docs/Makefile
		 docs/reference/Makefile
		 docs/reference/intel-gpu-tools/Makefile
		 docs/reference/intel-gpu-tools/version.xml
Ben Widawsky's avatar
Ben Widawsky committed
411
		 lib/Makefile
412
		 lib/tests/Makefile
Ben Widawsky's avatar
Ben Widawsky committed
413 414
		 man/Makefile
		 scripts/Makefile
415
		 tests/Makefile
416
		 tests/intel-ci/Makefile
Ben Widawsky's avatar
Ben Widawsky committed
417
		 tools/Makefile
418
		 tools/null_state_gen/Makefile
Thomas Wood's avatar
Thomas Wood committed
419
		 tools/registers/Makefile
Ben Widawsky's avatar
Ben Widawsky committed
420 421
		 debugger/Makefile
		 debugger/system_routine/Makefile
422 423 424 425
		 assembler/Makefile
		 assembler/doc/Makefile
		 assembler/test/Makefile
		 assembler/intel-gen4asm.pc
426
		 overlay/Makefile
427 428 429
		 ])

AC_CONFIG_FILES([tools/intel_aubdump], [chmod +x tools/intel_aubdump])
430

431
AC_OUTPUT
432

433 434 435 436
# Print a summary of the compilation
echo ""
echo "Intel GPU tools"

437 438 439
echo ""
echo " • Tests:"
echo "       Build tests        : ${BUILD_TESTS}"
440
echo "       Chamelium tests    : ${enable_chamelium}"
441
echo "       Audio tests        : ${enable_audio}"
442
echo "       Compile prime tests: ${NOUVEAU}"
443
echo "       Print stack traces : ${with_libunwind}"
444
echo "       Debug flags        : ${DEBUG_CFLAGS}"
445 446
echo ""
echo " • Tools:"
447 448
echo "       Assembler          : ${enable_assembler}"
echo "       Debugger           : ${enable_debugger}"
449
echo "       Overlay            : X: ${enable_overlay_xlib}, Xv: ${enable_overlay_xvlib}"
450
echo "       x86-specific tools : ${build_x86}"
451
echo ""
452
echo " • API-Documentation      : ${enable_gtk_doc}"
453
echo " • Fail on warnings       : ${enable_werror}"
454
echo ""
455

456
# vim: set ft=config ts=8 sw=8 tw=0 noet :