configure.ac 11 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])
24
AC_INIT([igt-gpu-tools],
25
	[1.23],
26
	[https://bugs.freedesktop.org/enter_bug.cgi?product=DRI&component=IGT],
27
	[igt-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
# Checks for functions, headers, structures, etc.
47
AC_HEADER_STDC
48
AC_CHECK_HEADERS([termios.h linux/kd.h sys/kd.h libgen.h sys/io.h])
49
AC_CHECK_MEMBERS([struct sysinfo.totalram],[],[],[AC_INCLUDES_DEFAULT
Ben Widawsky's avatar
Ben Widawsky committed
50 51
		  #include <sys/sysinfo.h>
		  ])
52 53
AC_CHECK_TYPES([sighandler_t],[],[],[AC_INCLUDES_DEFAULT
#include <signal.h>])
54
AC_CHECK_FUNCS([swapctl])
55
AC_CHECK_FUNCS([asprintf])
56
AX_GCC_FUNC_ATTRIBUTE([constructor])
57

58 59 60 61 62 63 64
dnl Check for POSIX timers
AC_CHECK_FUNCS(timer_create, [], [
	AC_CHECK_LIB(rt, timer_create, [
		TIMER_LIBS="-lrt"
		], [
		AC_CHECK_LIB(pthread, timer_create, [
			TIMER_LIBS="-lpthread"
65 66
		], [
		AC_MSG_ERROR([Failed to find library containing timer_create.])
67 68 69 70 71
		])
	])
])
AC_SUBST(TIMER_LIBS)

72 73 74
dnl Check for memfd_create
AC_CHECK_FUNCS(memfd_create)

75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
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

94
# Initialize libtool
95 96
AC_DISABLE_STATIC
AC_PROG_LIBTOOL
97

98
# Require X.Org macros 1.16 or later for XORG_TESTSET_CFLAG
99
m4_ifndef([XORG_MACROS_VERSION],
100
	  [m4_fatal([must install xorg-macros 1.16 or later before running autoconf/autogen])])
101
XORG_MACROS_VERSION(1.16)
102 103
XORG_DEFAULT_OPTIONS

104
PKG_CHECK_MODULES(DRM, [libdrm >= 2.4.82])
105
PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
106
PKG_CHECK_MODULES(KMOD, [libkmod])
107
PKG_CHECK_MODULES(PROCPS, [libprocps])
108
PKG_CHECK_MODULES(LIBUNWIND, [libunwind])
109
PKG_CHECK_MODULES(LIBDW, [libdw])
110 111 112 113 114
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
115 116

case "$target_cpu" in
117
	x86*|i?86)
118 119 120 121 122 123 124 125 126
		build_x86="yes"
		;;
	*)
		build_x86="no"
		;;
esac

AM_CONDITIONAL(BUILD_X86, [test "x$build_x86" = xyes])

127 128
AM_CONDITIONAL(BUILD_OVERLAY_XVLIB, [test "x$enable_overlay_xvlib" = xyes])
AM_CONDITIONAL(BUILD_OVERLAY_XLIB, [test "x$enable_overlay_xlib" = xyes])
129
AM_CONDITIONAL(BUILD_OVERLAY, [test "x$enable_overlay_xlib" = xyes -o "x$enable_overlay_xvlib" = "xyes"])
130 131 132 133 134 135
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
136
PKG_CHECK_MODULES(XRANDR, xrandr >= 1.3, AC_DEFINE(HAVE_XRANDR, 1, [Have libXrandr]), [have_xrandr=no])
137

138
# for testdisplay
139 140 141 142
PKG_CHECK_MODULES(CAIRO, [cairo >= 1.17.2], [],
	[AC_MSG_WARN([Cairo too old, HDR formats not available. Upgrade to cairo 1.17.2])
	PKG_CHECK_MODULES(CAIRO, [cairo >= 1.12.0])]
)
143
PKG_CHECK_MODULES(LIBUDEV, [libudev])
Petri Latvala's avatar
Petri Latvala committed
144
PKG_CHECK_MODULES(GLIB, [glib-2.0])
145 146 147 148 149
PKG_CHECK_MODULES(PIXMAN, [pixman-1 >= 0.36.0], [], [
	AC_MSG_WARN([Pixman too old, HDR formats not available. Upgrade to pixman 0.36.0])
	PKG_CHECK_MODULES(PIXMAN, [pixman-1])
])

150 151
PKG_CHECK_MODULES(GSL, [gsl], [gsl=yes], [gsl=no])
AM_CONDITIONAL(HAVE_GSL, [test "x$gsl" = xyes])
152

153
# for chamelium
154 155 156 157
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])
158 159
AM_CONDITIONAL(HAVE_CHAMELIUM, [test "x$enable_chamelium" = xyes])
if test "x$enable_chamelium" = xyes; then
160 161 162 163 164 165 166 167 168 169 170 171 172
	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
173
	if test x"$gsl" != xyes; then
174
		AC_MSG_ERROR([Failed to find gsl, required by chamelium.])
175 176
	fi

177 178
	AC_DEFINE(HAVE_CHAMELIUM, 1, [Enable Chamelium support])
fi
179

180 181 182
PKG_CHECK_MODULES(ALSA, [alsa], [alsa=yes], [alsa=no])
AM_CONDITIONAL(HAVE_ALSA, [test "x$alsa" = xyes])

183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
# 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

200 201 202
# -----------------------------------------------------------------------------
#			Configuration options
# -----------------------------------------------------------------------------
203 204 205 206
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
207
	PKG_CHECK_EXISTS([libdrm_intel >= 2.4.75], [INTEL=yes], [INTEL=no])
208 209
fi
if test "x$INTEL" = xyes; then
210
	PKG_CHECK_MODULES(DRM_INTEL, [libdrm_intel >= 2.4.75])
211 212
	AC_DEFINE(HAVE_LIBDRM_INTEL, 1, [Have intel support])
else
213 214
	DRM_INTEL_CFLAGS=-I$\(top_srcdir\)/lib/stubs/drm/
	DRM_INTEL_LIBS=
215
fi
216 217 218 219 220
DRM_CFLAGS="$DRM_CFLAGS $DRM_INTEL_CFLAGS"
DRM_LIBS="$DRM_LIBS $DRM_INTEL_LIBS"
AC_SUBST([DRM_CFLAGS])
AC_SUBST([DRM_LIBS])

221 222
AM_CONDITIONAL(HAVE_LIBDRM_INTEL, [test "x$INTEL" = xyes])

223 224 225 226
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
227
	PKG_CHECK_EXISTS([libdrm_amdgpu >= 2.4.81], [AMDGPU=yes], [AMDGPU=no])
228 229
fi
if test "x$AMDGPU" = xyes; then
230
	PKG_CHECK_MODULES(DRM_AMDGPU, [libdrm_amdgpu >= 2.4.81])
231 232 233 234
	AC_DEFINE(HAVE_LIBDRM_AMDGPU, 1, [Have amdgpu support])
fi
AM_CONDITIONAL(HAVE_LIBDRM_AMDGPU, [test "x$AMDGPU" = xyes])

235 236
# for dma-buf tests
AC_ARG_ENABLE(nouveau, AS_HELP_STRING([--disable-nouveau],
237 238 239 240 241
	      [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
242 243
if test "x$NOUVEAU" = xyes; then
	PKG_CHECK_MODULES(DRM_NOUVEAU, [libdrm_nouveau >= 2.4.33])
244
	AC_DEFINE(HAVE_LIBDRM_NOUVEAU, 1, [Have nouveau support])
245
fi
246
AM_CONDITIONAL(HAVE_LIBDRM_NOUVEAU, [test "x$NOUVEAU" = xyes])
247

248 249 250 251 252 253
# enable debug symbols
AC_ARG_ENABLE(debug,
	      AS_HELP_STRING([--disable-debug],
			     [Build tests without debug symbols]),
	      [], [enable_debug=yes])

254 255 256 257 258
AC_ARG_ENABLE(werror,
	      AS_HELP_STRING([--enable-werror],
			     [Fail on warnings]),
	      [], [enable_werror=no])

259 260 261
# disable "warning: pointer of type ‘void *’ used in arithmetic"
AS_COMPILER_FLAG([-Wno-pointer-arith], [CWARNFLAGS+=" -Wno-pointer-arith"], [])

262 263 264 265 266 267 268
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

269 270 271 272
if test "x$enable_werror" = xyes; then
	AS_COMPILER_FLAG([-Werror], [WERROR_CFLAGS="-Werror"])
fi

273 274 275 276 277
# 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])
278
AC_SUBST(GIT_HASH, [$git_hash])
279

280 281
# -----------------------------------------------------------------------------

282 283 284 285
# To build multithread code, gcc uses -pthread, Solaris Studio cc uses -mt
XORG_TESTSET_CFLAG([THREAD_CFLAGS], [-pthread], [-mt])
AC_SUBST([THREAD_CFLAGS])

286 287 288 289 290 291 292 293
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])
294
AC_DEFINE_UNQUOTED(TARGET_CPU_PLATFORM, ["$host_cpu"], [Target platform])
295

296
files="broadwell cherryview haswell ivybridge sandybridge valleyview skylake"
297
for file in $files; do
298
	REGISTER_FILES="$REGISTER_FILES $file `cat $srcdir/tools/registers/$file`"
299
done
300 301
REGISTER_FILES=`echo $REGISTER_FILES | tr ' ' '\n' | sort -u | tr '\n' ' '`
AC_SUBST(REGISTER_FILES)
302

303
AC_CONFIG_FILES([
Ben Widawsky's avatar
Ben Widawsky committed
304 305 306 307
		 Makefile
		 benchmarks/Makefile
		 lib/Makefile
		 scripts/Makefile
308
		 tests/Makefile
309
		 tests/intel-ci/Makefile
Ben Widawsky's avatar
Ben Widawsky committed
310
		 tools/Makefile
311
		 tools/null_state_gen/Makefile
Thomas Wood's avatar
Thomas Wood committed
312
		 tools/registers/Makefile
313
		 overlay/Makefile
314 315 316
		 ])

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

318
AC_OUTPUT
319

320 321 322 323
# Print a summary of the compilation
echo ""
echo "Intel GPU tools"

324 325 326
echo ""
echo " • Tests:"
echo "       Build tests        : ${BUILD_TESTS}"
327
echo "       Chamelium tests    : ${enable_chamelium}"
328
echo "       Audio tests        : ${enable_audio}"
329
echo "       Compile prime tests: ${NOUVEAU}"
330
echo "       Debug flags        : ${DEBUG_CFLAGS}"
331 332
echo ""
echo " • Tools:"
333
echo "       Overlay            : X: ${enable_overlay_xlib}, Xv: ${enable_overlay_xvlib}"
334
echo "       x86-specific tools : ${build_x86}"
Petri Latvala's avatar
Petri Latvala committed
335
echo "       Test runner        : ${BUILD_RUNNER}"
336
echo ""
337
echo " • Fail on warnings       : ${enable_werror}"
338
echo ""
339 340
echo " WARNING: automake is deprecated, please use meson"
echo ""
341

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