Blame configure.ac

Packit 631bab
#  Copyright 2005 Adam Jackson.
Packit 631bab
#
Packit 631bab
#  Permission is hereby granted, free of charge, to any person obtaining a
Packit 631bab
#  copy of this software and associated documentation files (the "Software"),
Packit 631bab
#  to deal in the Software without restriction, including without limitation
Packit 631bab
#  on the rights to use, copy, modify, merge, publish, distribute, sub
Packit 631bab
#  license, and/or sell copies of the Software, and to permit persons to whom
Packit 631bab
#  the Software is furnished to do so, subject to the following conditions:
Packit 631bab
#
Packit 631bab
#  The above copyright notice and this permission notice (including the next
Packit 631bab
#  paragraph) shall be included in all copies or substantial portions of the
Packit 631bab
#  Software.
Packit 631bab
#
Packit 631bab
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Packit 631bab
#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Packit 631bab
#  FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
Packit 631bab
#  ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
Packit 631bab
#  IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
Packit 631bab
#  CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Packit 631bab
Packit 631bab
AC_PREREQ([2.63])
Packit 631bab
AC_INIT([libdrm],
Packit 631bab
        [2.4.100],
Packit 631bab
        [https://bugs.freedesktop.org/enter_bug.cgi?product=DRI],
Packit 631bab
        [libdrm])
Packit 631bab
Packit 631bab
AC_CONFIG_HEADERS([config.h])
Packit 631bab
AC_CONFIG_SRCDIR([Makefile.am])
Packit 631bab
AC_CONFIG_MACRO_DIR([m4])
Packit 631bab
AC_CONFIG_AUX_DIR([build-aux])
Packit 631bab
PKG_PROG_PKG_CONFIG
Packit 631bab
Packit 631bab
# Require xorg-macros minimum of 1.12 for XORG_WITH_XSLTPROC
Packit 631bab
m4_ifndef([XORG_MACROS_VERSION],
Packit 631bab
          [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])])
Packit 631bab
XORG_MACROS_VERSION(1.12)
Packit 631bab
XORG_WITH_XSLTPROC
Packit 631bab
XORG_MANPAGE_SECTIONS
Packit 631bab
Packit 631bab
AM_INIT_AUTOMAKE([1.10 foreign dist-bzip2])
Packit 631bab
Packit 631bab
# Enable quiet compiles on automake 1.11.
Packit 631bab
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Packit 631bab
Packit 631bab
# Check for programs
Packit 631bab
AC_PROG_CC
Packit 631bab
AC_PROG_CC_C99
Packit 631bab
AC_PROG_NM
Packit 631bab
Packit 631bab
if test "x$ac_cv_prog_cc_c99" = xno; then
Packit 631bab
	AC_MSG_ERROR([Building libdrm requires C99 enabled compiler])
Packit 631bab
fi
Packit 631bab
Packit 631bab
AC_USE_SYSTEM_EXTENSIONS
Packit 631bab
AC_SYS_LARGEFILE
Packit 631bab
AC_FUNC_ALLOCA
Packit 631bab
Packit 631bab
save_CFLAGS="$CFLAGS"
Packit 631bab
export CFLAGS="$CFLAGS -Werror"
Packit 631bab
AC_HEADER_MAJOR
Packit 631bab
CFLAGS="$save_CFLAGS"
Packit 631bab
Packit 631bab
AC_CHECK_HEADERS([sys/sysctl.h sys/select.h])
Packit 631bab
Packit 631bab
# Initialize libtool
Packit 631bab
LT_PREREQ([2.2])
Packit 631bab
LT_INIT([disable-static])
Packit 631bab
Packit 631bab
dnl pthread-stubs is mandatory on some BSD platforms, due to the nature of the
Packit 631bab
dnl project. Even then there's a notable issue as described in the project README
Packit 631bab
case "$host_os" in
Packit 631bab
linux* | cygwin* | darwin* | solaris* | *-gnu* | gnu* | openbsd*)
Packit 631bab
    pthread_stubs_possible="no"
Packit 631bab
    ;;
Packit 631bab
* )
Packit 631bab
    pthread_stubs_possible="yes"
