# 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 # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xlibre-xf86-video-amdgpu], [25.1.1], [https://github.com/X11Libre/xf86-video-amdgpu/issues], [xlibre-xf86-video-amdgpu]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(.) # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-xz]) # Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS m4_ifndef([XORG_MACROS_VERSION], [m4_fatal([must install xorg-macros 1.8 or later before running autoconf/autogen])]) XORG_MACROS_VERSION(1.8) XORG_DEFAULT_OPTIONS # Initialize libtool AC_DISABLE_STATIC AC_PROG_LIBTOOL # Checks for programs. AM_PROG_CC_C_O if test "x$GCC" = "xyes"; then CPPFLAGS="$CPPFLAGS -Wall" fi AH_TOP([#include "xorg-server.h"]) PKG_PROG_PKG_CONFIG([0.25]) xlibre_video_drivers_dir=`$PKG_CONFIG xlibre-server --variable=video_drivers_dir` AC_SUBST(xlibre_video_drivers_dir) # Store the list of server defined optional extensions in REQUIRED_MODULES XORG_DRIVER_CHECK_EXT(XV, videoproto) # Checks for libraries. PKG_CHECK_MODULES(LIBDRM, [libdrm >= 2.4.121]) PKG_CHECK_MODULES(LIBDRM_AMDGPU, [libdrm_amdgpu >= 2.4.121]) PKG_CHECK_MODULES(GBM, [gbm]) # Check for DRM header location (Linux uses drm/ subdirectory, BSD may not) SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LIBDRM_CFLAGS $LIBDRM_AMDGPU_CFLAGS" # Check for headers with and without drm/ subdirectory AC_CHECK_HEADERS([drm_fourcc.h amdgpu_drm.h], [found_drm_headers=yes], [found_drm_headers=no]) if test "x$found_drm_headers" = "xno"; then # Fallback: check in drm/ subdirectory AC_CHECK_HEADERS([drm/drm_fourcc.h drm/amdgpu_drm.h], [found_drm_headers=yes # Need to add -I flag for drm/ subdirectory drm_incdir="-I\${includedir}/drm" AC_SUBST(DRM_SUBDIR_INCDIR, ["$drm_incdir"])], [AC_MSG_ERROR([libdrm headers not found - libdrm required])]) fi CPPFLAGS="$SAVE_CPPFLAGS" # Obtain compiler/linker options for the driver dependencies PKG_CHECK_MODULES(XORG, [xorg-server >= 25.0.0 xproto fontsproto xf86driproto randrproto renderproto xextproto >= 7.0.99.1 $REQUIRED_MODULES]) # Section "OutputClass" is only supported as of xserver 1.16 PKG_CHECK_EXISTS([xorg-server >= 1.16], [sysconfigdir=`$PKG_CONFIG --variable=sysconfigdir xorg-server`], [sysconfigdir=""]) AM_CONDITIONAL(HAS_XORG_CONF_DIR, [test "x$sysconfigdir" != "x"]) # Define a configure option for an alternate X Server configuration directory AC_ARG_WITH(xorg-conf-dir, AS_HELP_STRING([--with-xorg-conf-dir=DIR], [Default xorg.conf.d directory [[default=${prefix}/share/X11/xorg.conf.d]]]), [configdir="$withval"], [configdir='${prefix}/share/X11/xorg.conf.d']) AC_SUBST(configdir) AC_ARG_ENABLE([udev], AS_HELP_STRING([--disable-udev], [Disable libudev support [default=auto]]), [enable_udev="$enableval"], [enable_udev=auto]) if test "x$enable_udev" != "xno"; then PKG_CHECK_MODULES(LIBUDEV, [libudev], [LIBUDEV=yes], [LIBUDEV=no]) if test "x$LIBUDEV" = xyes; then AC_DEFINE(HAVE_LIBUDEV, 1,[libudev support]) elif test "x$enable_udev" != "xauto"; then AC_MSG_ERROR([Building with udev requested but libudev not found]) fi fi AM_CONDITIONAL(LIBUDEV, test x$LIBUDEV = xyes) SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $XORG_CFLAGS $GBM_CFLAGS" AC_CHECK_HEADERS([glamor.h], [], [AC_MSG_ERROR([glamor needed])], [#include "xorg-server.h"]) AC_CHECK_DECL(GBM_BO_USE_LINEAR, [AC_DEFINE(HAVE_GBM_BO_USE_LINEAR, 1, [Have GBM_BO_USE_LINEAR])], [], [#include #include ]) AC_CHECK_DECL(GBM_BO_USE_FRONT_RENDERING, [AC_DEFINE(HAVE_GBM_BO_USE_FRONT_RENDERING, 1, [Have GBM_BO_USE_FRONT_RENDERING])], [], [#include #include ]) CPPFLAGS="$SAVE_CPPFLAGS" # Check for GFX12 tile version support in libdrm SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $LIBDRM_CFLAGS" AC_CHECK_DECLS([AMD_FMT_MOD_TILE_VER_GFX12, AMD_FMT_MOD_TILE_GFX12_256B_2D, AMD_FMT_MOD_TILE_GFX12_4K_2D, AMD_FMT_MOD_TILE_GFX12_64K_2D, AMD_FMT_MOD_TILE_GFX12_256K_2D], [AC_DEFINE(HAVE_AMD_FMT_MOD_TILE_GFX12, 1, [libdrm has GFX12 tile support])], [AC_MSG_WARN([Some GFX12 tile constants missing - disabling GFX12 support])], [#include ]) CPPFLAGS="$SAVE_CPPFLAGS" AC_CONFIG_FILES([Makefile src/Makefile man/Makefile conf/Makefile]) AC_OUTPUT dnl dnl Output some configuration info for the user dnl echo "" echo " prefix: $prefix" echo " exec_prefix: $exec_prefix" echo " libdir: $libdir" echo " includedir: $includedir" echo " configdir: $configdir" echo " video_drivers_dir: $xlibre_video_drivers_dir" echo "" echo " CFLAGS: $CFLAGS" echo " CXXFLAGS: $CXXFLAGS" echo " Macros: $DEFINES" echo "" echo " Run '${MAKE-make}' to build xf86-video-amdgpu" echo ""