diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..3e77f7d --- /dev/null +++ b/configure.ac @@ -0,0 +1,231 @@ +# 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 + +AC_PREREQ([2.60]) +AC_INIT([intel-gpu-tools], + [1.9], + [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI&component=DRM/Intel], + [intel-gpu-tools]) + +AC_CONFIG_SRCDIR([Makefile.am]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([build-aux]) +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE +AC_GNU_SOURCE +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE([1.11 foreign dist-bzip2]) +AM_PATH_PYTHON([3],, [:]) + +AC_PROG_CC +AM_PROG_LEX +AC_PROG_YACC + +# check for gtk-doc +m4_ifdef([GTK_DOC_CHECK], [ +GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) +],[ +AM_CONDITIONAL([ENABLE_GTK_DOC], false) +enable_gtk_doc=no +]) + + +# Checks for functions, headers, structures, etc. +AC_HEADER_STDC +AC_CHECK_HEADERS([termios.h linux/kd.h sys/kd.h libgen.h]) +AC_CHECK_MEMBERS([struct sysinfo.totalram],[],[],[AC_INCLUDES_DEFAULT + #include <sys/sysinfo.h> + ]) +AC_CHECK_TYPES([sighandler_t],[],[],[AC_INCLUDES_DEFAULT +#include <signal.h>]) +AC_CHECK_FUNCS([swapctl]) +AC_CHECK_FUNCS([asprintf]) + +# Initialize libtool +AC_DISABLE_STATIC +AC_PROG_LIBTOOL + +# Require X.Org macros 1.16 or later for XORG_TESTSET_CFLAG +m4_ifndef([XORG_MACROS_VERSION], + [m4_fatal([must install xorg-macros 1.16 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.16) +XORG_DEFAULT_OPTIONS + +# warning flags for the assembler. We can't quite use CWARNFLAGS for it yet as +# it generates waaaay too many warnings. +ASSEMBLER_WARN_CFLAGS="" +if test "x$GCC" = "xyes"; then + ASSEMBLER_WARN_CFLAGS="-Wall -Wstrict-prototypes \ + -Wmissing-prototypes -Wmissing-declarations \ + -Wnested-externs -fno-strict-aliasing" +fi +AC_SUBST(ASSEMBLER_WARN_CFLAGS) + +PKG_CHECK_MODULES(DRM, [libdrm_intel >= 2.4.52 libdrm]) +PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) +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) + +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 +PKG_CHECK_MODULES(XRANDR, xrandr >= 1.3, AC_DEFINE(HAVE_XRANDR, 1, [Have libXrandr]), [have_xrandr=no]) + +# for testdisplay +PKG_CHECK_MODULES(CAIRO, [cairo >= 1.12.0]) +PKG_CHECK_MODULES(LIBUDEV, [libudev], [udev=yes], [udev=no]) +if test x"$udev" = xyes; then + AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection]) +fi +PKG_CHECK_MODULES(GLIB, glib-2.0) + +# can we build the assembler? +AS_IF([test x"$LEX" != "x:" -a x"$YACC" != xyacc], + [enable_assembler=yes], + [enable_assembler=no]) +AM_CONDITIONAL(BUILD_ASSEMBLER, [test "x$enable_assembler" = xyes]) + +# ----------------------------------------------------------------------------- +# Configuration options +# ----------------------------------------------------------------------------- +# for dma-buf tests +AC_ARG_ENABLE(nouveau, AS_HELP_STRING([--disable-nouveau], + [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 +if test "x$NOUVEAU" = xyes; then + PKG_CHECK_MODULES(DRM_NOUVEAU, [libdrm_nouveau >= 2.4.33]) + AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau support]) +fi +AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes]) + +#Configure options for the python quick-dumper +AC_ARG_ENABLE(dumper, + AS_HELP_STRING([--disable-dumper], + [Disable the python based register dumper (default: enabled)]), + [DUMPER=$enableval], [DUMPER=auto]) +if test "x$DUMPER" = xauto; then + # AX_PYTHON_DEVEL/AX_SWIG_PYTHON are not super friendly and don't + # easily allow us to introspect the result of their checks. So if we + # find SWING on the system, that's enough to try compiling the dumper. + AX_PKG_SWIG(2.0.0, [DUMPER=yes], [DUMPER=no]) +fi +if test "x$DUMPER" = xyes; then + AC_DEFINE(HAVE_DUMPER, 1, [Have dumper support]) + # SWIG configuration + AX_PKG_SWIG(2.0.0, [], [ AC_MSG_ERROR([SWIG 2.0.0 or higher is required to build..]) ]) + AX_PYTHON_DEVEL([>= '3.0']) + AX_SWIG_PYTHON +fi +AM_CONDITIONAL(HAVE_DUMPER, [test "x$DUMPER" = xyes]) + +# Define a configure option for the shader debugger +AC_ARG_ENABLE(shader-debugger, AS_HELP_STRING([--enable-shader-debugger], + [Enable shader debugging support [autodetected]]), + [BUILD_SHADER_DEBUGGER="$enableval"], [BUILD_SHADER_DEBUGGER=auto]) + +# Shader debugger depends on python3, intel-genasm and objcopy +if test "x$BUILD_SHADER_DEBUGGER" != xno; then + # Check that the assembler is built + if test "x$enable_assembler" = xno; then + BUILD_SHADER_DEBUGGER=no + if test "x$BUILD_SHADER_DEBUGGER" = xyes; then + AC_MSG_ERROR([Shader debugger requested, but assembler not enabled.]) + fi + fi + + # 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 + fi + + # 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 + fi +fi + +AM_CONDITIONAL(BUILD_SHADER_DEBUGGER, [test "x$BUILD_SHADER_DEBUGGER" != xno]) +AS_IF([test "x$BUILD_SHADER_DEBUGGER" != xno], + [enable_debugger=yes], [enable_debugger=no]) + +# ----------------------------------------------------------------------------- + +# To build multithread code, gcc uses -pthread, Solaris Studio cc uses -mt +XORG_TESTSET_CFLAG([THREAD_CFLAGS], [-pthread], [-mt]) +AC_SUBST([THREAD_CFLAGS]) + +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]) +AC_DEFINE_UNQUOTED(TARGET_CPU_PLATFORM, ["$host_cpu"], [Target platform]) + +AC_CONFIG_FILES([ + Makefile + lib/Makefile + tests/Makefile + ]) +AC_OUTPUT + +# Print a summary of the compilation +echo "" +echo "Intel GPU tools" + +echo "" +echo " • Tests:" +echo " Build tests : ${BUILD_TESTS}" +echo " Compile prime tests: ${NOUVEAU}" +echo "" +echo " • Tools:" +echo " Assembler : ${enable_assembler}" +echo " Debugger : ${enable_debugger}" +echo " Python dumper : ${DUMPER}" +echo " Overlay : X: ${enable_overlay_xlib}, Xv: ${enable_overlay_xvlib}" +echo "" +echo " • API-Documentation : ${enable_gtk_doc}" +echo "" + +# vim: set ft=config ts=8 sw=8 tw=0 noet : |