Packit 631bab
    ;;
Packit 631bab
esac
Packit 631bab
Packit 631bab
if test "x$pthread_stubs_possible" = xyes; then
Packit 631bab
    PKG_CHECK_MODULES(PTHREADSTUBS, pthread-stubs >= 0.4)
Packit 631bab
    AC_SUBST(PTHREADSTUBS_CFLAGS)
Packit 631bab
    AC_SUBST(PTHREADSTUBS_LIBS)
Packit 631bab
fi
Packit 631bab
Packit 631bab
pkgconfigdir=${libdir}/pkgconfig
Packit 631bab
AC_SUBST(pkgconfigdir)
Packit 631bab
libdrmdatadir=${datadir}/libdrm
Packit 631bab
AC_SUBST(libdrmdatadir)
Packit 631bab
Packit 631bab
AC_ARG_ENABLE([udev],
Packit 631bab
              [AS_HELP_STRING([--enable-udev],
Packit 631bab
                              [Enable support for using udev instead of mknod (default: disabled)])],
Packit 631bab
              [UDEV=$enableval], [UDEV=no])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(libkms,
Packit 631bab
	      AS_HELP_STRING([--disable-libkms],
Packit 631bab
	      [Disable KMS mm abstraction library (default: auto, enabled on supported platforms)]),
Packit 631bab
	      [LIBKMS=$enableval], [LIBKMS=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(intel,
Packit 631bab
	      AS_HELP_STRING([--disable-intel],
Packit 631bab
	      [Enable support for intel's KMS API (default: auto, enabled on x86)]),
Packit 631bab
	      [INTEL=$enableval], [INTEL=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(radeon,
Packit 631bab
	      AS_HELP_STRING([--disable-radeon],
Packit 631bab
	      [Enable support for radeon's KMS API (default: auto)]),
Packit 631bab
	      [RADEON=$enableval], [RADEON=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(amdgpu,
Packit 631bab
	      AS_HELP_STRING([--disable-amdgpu],
Packit 631bab
	      [Enable support for amdgpu's KMS API (default: auto)]),
Packit 631bab
	      [AMDGPU=$enableval], [AMDGPU=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(nouveau,
Packit 631bab
	      AS_HELP_STRING([--disable-nouveau],
Packit 631bab
	      [Enable support for nouveau's KMS API (default: auto)]),
Packit 631bab
	      [NOUVEAU=$enableval], [NOUVEAU=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(vmwgfx,
Packit 631bab
	      AS_HELP_STRING([--disable-vmwgfx],
Packit 631bab
	      [Enable support for vmwgfx's KMS API (default: yes)]),
Packit 631bab
	      [VMWGFX=$enableval], [VMWGFX=yes])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(omap-experimental-api,
Packit 631bab
	      AS_HELP_STRING([--enable-omap-experimental-api],
Packit 631bab
	      [Enable support for OMAP's experimental API (default: disabled)]),
Packit 631bab
	      [OMAP=$enableval], [OMAP=no])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(exynos-experimental-api,
Packit 631bab
	      AS_HELP_STRING([--enable-exynos-experimental-api],
Packit 631bab
	      [Enable support for EXYNOS's experimental API (default: disabled)]),
Packit 631bab
	      [EXYNOS=$enableval], [EXYNOS=no])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(freedreno,
Packit 631bab
	      AS_HELP_STRING([--disable-freedreno],
Packit 631bab
	      [Enable support for freedreno's KMS API (default: auto, enabled on arm)]),
Packit 631bab
	      [FREEDRENO=$enableval], [FREEDRENO=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(freedreno-kgsl,
Packit 631bab
	      AS_HELP_STRING([--enable-freedreno-kgsl],
Packit 631bab
	      [Enable support for freedreno's to use downstream android kernel API (default: disabled)]),
Packit 631bab
	      [FREEDRENO_KGSL=$enableval], [FREEDRENO_KGSL=no])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(tegra-experimental-api,
Packit 631bab
	      AS_HELP_STRING([--enable-tegra-experimental-api],
Packit 631bab
	      [Enable support for Tegra's experimental API (default: disabled)]),
Packit 631bab
	      [TEGRA=$enableval], [TEGRA=no])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(vc4,
Packit 631bab
	      AS_HELP_STRING([--disable-vc4],
Packit 631bab
	      [Enable support for vc4's API (default: auto, enabled on arm)]),
Packit 631bab
	      [VC4=$enableval], [VC4=auto])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(etnaviv-experimental-api,
Packit 631bab
	      AS_HELP_STRING([--enable-etnaviv-experimental-api],
Packit 631bab
	      [Enable support for etnaviv's experimental API (default: disabled)]),
Packit 631bab
	      [ETNAVIV=$enableval], [ETNAVIV=no])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(install-test-programs,
Packit 631bab
		  AS_HELP_STRING([--enable-install-test-programs],
Packit 631bab
		  [Install test programs (default: no)]),
Packit 631bab
		  [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no])
Packit 631bab
Packit 631bab
dnl ===========================================================================
Packit 631bab
dnl check compiler flags
Packit 631bab
AC_DEFUN([LIBDRM_CC_TRY_FLAG], [
Packit 631bab
  AC_MSG_CHECKING([whether $CC supports $1])
Packit 631bab
Packit 631bab
  libdrm_save_CFLAGS="$CFLAGS"
Packit 631bab
  CFLAGS="$CFLAGS $1"
Packit 631bab
Packit 631bab
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([ ])], [libdrm_cc_flag=yes], [libdrm_cc_flag=no])
Packit 631bab
  CFLAGS="$libdrm_save_CFLAGS"
Packit 631bab
Packit 631bab
  if test "x$libdrm_cc_flag" = "xyes"; then
Packit 631bab
    ifelse([$2], , :, [$2])
Packit 631bab
  else
Packit 631bab
    ifelse([$3], , :, [$3])
Packit 631bab
  fi
Packit 631bab
  AC_MSG_RESULT([$libdrm_cc_flag])
Packit 631bab
])
Packit 631bab
Packit 631bab
dnl We use clock_gettime to check for timeouts in drmWaitVBlank
Packit 631bab
Packit 631bab
AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],
Packit 631bab
               [AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt],
Packit 631bab
                             [AC_MSG_ERROR([Couldn't find clock_gettime])])])
Packit 631bab
AC_SUBST([CLOCK_LIB])
Packit 631bab
Packit 631bab
AC_CHECK_FUNCS([open_memstream],
Packit 631bab
               [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
Packit 631bab
               [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
Packit 631bab
Packit 631bab
dnl Use lots of warning flags with with gcc and compatible compilers
Packit 631bab
Packit 631bab
dnl Note: if you change the following variable, the cache is automatically
Packit 631bab
dnl skipped and all flags rechecked.  So there's no need to do anything
Packit 631bab
dnl else.  If for any reason you need to force a recheck, just change
Packit 631bab
dnl MAYBE_WARN in an ignorable way (like adding whitespace)
Packit 631bab
Packit 631bab
MAYBE_WARN="-Wall -Wextra -Werror=undef \
Packit 631bab
-Wsign-compare -Werror-implicit-function-declaration \
Packit 631bab
-Wpointer-arith -Wwrite-strings -Wstrict-prototypes \
Packit 631bab
-Wmissing-prototypes -Wmissing-declarations -Wnested-externs \
Packit 631bab
-Wpacked -Wswitch-enum -Wmissing-format-attribute \
Packit 631bab
-Wstrict-aliasing=2 -Winit-self \
Packit 631bab
-Wdeclaration-after-statement -Wold-style-definition \
Packit 631bab
-Wno-unused-parameter \
Packit 631bab
-Wno-attributes -Wno-long-long -Winline -Wshadow \
Packit 631bab
-Wno-missing-field-initializers"
Packit 631bab
Packit 631bab
# invalidate cached value if MAYBE_WARN has changed
Packit 631bab
if test "x$libdrm_cv_warn_maybe" != "x$MAYBE_WARN"; then
Packit 631bab
	unset libdrm_cv_warn_cflags
Packit 631bab
fi
Packit 631bab
AC_CACHE_CHECK([for supported warning flags], libdrm_cv_warn_cflags, [
Packit 631bab
	echo
Packit 631bab
	WARN_CFLAGS=""
Packit 631bab
Packit 631bab
	# Some warning options are not supported by all versions of
Packit 631bab
	# gcc, so test all desired options against the current
Packit 631bab
	# compiler.
Packit 631bab
	#
Packit 631bab
	# Note that there are some order dependencies
Packit 631bab
	# here. Specifically, an option that disables a warning will
Packit 631bab
	# have no net effect if a later option then enables that
Packit 631bab
	# warnings, (perhaps implicitly). So we put some grouped
Packit 631bab
	# options (-Wall and -Wextra) up front and the -Wno options
Packit 631bab
	# last.
Packit 631bab
Packit 631bab
	for W in $MAYBE_WARN; do
Packit 631bab
		LIBDRM_CC_TRY_FLAG([$W], [WARN_CFLAGS="$WARN_CFLAGS $W"])
Packit 631bab
	done
Packit 631bab
Packit 631bab
	libdrm_cv_warn_cflags=$WARN_CFLAGS
Packit 631bab
	libdrm_cv_warn_maybe=$MAYBE_WARN
Packit 631bab
Packit 631bab
	AC_MSG_CHECKING([which warning flags were supported])])
Packit 631bab
WARN_CFLAGS="$libdrm_cv_warn_cflags"
Packit 631bab
Packit 631bab
# Check for atomic intrinsics
Packit 631bab
AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [
Packit 631bab
	drm_cv_atomic_primitives="none"
Packit 631bab
Packit 631bab
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
Packit 631bab
	int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); }
Packit 631bab
	int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); }
Packit 631bab
					  ]],[[]])], [drm_cv_atomic_primitives="Intel"],[])
Packit 631bab
Packit 631bab
	if test "x$drm_cv_atomic_primitives" = "xnone"; then
Packit 631bab
		AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
Packit 631bab
	fi
Packit 631bab
Packit 631bab
	# atomic functions defined in <atomic.h> & libc on Solaris
Packit 631bab
	if test "x$drm_cv_atomic_primitives" = "xnone"; then
Packit 631bab
		AC_CHECK_FUNC([atomic_cas_uint], drm_cv_atomic_primitives="Solaris")
Packit 631bab
	fi
Packit 631bab
])
Packit 631bab
Packit 631bab
if test "x$drm_cv_atomic_primitives" = xIntel; then
Packit 631bab
	AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 1,
Packit 631bab
		[Enable if your compiler supports the Intel __sync_* atomic primitives])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_LIBDRM_ATOMIC_PRIMITIVES, 0)
Packit 631bab
fi
Packit 631bab
if test "x$drm_cv_atomic_primitives" = "xlibatomic-ops"; then
Packit 631bab
	AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, [Enable if you have libatomic-ops-dev installed])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
dnl Print out the approapriate message considering the value set be the
Packit 631bab
dnl respective in $1.
Packit 631bab
dnl $1 - value to be evaluated. Eg. $INTEL, $NOUVEAU, ...
Packit 631bab
dnl $2 - libdrm shortname. Eg. intel, freedreno, ...
Packit 631bab
dnl $3 - GPU name/brand. Eg. Intel, NVIDIA Tegra, ...
Packit 631bab
dnl $4 - Configure switch. Eg. intel, omap-experimental-api, ...
Packit 631bab
AC_DEFUN([LIBDRM_ATOMICS_NOT_FOUND_MSG], [
Packit 631bab
	case "x$1" in
Packit 631bab
		xyes)	AC_MSG_ERROR([libdrm_$2 depends upon atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package, or, failing both of those, disable support for $3 GPUs by passing --disable-$4 to ./configure]) ;;
Packit 631bab
		xauto)	AC_MSG_WARN([Disabling $2. It depends on atomic operations, which were not found for your compiler/cpu. Try compiling with -march=native, or install the libatomics-op-dev package.]) ;;
Packit 631bab
		*)	;;
Packit 631bab
	esac
Packit 631bab
])
Packit 631bab
Packit 631bab
if test "x$drm_cv_atomic_primitives" = "xnone"; then
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($INTEL, intel, Intel, intel)
Packit 631bab
	INTEL=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($RADEON, radeon, Radeon, radeon)
Packit 631bab
	RADEON=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($AMDGPU, amdgpu, AMD, amdgpu)
Packit 631bab
	AMDGPU=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($NOUVEAU, nouveau, NVIDIA, nouveau)
Packit 631bab
	NOUVEAU=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($OMAP, omap, OMAP, omap-experimental-api)
Packit 631bab
	OMAP=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($FREEDRENO, freedreno, Qualcomm Adreno, freedreno)
Packit 631bab
	FREEDRENO=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($TEGRA, tegra, NVIDIA Tegra, tegra-experimental-api)
Packit 631bab
	TEGRA=no
Packit 631bab
Packit 631bab
	LIBDRM_ATOMICS_NOT_FOUND_MSG($ETNAVIV, etnaviv, Vivante, etnaviv-experimental-api)
Packit 631bab
	ETNAVIV=no
Packit 631bab
else
Packit 631bab
	if test "x$INTEL" = xauto; then
Packit 631bab
		case $host_cpu in
Packit 631bab
			i?86|x86_64)	INTEL=yes ;;
Packit 631bab
			*)		INTEL=no ;;
Packit 631bab
		esac
Packit 631bab
	fi
Packit 631bab
	if test "x$RADEON" = xauto; then
Packit 631bab
		RADEON=yes
Packit 631bab
	fi
Packit 631bab
	if test "x$AMDGPU" = xauto; then
Packit 631bab
		AMDGPU=yes
Packit 631bab
	fi
Packit 631bab
	if test "x$NOUVEAU" = xauto; then
Packit 631bab
		NOUVEAU=yes
Packit 631bab
	fi
Packit 631bab
	if test "x$FREEDRENO" = xauto; then
Packit 631bab
		case $host_cpu in
Packit 631bab
			arm*|aarch64)	FREEDRENO=yes ;;
Packit 631bab
			*)		FREEDRENO=no ;;
Packit 631bab
		esac
Packit 631bab
	fi
Packit 631bab
	if test "x$VC4" = xauto; then
Packit 631bab
		case $host_cpu in
Packit 631bab
			arm*|aarch64)	VC4=yes ;;
Packit 631bab
			*)		VC4=no ;;
Packit 631bab
		esac
Packit 631bab
	fi
Packit 631bab
fi
Packit 631bab
Packit 631bab
if test "x$INTEL" != "xno"; then
Packit 631bab
	PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10])
Packit 631bab
fi
Packit 631bab
AC_SUBST(PCIACCESS_CFLAGS)
Packit 631bab
AC_SUBST(PCIACCESS_LIBS)
Packit 631bab
Packit 631bab
if test "x$UDEV" = xyes; then
Packit 631bab
	AC_DEFINE(UDEV, 1, [Have UDEV support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(UDEV, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AC_CANONICAL_HOST
Packit 631bab
if test "x$LIBKMS" = xauto ; then
Packit 631bab
	case $host_os in
Packit 631bab
		linux*)		LIBKMS="yes" ;;
Packit 631bab
		freebsd* | kfreebsd*-gnu)
Packit 631bab
				LIBKMS="yes" ;;
Packit 631bab
		dragonfly*)	LIBKMS="yes" ;;
Packit 631bab
		*)		LIBKMS="no" ;;
Packit 631bab
	esac
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_LIBKMS, [test "x$LIBKMS" = xyes])
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_INTEL, [test "x$INTEL" = xyes])
Packit 631bab
if test "x$INTEL" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_INTEL, 1, [Have intel support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_INTEL, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_VMWGFX, [test "x$VMWGFX" = xyes])
Packit 631bab
if test "x$VMWGFX" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_VMWGFX, 1, [Have vmwgfx kernel headers])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_VMWGFX, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_NOUVEAU, [test "x$NOUVEAU" = xyes])
Packit 631bab
if test "x$NOUVEAU" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_NOUVEAU, 1, [Have nouveau (nvidia) support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_NOUVEAU, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_OMAP, [test "x$OMAP" = xyes])
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_EXYNOS, [test "x$EXYNOS" = xyes])
Packit 631bab
if test "x$EXYNOS" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_EXYNOS, 1, [Have EXYNOS support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_EXYNOS, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_FREEDRENO, [test "x$FREEDRENO" = xyes])
Packit 631bab
Packit 631bab
if test "x$FREEDRENO_KGSL" = xyes; then
Packit 631bab
	if test "x$FREEDRENO" != xyes; then
Packit 631bab
		AC_MSG_ERROR([Cannot enable freedreno KGSL interface if freedreno is disabled])
Packit 631bab
	fi
Packit 631bab
fi
Packit 631bab
AM_CONDITIONAL(HAVE_FREEDRENO_KGSL, [test "x$FREEDRENO_KGSL" = xyes])
Packit 631bab
if test "x$FREEDRENO_KGSL" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_FREEDRENO_KGSL, 1, [Have freedreno support for KGSL kernel interface])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_FREEDRENO_KGSL, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_RADEON, [test "x$RADEON" = xyes])
Packit 631bab
if test "x$RADEON" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_RADEON, 1, [Have radeon support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_RADEON, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
if test "x$AMDGPU" != xno; then
Packit 631bab
	# Detect cunit library
Packit 631bab
	PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no])
Packit 631bab
	# If pkg-config does not find cunit, check it using AC_CHECK_LIB.  We
Packit 631bab
	# do this because Debian (Ubuntu) lacks pkg-config file for cunit.
Packit 631bab
	# fixed in 2.1-2.dfsg-3: http://anonscm.debian.org/cgit/collab-maint/cunit.git/commit/?h=debian
Packit 631bab
	if test "x${have_cunit}" = "xno"; then
Packit 631bab
		AC_CHECK_LIB([cunit], [CU_initialize_registry], [have_cunit=yes], [have_cunit=no])
Packit 631bab
		if test "x${have_cunit}" = "xyes"; then
Packit 631bab
			CUNIT_LIBS="-lcunit"
Packit 631bab
			CUNIT_CFLAGS=""
Packit 631bab
			AC_SUBST([CUNIT_LIBS])
Packit 631bab
			AC_SUBST([CUNIT_CFLAGS])
Packit 631bab
		fi
Packit 631bab
	fi
Packit 631bab
else
Packit 631bab
	have_cunit=no
Packit 631bab
fi
Packit 631bab
AM_CONDITIONAL(HAVE_CUNIT, [test "x$have_cunit" != "xno"])
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_AMDGPU, [test "x$AMDGPU" = xyes])
Packit 631bab
if test "x$AMDGPU" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_AMDGPU, 1, [Have amdgpu support])
Packit 631bab
Packit 631bab
	if test "x$have_cunit" = "xno"; then
Packit 631bab
		AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests])
Packit 631bab
	fi
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_AMDGPU, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_TEGRA, [test "x$TEGRA" = xyes])
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_VC4, [test "x$VC4" = xyes])
Packit 631bab
if test "x$VC4" = xyes; then
Packit 631bab
	AC_DEFINE(HAVE_VC4, 1, [Have VC4 support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_VC4, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_ETNAVIV, [test "x$ETNAVIV" = xyes])
Packit 631bab
Packit 631bab
AM_CONDITIONAL(HAVE_INSTALL_TESTS, [test "x$INSTALL_TESTS" = xyes])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE([cairo-tests],
Packit 631bab
              [AS_HELP_STRING([--enable-cairo-tests],
Packit 631bab
                              [Enable support for Cairo rendering in tests (default: auto)])],
Packit 631bab
              [CAIRO=$enableval], [CAIRO=auto])
Packit 631bab
if test "x$CAIRO" != xno; then
Packit 631bab
	PKG_CHECK_MODULES(CAIRO, cairo, [HAVE_CAIRO=yes], [HAVE_CAIRO=no])
Packit 631bab
fi
Packit 631bab
AC_MSG_CHECKING([whether to enable Cairo tests])
Packit 631bab
if test "x$CAIRO" = xauto; then
Packit 631bab
	CAIRO="$HAVE_CAIRO"
Packit 631bab
fi
Packit 631bab
if test "x$CAIRO" = xyes; then
Packit 631bab
	if ! test "x$HAVE_CAIRO" = xyes; then
Packit 631bab
		AC_MSG_ERROR([Cairo support required but not present])
Packit 631bab
	fi
Packit 631bab
	AC_DEFINE(HAVE_CAIRO, 1, [Have Cairo support])
Packit 631bab
else
Packit 631bab
	AC_DEFINE(HAVE_CAIRO, 0)
Packit 631bab
fi
Packit 631bab
AC_MSG_RESULT([$CAIRO])
Packit 631bab
AM_CONDITIONAL(HAVE_CAIRO, [test "x$CAIRO" = xyes])
Packit 631bab
Packit 631bab
# xsltproc for docbook manpages
Packit 631bab
AC_ARG_ENABLE([manpages],
Packit 631bab
              AS_HELP_STRING([--enable-manpages], [enable manpages @<:@default=auto@:>@]),
Packit 631bab
              [MANS=$enableval], [MANS=auto])
Packit 631bab
AM_CONDITIONAL([BUILD_MANPAGES], [test "x$XSLTPROC" != "x" -a "x$MANS" != "xno"])
Packit 631bab
Packit 631bab
# check for offline man-pages stylesheet
Packit 631bab
AC_MSG_CHECKING([for docbook manpages stylesheet])
Packit 631bab
MANPAGES_STYLESHEET="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"
Packit 631bab
AC_PATH_PROGS_FEATURE_CHECK([XSLTPROC_TMP], [xsltproc],
Packit 631bab
                            AS_IF([`"$ac_path_XSLTPROC_TMP" --nonet "$MANPAGES_STYLESHEET" > /dev/null 2>&1`],
Packit 631bab
                                  [HAVE_MANPAGES_STYLESHEET=yes]))
Packit 631bab
if test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"; then
Packit 631bab
        AC_SUBST(MANPAGES_STYLESHEET)
Packit 631bab
        AC_MSG_RESULT([yes])
Packit 631bab
else
Packit 631bab
        AC_MSG_RESULT([no])
Packit 631bab
fi
Packit 631bab
AM_CONDITIONAL([HAVE_MANPAGES_STYLESHEET], [test "x$HAVE_MANPAGES_STYLESHEET" = "xyes"])
Packit 631bab
Packit 631bab
AC_ARG_ENABLE(valgrind,
Packit 631bab
              [AS_HELP_STRING([--enable-valgrind],
Packit 631bab
                             [Build libdrm with  valgrind support (default: auto)])],
Packit 631bab
                             [VALGRIND=$enableval], [VALGRIND=auto])
Packit 631bab
if test "x$VALGRIND" != xno; then
Packit 631bab
	PKG_CHECK_MODULES(VALGRIND, [valgrind], [have_valgrind=yes], [have_valgrind=no])
Packit 631bab
fi
Packit 631bab
AC_MSG_CHECKING([whether to enable Valgrind support])
Packit 631bab
if test "x$VALGRIND" = xauto; then
Packit 631bab
	VALGRIND="$have_valgrind"
Packit 631bab
fi
Packit 631bab
Packit 631bab
if test "x$VALGRIND" = "xyes"; then
Packit 631bab
	if ! test "x$have_valgrind" = xyes; then
Packit 631bab
		AC_MSG_ERROR([Valgrind support required but not present])
Packit 631bab
	fi
Packit 631bab
	AC_DEFINE([HAVE_VALGRIND], 1, [Use valgrind intrinsics to suppress false warnings])
Packit 631bab
else
Packit 631bab
	AC_DEFINE([HAVE_VALGRIND], 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
AC_MSG_RESULT([$VALGRIND])
Packit 631bab
Packit 631bab
AC_ARG_WITH([kernel-source],
Packit 631bab
            [AS_HELP_STRING([--with-kernel-source],
Packit 631bab
              [specify path to linux kernel source])],
Packit 631bab
	    [kernel_source="$with_kernel_source"])
Packit 631bab
AC_SUBST(kernel_source)
Packit 631bab
Packit 631bab
AC_MSG_CHECKING([whether $CC supports __attribute__(("hidden"))])
Packit 631bab
AC_LINK_IFELSE([AC_LANG_PROGRAM([
Packit 631bab
    int foo_hidden( void ) __attribute__((visibility("hidden")));
Packit 631bab
])], HAVE_ATTRIBUTE_VISIBILITY="yes"; AC_MSG_RESULT([yes]), AC_MSG_RESULT([no]));
Packit 631bab
Packit 631bab
if test "x$HAVE_ATTRIBUTE_VISIBILITY" = xyes; then
Packit 631bab
    AC_DEFINE(HAVE_VISIBILITY, 1, [Compiler supports __attribute__(("hidden"))])
Packit 631bab
else
Packit 631bab
    AC_DEFINE(HAVE_VISIBILITY, 0)
Packit 631bab
fi
Packit 631bab
Packit 631bab
CPPFLAGS="$CPPFLAGS -include config.h"
Packit 631bab
Packit 631bab
AC_SUBST(WARN_CFLAGS)
Packit 631bab
AC_CONFIG_FILES([
Packit 631bab
	Makefile
Packit 631bab
	data/Makefile
Packit 631bab
	libkms/Makefile
Packit 631bab
	libkms/libkms.pc
Packit 631bab
	intel/Makefile
Packit 631bab
	intel/libdrm_intel.pc
Packit 631bab
	radeon/Makefile
Packit 631bab
	radeon/libdrm_radeon.pc
Packit 631bab
	amdgpu/Makefile
Packit 631bab
	amdgpu/libdrm_amdgpu.pc
Packit 631bab
	nouveau/Makefile
Packit 631bab
	nouveau/libdrm_nouveau.pc
Packit 631bab
	omap/Makefile
Packit 631bab
	omap/libdrm_omap.pc
Packit 631bab
	exynos/Makefile
Packit 631bab
	exynos/libdrm_exynos.pc
Packit 631bab
	freedreno/Makefile
Packit 631bab
	freedreno/libdrm_freedreno.pc
Packit 631bab
	tegra/Makefile
Packit 631bab
	tegra/libdrm_tegra.pc
Packit 631bab
	vc4/Makefile
Packit 631bab
	vc4/libdrm_vc4.pc
Packit 631bab
	etnaviv/Makefile
Packit 631bab
	etnaviv/libdrm_etnaviv.pc
Packit 631bab
	tests/Makefile
Packit 631bab
	tests/modeprint/Makefile
Packit 631bab
	tests/modetest/Makefile
Packit 631bab
	tests/kms/Makefile
Packit 631bab
	tests/kmstest/Makefile
Packit 631bab
	tests/proptest/Makefile
Packit 631bab
	tests/radeon/Makefile
Packit 631bab
	tests/amdgpu/Makefile
Packit 631bab
	tests/vbltest/Makefile
Packit 631bab
	tests/exynos/Makefile
Packit 631bab
	tests/tegra/Makefile
Packit 631bab
	tests/nouveau/Makefile
Packit 631bab
	tests/etnaviv/Makefile
Packit 631bab
	tests/util/Makefile
Packit 631bab
	man/Makefile
Packit 631bab
	libdrm.pc])
Packit 631bab
AC_OUTPUT
Packit 631bab
Packit 631bab
echo ""
Packit 631bab
echo "$PACKAGE_STRING will be compiled with:"
Packit 631bab
echo ""
Packit 631bab
echo "  libkms         $LIBKMS"
Packit 631bab
echo "  Intel API      $INTEL"
Packit 631bab
echo "  vmwgfx API     $VMWGFX"
Packit 631bab
echo "  Radeon API     $RADEON"
Packit 631bab
echo "  AMDGPU API     $AMDGPU"
Packit 631bab
echo "  Nouveau API    $NOUVEAU"
Packit 631bab
echo "  OMAP API       $OMAP"
Packit 631bab
echo "  EXYNOS API     $EXYNOS"
Packit 631bab
echo "  Freedreno API  $FREEDRENO (kgsl: $FREEDRENO_KGSL)"
Packit 631bab
echo "  Tegra API      $TEGRA"
Packit 631bab
echo "  VC4 API        $VC4"
Packit 631bab
echo "  Etnaviv API    $ETNAVIV"
Packit 631bab
echo ""