1d3407da1Smrg# generated automatically by aclocal 1.16.5 -*- Autoconf -*- 2d3407da1Smrg 3d3407da1Smrg# Copyright (C) 1996-2021 Free Software Foundation, Inc. 4b1cb5b87Smrg 5b1cb5b87Smrg# This file is free software; the Free Software Foundation 6b1cb5b87Smrg# gives unlimited permission to copy and/or distribute it, 7b1cb5b87Smrg# with or without modifications, as long as this notice is preserved. 8b1cb5b87Smrg 9b1cb5b87Smrg# This program is distributed in the hope that it will be useful, 10b1cb5b87Smrg# but WITHOUT ANY WARRANTY, to the extent permitted by law; without 11b1cb5b87Smrg# even the implied warranty of MERCHANTABILITY or FITNESS FOR A 12b1cb5b87Smrg# PARTICULAR PURPOSE. 13b1cb5b87Smrg 14d3407da1Smrgm4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) 15a7d72839Smrgm4_ifndef([AC_AUTOCONF_VERSION], 16a7d72839Smrg [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 17d3407da1Smrgm4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, 18d3407da1Smrg[m4_warning([this file was generated for autoconf 2.71. 19a7d72839SmrgYou have another version of autoconf. It may work, but is not guaranteed to. 20a7d72839SmrgIf you have problems, you may need to regenerate the build system entirely. 21d3407da1SmrgTo do so, use the procedure documented by the package, typically 'autoreconf'.])]) 22fd991a63Smrg 23d3407da1Smrg# Copyright (C) 2002-2021 Free Software Foundation, Inc. 24fd991a63Smrg# 25d3407da1Smrg# This file is free software; the Free Software Foundation 26d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 27d3407da1Smrg# with or without modifications, as long as this notice is preserved. 28a7d72839Smrg 29d3407da1Smrg# AM_AUTOMAKE_VERSION(VERSION) 30d3407da1Smrg# ---------------------------- 31d3407da1Smrg# Automake X.Y traces this macro to ensure aclocal.m4 has been 32d3407da1Smrg# generated from the m4 files accompanying Automake X.Y. 33d3407da1Smrg# (This private macro should not be called outside this file.) 34d3407da1SmrgAC_DEFUN([AM_AUTOMAKE_VERSION], 35d3407da1Smrg[am__api_version='1.16' 36d3407da1Smrgdnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to 37d3407da1Smrgdnl require some minimum version. Point them to the right macro. 38d3407da1Smrgm4_if([$1], [1.16.5], [], 39d3407da1Smrg [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl 40d3407da1Smrg]) 41b1cb5b87Smrg 42d3407da1Smrg# _AM_AUTOCONF_VERSION(VERSION) 43d3407da1Smrg# ----------------------------- 44d3407da1Smrg# aclocal traces this macro to find the Autoconf version. 45d3407da1Smrg# This is a private macro too. Using m4_define simplifies 46d3407da1Smrg# the logic in aclocal, which can simply ignore this definition. 47d3407da1Smrgm4_define([_AM_AUTOCONF_VERSION], []) 48b1cb5b87Smrg 49d3407da1Smrg# AM_SET_CURRENT_AUTOMAKE_VERSION 50d3407da1Smrg# ------------------------------- 51d3407da1Smrg# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. 52d3407da1Smrg# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. 53d3407da1SmrgAC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], 54d3407da1Smrg[AM_AUTOMAKE_VERSION([1.16.5])dnl 55d3407da1Smrgm4_ifndef([AC_AUTOCONF_VERSION], 56d3407da1Smrg [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl 57d3407da1Smrg_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) 58b1cb5b87Smrg 59d3407da1Smrg# AM_AUX_DIR_EXPAND -*- Autoconf -*- 60b1cb5b87Smrg 61d3407da1Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc. 62d3407da1Smrg# 63d3407da1Smrg# This file is free software; the Free Software Foundation 64d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 65d3407da1Smrg# with or without modifications, as long as this notice is preserved. 66fd991a63Smrg 67d3407da1Smrg# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets 68d3407da1Smrg# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to 69d3407da1Smrg# '$srcdir', '$srcdir/..', or '$srcdir/../..'. 70b1cb5b87Smrg# 71d3407da1Smrg# Of course, Automake must honor this variable whenever it calls a 72d3407da1Smrg# tool from the auxiliary directory. The problem is that $srcdir (and 73d3407da1Smrg# therefore $ac_aux_dir as well) can be either absolute or relative, 74d3407da1Smrg# depending on how configure is run. This is pretty annoying, since 75d3407da1Smrg# it makes $ac_aux_dir quite unusable in subdirectories: in the top 76d3407da1Smrg# source directory, any form will work fine, but in subdirectories a 77d3407da1Smrg# relative path needs to be adjusted first. 78b1cb5b87Smrg# 79d3407da1Smrg# $ac_aux_dir/missing 80d3407da1Smrg# fails when called from a subdirectory if $ac_aux_dir is relative 81d3407da1Smrg# $top_srcdir/$ac_aux_dir/missing 82d3407da1Smrg# fails if $ac_aux_dir is absolute, 83d3407da1Smrg# fails when called from a subdirectory in a VPATH build with 84d3407da1Smrg# a relative $ac_aux_dir 85a7d72839Smrg# 86d3407da1Smrg# The reason of the latter failure is that $top_srcdir and $ac_aux_dir 87d3407da1Smrg# are both prefixed by $srcdir. In an in-source build this is usually 88d3407da1Smrg# harmless because $srcdir is '.', but things will broke when you 89d3407da1Smrg# start a VPATH build or use an absolute $srcdir. 90fd991a63Smrg# 91d3407da1Smrg# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, 92d3407da1Smrg# iff we strip the leading $srcdir from $ac_aux_dir. That would be: 93d3407da1Smrg# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` 94d3407da1Smrg# and then we would define $MISSING as 95d3407da1Smrg# MISSING="\${SHELL} $am_aux_dir/missing" 96d3407da1Smrg# This will work as long as MISSING is not called from configure, because 97d3407da1Smrg# unfortunately $(top_srcdir) has no meaning in configure. 98d3407da1Smrg# However there are other variables, like CC, which are often used in 99d3407da1Smrg# configure, and could therefore not use this "fixed" $ac_aux_dir. 100fd991a63Smrg# 101d3407da1Smrg# Another solution, used here, is to always expand $ac_aux_dir to an 102d3407da1Smrg# absolute PATH. The drawback is that using absolute paths prevent a 103d3407da1Smrg# configured tree to be moved without reconfiguration. 104d3407da1Smrg 105d3407da1SmrgAC_DEFUN([AM_AUX_DIR_EXPAND], 106d3407da1Smrg[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl 107d3407da1Smrg# Expand $ac_aux_dir to an absolute path. 108d3407da1Smrgam_aux_dir=`cd "$ac_aux_dir" && pwd` 109fd991a63Smrg]) 110b1cb5b87Smrg 111d3407da1Smrg# Do all the work for Automake. -*- Autoconf -*- 112b1cb5b87Smrg 113d3407da1Smrg# Copyright (C) 1996-2021 Free Software Foundation, Inc. 114a7d72839Smrg# 115d3407da1Smrg# This file is free software; the Free Software Foundation 116d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 117d3407da1Smrg# with or without modifications, as long as this notice is preserved. 118b1cb5b87Smrg 119d3407da1Smrg# This macro actually does too much. Some checks are only needed if 120d3407da1Smrg# your package does certain things. But this isn't really a big deal. 121b1cb5b87Smrg 122d3407da1Smrgdnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. 123d3407da1Smrgm4_define([AC_PROG_CC], 124d3407da1Smrgm4_defn([AC_PROG_CC]) 125d3407da1Smrg[_AM_PROG_CC_C_O 126fd991a63Smrg]) 127b1cb5b87Smrg 128d3407da1Smrg# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) 129d3407da1Smrg# AM_INIT_AUTOMAKE([OPTIONS]) 130d3407da1Smrg# ----------------------------------------------- 131d3407da1Smrg# The call with PACKAGE and VERSION arguments is the old style 132d3407da1Smrg# call (pre autoconf-2.50), which is being phased out. PACKAGE 133d3407da1Smrg# and VERSION should now be passed to AC_INIT and removed from 134d3407da1Smrg# the call to AM_INIT_AUTOMAKE. 135d3407da1Smrg# We support both call styles for the transition. After 136d3407da1Smrg# the next Automake release, Autoconf can make the AC_INIT 137d3407da1Smrg# arguments mandatory, and then we can depend on a new Autoconf 138d3407da1Smrg# release and drop the old call support. 139d3407da1SmrgAC_DEFUN([AM_INIT_AUTOMAKE], 140d3407da1Smrg[AC_PREREQ([2.65])dnl 141d3407da1Smrgm4_ifdef([_$0_ALREADY_INIT], 142d3407da1Smrg [m4_fatal([$0 expanded multiple times 143d3407da1Smrg]m4_defn([_$0_ALREADY_INIT]))], 144d3407da1Smrg [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl 145d3407da1Smrgdnl Autoconf wants to disallow AM_ names. We explicitly allow 146d3407da1Smrgdnl the ones we care about. 147d3407da1Smrgm4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl 148d3407da1SmrgAC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl 149d3407da1SmrgAC_REQUIRE([AC_PROG_INSTALL])dnl 150d3407da1Smrgif test "`cd $srcdir && pwd`" != "`pwd`"; then 151d3407da1Smrg # Use -I$(srcdir) only when $(srcdir) != ., so that make's output 152d3407da1Smrg # is not polluted with repeated "-I." 153d3407da1Smrg AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl 154d3407da1Smrg # test to see if srcdir already configured 155d3407da1Smrg if test -f $srcdir/config.status; then 156d3407da1Smrg AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 157d3407da1Smrg fi 158d3407da1Smrgfi 159b1cb5b87Smrg 160d3407da1Smrg# test whether we have cygpath 161d3407da1Smrgif test -z "$CYGPATH_W"; then 162d3407da1Smrg if (cygpath --version) >/dev/null 2>/dev/null; then 163d3407da1Smrg CYGPATH_W='cygpath -w' 164d3407da1Smrg else 165d3407da1Smrg CYGPATH_W=echo 166d3407da1Smrg fi 167d3407da1Smrgfi 168d3407da1SmrgAC_SUBST([CYGPATH_W]) 169a7d72839Smrg 170d3407da1Smrg# Define the identity of the package. 171d3407da1Smrgdnl Distinguish between old-style and new-style calls. 172d3407da1Smrgm4_ifval([$2], 173d3407da1Smrg[AC_DIAGNOSE([obsolete], 174d3407da1Smrg [$0: two- and three-arguments forms are deprecated.]) 175d3407da1Smrgm4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl 176d3407da1Smrg AC_SUBST([PACKAGE], [$1])dnl 177d3407da1Smrg AC_SUBST([VERSION], [$2])], 178d3407da1Smrg[_AM_SET_OPTIONS([$1])dnl 179d3407da1Smrgdnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. 180d3407da1Smrgm4_if( 181d3407da1Smrg m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), 182d3407da1Smrg [ok:ok],, 183d3407da1Smrg [m4_fatal([AC_INIT should be called with package and version arguments])])dnl 184d3407da1Smrg AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl 185d3407da1Smrg AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl 186b1cb5b87Smrg 187d3407da1Smrg_AM_IF_OPTION([no-define],, 188d3407da1Smrg[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) 189d3407da1Smrg AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl 190b1cb5b87Smrg 191d3407da1Smrg# Some tools Automake needs. 192d3407da1SmrgAC_REQUIRE([AM_SANITY_CHECK])dnl 193d3407da1SmrgAC_REQUIRE([AC_ARG_PROGRAM])dnl 194d3407da1SmrgAM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) 195d3407da1SmrgAM_MISSING_PROG([AUTOCONF], [autoconf]) 196d3407da1SmrgAM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) 197d3407da1SmrgAM_MISSING_PROG([AUTOHEADER], [autoheader]) 198d3407da1SmrgAM_MISSING_PROG([MAKEINFO], [makeinfo]) 199d3407da1SmrgAC_REQUIRE([AM_PROG_INSTALL_SH])dnl 200d3407da1SmrgAC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl 201d3407da1SmrgAC_REQUIRE([AC_PROG_MKDIR_P])dnl 202d3407da1Smrg# For better backward compatibility. To be removed once Automake 1.9.x 203d3407da1Smrg# dies out for good. For more background, see: 204d3407da1Smrg# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> 205d3407da1Smrg# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> 206d3407da1SmrgAC_SUBST([mkdir_p], ['$(MKDIR_P)']) 207d3407da1Smrg# We need awk for the "check" target (and possibly the TAP driver). The 208d3407da1Smrg# system "awk" is bad on some platforms. 209d3407da1SmrgAC_REQUIRE([AC_PROG_AWK])dnl 210d3407da1SmrgAC_REQUIRE([AC_PROG_MAKE_SET])dnl 211d3407da1SmrgAC_REQUIRE([AM_SET_LEADING_DOT])dnl 212d3407da1Smrg_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], 213d3407da1Smrg [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], 214d3407da1Smrg [_AM_PROG_TAR([v7])])]) 215d3407da1Smrg_AM_IF_OPTION([no-dependencies],, 216d3407da1Smrg[AC_PROVIDE_IFELSE([AC_PROG_CC], 217d3407da1Smrg [_AM_DEPENDENCIES([CC])], 218d3407da1Smrg [m4_define([AC_PROG_CC], 219d3407da1Smrg m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl 220d3407da1SmrgAC_PROVIDE_IFELSE([AC_PROG_CXX], 221d3407da1Smrg [_AM_DEPENDENCIES([CXX])], 222d3407da1Smrg [m4_define([AC_PROG_CXX], 223d3407da1Smrg m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl 224d3407da1SmrgAC_PROVIDE_IFELSE([AC_PROG_OBJC], 225d3407da1Smrg [_AM_DEPENDENCIES([OBJC])], 226d3407da1Smrg [m4_define([AC_PROG_OBJC], 227d3407da1Smrg m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl 228d3407da1SmrgAC_PROVIDE_IFELSE([AC_PROG_OBJCXX], 229d3407da1Smrg [_AM_DEPENDENCIES([OBJCXX])], 230d3407da1Smrg [m4_define([AC_PROG_OBJCXX], 231d3407da1Smrg m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl 232a7d72839Smrg]) 233d3407da1Smrg# Variables for tags utilities; see am/tags.am 234d3407da1Smrgif test -z "$CTAGS"; then 235d3407da1Smrg CTAGS=ctags 236d3407da1Smrgfi 237d3407da1SmrgAC_SUBST([CTAGS]) 238d3407da1Smrgif test -z "$ETAGS"; then 239d3407da1Smrg ETAGS=etags 240d3407da1Smrgfi 241d3407da1SmrgAC_SUBST([ETAGS]) 242d3407da1Smrgif test -z "$CSCOPE"; then 243d3407da1Smrg CSCOPE=cscope 244d3407da1Smrgfi 245d3407da1SmrgAC_SUBST([CSCOPE]) 246a7d72839Smrg 247d3407da1SmrgAC_REQUIRE([AM_SILENT_RULES])dnl 248d3407da1Smrgdnl The testsuite driver may need to know about EXEEXT, so add the 249d3407da1Smrgdnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This 250d3407da1Smrgdnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. 251d3407da1SmrgAC_CONFIG_COMMANDS_PRE(dnl 252d3407da1Smrg[m4_provide_if([_AM_COMPILER_EXEEXT], 253d3407da1Smrg [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl 254a7d72839Smrg 255d3407da1Smrg# POSIX will say in a future version that running "rm -f" with no argument 256d3407da1Smrg# is OK; and we want to be able to make that assumption in our Makefile 257d3407da1Smrg# recipes. So use an aggressive probe to check that the usage we want is 258d3407da1Smrg# actually supported "in the wild" to an acceptable degree. 259d3407da1Smrg# See automake bug#10828. 260d3407da1Smrg# To make any issue more visible, cause the running configure to be aborted 261d3407da1Smrg# by default if the 'rm' program in use doesn't match our expectations; the 262d3407da1Smrg# user can still override this though. 263d3407da1Smrgif rm -f && rm -fr && rm -rf; then : OK; else 264d3407da1Smrg cat >&2 <<'END' 265d3407da1SmrgOops! 266d3407da1Smrg 267d3407da1SmrgYour 'rm' program seems unable to run without file operands specified 268d3407da1Smrgon the command line, even when the '-f' option is present. This is contrary 269d3407da1Smrgto the behaviour of most rm programs out there, and not conforming with 270d3407da1Smrgthe upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> 271d3407da1Smrg 272d3407da1SmrgPlease tell bug-automake@gnu.org about your system, including the value 273d3407da1Smrgof your $PATH and any error possibly output before this message. This 274d3407da1Smrgcan help us improve future automake versions. 275a7d72839Smrg 276d3407da1SmrgEND 277d3407da1Smrg if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then 278d3407da1Smrg echo 'Configuration will proceed anyway, since you have set the' >&2 279d3407da1Smrg echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 280d3407da1Smrg echo >&2 281d3407da1Smrg else 282d3407da1Smrg cat >&2 <<'END' 283d3407da1SmrgAborting the configuration process, to ensure you take notice of the issue. 284a7d72839Smrg 285d3407da1SmrgYou can download and install GNU coreutils to get an 'rm' implementation 286d3407da1Smrgthat behaves properly: <https://www.gnu.org/software/coreutils/>. 287fd991a63Smrg 288d3407da1SmrgIf you want to complete the configuration process using your problematic 289d3407da1Smrg'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM 290d3407da1Smrgto "yes", and re-run configure. 291d3407da1Smrg 292d3407da1SmrgEND 293d3407da1Smrg AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) 294d3407da1Smrg fi 295d3407da1Smrgfi 296d3407da1Smrgdnl The trailing newline in this macro's definition is deliberate, for 297d3407da1Smrgdnl backward compatibility and to allow trailing 'dnl'-style comments 298d3407da1Smrgdnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. 299a7d72839Smrg]) 300a7d72839Smrg 301d3407da1Smrgdnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not 302d3407da1Smrgdnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further 303d3407da1Smrgdnl mangled by Autoconf and run in a shell conditional statement. 304d3407da1Smrgm4_define([_AC_COMPILER_EXEEXT], 305d3407da1Smrgm4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) 306a7d72839Smrg 307d3407da1Smrg# When config.status generates a header, we must update the stamp-h file. 308d3407da1Smrg# This file resides in the same directory as the config header 309d3407da1Smrg# that is generated. The stamp files are numbered to have different names. 310fd991a63Smrg 311d3407da1Smrg# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the 312d3407da1Smrg# loop where config.status creates the headers, so we can generate 313d3407da1Smrg# our stamp files there. 314d3407da1SmrgAC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], 315d3407da1Smrg[# Compute $1's index in $config_headers. 316d3407da1Smrg_am_arg=$1 317d3407da1Smrg_am_stamp_count=1 318d3407da1Smrgfor _am_header in $config_headers :; do 319d3407da1Smrg case $_am_header in 320d3407da1Smrg $_am_arg | $_am_arg:* ) 321d3407da1Smrg break ;; 322d3407da1Smrg * ) 323d3407da1Smrg _am_stamp_count=`expr $_am_stamp_count + 1` ;; 324d3407da1Smrg esac 325d3407da1Smrgdone 326d3407da1Smrgecho "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) 327a7d72839Smrg 328d3407da1Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc. 329d3407da1Smrg# 330d3407da1Smrg# This file is free software; the Free Software Foundation 331d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 332d3407da1Smrg# with or without modifications, as long as this notice is preserved. 333a7d72839Smrg 334d3407da1Smrg# AM_PROG_INSTALL_SH 335d3407da1Smrg# ------------------ 336d3407da1Smrg# Define $install_sh. 337d3407da1SmrgAC_DEFUN([AM_PROG_INSTALL_SH], 338d3407da1Smrg[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 339d3407da1Smrgif test x"${install_sh+set}" != xset; then 340d3407da1Smrg case $am_aux_dir in 341d3407da1Smrg *\ * | *\ *) 342d3407da1Smrg install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; 343d3407da1Smrg *) 344d3407da1Smrg install_sh="\${SHELL} $am_aux_dir/install-sh" 345d3407da1Smrg esac 346d3407da1Smrgfi 347d3407da1SmrgAC_SUBST([install_sh])]) 348a7d72839Smrg 349d3407da1Smrg# Copyright (C) 2003-2021 Free Software Foundation, Inc. 350a7d72839Smrg# 351d3407da1Smrg# This file is free software; the Free Software Foundation 352d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 353d3407da1Smrg# with or without modifications, as long as this notice is preserved. 354a7d72839Smrg 355d3407da1Smrg# Check whether the underlying file-system supports filenames 356d3407da1Smrg# with a leading dot. For instance MS-DOS doesn't. 357d3407da1SmrgAC_DEFUN([AM_SET_LEADING_DOT], 358d3407da1Smrg[rm -rf .tst 2>/dev/null 359d3407da1Smrgmkdir .tst 2>/dev/null 360d3407da1Smrgif test -d .tst; then 361d3407da1Smrg am__leading_dot=. 362d3407da1Smrgelse 363d3407da1Smrg am__leading_dot=_ 364d3407da1Smrgfi 365d3407da1Smrgrmdir .tst 2>/dev/null 366d3407da1SmrgAC_SUBST([am__leading_dot])]) 367a7d72839Smrg 368d3407da1Smrg# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- 369fd991a63Smrg 370d3407da1Smrg# Copyright (C) 1997-2021 Free Software Foundation, Inc. 371a7d72839Smrg# 372d3407da1Smrg# This file is free software; the Free Software Foundation 373d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 374d3407da1Smrg# with or without modifications, as long as this notice is preserved. 375a7d72839Smrg 376d3407da1Smrg# AM_MISSING_PROG(NAME, PROGRAM) 377d3407da1Smrg# ------------------------------ 378d3407da1SmrgAC_DEFUN([AM_MISSING_PROG], 379d3407da1Smrg[AC_REQUIRE([AM_MISSING_HAS_RUN]) 380d3407da1Smrg$1=${$1-"${am_missing_run}$2"} 381d3407da1SmrgAC_SUBST($1)]) 382d3407da1Smrg 383d3407da1Smrg# AM_MISSING_HAS_RUN 384d3407da1Smrg# ------------------ 385d3407da1Smrg# Define MISSING if not defined so far and test if it is modern enough. 386d3407da1Smrg# If it is, set am_missing_run to use it, otherwise, to nothing. 387d3407da1SmrgAC_DEFUN([AM_MISSING_HAS_RUN], 388d3407da1Smrg[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl 389d3407da1SmrgAC_REQUIRE_AUX_FILE([missing])dnl 390d3407da1Smrgif test x"${MISSING+set}" != xset; then 391d3407da1Smrg MISSING="\${SHELL} '$am_aux_dir/missing'" 392d3407da1Smrgfi 393d3407da1Smrg# Use eval to expand $SHELL 394d3407da1Smrgif eval "$MISSING --is-lightweight"; then 395d3407da1Smrg am_missing_run="$MISSING " 396d3407da1Smrgelse 397d3407da1Smrg am_missing_run= 398d3407da1Smrg AC_MSG_WARN(['missing' script is too old or missing]) 399d3407da1Smrgfi 400d3407da1Smrg]) 401d3407da1Smrg 402d3407da1Smrg# Helper functions for option handling. -*- Autoconf -*- 403a7d72839Smrg 404d3407da1Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc. 405fd991a63Smrg# 406d3407da1Smrg# This file is free software; the Free Software Foundation 407d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 408d3407da1Smrg# with or without modifications, as long as this notice is preserved. 409d3407da1Smrg 410d3407da1Smrg# _AM_MANGLE_OPTION(NAME) 411d3407da1Smrg# ----------------------- 412d3407da1SmrgAC_DEFUN([_AM_MANGLE_OPTION], 413d3407da1Smrg[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) 414d3407da1Smrg 415d3407da1Smrg# _AM_SET_OPTION(NAME) 416d3407da1Smrg# -------------------- 417d3407da1Smrg# Set option NAME. Presently that only means defining a flag for this option. 418d3407da1SmrgAC_DEFUN([_AM_SET_OPTION], 419d3407da1Smrg[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) 420d3407da1Smrg 421d3407da1Smrg# _AM_SET_OPTIONS(OPTIONS) 422d3407da1Smrg# ------------------------ 423d3407da1Smrg# OPTIONS is a space-separated list of Automake options. 424d3407da1SmrgAC_DEFUN([_AM_SET_OPTIONS], 425d3407da1Smrg[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) 426d3407da1Smrg 427d3407da1Smrg# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) 428d3407da1Smrg# ------------------------------------------- 429d3407da1Smrg# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. 430d3407da1SmrgAC_DEFUN([_AM_IF_OPTION], 431d3407da1Smrg[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) 432d3407da1Smrg 433d3407da1Smrg# Check to make sure that the build environment is sane. -*- Autoconf -*- 434d3407da1Smrg 435d3407da1Smrg# Copyright (C) 1996-2021 Free Software Foundation, Inc. 436fd991a63Smrg# 437d3407da1Smrg# This file is free software; the Free Software Foundation 438d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 439d3407da1Smrg# with or without modifications, as long as this notice is preserved. 440d3407da1Smrg 441d3407da1Smrg# AM_SANITY_CHECK 442d3407da1Smrg# --------------- 443d3407da1SmrgAC_DEFUN([AM_SANITY_CHECK], 444d3407da1Smrg[AC_MSG_CHECKING([whether build environment is sane]) 445d3407da1Smrg# Reject unsafe characters in $srcdir or the absolute working directory 446d3407da1Smrg# name. Accept space and tab only in the latter. 447d3407da1Smrgam_lf=' 448d3407da1Smrg' 449d3407da1Smrgcase `pwd` in 450d3407da1Smrg *[[\\\"\#\$\&\'\`$am_lf]]*) 451d3407da1Smrg AC_MSG_ERROR([unsafe absolute working directory name]);; 452d3407da1Smrgesac 453d3407da1Smrgcase $srcdir in 454d3407da1Smrg *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) 455d3407da1Smrg AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; 456d3407da1Smrgesac 457d3407da1Smrg 458d3407da1Smrg# Do 'set' in a subshell so we don't clobber the current shell's 459d3407da1Smrg# arguments. Must try -L first in case configure is actually a 460d3407da1Smrg# symlink; some systems play weird games with the mod time of symlinks 461d3407da1Smrg# (eg FreeBSD returns the mod time of the symlink's containing 462d3407da1Smrg# directory). 463d3407da1Smrgif ( 464d3407da1Smrg am_has_slept=no 465d3407da1Smrg for am_try in 1 2; do 466d3407da1Smrg echo "timestamp, slept: $am_has_slept" > conftest.file 467d3407da1Smrg set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` 468d3407da1Smrg if test "$[*]" = "X"; then 469d3407da1Smrg # -L didn't work. 470d3407da1Smrg set X `ls -t "$srcdir/configure" conftest.file` 471d3407da1Smrg fi 472d3407da1Smrg if test "$[*]" != "X $srcdir/configure conftest.file" \ 473d3407da1Smrg && test "$[*]" != "X conftest.file $srcdir/configure"; then 474d3407da1Smrg 475d3407da1Smrg # If neither matched, then we have a broken ls. This can happen 476d3407da1Smrg # if, for instance, CONFIG_SHELL is bash and it inherits a 477d3407da1Smrg # broken ls alias from the environment. This has actually 478d3407da1Smrg # happened. Such a system could not be considered "sane". 479d3407da1Smrg AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken 480d3407da1Smrg alias in your environment]) 481d3407da1Smrg fi 482d3407da1Smrg if test "$[2]" = conftest.file || test $am_try -eq 2; then 483d3407da1Smrg break 484d3407da1Smrg fi 485d3407da1Smrg # Just in case. 486d3407da1Smrg sleep 1 487d3407da1Smrg am_has_slept=yes 488d3407da1Smrg done 489d3407da1Smrg test "$[2]" = conftest.file 490d3407da1Smrg ) 491d3407da1Smrgthen 492d3407da1Smrg # Ok. 493d3407da1Smrg : 494d3407da1Smrgelse 495d3407da1Smrg AC_MSG_ERROR([newly created file is older than distributed files! 496d3407da1SmrgCheck your system clock]) 497d3407da1Smrgfi 498d3407da1SmrgAC_MSG_RESULT([yes]) 499d3407da1Smrg# If we didn't sleep, we still need to ensure time stamps of config.status and 500d3407da1Smrg# generated files are strictly newer. 501d3407da1Smrgam_sleep_pid= 502d3407da1Smrgif grep 'slept: no' conftest.file >/dev/null 2>&1; then 503d3407da1Smrg ( sleep 1 ) & 504d3407da1Smrg am_sleep_pid=$! 505d3407da1Smrgfi 506d3407da1SmrgAC_CONFIG_COMMANDS_PRE( 507d3407da1Smrg [AC_MSG_CHECKING([that generated files are newer than configure]) 508d3407da1Smrg if test -n "$am_sleep_pid"; then 509d3407da1Smrg # Hide warnings about reused PIDs. 510d3407da1Smrg wait $am_sleep_pid 2>/dev/null 511d3407da1Smrg fi 512d3407da1Smrg AC_MSG_RESULT([done])]) 513d3407da1Smrgrm -f conftest.file 514d3407da1Smrg]) 515d3407da1Smrg 516d3407da1Smrg# Copyright (C) 2009-2021 Free Software Foundation, Inc. 517fd991a63Smrg# 518d3407da1Smrg# This file is free software; the Free Software Foundation 519d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 520d3407da1Smrg# with or without modifications, as long as this notice is preserved. 521d3407da1Smrg 522d3407da1Smrg# AM_SILENT_RULES([DEFAULT]) 523d3407da1Smrg# -------------------------- 524d3407da1Smrg# Enable less verbose build rules; with the default set to DEFAULT 525d3407da1Smrg# ("yes" being less verbose, "no" or empty being verbose). 526d3407da1SmrgAC_DEFUN([AM_SILENT_RULES], 527d3407da1Smrg[AC_ARG_ENABLE([silent-rules], [dnl 528d3407da1SmrgAS_HELP_STRING( 529d3407da1Smrg [--enable-silent-rules], 530d3407da1Smrg [less verbose build output (undo: "make V=1")]) 531d3407da1SmrgAS_HELP_STRING( 532d3407da1Smrg [--disable-silent-rules], 533d3407da1Smrg [verbose build output (undo: "make V=0")])dnl 534d3407da1Smrg]) 535d3407da1Smrgcase $enable_silent_rules in @%:@ ((( 536d3407da1Smrg yes) AM_DEFAULT_VERBOSITY=0;; 537d3407da1Smrg no) AM_DEFAULT_VERBOSITY=1;; 538d3407da1Smrg *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; 539d3407da1Smrgesac 540d3407da1Smrgdnl 541d3407da1Smrgdnl A few 'make' implementations (e.g., NonStop OS and NextStep) 542d3407da1Smrgdnl do not support nested variable expansions. 543d3407da1Smrgdnl See automake bug#9928 and bug#10237. 544d3407da1Smrgam_make=${MAKE-make} 545d3407da1SmrgAC_CACHE_CHECK([whether $am_make supports nested variables], 546d3407da1Smrg [am_cv_make_support_nested_variables], 547d3407da1Smrg [if AS_ECHO([['TRUE=$(BAR$(V)) 548d3407da1SmrgBAR0=false 549d3407da1SmrgBAR1=true 550d3407da1SmrgV=1 551d3407da1Smrgam__doit: 552d3407da1Smrg @$(TRUE) 553d3407da1Smrg.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then 554d3407da1Smrg am_cv_make_support_nested_variables=yes 555d3407da1Smrgelse 556d3407da1Smrg am_cv_make_support_nested_variables=no 557d3407da1Smrgfi]) 558d3407da1Smrgif test $am_cv_make_support_nested_variables = yes; then 559d3407da1Smrg dnl Using '$V' instead of '$(V)' breaks IRIX make. 560d3407da1Smrg AM_V='$(V)' 561d3407da1Smrg AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' 562d3407da1Smrgelse 563d3407da1Smrg AM_V=$AM_DEFAULT_VERBOSITY 564d3407da1Smrg AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY 565d3407da1Smrgfi 566d3407da1SmrgAC_SUBST([AM_V])dnl 567d3407da1SmrgAM_SUBST_NOTMAKE([AM_V])dnl 568d3407da1SmrgAC_SUBST([AM_DEFAULT_V])dnl 569d3407da1SmrgAM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl 570d3407da1SmrgAC_SUBST([AM_DEFAULT_VERBOSITY])dnl 571d3407da1SmrgAM_BACKSLASH='\' 572d3407da1SmrgAC_SUBST([AM_BACKSLASH])dnl 573d3407da1Smrg_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl 574d3407da1Smrg]) 575d3407da1Smrg 576d3407da1Smrg# Copyright (C) 2001-2021 Free Software Foundation, Inc. 577fd991a63Smrg# 578d3407da1Smrg# This file is free software; the Free Software Foundation 579d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 580d3407da1Smrg# with or without modifications, as long as this notice is preserved. 581a7d72839Smrg 582d3407da1Smrg# AM_PROG_INSTALL_STRIP 583d3407da1Smrg# --------------------- 584d3407da1Smrg# One issue with vendor 'install' (even GNU) is that you can't 585d3407da1Smrg# specify the program used to strip binaries. This is especially 586d3407da1Smrg# annoying in cross-compiling environments, where the build's strip 587d3407da1Smrg# is unlikely to handle the host's binaries. 588d3407da1Smrg# Fortunately install-sh will honor a STRIPPROG variable, so we 589d3407da1Smrg# always use install-sh in "make install-strip", and initialize 590d3407da1Smrg# STRIPPROG with the value of the STRIP variable (set by the user). 591d3407da1SmrgAC_DEFUN([AM_PROG_INSTALL_STRIP], 592d3407da1Smrg[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl 593d3407da1Smrg# Installed binaries are usually stripped using 'strip' when the user 594d3407da1Smrg# run "make install-strip". However 'strip' might not be the right 595d3407da1Smrg# tool to use in cross-compilation environments, therefore Automake 596d3407da1Smrg# will honor the 'STRIP' environment variable to overrule this program. 597d3407da1Smrgdnl Don't test for $cross_compiling = yes, because it might be 'maybe'. 598d3407da1Smrgif test "$cross_compiling" != no; then 599d3407da1Smrg AC_CHECK_TOOL([STRIP], [strip], :) 600d3407da1Smrgfi 601d3407da1SmrgINSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" 602d3407da1SmrgAC_SUBST([INSTALL_STRIP_PROGRAM])]) 603d3407da1Smrg 604d3407da1Smrg# Copyright (C) 2006-2021 Free Software Foundation, Inc. 605d3407da1Smrg# 606d3407da1Smrg# This file is free software; the Free Software Foundation 607d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 608d3407da1Smrg# with or without modifications, as long as this notice is preserved. 609d3407da1Smrg 610d3407da1Smrg# _AM_SUBST_NOTMAKE(VARIABLE) 611d3407da1Smrg# --------------------------- 612d3407da1Smrg# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. 613d3407da1Smrg# This macro is traced by Automake. 614d3407da1SmrgAC_DEFUN([_AM_SUBST_NOTMAKE]) 615d3407da1Smrg 616d3407da1Smrg# AM_SUBST_NOTMAKE(VARIABLE) 617d3407da1Smrg# -------------------------- 618d3407da1Smrg# Public sister of _AM_SUBST_NOTMAKE. 619d3407da1SmrgAC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) 620d3407da1Smrg 621d3407da1Smrg# Check how to create a tarball. -*- Autoconf -*- 622d3407da1Smrg 623d3407da1Smrg# Copyright (C) 2004-2021 Free Software Foundation, Inc. 624d3407da1Smrg# 625d3407da1Smrg# This file is free software; the Free Software Foundation 626d3407da1Smrg# gives unlimited permission to copy and/or distribute it, 627d3407da1Smrg# with or without modifications, as long as this notice is preserved. 628d3407da1Smrg 629d3407da1Smrg# _AM_PROG_TAR(FORMAT) 630d3407da1Smrg# -------------------- 631d3407da1Smrg# Check how to create a tarball in format FORMAT. 632d3407da1Smrg# FORMAT should be one of 'v7', 'ustar', or 'pax'. 633d3407da1Smrg# 634d3407da1Smrg# Substitute a variable $(am__tar) that is a command 635d3407da1Smrg# writing to stdout a FORMAT-tarball containing the directory 636d3407da1Smrg# $tardir. 637d3407da1Smrg# tardir=directory && $(am__tar) > result.tar 638d3407da1Smrg# 639d3407da1Smrg# Substitute a variable $(am__untar) that extract such 640d3407da1Smrg# a tarball read from stdin. 641d3407da1Smrg# $(am__untar) < result.tar 642d3407da1Smrg# 643d3407da1SmrgAC_DEFUN([_AM_PROG_TAR], 644d3407da1Smrg[# Always define AMTAR for backward compatibility. Yes, it's still used 645d3407da1Smrg# in the wild :-( We should find a proper way to deprecate it ... 646d3407da1SmrgAC_SUBST([AMTAR], ['$${TAR-tar}']) 647d3407da1Smrg 648d3407da1Smrg# We'll loop over all known methods to create a tar archive until one works. 649d3407da1Smrg_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' 650d3407da1Smrg 651d3407da1Smrgm4_if([$1], [v7], 652d3407da1Smrg [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], 653d3407da1Smrg 654d3407da1Smrg [m4_case([$1], 655d3407da1Smrg [ustar], 656d3407da1Smrg [# The POSIX 1988 'ustar' format is defined with fixed-size fields. 657d3407da1Smrg # There is notably a 21 bits limit for the UID and the GID. In fact, 658d3407da1Smrg # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 659d3407da1Smrg # and bug#13588). 660d3407da1Smrg am_max_uid=2097151 # 2^21 - 1 661d3407da1Smrg am_max_gid=$am_max_uid 662d3407da1Smrg # The $UID and $GID variables are not portable, so we need to resort 663d3407da1Smrg # to the POSIX-mandated id(1) utility. Errors in the 'id' calls 664d3407da1Smrg # below are definitely unexpected, so allow the users to see them 665d3407da1Smrg # (that is, avoid stderr redirection). 666d3407da1Smrg am_uid=`id -u || echo unknown` 667d3407da1Smrg am_gid=`id -g || echo unknown` 668d3407da1Smrg AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) 669d3407da1Smrg if test $am_uid -le $am_max_uid; then 670d3407da1Smrg AC_MSG_RESULT([yes]) 671d3407da1Smrg else 672d3407da1Smrg AC_MSG_RESULT([no]) 673d3407da1Smrg _am_tools=none 674d3407da1Smrg fi 675d3407da1Smrg AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) 676d3407da1Smrg if test $am_gid -le $am_max_gid; then 677d3407da1Smrg AC_MSG_RESULT([yes]) 678d3407da1Smrg else 679d3407da1Smrg AC_MSG_RESULT([no]) 680d3407da1Smrg _am_tools=none 681d3407da1Smrg fi], 682d3407da1Smrg 683d3407da1Smrg [pax], 684d3407da1Smrg [], 685d3407da1Smrg 686d3407da1Smrg [m4_fatal([Unknown tar format])]) 687d3407da1Smrg 688d3407da1Smrg AC_MSG_CHECKING([how to create a $1 tar archive]) 689d3407da1Smrg 690d3407da1Smrg # Go ahead even if we have the value already cached. We do so because we 691d3407da1Smrg # need to set the values for the 'am__tar' and 'am__untar' variables. 692d3407da1Smrg _am_tools=${am_cv_prog_tar_$1-$_am_tools} 693d3407da1Smrg 694d3407da1Smrg for _am_tool in $_am_tools; do 695d3407da1Smrg case $_am_tool in 696d3407da1Smrg gnutar) 697d3407da1Smrg for _am_tar in tar gnutar gtar; do 698d3407da1Smrg AM_RUN_LOG([$_am_tar --version]) && break 699d3407da1Smrg done 700d3407da1Smrg am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' 701d3407da1Smrg am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' 702d3407da1Smrg am__untar="$_am_tar -xf -" 703d3407da1Smrg ;; 704d3407da1Smrg plaintar) 705d3407da1Smrg # Must skip GNU tar: if it does not support --format= it doesn't create 706d3407da1Smrg # ustar tarball either. 707d3407da1Smrg (tar --version) >/dev/null 2>&1 && continue 708d3407da1Smrg am__tar='tar chf - "$$tardir"' 709d3407da1Smrg am__tar_='tar chf - "$tardir"' 710d3407da1Smrg am__untar='tar xf -' 711d3407da1Smrg ;; 712d3407da1Smrg pax) 713d3407da1Smrg am__tar='pax -L -x $1 -w "$$tardir"' 714d3407da1Smrg am__tar_='pax -L -x $1 -w "$tardir"' 715d3407da1Smrg am__untar='pax -r' 716d3407da1Smrg ;; 717d3407da1Smrg cpio) 718d3407da1Smrg am__tar='find "$$tardir" -print | cpio -o -H $1 -L' 719d3407da1Smrg am__tar_='find "$tardir" -print | cpio -o -H $1 -L' 720d3407da1Smrg am__untar='cpio -i -H $1 -d' 721d3407da1Smrg ;; 722d3407da1Smrg none) 723d3407da1Smrg am__tar=false 724d3407da1Smrg am__tar_=false 725d3407da1Smrg am__untar=false 726d3407da1Smrg ;; 727d3407da1Smrg esac 728d3407da1Smrg 729d3407da1Smrg # If the value was cached, stop now. We just wanted to have am__tar 730d3407da1Smrg # and am__untar set. 731d3407da1Smrg test -n "${am_cv_prog_tar_$1}" && break 732d3407da1Smrg 733d3407da1Smrg # tar/untar a dummy directory, and stop if the command works. 734d3407da1Smrg rm -rf conftest.dir 735d3407da1Smrg mkdir conftest.dir 736d3407da1Smrg echo GrepMe > conftest.dir/file 737d3407da1Smrg AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) 738d3407da1Smrg rm -rf conftest.dir 739d3407da1Smrg if test -s conftest.tar; then 740d3407da1Smrg AM_RUN_LOG([$am__untar <conftest.tar]) 741d3407da1Smrg AM_RUN_LOG([cat conftest.dir/file]) 742d3407da1Smrg grep GrepMe conftest.dir/file >/dev/null 2>&1 && break 743d3407da1Smrg fi 744d3407da1Smrg done 745d3407da1Smrg rm -rf conftest.dir 746d3407da1Smrg 747d3407da1Smrg AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) 748d3407da1Smrg AC_MSG_RESULT([$am_cv_prog_tar_$1])]) 749d3407da1Smrg 750d3407da1SmrgAC_SUBST([am__tar]) 751d3407da1SmrgAC_SUBST([am__untar]) 752d3407da1Smrg]) # _AM_PROG_TAR 753d3407da1Smrg 754d3407da1Smrgdnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- 755d3407da1Smrgdnl serial 11 (pkg-config-0.29) 756d3407da1Smrgdnl 757d3407da1Smrgdnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. 758d3407da1Smrgdnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> 759d3407da1Smrgdnl 760d3407da1Smrgdnl This program is free software; you can redistribute it and/or modify 761d3407da1Smrgdnl it under the terms of the GNU General Public License as published by 762d3407da1Smrgdnl the Free Software Foundation; either version 2 of the License, or 763d3407da1Smrgdnl (at your option) any later version. 764d3407da1Smrgdnl 765d3407da1Smrgdnl This program is distributed in the hope that it will be useful, but 766d3407da1Smrgdnl WITHOUT ANY WARRANTY; without even the implied warranty of 767d3407da1Smrgdnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 768d3407da1Smrgdnl General Public License for more details. 769d3407da1Smrgdnl 770d3407da1Smrgdnl You should have received a copy of the GNU General Public License 771d3407da1Smrgdnl along with this program; if not, write to the Free Software 772d3407da1Smrgdnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 773d3407da1Smrgdnl 02111-1307, USA. 774d3407da1Smrgdnl 775d3407da1Smrgdnl As a special exception to the GNU General Public License, if you 776d3407da1Smrgdnl distribute this file as part of a program that contains a 777d3407da1Smrgdnl configuration script generated by Autoconf, you may include it under 778d3407da1Smrgdnl the same distribution terms that you use for the rest of that 779d3407da1Smrgdnl program. 780d3407da1Smrg 781d3407da1Smrgdnl PKG_PREREQ(MIN-VERSION) 782d3407da1Smrgdnl ----------------------- 783d3407da1Smrgdnl Since: 0.29 784d3407da1Smrgdnl 785d3407da1Smrgdnl Verify that the version of the pkg-config macros are at least 786d3407da1Smrgdnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's 787d3407da1Smrgdnl installed version of pkg-config, this checks the developer's version 788d3407da1Smrgdnl of pkg.m4 when generating configure. 789d3407da1Smrgdnl 790d3407da1Smrgdnl To ensure that this macro is defined, also add: 791d3407da1Smrgdnl m4_ifndef([PKG_PREREQ], 792d3407da1Smrgdnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) 793d3407da1Smrgdnl 794d3407da1Smrgdnl See the "Since" comment for each macro you use to see what version 795d3407da1Smrgdnl of the macros you require. 796d3407da1Smrgm4_defun([PKG_PREREQ], 797d3407da1Smrg[m4_define([PKG_MACROS_VERSION], [0.29]) 798d3407da1Smrgm4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, 799d3407da1Smrg [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) 800d3407da1Smrg])dnl PKG_PREREQ 801d3407da1Smrg 802d3407da1Smrgdnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) 803d3407da1Smrgdnl ---------------------------------- 804d3407da1Smrgdnl Since: 0.16 805d3407da1Smrgdnl 806d3407da1Smrgdnl Search for the pkg-config tool and set the PKG_CONFIG variable to 807d3407da1Smrgdnl first found in the path. Checks that the version of pkg-config found 808d3407da1Smrgdnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is 809d3407da1Smrgdnl used since that's the first version where most current features of 810d3407da1Smrgdnl pkg-config existed. 811fd991a63SmrgAC_DEFUN([PKG_PROG_PKG_CONFIG], 812fd991a63Smrg[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 813d3407da1Smrgm4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) 814d3407da1Smrgm4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) 815fd991a63SmrgAC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 816fd991a63SmrgAC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) 817fd991a63SmrgAC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) 818a7d72839Smrg 819fd991a63Smrgif test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 820fd991a63Smrg AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 821a7d72839Smrgfi 822fd991a63Smrgif test -n "$PKG_CONFIG"; then 823fd991a63Smrg _pkg_min_version=m4_default([$1], [0.9.0]) 824fd991a63Smrg AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) 825fd991a63Smrg if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then 826fd991a63Smrg AC_MSG_RESULT([yes]) 827fd991a63Smrg else 828fd991a63Smrg AC_MSG_RESULT([no]) 829fd991a63Smrg PKG_CONFIG="" 830fd991a63Smrg fi 831fd991a63Smrgfi[]dnl 832d3407da1Smrg])dnl PKG_PROG_PKG_CONFIG 833a7d72839Smrg 834d3407da1Smrgdnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 835d3407da1Smrgdnl ------------------------------------------------------------------- 836d3407da1Smrgdnl Since: 0.18 837d3407da1Smrgdnl 838d3407da1Smrgdnl Check to see whether a particular set of modules exists. Similar to 839d3407da1Smrgdnl PKG_CHECK_MODULES(), but does not set variables or print errors. 840d3407da1Smrgdnl 841d3407da1Smrgdnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 842d3407da1Smrgdnl only at the first occurence in configure.ac, so if the first place 843d3407da1Smrgdnl it's called might be skipped (such as if it is within an "if", you 844d3407da1Smrgdnl have to call PKG_CHECK_EXISTS manually 845fd991a63SmrgAC_DEFUN([PKG_CHECK_EXISTS], 846fd991a63Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 847fd991a63Smrgif test -n "$PKG_CONFIG" && \ 848fd991a63Smrg AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 849fd991a63Smrg m4_default([$2], [:]) 850fd991a63Smrgm4_ifvaln([$3], [else 851fd991a63Smrg $3])dnl 852fd991a63Smrgfi]) 853a7d72839Smrg 854d3407da1Smrgdnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 855d3407da1Smrgdnl --------------------------------------------- 856d3407da1Smrgdnl Internal wrapper calling pkg-config via PKG_CONFIG and setting 857d3407da1Smrgdnl pkg_failed based on the result. 858fd991a63Smrgm4_define([_PKG_CONFIG], 859fd991a63Smrg[if test -n "$$1"; then 860fd991a63Smrg pkg_cv_[]$1="$$1" 861fd991a63Smrg elif test -n "$PKG_CONFIG"; then 862fd991a63Smrg PKG_CHECK_EXISTS([$3], 863d3407da1Smrg [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` 864d3407da1Smrg test "x$?" != "x0" && pkg_failed=yes ], 865fd991a63Smrg [pkg_failed=yes]) 866fd991a63Smrg else 867fd991a63Smrg pkg_failed=untried 868fd991a63Smrgfi[]dnl 869d3407da1Smrg])dnl _PKG_CONFIG 870a7d72839Smrg 871d3407da1Smrgdnl _PKG_SHORT_ERRORS_SUPPORTED 872d3407da1Smrgdnl --------------------------- 873d3407da1Smrgdnl Internal check to see if pkg-config supports short errors. 874fd991a63SmrgAC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], 875fd991a63Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 876fd991a63Smrgif $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 877fd991a63Smrg _pkg_short_errors_supported=yes 878fd991a63Smrgelse 879fd991a63Smrg _pkg_short_errors_supported=no 880fd991a63Smrgfi[]dnl 881d3407da1Smrg])dnl _PKG_SHORT_ERRORS_SUPPORTED 882a7d72839Smrg 883a7d72839Smrg 884d3407da1Smrgdnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], 885d3407da1Smrgdnl [ACTION-IF-NOT-FOUND]) 886d3407da1Smrgdnl -------------------------------------------------------------- 887d3407da1Smrgdnl Since: 0.4.0 888d3407da1Smrgdnl 889d3407da1Smrgdnl Note that if there is a possibility the first call to 890d3407da1Smrgdnl PKG_CHECK_MODULES might not happen, you should be sure to include an 891d3407da1Smrgdnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac 892fd991a63SmrgAC_DEFUN([PKG_CHECK_MODULES], 893fd991a63Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 894fd991a63SmrgAC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl 895fd991a63SmrgAC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl 896a7d72839Smrg 897fd991a63Smrgpkg_failed=no 898fd991a63SmrgAC_MSG_CHECKING([for $1]) 899fd991a63Smrg 900fd991a63Smrg_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) 901fd991a63Smrg_PKG_CONFIG([$1][_LIBS], [libs], [$2]) 902fd991a63Smrg 903fd991a63Smrgm4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS 904fd991a63Smrgand $1[]_LIBS to avoid the need to call pkg-config. 905fd991a63SmrgSee the pkg-config man page for more details.]) 906fd991a63Smrg 907fd991a63Smrgif test $pkg_failed = yes; then 908fd991a63Smrg AC_MSG_RESULT([no]) 909fd991a63Smrg _PKG_SHORT_ERRORS_SUPPORTED 910fd991a63Smrg if test $_pkg_short_errors_supported = yes; then 911d3407da1Smrg $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` 912fd991a63Smrg else 913d3407da1Smrg $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` 914fd991a63Smrg fi 915fd991a63Smrg # Put the nasty error message in config.log where it belongs 916fd991a63Smrg echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 917fd991a63Smrg 918fd991a63Smrg m4_default([$4], [AC_MSG_ERROR( 919fd991a63Smrg[Package requirements ($2) were not met: 920fd991a63Smrg 921fd991a63Smrg$$1_PKG_ERRORS 922fd991a63Smrg 923fd991a63SmrgConsider adjusting the PKG_CONFIG_PATH environment variable if you 924fd991a63Smrginstalled software in a non-standard prefix. 925fd991a63Smrg 926fd991a63Smrg_PKG_TEXT])[]dnl 927fd991a63Smrg ]) 928fd991a63Smrgelif test $pkg_failed = untried; then 929fd991a63Smrg AC_MSG_RESULT([no]) 930fd991a63Smrg m4_default([$4], [AC_MSG_FAILURE( 931fd991a63Smrg[The pkg-config script could not be found or is too old. Make sure it 932fd991a63Smrgis in your PATH or set the PKG_CONFIG environment variable to the full 933fd991a63Smrgpath to pkg-config. 934fd991a63Smrg 935fd991a63Smrg_PKG_TEXT 936fd991a63Smrg 937d3407da1SmrgTo get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl 938fd991a63Smrg ]) 939fd991a63Smrgelse 940fd991a63Smrg $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 941fd991a63Smrg $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 942fd991a63Smrg AC_MSG_RESULT([yes]) 943fd991a63Smrg $3 944fd991a63Smrgfi[]dnl 945d3407da1Smrg])dnl PKG_CHECK_MODULES 946a7d72839Smrg 947d3407da1Smrg 948d3407da1Smrgdnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], 949d3407da1Smrgdnl [ACTION-IF-NOT-FOUND]) 950d3407da1Smrgdnl --------------------------------------------------------------------- 951d3407da1Smrgdnl Since: 0.29 952d3407da1Smrgdnl 953d3407da1Smrgdnl Checks for existence of MODULES and gathers its build flags with 954d3407da1Smrgdnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags 955d3407da1Smrgdnl and VARIABLE-PREFIX_LIBS from --libs. 956d3407da1Smrgdnl 957d3407da1Smrgdnl Note that if there is a possibility the first call to 958d3407da1Smrgdnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to 959d3407da1Smrgdnl include an explicit call to PKG_PROG_PKG_CONFIG in your 960d3407da1Smrgdnl configure.ac. 961d3407da1SmrgAC_DEFUN([PKG_CHECK_MODULES_STATIC], 962d3407da1Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 963d3407da1Smrg_save_PKG_CONFIG=$PKG_CONFIG 964d3407da1SmrgPKG_CONFIG="$PKG_CONFIG --static" 965d3407da1SmrgPKG_CHECK_MODULES($@) 966d3407da1SmrgPKG_CONFIG=$_save_PKG_CONFIG[]dnl 967d3407da1Smrg])dnl PKG_CHECK_MODULES_STATIC 968d3407da1Smrg 969d3407da1Smrg 970d3407da1Smrgdnl PKG_INSTALLDIR([DIRECTORY]) 971d3407da1Smrgdnl ------------------------- 972d3407da1Smrgdnl Since: 0.27 973d3407da1Smrgdnl 974d3407da1Smrgdnl Substitutes the variable pkgconfigdir as the location where a module 975d3407da1Smrgdnl should install pkg-config .pc files. By default the directory is 976d3407da1Smrgdnl $libdir/pkgconfig, but the default can be changed by passing 977d3407da1Smrgdnl DIRECTORY. The user can override through the --with-pkgconfigdir 978d3407da1Smrgdnl parameter. 979d3407da1SmrgAC_DEFUN([PKG_INSTALLDIR], 980d3407da1Smrg[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) 981d3407da1Smrgm4_pushdef([pkg_description], 982d3407da1Smrg [pkg-config installation directory @<:@]pkg_default[@:>@]) 983d3407da1SmrgAC_ARG_WITH([pkgconfigdir], 984d3407da1Smrg [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, 985d3407da1Smrg [with_pkgconfigdir=]pkg_default) 986d3407da1SmrgAC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) 987d3407da1Smrgm4_popdef([pkg_default]) 988d3407da1Smrgm4_popdef([pkg_description]) 989d3407da1Smrg])dnl PKG_INSTALLDIR 990d3407da1Smrg 991d3407da1Smrg 992d3407da1Smrgdnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) 993d3407da1Smrgdnl -------------------------------- 994d3407da1Smrgdnl Since: 0.27 995d3407da1Smrgdnl 996d3407da1Smrgdnl Substitutes the variable noarch_pkgconfigdir as the location where a 997d3407da1Smrgdnl module should install arch-independent pkg-config .pc files. By 998d3407da1Smrgdnl default the directory is $datadir/pkgconfig, but the default can be 999d3407da1Smrgdnl changed by passing DIRECTORY. The user can override through the 1000d3407da1Smrgdnl --with-noarch-pkgconfigdir parameter. 1001d3407da1SmrgAC_DEFUN([PKG_NOARCH_INSTALLDIR], 1002d3407da1Smrg[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) 1003d3407da1Smrgm4_pushdef([pkg_description], 1004d3407da1Smrg [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) 1005d3407da1SmrgAC_ARG_WITH([noarch-pkgconfigdir], 1006d3407da1Smrg [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, 1007d3407da1Smrg [with_noarch_pkgconfigdir=]pkg_default) 1008d3407da1SmrgAC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) 1009d3407da1Smrgm4_popdef([pkg_default]) 1010d3407da1Smrgm4_popdef([pkg_description]) 1011d3407da1Smrg])dnl PKG_NOARCH_INSTALLDIR 1012d3407da1Smrg 1013d3407da1Smrg 1014d3407da1Smrgdnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, 1015d3407da1Smrgdnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 1016d3407da1Smrgdnl ------------------------------------------- 1017d3407da1Smrgdnl Since: 0.28 1018d3407da1Smrgdnl 1019d3407da1Smrgdnl Retrieves the value of the pkg-config variable for the given module. 1020d3407da1SmrgAC_DEFUN([PKG_CHECK_VAR], 1021d3407da1Smrg[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 1022d3407da1SmrgAC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl 1023d3407da1Smrg 1024d3407da1Smrg_PKG_CONFIG([$1], [variable="][$3]["], [$2]) 1025d3407da1SmrgAS_VAR_COPY([$1], [pkg_cv_][$1]) 1026d3407da1Smrg 1027d3407da1SmrgAS_VAR_IF([$1], [""], [$5], [$4])dnl 1028d3407da1Smrg])dnl PKG_CHECK_VAR 1029d3407da1Smrg 1030d3407da1Smrgdnl fontutil.m4. Generated from fontutil.m4.in by configure. 1031d3407da1Smrgdnl 1032d3407da1Smrgdnl This file comes from X.Org's font-util 1.4.0 1033d3407da1Smrgdnl 1034d3407da1Smrgdnl Copyright (c) 2009, 2023, Oracle and/or its affiliates. 1035fd991a63Smrgdnl 1036fd991a63Smrgdnl Permission is hereby granted, free of charge, to any person obtaining a 1037fd991a63Smrgdnl copy of this software and associated documentation files (the "Software"), 1038fd991a63Smrgdnl to deal in the Software without restriction, including without limitation 1039fd991a63Smrgdnl the rights to use, copy, modify, merge, publish, distribute, sublicense, 1040fd991a63Smrgdnl and/or sell copies of the Software, and to permit persons to whom the 1041fd991a63Smrgdnl Software is furnished to do so, subject to the following conditions: 1042fd991a63Smrgdnl 1043fd991a63Smrgdnl The above copyright notice and this permission notice (including the next 1044fd991a63Smrgdnl paragraph) shall be included in all copies or substantial portions of the 1045fd991a63Smrgdnl Software. 1046fd991a63Smrgdnl 1047fd991a63Smrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1048fd991a63Smrgdnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1049fd991a63Smrgdnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 1050fd991a63Smrgdnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1051fd991a63Smrgdnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 1052fd991a63Smrgdnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 1053fd991a63Smrgdnl DEALINGS IN THE SOFTWARE. 1054d3407da1Smrgdnl 1055d3407da1Smrgdnl -------------------------------------------------------------------- 1056d3407da1Smrgdnl 1057d3407da1Smrgdnl Copyright 2005 Red Hat, Inc 1058d3407da1Smrgdnl 1059d3407da1Smrgdnl Permission to use, copy, modify, distribute, and sell this software and its 1060d3407da1Smrgdnl documentation for any purpose is hereby granted without fee, provided that 1061d3407da1Smrgdnl the above copyright notice appear in all copies and that both that 1062d3407da1Smrgdnl copyright notice and this permission notice appear in supporting 1063d3407da1Smrgdnl documentation. 1064d3407da1Smrgdnl 1065d3407da1Smrgdnl The above copyright notice and this permission notice shall be included 1066d3407da1Smrgdnl in all copies or substantial portions of the Software. 1067d3407da1Smrgdnl 1068d3407da1Smrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1069d3407da1Smrgdnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1070d3407da1Smrgdnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1071d3407da1Smrgdnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR 1072d3407da1Smrgdnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 1073d3407da1Smrgdnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 1074d3407da1Smrgdnl OTHER DEALINGS IN THE SOFTWARE. 1075d3407da1Smrgdnl 1076d3407da1Smrgdnl Except as contained in this notice, the name of the copyright holders shall 1077d3407da1Smrgdnl not be used in advertising or otherwise to promote the sale, use or 1078d3407da1Smrgdnl other dealings in this Software without prior written authorization 1079d3407da1Smrgdnl from the copyright holders. 1080a7d72839Smrg 1081d3407da1Smrg# XORG_FONT_MACROS_VERSION(required-version) 1082d3407da1Smrg# ------------------------------------------ 1083fd991a63Smrg# Minimum version: 1.1.0 1084a7d72839Smrg# 1085fd991a63Smrg# If you're using a macro added in Version 1.1 or newer, include this in 1086fd991a63Smrg# your configure.ac with the minimum required version, such as: 1087d3407da1Smrg# XORG_FONT_MACROS_VERSION(1.1) 1088fd991a63Smrg# 1089fd991a63Smrg# To ensure that this macro is defined, also add: 1090d3407da1Smrg# m4_ifndef([XORG_FONT_MACROS_VERSION], 1091d3407da1Smrg# [m4_fatal([must install X.Org font-util 1.1 or later before running autoconf/autogen])]) 1092fd991a63Smrg# 1093fd991a63Smrg# 1094d3407da1Smrg# See the "minimum version" comment for each macro you use to see what 1095fd991a63Smrg# version you require. 1096d3407da1Smrgm4_defun([XORG_FONT_MACROS_VERSION],[ 1097d3407da1Smrgm4_define([vers_have], [1.4.0]) 1098fd991a63Smrgm4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) 1099fd991a63Smrgm4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) 1100fd991a63Smrgm4_if(m4_cmp(maj_have, maj_needed), 0,, 1101d3407da1Smrg [m4_fatal([font-util major version ]maj_needed[ is required but ]vers_have[ found])]) 1102fd991a63Smrgm4_if(m4_version_compare(vers_have, [$1]), -1, 1103d3407da1Smrg [m4_fatal([font-util version $1 or higher is required but ]vers_have[ found])]) 1104fd991a63Smrgm4_undefine([vers_have]) 1105fd991a63Smrgm4_undefine([maj_have]) 1106fd991a63Smrgm4_undefine([maj_needed]) 1107d3407da1Smrg]) # XORG_FONT_MACROS_VERSION 1108a7d72839Smrg 1109d3407da1Smrg# XORG_FONT_CHECK_{maps}() 1110d3407da1Smrg# ------------------------ 1111fd991a63Smrg# Minimum version: 1.0.0 1112d3407da1Smrg# These macros add --enable/disable-{maps} where {maps} are ISO8859-*, 1113d3407da1Smrg# JISX0201 or KOI8_R. By default, they are all enabled. 1114a7d72839Smrg 1115d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_1], [XORG_FONT_CHECK_ENCODING(ISO8859-1)]) 1116d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_2], [XORG_FONT_CHECK_ENCODING(ISO8859-2)]) 1117d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_3], [XORG_FONT_CHECK_ENCODING(ISO8859-3)]) 1118d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_4], [XORG_FONT_CHECK_ENCODING(ISO8859-4)]) 1119d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_5], [XORG_FONT_CHECK_ENCODING(ISO8859-5)]) 1120d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_6], [XORG_FONT_CHECK_ENCODING(ISO8859-6)]) 1121d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_7], [XORG_FONT_CHECK_ENCODING(ISO8859-7)]) 1122d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_8], [XORG_FONT_CHECK_ENCODING(ISO8859-8)]) 1123d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_9], [XORG_FONT_CHECK_ENCODING(ISO8859-9)]) 1124d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_10],[XORG_FONT_CHECK_ENCODING(ISO8859-10)]) 1125d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_11],[XORG_FONT_CHECK_ENCODING(ISO8859-11)]) 1126d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_12],[XORG_FONT_CHECK_ENCODING(ISO8859-12)]) 1127d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_13],[XORG_FONT_CHECK_ENCODING(ISO8859-13)]) 1128d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_14],[XORG_FONT_CHECK_ENCODING(ISO8859-14)]) 1129d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_15],[XORG_FONT_CHECK_ENCODING(ISO8859-15)]) 1130d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ISO8859_16],[XORG_FONT_CHECK_ENCODING(ISO8859-16)]) 1131d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_JISX0201], [XORG_FONT_CHECK_ENCODING(JISX0201)]) 1132d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_KOI8_R], [XORG_FONT_CHECK_ENCODING(KOI8-R)]) 1133a7d72839Smrg 1134d3407da1Smrg# XORG_FONT_CHECK_ENCODING(encoding) 1135d3407da1Smrg# ---------------------------------- 1136d3407da1Smrg# Minimum version: 1.1.0 1137d3407da1Smrg# This macro adds --enable/disable-<encoding>, enabled by default. 1138d3407da1Smrg# It replaced individual copies of this code in the above macros in 1.1. 1139d3407da1Smrg# Currently assumes encoding names will be all upper-case - add m4_toupper 1140d3407da1Smrg# calls if this is not true in the future. 1141a7d72839Smrg 1142d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ENCODING],[ 1143d3407da1Smrg AC_ARG_ENABLE(m4_tolower($1), 1144d3407da1Smrg AS_HELP_STRING(m4_join([-], [--disable], m4_tolower($1)), 1145d3407da1Smrg [Build $1 fonts (default: yes)]), 1146d3407da1Smrg [AS_TR_SH($1)=$enableval]) 1147d3407da1Smrg AC_MSG_CHECKING([whether to build $1 fonts]) 1148d3407da1Smrg AC_MSG_RESULT($[AS_TR_SH($1)]) 1149d3407da1Smrg AM_CONDITIONAL(AS_TR_SH($1), [test "x$AS_TR_SH($1)" = xyes]) 1150d3407da1Smrg]) # XORG_FONT_CHECK_ENCODING 1151a7d72839Smrg 1152d3407da1Smrg# XORG_FONT_CHECK_ENCODING_LIST(encoding1 encoding2....) 1153d3407da1Smrg# ----------------------------------------------------- 1154d3407da1Smrg# Minimum version: 1.1.0 1155d3407da1Smrg# Call XORG_FONT_CHECK_ENCODING for multiple encodings at once. 1156d3407da1Smrg# Add a shorthand --enable/disable-all-encodings option. 1157a7d72839Smrg 1158d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_ENCODING_LIST],[ 1159d3407da1Smrg AC_ARG_ENABLE([all-encodings], 1160d3407da1Smrg AS_HELP_STRING([--disable-all-encodings], 1161d3407da1Smrg [Disable building of all font encodings]), 1162d3407da1Smrg [m4_foreach_w([enc], [$1], [ 1163d3407da1Smrg AS_TR_SH(enc)=$enableval 1164d3407da1Smrg ])], 1165d3407da1Smrg [m4_foreach_w([enc], [$1], [ 1166d3407da1Smrg AS_TR_SH(enc)=yes 1167d3407da1Smrg ])]) 1168d3407da1Smrg m4_foreach_w([enc], [$1], [XORG_FONT_CHECK_ENCODING(enc)]) 1169d3407da1Smrg]) # XORG_FONT_CHECK_ENCODING_LIST 1170a7d72839Smrg 1171d3407da1Smrg# XORG_FONT_REQUIRED_PROG(VARNAME, progname) 1172d3407da1Smrg# ------------------------------------------ 1173d3407da1Smrg# Minimum version: 1.1.0 1174d3407da1Smrg# 1175d3407da1Smrg# Simple wrapper around AC_PATH_PROG that errors if not found 1176d3407da1Smrg# 1177a7d72839Smrg 1178d3407da1SmrgAC_DEFUN([XORG_FONT_REQUIRED_PROG],[ 1179d3407da1Smrg AC_PATH_PROG($1, $2) 1180d3407da1Smrg if test x"$$1" = x; then 1181d3407da1Smrg AC_MSG_ERROR([$2 is required to build $PACKAGE_NAME.]) 1182d3407da1Smrg fi 1183d3407da1Smrg]) 1184a7d72839Smrg 1185a7d72839Smrg 1186d3407da1Smrg# XORG_FONT_FCCACHE() 1187d3407da1Smrg# ------------------- 1188d3407da1Smrg# Minimum version: 1.1.0 1189d3407da1Smrg# 1190d3407da1Smrg# Set FCCACHE to path to fc-cache (fontconfig cache builder) if found 1191d3407da1Smrg# Set RUN_FCCACHE to a rule suitable for substituting into a makefile 1192d3407da1Smrg# to run fc-cache if found and not installing to $DESTDIR and not 1193d3407da1Smrg# cross-compiling 1194d3407da1Smrg# 1195d3407da1Smrg# fc-cache is optional, not required, and should be skipped when making 1196d3407da1Smrg# packages (installing to $DESTDIR) or cross-compiling 1197d3407da1Smrg# 1198d3407da1SmrgAC_DEFUN([XORG_FONT_FCCACHE],[ 1199d3407da1Smrg AC_PATH_PROG(FCCACHE, fc-cache) 1200d3407da1Smrg FCCACHE_WARN='echo "** Warning: fonts.cache not built" ; echo "** Generate this file manually on host system using fc-cache"' 1201d3407da1Smrg if test x"$FCCACHE" = x || test x"$cross_compiling" != x"no" ; then 1202d3407da1Smrg RUN_FCCACHE="${FCCACHE_WARN}" 1203d3407da1Smrg else 1204d3407da1Smrg RUN_FCCACHE='@(if test -z "$(DESTDIR)"; then echo $(FCCACHE) $(fontdir); $(FCCACHE) $(fontdir); else' 1205d3407da1Smrg RUN_FCCACHE="${RUN_FCCACHE} ${FCCACHE_WARN} ; fi)" 1206d3407da1Smrg fi 1207d3407da1Smrg AC_SUBST([RUN_FCCACHE]) 1208d3407da1Smrg]) 1209a7d72839Smrg 1210d3407da1Smrg# XORG_FONT_MKFONTDIR() 1211d3407da1Smrg# ------------------- 1212d3407da1Smrg# Minimum version: 1.3.0 1213d3407da1Smrg# 1214d3407da1Smrg# Set MKFONTDIR to path to mkfontdir. 1215d3407da1Smrg# 1216d3407da1Smrg# If cross-compiling, and if mkdir is not found, use a shell command 1217d3407da1Smrg# which warns mkfontdir needs to be run on the target 1218d3407da1Smrg# 1219d3407da1Smrg# If not cross-compiling, mkfontdir must be found 1220d3407da1Smrg# 1221d3407da1SmrgAC_DEFUN([XORG_FONT_MKFONTDIR],[ 1222d3407da1Smrg if test x"$cross_compiling" != x"no" ; then 1223d3407da1Smrg AC_PATH_PROG(MKFONTDIR, mkfontdir, "") 1224d3407da1Smrg MKFONTDIR_WARN='echo "** Warning: mkfontdir not run" ; echo "** Run mkfontdir manually on host system"' 1225a7d72839Smrg 1226d3407da1Smrg if test x"$MKFONTDIR" = x; then 1227d3407da1Smrg MKFONTDIR="${MKFONTDIR_WARN} ; echo '** mkfontdir'" 1228d3407da1Smrg fi 1229d3407da1Smrg else 1230d3407da1Smrg XORG_FONT_REQUIRED_PROG(MKFONTDIR, mkfontdir) 1231d3407da1Smrg fi 1232a7d72839Smrg 1233d3407da1Smrg AC_SUBST([MKFONTDIR]) 1234d3407da1Smrg]) 1235a7d72839Smrg 1236d3407da1Smrg# XORG_FONT_COMMON_UTILS() 1237d3407da1Smrg# ------------------------ 1238d3407da1Smrg# Minimum version: 1.1.0 1239d3407da1Smrg# 1240d3407da1Smrg# Call XORG_FONT_REQUIRED_PROG for programs needed for all font types 1241a7d72839Smrg 1242d3407da1SmrgAC_DEFUN([XORG_FONT_COMMON_UTILS],[ 1243d3407da1Smrg XORG_FONT_FCCACHE 1244d3407da1Smrg XORG_FONT_MKFONTDIR 1245d3407da1Smrg]) 1246a7d72839Smrg 1247d3407da1Smrg# XORG_FONT_SCALED_UTILS() 1248fd991a63Smrg# ------------------------ 1249d3407da1Smrg# Minimum version: 1.1.0 1250fd991a63Smrg# 1251d3407da1Smrg# Call XORG_FONT_REQUIRED_PROG for programs needed for scalable fonts 1252d3407da1Smrg# (TrueType, OpenType, Type1) 1253fd991a63Smrg 1254d3407da1SmrgAC_DEFUN([XORG_FONT_SCALED_UTILS],[ 1255d3407da1Smrg XORG_FONT_COMMON_UTILS 1256d3407da1Smrg XORG_FONT_REQUIRED_PROG(MKFONTSCALE, mkfontscale) 1257d3407da1Smrg]) 1258fd991a63Smrg 1259d3407da1Smrg# XORG_FONT_BDF_UTILS() 1260d3407da1Smrg# --------------------- 1261d3407da1Smrg# Minimum version: 1.1.0 1262a7d72839Smrg# 1263d3407da1Smrg# Call XORG_FONT_REQUIRED_PROG for programs needed for BDF format bitmap fonts 1264d3407da1Smrg# Also call XORG_FONT_CHECK_COMPRESSION to determine how to compress the 1265d3407da1Smrg# PCF output files created by bdftopcf 1266a7d72839Smrg 1267d3407da1SmrgAC_DEFUN([XORG_FONT_BDF_UTILS],[ 1268d3407da1Smrg XORG_FONT_COMMON_UTILS 1269d3407da1Smrg XORG_FONT_REQUIRED_PROG(BDFTOPCF, bdftopcf) 1270d3407da1Smrg XORG_FONT_CHECK_COMPRESSION 1271d3407da1Smrg]) 1272a7d72839Smrg 1273d3407da1Smrg# XORG_FONT_CHECK_COMPRESSION() 1274d3407da1Smrg# ----------------------------- 1275d3407da1Smrg# Minimum version: 1.1.0 1276d3407da1Smrg# 1277d3407da1Smrg# Offer a --with-compression flag to control what compression method is 1278d3407da1Smrg# used for pcf font files. Offers all the methods currently supported 1279d3407da1Smrg# by libXfont, including no compression. 1280d3407da1Smrg# 1281d3407da1Smrg# If COMPRESS_FLAGS is not set, and the compression method has flags needed 1282d3407da1Smrg# for reproducible builds, such as gzip -n to not record timestamp, will 1283d3407da1Smrg# set COMPRESS_FLAGS to those options. 1284a7d72839Smrg 1285d3407da1SmrgAC_DEFUN([XORG_FONT_CHECK_COMPRESSION],[ 1286d3407da1Smrg AC_MSG_CHECKING([font compression method]) 1287d3407da1Smrg AC_ARG_WITH(compression, 1288d3407da1Smrg [AS_HELP_STRING([--with-compression=<no|compress|gzip|bzip2>], 1289d3407da1Smrg [compression method to use on pcf fonts])], 1290d3407da1Smrg [compression="$withval"], [compression="yes"]) 1291d3407da1Smrg if test x"$compression" = "xyes" ; then 1292d3407da1Smrg compression="gzip" 1293d3407da1Smrg fi 1294d3407da1Smrg AC_MSG_RESULT([${compression}]) 1295d3407da1Smrg case ${compression} in 1296d3407da1Smrg *compress) COMPRESS_SUFFIX=".Z" ;; 1297d3407da1Smrg *gzip) COMPRESS_SUFFIX=".gz" ; 1298d3407da1Smrg COMPRESS_FLAGS="${COMPRESS_FLAGS--n}" ;; 1299d3407da1Smrg *bzip2) COMPRESS_SUFFIX=".bz2" ;; 1300d3407da1Smrg no|none) COMPRESS_SUFFIX="" ; COMPRESS="cat" ;; 1301d3407da1Smrg *) AC_MSG_ERROR([${compression} is not a supported compression method]) ;; 1302d3407da1Smrg esac 1303d3407da1Smrg if test x"$COMPRESS_SUFFIX" != "x" ; then 1304d3407da1Smrg XORG_FONT_REQUIRED_PROG(COMPRESS, ${compression}) 1305d3407da1Smrg fi 1306d3407da1Smrg AC_MSG_CHECKING([options to font compression command]) 1307d3407da1Smrg AC_MSG_RESULT([${COMPRESS_FLAGS:-none}]) 1308d3407da1Smrg AC_SUBST([COMPRESS_FLAGS]) 1309d3407da1Smrg AC_SUBST([COMPRESS_SUFFIX]) 1310d3407da1Smrg]) 1311a7d72839Smrg 1312d3407da1Smrg# XORG_FONT_UCS2ANY() 1313d3407da1Smrg# ------------------- 1314d3407da1Smrg# Minimum version: 1.1.0 1315d3407da1Smrg# 1316d3407da1Smrg# Call XORG_FONT_REQUIRED_PROG for ucs2any program needed for splitting 1317d3407da1Smrg# Unicode-encoded BDF format bitmap fonts into subsets for older encodings. 1318d3407da1Smrg# Also call pkg-config to find the directory with the encoding files needed 1319d3407da1Smrg# by ucs2any, and export it as MAPFILES_PATH to the Makefiles 1320a7d72839Smrg 1321d3407da1SmrgAC_DEFUN([XORG_FONT_UCS2ANY],[ 1322d3407da1Smrg AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 1323d3407da1Smrg XORG_FONT_REQUIRED_PROG(UCS2ANY, ucs2any) 1324d3407da1Smrg PKG_CHECK_MODULES(MAPS, [fontutil]) 1325d3407da1Smrg AC_MSG_CHECKING([for ucs2any encoding data files]) 1326d3407da1Smrg MAPFILES_PATH=`$PKG_CONFIG --variable=mapdir fontutil` 1327d3407da1Smrg AC_SUBST(MAPFILES_PATH) 1328d3407da1Smrg AC_MSG_RESULT([${MAPFILES_PATH}]) 1329d3407da1Smrg]) 1330a7d72839Smrg 1331a7d72839Smrg 1332a7d72839Smrg 1333d3407da1Smrg# XORG_FONT_FC_CONFDIR() 1334d3407da1Smrg# -------------------- 1335d3407da1Smrg# Minimum version: 1.2.0 1336d3407da1Smrg# 1337d3407da1Smrg# Sets FC_CONFDIR to the fontconfig config directory 1338d3407da1Smrg# (which should be --with-confdir=... when building fontconfig) 1339d3407da1Smrg# found from: 1340d3407da1Smrg# --with-fc-confdir=... 1341d3407da1Smrg# pkg-config --variable=confdir fontconfig 1342d3407da1Smrg# ${sysconfdir}/fonts 1343a7d72839Smrg 1344d3407da1SmrgAC_DEFUN([XORG_FONT_FC_CONFDIR],[ 1345d3407da1Smrg dnl Ensure $PKG_CONFIG is set first 1346d3407da1Smrg AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 1347a7d72839Smrg 1348d3407da1Smrg AC_MSG_CHECKING([for fontconfig's configuration directory]) 1349d3407da1Smrg AC_ARG_WITH(fc-confdir, 1350d3407da1Smrg AS_HELP_STRING([--with-fc-confdir=DIR], 1351d3407da1Smrg [Path to fontconfig's configuration directory]), 1352d3407da1Smrg [FC_CONFDIR="$withval"]) 1353d3407da1Smrg # if --with-fc-confdir was not specified 1354d3407da1Smrg if test "x${FC_CONFDIR}" = "x"; then 1355d3407da1Smrg FC_CONFDIR=`$PKG_CONFIG --variable=confdir fontconfig` 1356d3407da1Smrg fi 1357d3407da1Smrg # ...and if pkg-config didn't find confdir in fontconfig.pc... 1358d3407da1Smrg if test "x${FC_CONFDIR}" = "x"; then 1359d3407da1Smrg FC_CONFDIR="${sysconfdir}/fonts" 1360d3407da1Smrg fi 1361d3407da1Smrg AC_SUBST(FC_CONFDIR) 1362d3407da1Smrg AC_MSG_RESULT([${FC_CONFDIR}]) 1363d3407da1Smrg]) 1364a7d72839Smrg 1365a7d72839Smrg 1366a7d72839Smrg 1367d3407da1Smrg# XORG_FONTROOTDIR() 1368d3407da1Smrg# -------------------- 1369d3407da1Smrg# Minimum version: 1.1.0 1370d3407da1Smrg# 1371d3407da1Smrg# Sets FONTROOTDIR to the root directory for font files. Uses the first 1372d3407da1Smrg# found from: 1373d3407da1Smrg# --with-fontrootdir 1374d3407da1Smrg# pkg-config --variable=fontrootdir fontutil 1375d3407da1Smrg# ${datadir}/fonts/X11 1376a7d72839Smrg 1377d3407da1SmrgAC_DEFUN([XORG_FONTROOTDIR],[ 1378d3407da1Smrg dnl Ensure $PKG_CONFIG is set first 1379d3407da1Smrg AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 1380a7d72839Smrg 1381d3407da1Smrg AC_MSG_CHECKING([for root directory for font files]) 1382d3407da1Smrg AC_ARG_WITH(fontrootdir, 1383d3407da1Smrg AS_HELP_STRING([--with-fontrootdir=DIR], 1384d3407da1Smrg [Path to root directory for font files]), 1385d3407da1Smrg [FONTROOTDIR="$withval"]) 1386d3407da1Smrg # if --with-fontrootdir not specified... 1387d3407da1Smrg if test "x${FONTROOTDIR}" = "x"; then 1388d3407da1Smrg FONTROOTDIR=`$PKG_CONFIG --variable=fontrootdir fontutil` 1389d3407da1Smrg fi 1390d3407da1Smrg # ...and if pkg-config didn't find fontdir in fontutil.pc... 1391d3407da1Smrg if test "x${FONTROOTDIR}" = "x"; then 1392d3407da1Smrg FONTROOTDIR="${datadir}/fonts/X11" 1393d3407da1Smrg fi 1394d3407da1Smrg AC_SUBST(FONTROOTDIR) 1395d3407da1Smrg AC_MSG_RESULT([${FONTROOTDIR}]) 1396d3407da1Smrg]) 1397a7d72839Smrg 1398d3407da1Smrg# XORG_FONTSUBDIR(variable, flag, subdir) 1399d3407da1Smrg# --------------------------------------- 1400d3407da1Smrg# Minimum version: 1.1.0 1401d3407da1Smrg# 1402d3407da1Smrg# Offer a --with-<flag> flag to control directory for font installation 1403d3407da1Smrg# Default is the specified <subdir> of the font root directory. 1404d3407da1Smrg# Sets <variable> to the selected directory 1405a7d72839Smrg 1406d3407da1SmrgAC_DEFUN([XORG_FONTSUBDIR],[ 1407d3407da1Smrg AC_REQUIRE([XORG_FONTROOTDIR]) 1408a7d72839Smrg 1409d3407da1Smrg AC_MSG_CHECKING([for directory for $3 files]) 1410d3407da1Smrg AC_ARG_WITH($2, 1411d3407da1Smrg [AS_HELP_STRING([--with-$2=DIR], 1412d3407da1Smrg [Path to $3 files [FONTROOTDIR/$3]])], 1413d3407da1Smrg [$1="${withval}"], [$1='${FONTROOTDIR}/$3']) 1414d3407da1Smrg AC_SUBST($1) 1415d3407da1Smrg AC_MSG_RESULT([${$1}]) 1416d3407da1Smrg]) # XORG_FONTSUBDIR 1417fd991a63Smrg 1418d3407da1Smrg# XORG_FONTDIR(subdir) 1419d3407da1Smrg# -------------------- 1420d3407da1Smrg# Minimum version: 1.1.0 1421d3407da1Smrg# 1422d3407da1Smrg# Offer a --with-fontdir flag to control directory for font installation 1423d3407da1Smrg# Default is the specified subdir of the font root directory. 1424d3407da1Smrg# Sets FONTDIR to the selected directory 1425a7d72839Smrg 1426d3407da1SmrgAC_DEFUN([XORG_FONTDIR],[XORG_FONTSUBDIR([FONTDIR], [fontdir], [$1])]) 1427a7d72839Smrg 1428d3407da1Smrgdnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. 1429d3407da1Smrgdnl 1430d3407da1Smrgdnl Copyright (c) 2005, 2023, Oracle and/or its affiliates. 1431d3407da1Smrgdnl 1432d3407da1Smrgdnl Permission is hereby granted, free of charge, to any person obtaining a 1433d3407da1Smrgdnl copy of this software and associated documentation files (the "Software"), 1434d3407da1Smrgdnl to deal in the Software without restriction, including without limitation 1435d3407da1Smrgdnl the rights to use, copy, modify, merge, publish, distribute, sublicense, 1436d3407da1Smrgdnl and/or sell copies of the Software, and to permit persons to whom the 1437d3407da1Smrgdnl Software is furnished to do so, subject to the following conditions: 1438d3407da1Smrgdnl 1439d3407da1Smrgdnl The above copyright notice and this permission notice (including the next 1440d3407da1Smrgdnl paragraph) shall be included in all copies or substantial portions of the 1441d3407da1Smrgdnl Software. 1442d3407da1Smrgdnl 1443d3407da1Smrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1444d3407da1Smrgdnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1445d3407da1Smrgdnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 1446d3407da1Smrgdnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1447d3407da1Smrgdnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 1448d3407da1Smrgdnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 1449d3407da1Smrgdnl DEALINGS IN THE SOFTWARE. 1450d3407da1Smrg 1451d3407da1Smrg# XORG_MACROS_VERSION(required-version) 1452d3407da1Smrg# ------------------------------------- 1453d3407da1Smrg# Minimum version: 1.1.0 1454fd991a63Smrg# 1455d3407da1Smrg# If you're using a macro added in Version 1.1 or newer, include this in 1456d3407da1Smrg# your configure.ac with the minimum required version, such as: 1457d3407da1Smrg# XORG_MACROS_VERSION(1.1) 1458fd991a63Smrg# 1459d3407da1Smrg# To ensure that this macro is defined, also add: 1460d3407da1Smrg# m4_ifndef([XORG_MACROS_VERSION], 1461d3407da1Smrg# [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])]) 1462fd991a63Smrg# 1463fd991a63Smrg# 1464d3407da1Smrg# See the "minimum version" comment for each macro you use to see what 1465d3407da1Smrg# version you require. 1466d3407da1Smrgm4_defun([XORG_MACROS_VERSION],[ 1467d3407da1Smrgm4_define([vers_have], [1.20.0]) 1468d3407da1Smrgm4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) 1469d3407da1Smrgm4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) 1470d3407da1Smrgm4_if(m4_cmp(maj_have, maj_needed), 0,, 1471d3407da1Smrg [m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])]) 1472d3407da1Smrgm4_if(m4_version_compare(vers_have, [$1]), -1, 1473d3407da1Smrg [m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])]) 1474d3407da1Smrgm4_undefine([vers_have]) 1475d3407da1Smrgm4_undefine([maj_have]) 1476d3407da1Smrgm4_undefine([maj_needed]) 1477d3407da1Smrg]) # XORG_MACROS_VERSION 1478fd991a63Smrg 1479d3407da1Smrg# XORG_PROG_RAWCPP() 1480d3407da1Smrg# ------------------ 1481d3407da1Smrg# Minimum version: 1.0.0 1482d3407da1Smrg# 1483d3407da1Smrg# Find cpp program and necessary flags for use in pre-processing text files 1484d3407da1Smrg# such as man pages and config files 1485d3407da1SmrgAC_DEFUN([XORG_PROG_RAWCPP],[ 1486d3407da1SmrgAC_REQUIRE([AC_PROG_CPP]) 1487d3407da1SmrgAC_PATH_TOOL(RAWCPP, [cpp], [${CPP}], 1488d3407da1Smrg [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) 1489d3407da1Smrg 1490d3407da1Smrg# Check for flag to avoid builtin definitions - assumes unix is predefined, 1491d3407da1Smrg# which is not the best choice for supporting other OS'es, but covers most 1492d3407da1Smrg# of the ones we need for now. 1493d3407da1SmrgAC_MSG_CHECKING([if $RAWCPP requires -undef]) 1494d3407da1SmrgAC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])]) 1495d3407da1Smrgif test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then 1496d3407da1Smrg AC_MSG_RESULT([no]) 1497fd991a63Smrgelse 1498d3407da1Smrg if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then 1499d3407da1Smrg RAWCPPFLAGS=-undef 1500d3407da1Smrg AC_MSG_RESULT([yes]) 1501d3407da1Smrg # under Cygwin unix is still defined even with -undef 1502d3407da1Smrg elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then 1503d3407da1Smrg RAWCPPFLAGS="-undef -ansi" 1504d3407da1Smrg AC_MSG_RESULT([yes, with -ansi]) 1505d3407da1Smrg else 1506d3407da1Smrg AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.]) 1507d3407da1Smrg fi 1508a7d72839Smrgfi 1509d3407da1Smrgrm -f conftest.$ac_ext 1510a7d72839Smrg 1511d3407da1SmrgAC_MSG_CHECKING([if $RAWCPP requires -traditional]) 1512d3407da1SmrgAC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])]) 1513d3407da1Smrgif test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then 1514d3407da1Smrg AC_MSG_RESULT([no]) 1515fd991a63Smrgelse 1516d3407da1Smrg if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then 1517d3407da1Smrg TRADITIONALCPPFLAGS="-traditional" 1518d3407da1Smrg RAWCPPFLAGS="${RAWCPPFLAGS} -traditional" 1519d3407da1Smrg AC_MSG_RESULT([yes]) 1520d3407da1Smrg else 1521d3407da1Smrg AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.]) 1522d3407da1Smrg fi 1523fd991a63Smrgfi 1524d3407da1Smrgrm -f conftest.$ac_ext 1525d3407da1SmrgAC_SUBST(RAWCPPFLAGS) 1526d3407da1SmrgAC_SUBST(TRADITIONALCPPFLAGS) 1527d3407da1Smrg]) # XORG_PROG_RAWCPP 1528fd991a63Smrg 1529d3407da1Smrg# XORG_MANPAGE_SECTIONS() 1530d3407da1Smrg# ----------------------- 1531d3407da1Smrg# Minimum version: 1.0.0 1532fd991a63Smrg# 1533d3407da1Smrg# Determine which sections man pages go in for the different man page types 1534d3407da1Smrg# on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files. 1535d3407da1Smrg# Not sure if there's any better way than just hardcoding by OS name. 1536d3407da1Smrg# Override default settings by setting environment variables 1537d3407da1Smrg# Added MAN_SUBSTS in version 1.8 1538d3407da1Smrg# Added AC_PROG_SED in version 1.8 1539fd991a63Smrg 1540d3407da1SmrgAC_DEFUN([XORG_MANPAGE_SECTIONS],[ 1541d3407da1SmrgAC_REQUIRE([AC_CANONICAL_HOST]) 1542d3407da1SmrgAC_REQUIRE([AC_PROG_SED]) 1543a7d72839Smrg 1544d3407da1Smrgcase $host_os in 1545d3407da1Smrg solaris*) 1546d3407da1Smrg # Solaris 2.0 - 11.3 use SysV man page section numbers, so we 1547d3407da1Smrg # check for a man page file found in later versions that use 1548d3407da1Smrg # traditional section numbers instead 1549d3407da1Smrg AC_CHECK_FILE([/usr/share/man/man7/attributes.7], 1550d3407da1Smrg [SYSV_MAN_SECTIONS=false], [SYSV_MAN_SECTIONS=true]) 1551d3407da1Smrg ;; 1552d3407da1Smrg *) SYSV_MAN_SECTIONS=false ;; 1553d3407da1Smrgesac 1554fd991a63Smrg 1555d3407da1Smrgif test x$APP_MAN_SUFFIX = x ; then 1556d3407da1Smrg APP_MAN_SUFFIX=1 1557d3407da1Smrgfi 1558d3407da1Smrgif test x$APP_MAN_DIR = x ; then 1559d3407da1Smrg APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' 1560fd991a63Smrgfi 1561a7d72839Smrg 1562d3407da1Smrgif test x$LIB_MAN_SUFFIX = x ; then 1563d3407da1Smrg LIB_MAN_SUFFIX=3 1564d3407da1Smrgfi 1565d3407da1Smrgif test x$LIB_MAN_DIR = x ; then 1566d3407da1Smrg LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' 1567fd991a63Smrgfi 1568a7d72839Smrg 1569d3407da1Smrgif test x$FILE_MAN_SUFFIX = x ; then 1570d3407da1Smrg case $SYSV_MAN_SECTIONS in 1571d3407da1Smrg true) FILE_MAN_SUFFIX=4 ;; 1572d3407da1Smrg *) FILE_MAN_SUFFIX=5 ;; 1573d3407da1Smrg esac 1574d3407da1Smrgfi 1575d3407da1Smrgif test x$FILE_MAN_DIR = x ; then 1576d3407da1Smrg FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' 1577fd991a63Smrgfi 1578a7d72839Smrg 1579d3407da1Smrgif test x$MISC_MAN_SUFFIX = x ; then 1580d3407da1Smrg case $SYSV_MAN_SECTIONS in 1581d3407da1Smrg true) MISC_MAN_SUFFIX=5 ;; 1582d3407da1Smrg *) MISC_MAN_SUFFIX=7 ;; 1583d3407da1Smrg esac 1584d3407da1Smrgfi 1585d3407da1Smrgif test x$MISC_MAN_DIR = x ; then 1586d3407da1Smrg MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' 1587d3407da1Smrgfi 1588a7d72839Smrg 1589d3407da1Smrgif test x$DRIVER_MAN_SUFFIX = x ; then 1590d3407da1Smrg case $SYSV_MAN_SECTIONS in 1591d3407da1Smrg true) DRIVER_MAN_SUFFIX=7 ;; 1592d3407da1Smrg *) DRIVER_MAN_SUFFIX=4 ;; 1593d3407da1Smrg esac 1594d3407da1Smrgfi 1595d3407da1Smrgif test x$DRIVER_MAN_DIR = x ; then 1596d3407da1Smrg DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' 1597d3407da1Smrgfi 1598fd991a63Smrg 1599d3407da1Smrgif test x$ADMIN_MAN_SUFFIX = x ; then 1600d3407da1Smrg case $SYSV_MAN_SECTIONS in 1601d3407da1Smrg true) ADMIN_MAN_SUFFIX=1m ;; 1602d3407da1Smrg *) ADMIN_MAN_SUFFIX=8 ;; 1603d3407da1Smrg esac 1604d3407da1Smrgfi 1605d3407da1Smrgif test x$ADMIN_MAN_DIR = x ; then 1606d3407da1Smrg ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' 1607fd991a63Smrgfi 1608a7d72839Smrg 1609fd991a63Smrg 1610d3407da1SmrgAC_SUBST([APP_MAN_SUFFIX]) 1611d3407da1SmrgAC_SUBST([LIB_MAN_SUFFIX]) 1612d3407da1SmrgAC_SUBST([FILE_MAN_SUFFIX]) 1613d3407da1SmrgAC_SUBST([MISC_MAN_SUFFIX]) 1614d3407da1SmrgAC_SUBST([DRIVER_MAN_SUFFIX]) 1615d3407da1SmrgAC_SUBST([ADMIN_MAN_SUFFIX]) 1616d3407da1SmrgAC_SUBST([APP_MAN_DIR]) 1617d3407da1SmrgAC_SUBST([LIB_MAN_DIR]) 1618d3407da1SmrgAC_SUBST([FILE_MAN_DIR]) 1619d3407da1SmrgAC_SUBST([MISC_MAN_DIR]) 1620d3407da1SmrgAC_SUBST([DRIVER_MAN_DIR]) 1621d3407da1SmrgAC_SUBST([ADMIN_MAN_DIR]) 1622a7d72839Smrg 1623d3407da1SmrgXORG_MAN_PAGE="X Version 11" 1624d3407da1SmrgAC_SUBST([XORG_MAN_PAGE]) 1625d3407da1SmrgMAN_SUBSTS="\ 1626d3407da1Smrg -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ 1627d3407da1Smrg -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ 1628d3407da1Smrg -e 's|__xservername__|Xorg|g' \ 1629d3407da1Smrg -e 's|__xconfigfile__|xorg.conf|g' \ 1630d3407da1Smrg -e 's|__projectroot__|\$(prefix)|g' \ 1631d3407da1Smrg -e 's|__apploaddir__|\$(appdefaultdir)|g' \ 1632d3407da1Smrg -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ 1633d3407da1Smrg -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ 1634d3407da1Smrg -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ 1635d3407da1Smrg -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ 1636d3407da1Smrg -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ 1637d3407da1Smrg -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" 1638d3407da1SmrgAC_SUBST([MAN_SUBSTS]) 1639fd991a63Smrg 1640d3407da1Smrg]) # XORG_MANPAGE_SECTIONS 1641fd991a63Smrg 1642d3407da1Smrg# XORG_CHECK_SGML_DOCTOOLS([MIN-VERSION]) 1643d3407da1Smrg# ------------------------ 1644d3407da1Smrg# Minimum version: 1.7.0 1645fd991a63Smrg# 1646d3407da1Smrg# Defines the variable XORG_SGML_PATH containing the location of X11/defs.ent 1647d3407da1Smrg# provided by xorg-sgml-doctools, if installed. 1648d3407da1SmrgAC_DEFUN([XORG_CHECK_SGML_DOCTOOLS],[ 1649d3407da1SmrgAC_MSG_CHECKING([for X.Org SGML entities m4_ifval([$1],[>= $1])]) 1650d3407da1SmrgXORG_SGML_PATH= 1651d3407da1SmrgPKG_CHECK_EXISTS([xorg-sgml-doctools m4_ifval([$1],[>= $1])], 1652d3407da1Smrg [XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`], 1653d3407da1Smrg [m4_ifval([$1],[:], 1654d3407da1Smrg [if test x"$cross_compiling" != x"yes" ; then 1655d3407da1Smrg AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent], 1656d3407da1Smrg [XORG_SGML_PATH=$prefix/share/sgml]) 1657d3407da1Smrg fi]) 1658d3407da1Smrg ]) 1659d3407da1Smrg 1660d3407da1Smrg# Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing 1661d3407da1Smrg# the path and the name of the doc stylesheet 1662d3407da1Smrgif test "x$XORG_SGML_PATH" != "x" ; then 1663d3407da1Smrg AC_MSG_RESULT([$XORG_SGML_PATH]) 1664d3407da1Smrg STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11 1665d3407da1Smrg XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl 1666d3407da1Smrgelse 1667d3407da1Smrg AC_MSG_RESULT([no]) 1668d3407da1Smrgfi 1669d3407da1Smrg 1670d3407da1SmrgAC_SUBST(XORG_SGML_PATH) 1671d3407da1SmrgAC_SUBST(STYLESHEET_SRCDIR) 1672d3407da1SmrgAC_SUBST(XSL_STYLESHEET) 1673d3407da1SmrgAM_CONDITIONAL([HAVE_STYLESHEETS], [test "x$XSL_STYLESHEET" != "x"]) 1674d3407da1Smrg]) # XORG_CHECK_SGML_DOCTOOLS 1675a7d72839Smrg 1676d3407da1Smrg# XORG_CHECK_LINUXDOC 1677d3407da1Smrg# ------------------- 1678fd991a63Smrg# Minimum version: 1.0.0 1679fd991a63Smrg# 1680d3407da1Smrg# Defines the variable MAKE_TEXT if the necessary tools and 1681d3407da1Smrg# files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt. 1682d3407da1Smrg# Whether or not the necessary tools and files are found can be checked 1683d3407da1Smrg# with the AM_CONDITIONAL "BUILD_LINUXDOC" 1684d3407da1SmrgAC_DEFUN([XORG_CHECK_LINUXDOC],[ 1685d3407da1SmrgAC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) 1686d3407da1SmrgAC_REQUIRE([XORG_WITH_PS2PDF]) 1687a7d72839Smrg 1688d3407da1SmrgAC_PATH_PROG(LINUXDOC, linuxdoc) 1689d3407da1Smrg 1690d3407da1SmrgAC_MSG_CHECKING([whether to build documentation]) 1691d3407da1Smrg 1692d3407da1Smrgif test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then 1693d3407da1Smrg BUILDDOC=yes 1694d3407da1Smrgelse 1695d3407da1Smrg BUILDDOC=no 1696fd991a63Smrgfi 1697a7d72839Smrg 1698d3407da1SmrgAM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes]) 1699d3407da1Smrg 1700d3407da1SmrgAC_MSG_RESULT([$BUILDDOC]) 1701d3407da1Smrg 1702d3407da1SmrgAC_MSG_CHECKING([whether to build pdf documentation]) 1703d3407da1Smrg 1704d3407da1Smrgif test x$have_ps2pdf != xno && test x$BUILD_PDFDOC != xno; then 1705d3407da1Smrg BUILDPDFDOC=yes 1706fd991a63Smrgelse 1707d3407da1Smrg BUILDPDFDOC=no 1708fd991a63Smrgfi 1709fd991a63Smrg 1710d3407da1SmrgAM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) 1711a7d72839Smrg 1712d3407da1SmrgAC_MSG_RESULT([$BUILDPDFDOC]) 1713d3407da1Smrg 1714d3407da1SmrgMAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt -f" 1715d3407da1SmrgMAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps" 1716d3407da1SmrgMAKE_PDF="$PS2PDF" 1717d3407da1SmrgMAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0" 1718d3407da1Smrg 1719d3407da1SmrgAC_SUBST(MAKE_TEXT) 1720d3407da1SmrgAC_SUBST(MAKE_PS) 1721d3407da1SmrgAC_SUBST(MAKE_PDF) 1722d3407da1SmrgAC_SUBST(MAKE_HTML) 1723d3407da1Smrg]) # XORG_CHECK_LINUXDOC 1724d3407da1Smrg 1725d3407da1Smrg# XORG_CHECK_DOCBOOK 1726d3407da1Smrg# ------------------- 1727d3407da1Smrg# Minimum version: 1.0.0 1728d3407da1Smrg# 1729d3407da1Smrg# Checks for the ability to build output formats from SGML DocBook source. 1730d3407da1Smrg# For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC" 1731d3407da1Smrg# indicates whether the necessary tools and files are found and, if set, 1732d3407da1Smrg# $(MAKE_XXX) blah.sgml will produce blah.xxx. 1733d3407da1SmrgAC_DEFUN([XORG_CHECK_DOCBOOK],[ 1734d3407da1SmrgAC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) 1735d3407da1Smrg 1736d3407da1SmrgBUILDTXTDOC=no 1737d3407da1SmrgBUILDPDFDOC=no 1738d3407da1SmrgBUILDPSDOC=no 1739d3407da1SmrgBUILDHTMLDOC=no 1740d3407da1Smrg 1741d3407da1SmrgAC_PATH_PROG(DOCBOOKPS, docbook2ps) 1742d3407da1SmrgAC_PATH_PROG(DOCBOOKPDF, docbook2pdf) 1743d3407da1SmrgAC_PATH_PROG(DOCBOOKHTML, docbook2html) 1744d3407da1SmrgAC_PATH_PROG(DOCBOOKTXT, docbook2txt) 1745d3407da1Smrg 1746d3407da1SmrgAC_MSG_CHECKING([whether to build text documentation]) 1747d3407da1Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x && 1748d3407da1Smrg test x$BUILD_TXTDOC != xno; then 1749d3407da1Smrg BUILDTXTDOC=yes 1750d3407da1Smrgfi 1751d3407da1SmrgAM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes]) 1752d3407da1SmrgAC_MSG_RESULT([$BUILDTXTDOC]) 1753d3407da1Smrg 1754d3407da1SmrgAC_MSG_CHECKING([whether to build PDF documentation]) 1755d3407da1Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x && 1756d3407da1Smrg test x$BUILD_PDFDOC != xno; then 1757d3407da1Smrg BUILDPDFDOC=yes 1758d3407da1Smrgfi 1759d3407da1SmrgAM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) 1760d3407da1SmrgAC_MSG_RESULT([$BUILDPDFDOC]) 1761d3407da1Smrg 1762d3407da1SmrgAC_MSG_CHECKING([whether to build PostScript documentation]) 1763d3407da1Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x && 1764d3407da1Smrg test x$BUILD_PSDOC != xno; then 1765d3407da1Smrg BUILDPSDOC=yes 1766d3407da1Smrgfi 1767d3407da1SmrgAM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes]) 1768d3407da1SmrgAC_MSG_RESULT([$BUILDPSDOC]) 1769d3407da1Smrg 1770d3407da1SmrgAC_MSG_CHECKING([whether to build HTML documentation]) 1771d3407da1Smrgif test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x && 1772d3407da1Smrg test x$BUILD_HTMLDOC != xno; then 1773d3407da1Smrg BUILDHTMLDOC=yes 1774d3407da1Smrgfi 1775d3407da1SmrgAM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes]) 1776d3407da1SmrgAC_MSG_RESULT([$BUILDHTMLDOC]) 1777d3407da1Smrg 1778d3407da1SmrgMAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT" 1779d3407da1SmrgMAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS" 1780d3407da1SmrgMAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF" 1781d3407da1SmrgMAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML" 1782d3407da1Smrg 1783d3407da1SmrgAC_SUBST(MAKE_TEXT) 1784d3407da1SmrgAC_SUBST(MAKE_PS) 1785d3407da1SmrgAC_SUBST(MAKE_PDF) 1786d3407da1SmrgAC_SUBST(MAKE_HTML) 1787d3407da1Smrg]) # XORG_CHECK_DOCBOOK 1788d3407da1Smrg 1789d3407da1Smrg# XORG_WITH_XMLTO([MIN-VERSION], [DEFAULT]) 1790fd991a63Smrg# ---------------- 1791d3407da1Smrg# Minimum version: 1.5.0 1792d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.11.0 1793a7d72839Smrg# 1794d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 1795d3407da1Smrg# not at the appropriate level. This macro enables a module to test for the 1796d3407da1Smrg# presence of the tool and obtain it's path in separate variables. Coupled with 1797d3407da1Smrg# the --with-xmlto option, it allows maximum flexibility in making decisions 1798d3407da1Smrg# as whether or not to use the xmlto package. When DEFAULT is not specified, 1799d3407da1Smrg# --with-xmlto assumes 'auto'. 1800a7d72839Smrg# 1801fd991a63Smrg# Interface to module: 1802d3407da1Smrg# HAVE_XMLTO: used in makefiles to conditionally generate documentation 1803d3407da1Smrg# XMLTO: returns the path of the xmlto program found 1804d3407da1Smrg# returns the path set by the user in the environment 1805d3407da1Smrg# --with-xmlto: 'yes' user instructs the module to use xmlto 1806d3407da1Smrg# 'no' user instructs the module not to use xmlto 1807a7d72839Smrg# 1808d3407da1Smrg# Added in version 1.10.0 1809d3407da1Smrg# HAVE_XMLTO_TEXT: used in makefiles to conditionally generate text documentation 1810d3407da1Smrg# xmlto for text output requires either lynx, links, or w3m browsers 1811a7d72839Smrg# 1812d3407da1Smrg# If the user sets the value of XMLTO, AC_PATH_PROG skips testing the path. 1813fd991a63Smrg# 1814d3407da1SmrgAC_DEFUN([XORG_WITH_XMLTO],[ 1815d3407da1SmrgAC_ARG_VAR([XMLTO], [Path to xmlto command]) 1816d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 1817d3407da1SmrgAC_ARG_WITH(xmlto, 1818d3407da1Smrg AS_HELP_STRING([--with-xmlto], 1819d3407da1Smrg [Use xmlto to regenerate documentation (default: ]_defopt[)]), 1820d3407da1Smrg [use_xmlto=$withval], [use_xmlto=]_defopt) 1821d3407da1Smrgm4_undefine([_defopt]) 1822a7d72839Smrg 1823d3407da1Smrgif test "x$use_xmlto" = x"auto"; then 1824d3407da1Smrg AC_PATH_PROG([XMLTO], [xmlto]) 1825d3407da1Smrg if test "x$XMLTO" = "x"; then 1826d3407da1Smrg AC_MSG_WARN([xmlto not found - documentation targets will be skipped]) 1827d3407da1Smrg have_xmlto=no 1828d3407da1Smrg else 1829d3407da1Smrg have_xmlto=yes 1830fd991a63Smrg fi 1831d3407da1Smrgelif test "x$use_xmlto" = x"yes" ; then 1832d3407da1Smrg AC_PATH_PROG([XMLTO], [xmlto]) 1833d3407da1Smrg if test "x$XMLTO" = "x"; then 1834d3407da1Smrg AC_MSG_ERROR([--with-xmlto=yes specified but xmlto not found in PATH]) 1835fd991a63Smrg fi 1836d3407da1Smrg have_xmlto=yes 1837d3407da1Smrgelif test "x$use_xmlto" = x"no" ; then 1838d3407da1Smrg if test "x$XMLTO" != "x"; then 1839d3407da1Smrg AC_MSG_WARN([ignoring XMLTO environment variable since --with-xmlto=no was specified]) 1840d3407da1Smrg fi 1841d3407da1Smrg have_xmlto=no 1842fd991a63Smrgelse 1843d3407da1Smrg AC_MSG_ERROR([--with-xmlto expects 'yes' or 'no']) 1844fd991a63Smrgfi 1845a7d72839Smrg 1846d3407da1Smrg# Test for a minimum version of xmlto, if provided. 1847d3407da1Smrgm4_ifval([$1], 1848d3407da1Smrg[if test "$have_xmlto" = yes; then 1849d3407da1Smrg # scrape the xmlto version 1850d3407da1Smrg AC_MSG_CHECKING([the xmlto version]) 1851d3407da1Smrg xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3` 1852d3407da1Smrg AC_MSG_RESULT([$xmlto_version]) 1853d3407da1Smrg AS_VERSION_COMPARE([$xmlto_version], [$1], 1854d3407da1Smrg [if test "x$use_xmlto" = xauto; then 1855d3407da1Smrg AC_MSG_WARN([xmlto version $xmlto_version found, but $1 needed]) 1856d3407da1Smrg have_xmlto=no 1857d3407da1Smrg else 1858d3407da1Smrg AC_MSG_ERROR([xmlto version $xmlto_version found, but $1 needed]) 1859d3407da1Smrg fi]) 1860d3407da1Smrgfi]) 1861a7d72839Smrg 1862d3407da1Smrg# Test for the ability of xmlto to generate a text target 1863d3407da1Smrg# 1864d3407da1Smrg# NOTE: xmlto 0.0.27 or higher return a non-zero return code in the 1865d3407da1Smrg# following test for empty XML docbook files. 1866d3407da1Smrg# For compatibility reasons use the following empty XML docbook file and if 1867d3407da1Smrg# it fails try it again with a non-empty XML file. 1868d3407da1Smrghave_xmlto_text=no 1869d3407da1Smrgcat > conftest.xml << "EOF" 1870d3407da1SmrgEOF 1871d3407da1SmrgAS_IF([test "$have_xmlto" = yes], 1872d3407da1Smrg [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], 1873d3407da1Smrg [have_xmlto_text=yes], 1874d3407da1Smrg [# Try it again with a non-empty XML file. 1875d3407da1Smrg cat > conftest.xml << "EOF" 1876d3407da1Smrg<x></x> 1877d3407da1SmrgEOF 1878d3407da1Smrg AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], 1879d3407da1Smrg [have_xmlto_text=yes], 1880d3407da1Smrg [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])])]) 1881d3407da1Smrgrm -f conftest.xml 1882d3407da1SmrgAM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) 1883d3407da1SmrgAM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) 1884d3407da1Smrg]) # XORG_WITH_XMLTO 1885a7d72839Smrg 1886d3407da1Smrg# XORG_WITH_XSLTPROC([MIN-VERSION], [DEFAULT]) 1887d3407da1Smrg# -------------------------------------------- 1888d3407da1Smrg# Minimum version: 1.12.0 1889d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.12.0 1890a7d72839Smrg# 1891d3407da1Smrg# XSLT (Extensible Stylesheet Language Transformations) is a declarative, 1892d3407da1Smrg# XML-based language used for the transformation of XML documents. 1893d3407da1Smrg# The xsltproc command line tool is for applying XSLT stylesheets to XML documents. 1894d3407da1Smrg# It is used under the cover by xmlto to generate html files from DocBook/XML. 1895d3407da1Smrg# The XSLT processor is often used as a standalone tool for transformations. 1896d3407da1Smrg# It should not be assumed that this tool is used only to work with documnetation. 1897d3407da1Smrg# When DEFAULT is not specified, --with-xsltproc assumes 'auto'. 1898a7d72839Smrg# 1899fd991a63Smrg# Interface to module: 1900d3407da1Smrg# HAVE_XSLTPROC: used in makefiles to conditionally generate documentation 1901d3407da1Smrg# XSLTPROC: returns the path of the xsltproc program found 1902d3407da1Smrg# returns the path set by the user in the environment 1903d3407da1Smrg# --with-xsltproc: 'yes' user instructs the module to use xsltproc 1904d3407da1Smrg# 'no' user instructs the module not to use xsltproc 1905d3407da1Smrg# have_xsltproc: returns yes if xsltproc found in PATH or no 1906a7d72839Smrg# 1907d3407da1Smrg# If the user sets the value of XSLTPROC, AC_PATH_PROG skips testing the path. 1908d3407da1Smrg# 1909d3407da1SmrgAC_DEFUN([XORG_WITH_XSLTPROC],[ 1910d3407da1SmrgAC_ARG_VAR([XSLTPROC], [Path to xsltproc command]) 1911d3407da1Smrg# Preserves the interface, should it be implemented later 1912d3407da1Smrgm4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])]) 1913d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 1914d3407da1SmrgAC_ARG_WITH(xsltproc, 1915d3407da1Smrg AS_HELP_STRING([--with-xsltproc], 1916d3407da1Smrg [Use xsltproc for the transformation of XML documents (default: ]_defopt[)]), 1917d3407da1Smrg [use_xsltproc=$withval], [use_xsltproc=]_defopt) 1918d3407da1Smrgm4_undefine([_defopt]) 1919b1cb5b87Smrg 1920d3407da1Smrgif test "x$use_xsltproc" = x"auto"; then 1921d3407da1Smrg AC_PATH_PROG([XSLTPROC], [xsltproc]) 1922d3407da1Smrg if test "x$XSLTPROC" = "x"; then 1923d3407da1Smrg AC_MSG_WARN([xsltproc not found - cannot transform XML documents]) 1924d3407da1Smrg have_xsltproc=no 1925d3407da1Smrg else 1926d3407da1Smrg have_xsltproc=yes 1927fd991a63Smrg fi 1928d3407da1Smrgelif test "x$use_xsltproc" = x"yes" ; then 1929d3407da1Smrg AC_PATH_PROG([XSLTPROC], [xsltproc]) 1930d3407da1Smrg if test "x$XSLTPROC" = "x"; then 1931d3407da1Smrg AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH]) 1932d3407da1Smrg fi 1933d3407da1Smrg have_xsltproc=yes 1934d3407da1Smrgelif test "x$use_xsltproc" = x"no" ; then 1935d3407da1Smrg if test "x$XSLTPROC" != "x"; then 1936d3407da1Smrg AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified]) 1937d3407da1Smrg fi 1938d3407da1Smrg have_xsltproc=no 1939d3407da1Smrgelse 1940d3407da1Smrg AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no']) 1941fd991a63Smrgfi 1942b1cb5b87Smrg 1943d3407da1SmrgAM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes]) 1944d3407da1Smrg]) # XORG_WITH_XSLTPROC 1945b1cb5b87Smrg 1946d3407da1Smrg# XORG_WITH_PERL([MIN-VERSION], [DEFAULT]) 1947d3407da1Smrg# ---------------------------------------- 1948d3407da1Smrg# Minimum version: 1.15.0 1949a7d72839Smrg# 1950d3407da1Smrg# PERL (Practical Extraction and Report Language) is a language optimized for 1951d3407da1Smrg# scanning arbitrary text files, extracting information from those text files, 1952d3407da1Smrg# and printing reports based on that information. 1953a7d72839Smrg# 1954d3407da1Smrg# When DEFAULT is not specified, --with-perl assumes 'auto'. 1955a7d72839Smrg# 1956d3407da1Smrg# Interface to module: 1957d3407da1Smrg# HAVE_PERL: used in makefiles to conditionally scan text files 1958d3407da1Smrg# PERL: returns the path of the perl program found 1959d3407da1Smrg# returns the path set by the user in the environment 1960d3407da1Smrg# --with-perl: 'yes' user instructs the module to use perl 1961d3407da1Smrg# 'no' user instructs the module not to use perl 1962d3407da1Smrg# have_perl: returns yes if perl found in PATH or no 1963d3407da1Smrg# 1964d3407da1Smrg# If the user sets the value of PERL, AC_PATH_PROG skips testing the path. 1965d3407da1Smrg# 1966d3407da1SmrgAC_DEFUN([XORG_WITH_PERL],[ 1967d3407da1SmrgAC_ARG_VAR([PERL], [Path to perl command]) 1968d3407da1Smrg# Preserves the interface, should it be implemented later 1969d3407da1Smrgm4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])]) 1970d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 1971d3407da1SmrgAC_ARG_WITH(perl, 1972d3407da1Smrg AS_HELP_STRING([--with-perl], 1973d3407da1Smrg [Use perl for extracting information from files (default: ]_defopt[)]), 1974d3407da1Smrg [use_perl=$withval], [use_perl=]_defopt) 1975d3407da1Smrgm4_undefine([_defopt]) 1976b1cb5b87Smrg 1977d3407da1Smrgif test "x$use_perl" = x"auto"; then 1978d3407da1Smrg AC_PATH_PROG([PERL], [perl]) 1979d3407da1Smrg if test "x$PERL" = "x"; then 1980d3407da1Smrg AC_MSG_WARN([perl not found - cannot extract information and report]) 1981d3407da1Smrg have_perl=no 1982d3407da1Smrg else 1983d3407da1Smrg have_perl=yes 1984d3407da1Smrg fi 1985d3407da1Smrgelif test "x$use_perl" = x"yes" ; then 1986d3407da1Smrg AC_PATH_PROG([PERL], [perl]) 1987d3407da1Smrg if test "x$PERL" = "x"; then 1988d3407da1Smrg AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH]) 1989d3407da1Smrg fi 1990d3407da1Smrg have_perl=yes 1991d3407da1Smrgelif test "x$use_perl" = x"no" ; then 1992d3407da1Smrg if test "x$PERL" != "x"; then 1993d3407da1Smrg AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified]) 1994d3407da1Smrg fi 1995d3407da1Smrg have_perl=no 1996d3407da1Smrgelse 1997d3407da1Smrg AC_MSG_ERROR([--with-perl expects 'yes' or 'no']) 1998fd991a63Smrgfi 1999b1cb5b87Smrg 2000d3407da1SmrgAM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes]) 2001d3407da1Smrg]) # XORG_WITH_PERL 2002a7d72839Smrg 2003d3407da1Smrg# XORG_WITH_ASCIIDOC([MIN-VERSION], [DEFAULT]) 2004fd991a63Smrg# ---------------- 2005d3407da1Smrg# Minimum version: 1.5.0 2006d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.11.0 2007fd991a63Smrg# 2008d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 2009d3407da1Smrg# not at the appropriate level. This macro enables a module to test for the 2010d3407da1Smrg# presence of the tool and obtain it's path in separate variables. Coupled with 2011d3407da1Smrg# the --with-asciidoc option, it allows maximum flexibility in making decisions 2012d3407da1Smrg# as whether or not to use the asciidoc package. When DEFAULT is not specified, 2013d3407da1Smrg# --with-asciidoc assumes 'auto'. 2014fd991a63Smrg# 2015d3407da1Smrg# Interface to module: 2016d3407da1Smrg# HAVE_ASCIIDOC: used in makefiles to conditionally generate documentation 2017d3407da1Smrg# ASCIIDOC: returns the path of the asciidoc program found 2018d3407da1Smrg# returns the path set by the user in the environment 2019d3407da1Smrg# --with-asciidoc: 'yes' user instructs the module to use asciidoc 2020d3407da1Smrg# 'no' user instructs the module not to use asciidoc 2021d3407da1Smrg# 2022d3407da1Smrg# If the user sets the value of ASCIIDOC, AC_PATH_PROG skips testing the path. 2023d3407da1Smrg# 2024d3407da1SmrgAC_DEFUN([XORG_WITH_ASCIIDOC],[ 2025d3407da1SmrgAC_ARG_VAR([ASCIIDOC], [Path to asciidoc command]) 2026d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 2027d3407da1SmrgAC_ARG_WITH(asciidoc, 2028d3407da1Smrg AS_HELP_STRING([--with-asciidoc], 2029d3407da1Smrg [Use asciidoc to regenerate documentation (default: ]_defopt[)]), 2030d3407da1Smrg [use_asciidoc=$withval], [use_asciidoc=]_defopt) 2031d3407da1Smrgm4_undefine([_defopt]) 2032a7d72839Smrg 2033d3407da1Smrgif test "x$use_asciidoc" = x"auto"; then 2034d3407da1Smrg AC_PATH_PROG([ASCIIDOC], [asciidoc]) 2035d3407da1Smrg if test "x$ASCIIDOC" = "x"; then 2036d3407da1Smrg AC_MSG_WARN([asciidoc not found - documentation targets will be skipped]) 2037d3407da1Smrg have_asciidoc=no 2038d3407da1Smrg else 2039d3407da1Smrg have_asciidoc=yes 2040d3407da1Smrg fi 2041d3407da1Smrgelif test "x$use_asciidoc" = x"yes" ; then 2042d3407da1Smrg AC_PATH_PROG([ASCIIDOC], [asciidoc]) 2043d3407da1Smrg if test "x$ASCIIDOC" = "x"; then 2044d3407da1Smrg AC_MSG_ERROR([--with-asciidoc=yes specified but asciidoc not found in PATH]) 2045d3407da1Smrg fi 2046d3407da1Smrg have_asciidoc=yes 2047d3407da1Smrgelif test "x$use_asciidoc" = x"no" ; then 2048d3407da1Smrg if test "x$ASCIIDOC" != "x"; then 2049d3407da1Smrg AC_MSG_WARN([ignoring ASCIIDOC environment variable since --with-asciidoc=no was specified]) 2050d3407da1Smrg fi 2051d3407da1Smrg have_asciidoc=no 2052d3407da1Smrgelse 2053d3407da1Smrg AC_MSG_ERROR([--with-asciidoc expects 'yes' or 'no']) 2054d3407da1Smrgfi 2055d3407da1Smrgm4_ifval([$1], 2056d3407da1Smrg[if test "$have_asciidoc" = yes; then 2057d3407da1Smrg # scrape the asciidoc version 2058d3407da1Smrg AC_MSG_CHECKING([the asciidoc version]) 2059d3407da1Smrg asciidoc_version=`$ASCIIDOC --version 2>/dev/null | cut -d' ' -f2` 2060d3407da1Smrg AC_MSG_RESULT([$asciidoc_version]) 2061d3407da1Smrg AS_VERSION_COMPARE([$asciidoc_version], [$1], 2062d3407da1Smrg [if test "x$use_asciidoc" = xauto; then 2063d3407da1Smrg AC_MSG_WARN([asciidoc version $asciidoc_version found, but $1 needed]) 2064d3407da1Smrg have_asciidoc=no 2065d3407da1Smrg else 2066d3407da1Smrg AC_MSG_ERROR([asciidoc version $asciidoc_version found, but $1 needed]) 2067d3407da1Smrg fi]) 2068d3407da1Smrgfi]) 2069d3407da1SmrgAM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes]) 2070d3407da1Smrg]) # XORG_WITH_ASCIIDOC 2071b1cb5b87Smrg 2072d3407da1Smrg# XORG_WITH_DOXYGEN([MIN-VERSION], [DEFAULT]) 2073d3407da1Smrg# ------------------------------------------- 2074d3407da1Smrg# Minimum version: 1.5.0 2075d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.11.0 2076d3407da1Smrg# Minimum version for optional DOT checking: 1.18.0 2077a7d72839Smrg# 2078d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 2079d3407da1Smrg# not at the appropriate level. This macro enables a module to test for the 2080d3407da1Smrg# presence of the tool and obtain it's path in separate variables. Coupled with 2081d3407da1Smrg# the --with-doxygen option, it allows maximum flexibility in making decisions 2082d3407da1Smrg# as whether or not to use the doxygen package. When DEFAULT is not specified, 2083d3407da1Smrg# --with-doxygen assumes 'auto'. 2084fd991a63Smrg# 2085d3407da1Smrg# Interface to module: 2086d3407da1Smrg# HAVE_DOXYGEN: used in makefiles to conditionally generate documentation 2087d3407da1Smrg# DOXYGEN: returns the path of the doxygen program found 2088d3407da1Smrg# returns the path set by the user in the environment 2089d3407da1Smrg# --with-doxygen: 'yes' user instructs the module to use doxygen 2090d3407da1Smrg# 'no' user instructs the module not to use doxygen 2091fd991a63Smrg# 2092d3407da1Smrg# If the user sets the value of DOXYGEN, AC_PATH_PROG skips testing the path. 2093fd991a63Smrg# 2094d3407da1SmrgAC_DEFUN([XORG_WITH_DOXYGEN],[ 2095d3407da1SmrgAC_ARG_VAR([DOXYGEN], [Path to doxygen command]) 2096d3407da1SmrgAC_ARG_VAR([DOT], [Path to the dot graphics utility]) 2097d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 2098d3407da1SmrgAC_ARG_WITH(doxygen, 2099d3407da1Smrg AS_HELP_STRING([--with-doxygen], 2100d3407da1Smrg [Use doxygen to regenerate documentation (default: ]_defopt[)]), 2101d3407da1Smrg [use_doxygen=$withval], [use_doxygen=]_defopt) 2102d3407da1Smrgm4_undefine([_defopt]) 2103b1cb5b87Smrg 2104d3407da1Smrgif test "x$use_doxygen" = x"auto"; then 2105d3407da1Smrg AC_PATH_PROG([DOXYGEN], [doxygen]) 2106d3407da1Smrg if test "x$DOXYGEN" = "x"; then 2107d3407da1Smrg AC_MSG_WARN([doxygen not found - documentation targets will be skipped]) 2108d3407da1Smrg have_doxygen=no 2109d3407da1Smrg else 2110d3407da1Smrg have_doxygen=yes 2111d3407da1Smrg fi 2112d3407da1Smrgelif test "x$use_doxygen" = x"yes" ; then 2113d3407da1Smrg AC_PATH_PROG([DOXYGEN], [doxygen]) 2114d3407da1Smrg if test "x$DOXYGEN" = "x"; then 2115d3407da1Smrg AC_MSG_ERROR([--with-doxygen=yes specified but doxygen not found in PATH]) 2116d3407da1Smrg fi 2117d3407da1Smrg have_doxygen=yes 2118d3407da1Smrgelif test "x$use_doxygen" = x"no" ; then 2119d3407da1Smrg if test "x$DOXYGEN" != "x"; then 2120d3407da1Smrg AC_MSG_WARN([ignoring DOXYGEN environment variable since --with-doxygen=no was specified]) 2121d3407da1Smrg fi 2122d3407da1Smrg have_doxygen=no 2123d3407da1Smrgelse 2124d3407da1Smrg AC_MSG_ERROR([--with-doxygen expects 'yes' or 'no']) 2125d3407da1Smrgfi 2126d3407da1Smrgm4_ifval([$1], 2127d3407da1Smrg[if test "$have_doxygen" = yes; then 2128d3407da1Smrg # scrape the doxygen version 2129d3407da1Smrg AC_MSG_CHECKING([the doxygen version]) 2130d3407da1Smrg doxygen_version=`$DOXYGEN --version 2>/dev/null` 2131d3407da1Smrg AC_MSG_RESULT([$doxygen_version]) 2132d3407da1Smrg AS_VERSION_COMPARE([$doxygen_version], [$1], 2133d3407da1Smrg [if test "x$use_doxygen" = xauto; then 2134d3407da1Smrg AC_MSG_WARN([doxygen version $doxygen_version found, but $1 needed]) 2135d3407da1Smrg have_doxygen=no 2136d3407da1Smrg else 2137d3407da1Smrg AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed]) 2138d3407da1Smrg fi]) 2139d3407da1Smrgfi]) 2140b1cb5b87Smrg 2141d3407da1Smrgdnl Check for DOT if we have doxygen. The caller decides if it is mandatory 2142d3407da1Smrgdnl HAVE_DOT is a variable that can be used in your doxygen.in config file: 2143d3407da1Smrgdnl HAVE_DOT = @HAVE_DOT@ 2144d3407da1SmrgHAVE_DOT=no 2145d3407da1Smrgif test "x$have_doxygen" = "xyes"; then 2146d3407da1Smrg AC_PATH_PROG([DOT], [dot]) 2147d3407da1Smrg if test "x$DOT" != "x"; then 2148d3407da1Smrg HAVE_DOT=yes 2149d3407da1Smrg fi 2150d3407da1Smrgfi 2151a7d72839Smrg 2152d3407da1SmrgAC_SUBST([HAVE_DOT]) 2153d3407da1SmrgAM_CONDITIONAL([HAVE_DOT], [test "$HAVE_DOT" = "yes"]) 2154d3407da1SmrgAM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) 2155d3407da1Smrg]) # XORG_WITH_DOXYGEN 2156fd991a63Smrg 2157d3407da1Smrg# XORG_WITH_GROFF([DEFAULT]) 2158d3407da1Smrg# ---------------- 2159d3407da1Smrg# Minimum version: 1.6.0 2160d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.11.0 2161a7d72839Smrg# 2162d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 2163d3407da1Smrg# not at the appropriate level. This macro enables a module to test for the 2164d3407da1Smrg# presence of the tool and obtain it's path in separate variables. Coupled with 2165d3407da1Smrg# the --with-groff option, it allows maximum flexibility in making decisions 2166d3407da1Smrg# as whether or not to use the groff package. When DEFAULT is not specified, 2167d3407da1Smrg# --with-groff assumes 'auto'. 2168a7d72839Smrg# 2169d3407da1Smrg# Interface to module: 2170d3407da1Smrg# HAVE_GROFF: used in makefiles to conditionally generate documentation 2171d3407da1Smrg# HAVE_GROFF_MM: the memorandum macros (-mm) package 2172d3407da1Smrg# HAVE_GROFF_MS: the -ms macros package 2173d3407da1Smrg# GROFF: returns the path of the groff program found 2174d3407da1Smrg# returns the path set by the user in the environment 2175d3407da1Smrg# --with-groff: 'yes' user instructs the module to use groff 2176d3407da1Smrg# 'no' user instructs the module not to use groff 2177a7d72839Smrg# 2178d3407da1Smrg# Added in version 1.9.0: 2179d3407da1Smrg# HAVE_GROFF_HTML: groff has dependencies to output HTML format: 2180d3407da1Smrg# pnmcut pnmcrop pnmtopng pnmtops from the netpbm package. 2181d3407da1Smrg# psselect from the psutils package. 2182d3407da1Smrg# the ghostcript package. Refer to the grohtml man pages 2183a7d72839Smrg# 2184d3407da1Smrg# If the user sets the value of GROFF, AC_PATH_PROG skips testing the path. 2185fd991a63Smrg# 2186d3407da1Smrg# OS and distros often splits groff in a basic and full package, the former 2187d3407da1Smrg# having the groff program and the later having devices, fonts and macros 2188d3407da1Smrg# Checking for the groff executable is not enough. 2189fd991a63Smrg# 2190d3407da1Smrg# If macros are missing, we cannot assume that groff is useless, so we don't 2191d3407da1Smrg# unset HAVE_GROFF or GROFF env variables. 2192d3407da1Smrg# HAVE_GROFF_?? can never be true while HAVE_GROFF is false. 2193d3407da1Smrg# 2194d3407da1SmrgAC_DEFUN([XORG_WITH_GROFF],[ 2195d3407da1SmrgAC_ARG_VAR([GROFF], [Path to groff command]) 2196d3407da1Smrgm4_define([_defopt], m4_default([$1], [auto])) 2197d3407da1SmrgAC_ARG_WITH(groff, 2198d3407da1Smrg AS_HELP_STRING([--with-groff], 2199d3407da1Smrg [Use groff to regenerate documentation (default: ]_defopt[)]), 2200d3407da1Smrg [use_groff=$withval], [use_groff=]_defopt) 2201d3407da1Smrgm4_undefine([_defopt]) 2202fd991a63Smrg 2203d3407da1Smrgif test "x$use_groff" = x"auto"; then 2204d3407da1Smrg AC_PATH_PROG([GROFF], [groff]) 2205d3407da1Smrg if test "x$GROFF" = "x"; then 2206d3407da1Smrg AC_MSG_WARN([groff not found - documentation targets will be skipped]) 2207d3407da1Smrg have_groff=no 2208d3407da1Smrg else 2209d3407da1Smrg have_groff=yes 2210d3407da1Smrg fi 2211d3407da1Smrgelif test "x$use_groff" = x"yes" ; then 2212d3407da1Smrg AC_PATH_PROG([GROFF], [groff]) 2213d3407da1Smrg if test "x$GROFF" = "x"; then 2214d3407da1Smrg AC_MSG_ERROR([--with-groff=yes specified but groff not found in PATH]) 2215d3407da1Smrg fi 2216d3407da1Smrg have_groff=yes 2217d3407da1Smrgelif test "x$use_groff" = x"no" ; then 2218d3407da1Smrg if test "x$GROFF" != "x"; then 2219d3407da1Smrg AC_MSG_WARN([ignoring GROFF environment variable since --with-groff=no was specified]) 2220d3407da1Smrg fi 2221d3407da1Smrg have_groff=no 2222a7d72839Smrgelse 2223d3407da1Smrg AC_MSG_ERROR([--with-groff expects 'yes' or 'no']) 2224a7d72839Smrgfi 2225b1cb5b87Smrg 2226d3407da1Smrg# We have groff, test for the presence of the macro packages 2227d3407da1Smrgif test "x$have_groff" = x"yes"; then 2228d3407da1Smrg AC_MSG_CHECKING([for ${GROFF} -ms macros]) 2229d3407da1Smrg if ${GROFF} -ms -I. /dev/null >/dev/null 2>&1 ; then 2230d3407da1Smrg groff_ms_works=yes 2231d3407da1Smrg else 2232d3407da1Smrg groff_ms_works=no 2233fd991a63Smrg fi 2234d3407da1Smrg AC_MSG_RESULT([$groff_ms_works]) 2235d3407da1Smrg AC_MSG_CHECKING([for ${GROFF} -mm macros]) 2236d3407da1Smrg if ${GROFF} -mm -I. /dev/null >/dev/null 2>&1 ; then 2237d3407da1Smrg groff_mm_works=yes 2238d3407da1Smrg else 2239d3407da1Smrg groff_mm_works=no 2240d3407da1Smrg fi 2241d3407da1Smrg AC_MSG_RESULT([$groff_mm_works]) 2242a7d72839Smrgfi 2243fd991a63Smrg 2244d3407da1Smrg# We have groff, test for HTML dependencies, one command per package 2245d3407da1Smrgif test "x$have_groff" = x"yes"; then 2246d3407da1Smrg AC_PATH_PROGS(GS_PATH, [gs gswin32c]) 2247d3407da1Smrg AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng]) 2248d3407da1Smrg AC_PATH_PROG(PSSELECT_PATH, [psselect]) 2249d3407da1Smrg if test "x$GS_PATH" != "x" -a "x$PNMTOPNG_PATH" != "x" -a "x$PSSELECT_PATH" != "x"; then 2250d3407da1Smrg have_groff_html=yes 2251d3407da1Smrg else 2252d3407da1Smrg have_groff_html=no 2253d3407da1Smrg AC_MSG_WARN([grohtml dependencies not found - HTML Documentation skipped. Refer to grohtml man pages]) 2254d3407da1Smrg fi 2255d3407da1Smrgfi 2256fd991a63Smrg 2257d3407da1Smrg# Set Automake conditionals for Makefiles 2258d3407da1SmrgAM_CONDITIONAL([HAVE_GROFF], [test "$have_groff" = yes]) 2259d3407da1SmrgAM_CONDITIONAL([HAVE_GROFF_MS], [test "$groff_ms_works" = yes]) 2260d3407da1SmrgAM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes]) 2261d3407da1SmrgAM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) 2262d3407da1Smrg]) # XORG_WITH_GROFF 2263fd991a63Smrg 2264d3407da1Smrg# XORG_WITH_FOP([MIN-VERSION], [DEFAULT]) 2265d3407da1Smrg# --------------------------------------- 2266d3407da1Smrg# Minimum version: 1.6.0 2267d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.11.0 2268d3407da1Smrg# Minimum version for optional MIN-VERSION argument: 1.15.0 2269d3407da1Smrg# 2270d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 2271d3407da1Smrg# not at the appropriate level. This macro enables a module to test for the 2272d3407da1Smrg# presence of the tool and obtain it's path in separate variables. Coupled with 2273d3407da1Smrg# the --with-fop option, it allows maximum flexibility in making decisions 2274d3407da1Smrg# as whether or not to use the fop package. When DEFAULT is not specified, 2275d3407da1Smrg# --with-fop assumes 'auto'. 2276d3407da1Smrg# 2277d3407da1Smrg# Interface to module: 2278d3407da1Smrg# HAVE_FOP: used in makefiles to conditionally generate documentation 2279d3407da1Smrg# FOP: returns the path of the fop program found 2280d3407da1Smrg# returns the path set by the user in the environment 2281d3407da1Smrg# --with-fop: 'yes' user instructs the module to use fop 2282d3407da1Smrg# 'no' user instructs the module not to use fop 2283d3407da1Smrg# 2284d3407da1Smrg# If the user sets the value of FOP, AC_PATH_PROG skips testing the path. 2285d3407da1Smrg# 2286d3407da1SmrgAC_DEFUN([XORG_WITH_FOP],[ 2287d3407da1SmrgAC_ARG_VAR([FOP], [Path to fop command]) 2288d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 2289d3407da1SmrgAC_ARG_WITH(fop, 2290d3407da1Smrg AS_HELP_STRING([--with-fop], 2291d3407da1Smrg [Use fop to regenerate documentation (default: ]_defopt[)]), 2292d3407da1Smrg [use_fop=$withval], [use_fop=]_defopt) 2293d3407da1Smrgm4_undefine([_defopt]) 2294fd991a63Smrg 2295d3407da1Smrgif test "x$use_fop" = x"auto"; then 2296d3407da1Smrg AC_PATH_PROG([FOP], [fop]) 2297d3407da1Smrg if test "x$FOP" = "x"; then 2298d3407da1Smrg AC_MSG_WARN([fop not found - documentation targets will be skipped]) 2299d3407da1Smrg have_fop=no 2300d3407da1Smrg else 2301d3407da1Smrg have_fop=yes 2302d3407da1Smrg fi 2303d3407da1Smrgelif test "x$use_fop" = x"yes" ; then 2304d3407da1Smrg AC_PATH_PROG([FOP], [fop]) 2305d3407da1Smrg if test "x$FOP" = "x"; then 2306d3407da1Smrg AC_MSG_ERROR([--with-fop=yes specified but fop not found in PATH]) 2307d3407da1Smrg fi 2308d3407da1Smrg have_fop=yes 2309d3407da1Smrgelif test "x$use_fop" = x"no" ; then 2310d3407da1Smrg if test "x$FOP" != "x"; then 2311d3407da1Smrg AC_MSG_WARN([ignoring FOP environment variable since --with-fop=no was specified]) 2312d3407da1Smrg fi 2313d3407da1Smrg have_fop=no 2314d3407da1Smrgelse 2315d3407da1Smrg AC_MSG_ERROR([--with-fop expects 'yes' or 'no']) 2316a7d72839Smrgfi 2317b1cb5b87Smrg 2318d3407da1Smrg# Test for a minimum version of fop, if provided. 2319d3407da1Smrgm4_ifval([$1], 2320d3407da1Smrg[if test "$have_fop" = yes; then 2321d3407da1Smrg # scrape the fop version 2322d3407da1Smrg AC_MSG_CHECKING([for fop minimum version]) 2323d3407da1Smrg fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3` 2324d3407da1Smrg AC_MSG_RESULT([$fop_version]) 2325d3407da1Smrg AS_VERSION_COMPARE([$fop_version], [$1], 2326d3407da1Smrg [if test "x$use_fop" = xauto; then 2327d3407da1Smrg AC_MSG_WARN([fop version $fop_version found, but $1 needed]) 2328d3407da1Smrg have_fop=no 2329d3407da1Smrg else 2330d3407da1Smrg AC_MSG_ERROR([fop version $fop_version found, but $1 needed]) 2331d3407da1Smrg fi]) 2332d3407da1Smrgfi]) 2333d3407da1SmrgAM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) 2334d3407da1Smrg]) # XORG_WITH_FOP 2335b1cb5b87Smrg 2336d3407da1Smrg# XORG_WITH_M4([MIN-VERSION]) 2337d3407da1Smrg# --------------------------- 2338d3407da1Smrg# Minimum version: 1.19.0 2339a7d72839Smrg# 2340d3407da1Smrg# This macro attempts to locate an m4 macro processor which supports 2341d3407da1Smrg# -I option and is only useful for modules relying on M4 in order to 2342d3407da1Smrg# expand macros in source code files. 2343fd991a63Smrg# 2344d3407da1Smrg# Interface to module: 2345d3407da1Smrg# M4: returns the path of the m4 program found 2346d3407da1Smrg# returns the path set by the user in the environment 2347d3407da1Smrg# 2348d3407da1SmrgAC_DEFUN([XORG_WITH_M4], [ 2349d3407da1SmrgAC_CACHE_CHECK([for m4 that supports -I option], [ac_cv_path_M4], 2350d3407da1Smrg [AC_PATH_PROGS_FEATURE_CHECK([M4], [m4 gm4], 2351d3407da1Smrg [[$ac_path_M4 -I. /dev/null > /dev/null 2>&1 && \ 2352d3407da1Smrg ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]], 2353d3407da1Smrg [AC_MSG_ERROR([could not find m4 that supports -I option])], 2354d3407da1Smrg [$PATH:/usr/gnu/bin])]) 2355b1cb5b87Smrg 2356d3407da1SmrgAC_SUBST([M4], [$ac_cv_path_M4]) 2357d3407da1Smrg]) # XORG_WITH_M4 2358b1cb5b87Smrg 2359d3407da1Smrg# XORG_WITH_PS2PDF([DEFAULT]) 2360d3407da1Smrg# ---------------- 2361d3407da1Smrg# Minimum version: 1.6.0 2362d3407da1Smrg# Minimum version for optional DEFAULT argument: 1.11.0 2363d3407da1Smrg# 2364d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 2365d3407da1Smrg# not at the appropriate level. This macro enables a module to test for the 2366d3407da1Smrg# presence of the tool and obtain it's path in separate variables. Coupled with 2367d3407da1Smrg# the --with-ps2pdf option, it allows maximum flexibility in making decisions 2368d3407da1Smrg# as whether or not to use the ps2pdf package. When DEFAULT is not specified, 2369d3407da1Smrg# --with-ps2pdf assumes 'auto'. 2370d3407da1Smrg# 2371d3407da1Smrg# Interface to module: 2372d3407da1Smrg# HAVE_PS2PDF: used in makefiles to conditionally generate documentation 2373d3407da1Smrg# PS2PDF: returns the path of the ps2pdf program found 2374d3407da1Smrg# returns the path set by the user in the environment 2375d3407da1Smrg# --with-ps2pdf: 'yes' user instructs the module to use ps2pdf 2376d3407da1Smrg# 'no' user instructs the module not to use ps2pdf 2377d3407da1Smrg# 2378d3407da1Smrg# If the user sets the value of PS2PDF, AC_PATH_PROG skips testing the path. 2379d3407da1Smrg# 2380d3407da1SmrgAC_DEFUN([XORG_WITH_PS2PDF],[ 2381d3407da1SmrgAC_ARG_VAR([PS2PDF], [Path to ps2pdf command]) 2382d3407da1Smrgm4_define([_defopt], m4_default([$1], [auto])) 2383d3407da1SmrgAC_ARG_WITH(ps2pdf, 2384d3407da1Smrg AS_HELP_STRING([--with-ps2pdf], 2385d3407da1Smrg [Use ps2pdf to regenerate documentation (default: ]_defopt[)]), 2386d3407da1Smrg [use_ps2pdf=$withval], [use_ps2pdf=]_defopt) 2387d3407da1Smrgm4_undefine([_defopt]) 2388b1cb5b87Smrg 2389d3407da1Smrgif test "x$use_ps2pdf" = x"auto"; then 2390d3407da1Smrg AC_PATH_PROG([PS2PDF], [ps2pdf]) 2391d3407da1Smrg if test "x$PS2PDF" = "x"; then 2392d3407da1Smrg AC_MSG_WARN([ps2pdf not found - documentation targets will be skipped]) 2393d3407da1Smrg have_ps2pdf=no 2394d3407da1Smrg else 2395d3407da1Smrg have_ps2pdf=yes 2396d3407da1Smrg fi 2397d3407da1Smrgelif test "x$use_ps2pdf" = x"yes" ; then 2398d3407da1Smrg AC_PATH_PROG([PS2PDF], [ps2pdf]) 2399d3407da1Smrg if test "x$PS2PDF" = "x"; then 2400d3407da1Smrg AC_MSG_ERROR([--with-ps2pdf=yes specified but ps2pdf not found in PATH]) 2401d3407da1Smrg fi 2402d3407da1Smrg have_ps2pdf=yes 2403d3407da1Smrgelif test "x$use_ps2pdf" = x"no" ; then 2404d3407da1Smrg if test "x$PS2PDF" != "x"; then 2405d3407da1Smrg AC_MSG_WARN([ignoring PS2PDF environment variable since --with-ps2pdf=no was specified]) 2406d3407da1Smrg fi 2407d3407da1Smrg have_ps2pdf=no 2408d3407da1Smrgelse 2409d3407da1Smrg AC_MSG_ERROR([--with-ps2pdf expects 'yes' or 'no']) 2410fd991a63Smrgfi 2411d3407da1SmrgAM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes]) 2412d3407da1Smrg]) # XORG_WITH_PS2PDF 2413b1cb5b87Smrg 2414d3407da1Smrg# XORG_ENABLE_DOCS (enable_docs=yes) 2415d3407da1Smrg# ---------------- 2416d3407da1Smrg# Minimum version: 1.6.0 2417d3407da1Smrg# 2418d3407da1Smrg# Documentation tools are not always available on all platforms and sometimes 2419d3407da1Smrg# not at the appropriate level. This macro enables a builder to skip all 2420d3407da1Smrg# documentation targets except traditional man pages. 2421d3407da1Smrg# Combined with the specific tool checking macros XORG_WITH_*, it provides 2422d3407da1Smrg# maximum flexibility in controlling documentation building. 2423d3407da1Smrg# Refer to: 2424d3407da1Smrg# XORG_WITH_XMLTO --with-xmlto 2425d3407da1Smrg# XORG_WITH_ASCIIDOC --with-asciidoc 2426d3407da1Smrg# XORG_WITH_DOXYGEN --with-doxygen 2427d3407da1Smrg# XORG_WITH_FOP --with-fop 2428d3407da1Smrg# XORG_WITH_GROFF --with-groff 2429d3407da1Smrg# XORG_WITH_PS2PDF --with-ps2pdf 2430d3407da1Smrg# 2431d3407da1Smrg# Interface to module: 2432d3407da1Smrg# ENABLE_DOCS: used in makefiles to conditionally generate documentation 2433d3407da1Smrg# --enable-docs: 'yes' user instructs the module to generate docs 2434d3407da1Smrg# 'no' user instructs the module not to generate docs 2435d3407da1Smrg# parm1: specify the default value, yes or no. 2436d3407da1Smrg# 2437d3407da1SmrgAC_DEFUN([XORG_ENABLE_DOCS],[ 2438d3407da1Smrgm4_define([docs_default], m4_default([$1], [yes])) 2439d3407da1SmrgAC_ARG_ENABLE(docs, 2440d3407da1Smrg AS_HELP_STRING([--enable-docs], 2441d3407da1Smrg [Enable building the documentation (default: ]docs_default[)]), 2442d3407da1Smrg [build_docs=$enableval], [build_docs=]docs_default) 2443d3407da1Smrgm4_undefine([docs_default]) 2444d3407da1SmrgAM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) 2445d3407da1SmrgAC_MSG_CHECKING([whether to build documentation]) 2446d3407da1SmrgAC_MSG_RESULT([$build_docs]) 2447d3407da1Smrg]) # XORG_ENABLE_DOCS 2448b1cb5b87Smrg 2449d3407da1Smrg# XORG_ENABLE_DEVEL_DOCS (enable_devel_docs=yes) 2450d3407da1Smrg# ---------------- 2451d3407da1Smrg# Minimum version: 1.6.0 2452d3407da1Smrg# 2453d3407da1Smrg# This macro enables a builder to skip all developer documentation. 2454d3407da1Smrg# Combined with the specific tool checking macros XORG_WITH_*, it provides 2455d3407da1Smrg# maximum flexibility in controlling documentation building. 2456d3407da1Smrg# Refer to: 2457d3407da1Smrg# XORG_WITH_XMLTO --with-xmlto 2458d3407da1Smrg# XORG_WITH_ASCIIDOC --with-asciidoc 2459d3407da1Smrg# XORG_WITH_DOXYGEN --with-doxygen 2460d3407da1Smrg# XORG_WITH_FOP --with-fop 2461d3407da1Smrg# XORG_WITH_GROFF --with-groff 2462d3407da1Smrg# XORG_WITH_PS2PDF --with-ps2pdf 2463d3407da1Smrg# 2464d3407da1Smrg# Interface to module: 2465d3407da1Smrg# ENABLE_DEVEL_DOCS: used in makefiles to conditionally generate developer docs 2466d3407da1Smrg# --enable-devel-docs: 'yes' user instructs the module to generate developer docs 2467d3407da1Smrg# 'no' user instructs the module not to generate developer docs 2468d3407da1Smrg# parm1: specify the default value, yes or no. 2469d3407da1Smrg# 2470d3407da1SmrgAC_DEFUN([XORG_ENABLE_DEVEL_DOCS],[ 2471d3407da1Smrgm4_define([devel_default], m4_default([$1], [yes])) 2472d3407da1SmrgAC_ARG_ENABLE(devel-docs, 2473d3407da1Smrg AS_HELP_STRING([--enable-devel-docs], 2474d3407da1Smrg [Enable building the developer documentation (default: ]devel_default[)]), 2475d3407da1Smrg [build_devel_docs=$enableval], [build_devel_docs=]devel_default) 2476d3407da1Smrgm4_undefine([devel_default]) 2477d3407da1SmrgAM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes]) 2478d3407da1SmrgAC_MSG_CHECKING([whether to build developer documentation]) 2479d3407da1SmrgAC_MSG_RESULT([$build_devel_docs]) 2480d3407da1Smrg]) # XORG_ENABLE_DEVEL_DOCS 2481b1cb5b87Smrg 2482d3407da1Smrg# XORG_ENABLE_SPECS (enable_specs=yes) 2483d3407da1Smrg# ---------------- 2484d3407da1Smrg# Minimum version: 1.6.0 2485d3407da1Smrg# 2486d3407da1Smrg# This macro enables a builder to skip all functional specification targets. 2487d3407da1Smrg# Combined with the specific tool checking macros XORG_WITH_*, it provides 2488d3407da1Smrg# maximum flexibility in controlling documentation building. 2489d3407da1Smrg# Refer to: 2490d3407da1Smrg# XORG_WITH_XMLTO --with-xmlto 2491d3407da1Smrg# XORG_WITH_ASCIIDOC --with-asciidoc 2492d3407da1Smrg# XORG_WITH_DOXYGEN --with-doxygen 2493d3407da1Smrg# XORG_WITH_FOP --with-fop 2494d3407da1Smrg# XORG_WITH_GROFF --with-groff 2495d3407da1Smrg# XORG_WITH_PS2PDF --with-ps2pdf 2496d3407da1Smrg# 2497d3407da1Smrg# Interface to module: 2498d3407da1Smrg# ENABLE_SPECS: used in makefiles to conditionally generate specs 2499d3407da1Smrg# --enable-specs: 'yes' user instructs the module to generate specs 2500d3407da1Smrg# 'no' user instructs the module not to generate specs 2501d3407da1Smrg# parm1: specify the default value, yes or no. 2502d3407da1Smrg# 2503d3407da1SmrgAC_DEFUN([XORG_ENABLE_SPECS],[ 2504d3407da1Smrgm4_define([spec_default], m4_default([$1], [yes])) 2505d3407da1SmrgAC_ARG_ENABLE(specs, 2506d3407da1Smrg AS_HELP_STRING([--enable-specs], 2507d3407da1Smrg [Enable building the specs (default: ]spec_default[)]), 2508d3407da1Smrg [build_specs=$enableval], [build_specs=]spec_default) 2509d3407da1Smrgm4_undefine([spec_default]) 2510d3407da1SmrgAM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes]) 2511d3407da1SmrgAC_MSG_CHECKING([whether to build functional specifications]) 2512d3407da1SmrgAC_MSG_RESULT([$build_specs]) 2513d3407da1Smrg]) # XORG_ENABLE_SPECS 2514a7d72839Smrg 2515d3407da1Smrg# XORG_ENABLE_UNIT_TESTS (enable_unit_tests=auto) 2516d3407da1Smrg# ---------------------------------------------- 2517d3407da1Smrg# Minimum version: 1.13.0 2518d3407da1Smrg# 2519d3407da1Smrg# This macro enables a builder to enable/disable unit testing 2520d3407da1Smrg# It makes no assumption about the test cases implementation 2521d3407da1Smrg# Test cases may or may not use Automake "Support for test suites" 2522d3407da1Smrg# They may or may not use the software utility library GLib 2523d3407da1Smrg# 2524d3407da1Smrg# When used in conjunction with XORG_WITH_GLIB, use both AM_CONDITIONAL 2525d3407da1Smrg# ENABLE_UNIT_TESTS and HAVE_GLIB. Not all unit tests may use glib. 2526d3407da1Smrg# The variable enable_unit_tests is used by other macros in this file. 2527d3407da1Smrg# 2528d3407da1Smrg# Interface to module: 2529d3407da1Smrg# ENABLE_UNIT_TESTS: used in makefiles to conditionally build tests 2530d3407da1Smrg# enable_unit_tests: used in configure.ac for additional configuration 2531d3407da1Smrg# --enable-unit-tests: 'yes' user instructs the module to build tests 2532d3407da1Smrg# 'no' user instructs the module not to build tests 2533d3407da1Smrg# parm1: specify the default value, yes or no. 2534d3407da1Smrg# 2535d3407da1SmrgAC_DEFUN([XORG_ENABLE_UNIT_TESTS],[ 2536d3407da1SmrgAC_BEFORE([$0], [XORG_WITH_GLIB]) 2537d3407da1SmrgAC_BEFORE([$0], [XORG_LD_WRAP]) 2538d3407da1SmrgAC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) 2539d3407da1Smrgm4_define([_defopt], m4_default([$1], [auto])) 2540d3407da1SmrgAC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests], 2541d3407da1Smrg [Enable building unit test cases (default: ]_defopt[)]), 2542d3407da1Smrg [enable_unit_tests=$enableval], [enable_unit_tests=]_defopt) 2543d3407da1Smrgm4_undefine([_defopt]) 2544d3407da1SmrgAM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno]) 2545d3407da1SmrgAC_MSG_CHECKING([whether to build unit test cases]) 2546d3407da1SmrgAC_MSG_RESULT([$enable_unit_tests]) 2547d3407da1Smrg]) # XORG_ENABLE_UNIT_TESTS 2548fd991a63Smrg 2549d3407da1Smrg# XORG_ENABLE_INTEGRATION_TESTS (enable_unit_tests=auto) 2550d3407da1Smrg# ------------------------------------------------------ 2551d3407da1Smrg# Minimum version: 1.17.0 2552d3407da1Smrg# 2553d3407da1Smrg# This macro enables a builder to enable/disable integration testing 2554d3407da1Smrg# It makes no assumption about the test cases' implementation 2555d3407da1Smrg# Test cases may or may not use Automake "Support for test suites" 2556d3407da1Smrg# 2557d3407da1Smrg# Please see XORG_ENABLE_UNIT_TESTS for unit test support. Unit test support 2558d3407da1Smrg# usually requires less dependencies and may be built and run under less 2559d3407da1Smrg# stringent environments than integration tests. 2560d3407da1Smrg# 2561d3407da1Smrg# Interface to module: 2562d3407da1Smrg# ENABLE_INTEGRATION_TESTS: used in makefiles to conditionally build tests 2563d3407da1Smrg# enable_integration_tests: used in configure.ac for additional configuration 2564d3407da1Smrg# --enable-integration-tests: 'yes' user instructs the module to build tests 2565d3407da1Smrg# 'no' user instructs the module not to build tests 2566d3407da1Smrg# parm1: specify the default value, yes or no. 2567d3407da1Smrg# 2568d3407da1SmrgAC_DEFUN([XORG_ENABLE_INTEGRATION_TESTS],[ 2569d3407da1SmrgAC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) 2570d3407da1Smrgm4_define([_defopt], m4_default([$1], [auto])) 2571d3407da1SmrgAC_ARG_ENABLE(integration-tests, AS_HELP_STRING([--enable-integration-tests], 2572d3407da1Smrg [Enable building integration test cases (default: ]_defopt[)]), 2573d3407da1Smrg [enable_integration_tests=$enableval], 2574d3407da1Smrg [enable_integration_tests=]_defopt) 2575d3407da1Smrgm4_undefine([_defopt]) 2576d3407da1SmrgAM_CONDITIONAL([ENABLE_INTEGRATION_TESTS], 2577d3407da1Smrg [test "x$enable_integration_tests" != xno]) 2578d3407da1SmrgAC_MSG_CHECKING([whether to build unit test cases]) 2579d3407da1SmrgAC_MSG_RESULT([$enable_integration_tests]) 2580d3407da1Smrg]) # XORG_ENABLE_INTEGRATION_TESTS 2581fd991a63Smrg 2582d3407da1Smrg# XORG_WITH_GLIB([MIN-VERSION], [DEFAULT]) 2583d3407da1Smrg# ---------------------------------------- 2584d3407da1Smrg# Minimum version: 1.13.0 2585d3407da1Smrg# 2586d3407da1Smrg# GLib is a library which provides advanced data structures and functions. 2587d3407da1Smrg# This macro enables a module to test for the presence of Glib. 2588d3407da1Smrg# 2589d3407da1Smrg# When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing. 2590d3407da1Smrg# Otherwise the value of $enable_unit_tests is blank. 2591d3407da1Smrg# 2592d3407da1Smrg# Please see XORG_ENABLE_INTEGRATION_TESTS for integration test support. Unit 2593d3407da1Smrg# test support usually requires less dependencies and may be built and run under 2594d3407da1Smrg# less stringent environments than integration tests. 2595d3407da1Smrg# 2596d3407da1Smrg# Interface to module: 2597d3407da1Smrg# HAVE_GLIB: used in makefiles to conditionally build targets 2598d3407da1Smrg# with_glib: used in configure.ac to know if GLib has been found 2599d3407da1Smrg# --with-glib: 'yes' user instructs the module to use glib 2600d3407da1Smrg# 'no' user instructs the module not to use glib 2601d3407da1Smrg# 2602d3407da1SmrgAC_DEFUN([XORG_WITH_GLIB],[ 2603d3407da1SmrgAC_REQUIRE([PKG_PROG_PKG_CONFIG]) 2604d3407da1Smrgm4_define([_defopt], m4_default([$2], [auto])) 2605d3407da1SmrgAC_ARG_WITH(glib, AS_HELP_STRING([--with-glib], 2606d3407da1Smrg [Use GLib library for unit testing (default: ]_defopt[)]), 2607d3407da1Smrg [with_glib=$withval], [with_glib=]_defopt) 2608d3407da1Smrgm4_undefine([_defopt]) 2609fd991a63Smrg 2610d3407da1Smrghave_glib=no 2611d3407da1Smrg# Do not probe GLib if user explicitly disabled unit testing 2612d3407da1Smrgif test "x$enable_unit_tests" != x"no"; then 2613d3407da1Smrg # Do not probe GLib if user explicitly disabled it 2614d3407da1Smrg if test "x$with_glib" != x"no"; then 2615d3407da1Smrg m4_ifval( 2616d3407da1Smrg [$1], 2617d3407da1Smrg [PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])], 2618d3407da1Smrg [PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])] 2619d3407da1Smrg ) 2620d3407da1Smrg fi 2621d3407da1Smrgfi 2622fd991a63Smrg 2623d3407da1Smrg# Not having GLib when unit testing has been explicitly requested is an error 2624d3407da1Smrgif test "x$enable_unit_tests" = x"yes"; then 2625d3407da1Smrg if test "x$have_glib" = x"no"; then 2626d3407da1Smrg AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) 2627d3407da1Smrg fi 2628d3407da1Smrgfi 2629fd991a63Smrg 2630d3407da1Smrg# Having unit testing disabled when GLib has been explicitly requested is an error 2631d3407da1Smrgif test "x$enable_unit_tests" = x"no"; then 2632d3407da1Smrg if test "x$with_glib" = x"yes"; then 2633d3407da1Smrg AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) 2634d3407da1Smrg fi 2635a7d72839Smrgfi 2636a7d72839Smrg 2637d3407da1Smrg# Not having GLib when it has been explicitly requested is an error 2638d3407da1Smrgif test "x$with_glib" = x"yes"; then 2639d3407da1Smrg if test "x$have_glib" = x"no"; then 2640d3407da1Smrg AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found]) 2641d3407da1Smrg fi 2642d3407da1Smrgfi 2643a7d72839Smrg 2644d3407da1SmrgAM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes]) 2645d3407da1Smrg]) # XORG_WITH_GLIB 2646a7d72839Smrg 2647d3407da1Smrg# XORG_LD_WRAP([required|optional]) 2648d3407da1Smrg# --------------------------------- 2649d3407da1Smrg# Minimum version: 1.13.0 2650d3407da1Smrg# 2651d3407da1Smrg# Check if linker supports -wrap, passed via compiler flags 2652d3407da1Smrg# 2653d3407da1Smrg# When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing. 2654d3407da1Smrg# Otherwise the value of $enable_unit_tests is blank. 2655d3407da1Smrg# 2656d3407da1Smrg# Argument added in 1.16.0 - default is "required", to match existing behavior 2657d3407da1Smrg# of returning an error if enable_unit_tests is yes, and ld -wrap is not 2658d3407da1Smrg# available, an argument of "optional" allows use when some unit tests require 2659d3407da1Smrg# ld -wrap and others do not. 2660d3407da1Smrg# 2661d3407da1SmrgAC_DEFUN([XORG_LD_WRAP],[ 2662d3407da1SmrgXORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no], 2663d3407da1Smrg [AC_LANG_PROGRAM([#include <stdlib.h> 2664d3407da1Smrg void __wrap_exit(int status) { return; }], 2665d3407da1Smrg [exit(0);])]) 2666d3407da1Smrg# Not having ld wrap when unit testing has been explicitly requested is an error 2667d3407da1Smrgif test "x$enable_unit_tests" = x"yes" -a "x$1" != "xoptional"; then 2668d3407da1Smrg if test "x$have_ld_wrap" = x"no"; then 2669d3407da1Smrg AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available]) 2670d3407da1Smrg fi 2671a7d72839Smrgfi 2672d3407da1SmrgAM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes]) 2673d3407da1Smrg# 2674d3407da1Smrg]) # XORG_LD_WRAP 2675a7d72839Smrg 2676d3407da1Smrg# XORG_CHECK_LINKER_FLAGS 2677d3407da1Smrg# ----------------------- 2678d3407da1Smrg# SYNOPSIS 2679d3407da1Smrg# 2680d3407da1Smrg# XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE], [PROGRAM-SOURCE]) 2681d3407da1Smrg# 2682d3407da1Smrg# DESCRIPTION 2683d3407da1Smrg# 2684d3407da1Smrg# Check whether the given linker FLAGS work with the current language's 2685d3407da1Smrg# linker, or whether they give an error. 2686d3407da1Smrg# 2687d3407da1Smrg# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on 2688d3407da1Smrg# success/failure. 2689d3407da1Smrg# 2690d3407da1Smrg# PROGRAM-SOURCE is the program source to link with, if needed 2691d3407da1Smrg# 2692d3407da1Smrg# NOTE: Based on AX_CHECK_COMPILER_FLAGS. 2693d3407da1Smrg# 2694d3407da1Smrg# LICENSE 2695d3407da1Smrg# 2696d3407da1Smrg# Copyright (c) 2009 Mike Frysinger <vapier@gentoo.org> 2697d3407da1Smrg# Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu> 2698d3407da1Smrg# Copyright (c) 2009 Matteo Frigo 2699d3407da1Smrg# 2700d3407da1Smrg# This program is free software: you can redistribute it and/or modify it 2701d3407da1Smrg# under the terms of the GNU General Public License as published by the 2702d3407da1Smrg# Free Software Foundation, either version 3 of the License, or (at your 2703d3407da1Smrg# option) any later version. 2704d3407da1Smrg# 2705d3407da1Smrg# This program is distributed in the hope that it will be useful, but 2706d3407da1Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of 2707d3407da1Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 2708d3407da1Smrg# Public License for more details. 2709d3407da1Smrg# 2710d3407da1Smrg# You should have received a copy of the GNU General Public License along 2711d3407da1Smrg# with this program. If not, see <http://www.gnu.org/licenses/>. 2712d3407da1Smrg# 2713d3407da1Smrg# As a special exception, the respective Autoconf Macro's copyright owner 2714d3407da1Smrg# gives unlimited permission to copy, distribute and modify the configure 2715d3407da1Smrg# scripts that are the output of Autoconf when processing the Macro. You 2716d3407da1Smrg# need not follow the terms of the GNU General Public License when using 2717d3407da1Smrg# or distributing such scripts, even though portions of the text of the 2718d3407da1Smrg# Macro appear in them. The GNU General Public License (GPL) does govern 2719d3407da1Smrg# all other use of the material that constitutes the Autoconf Macro. 2720d3407da1Smrg# 2721d3407da1Smrg# This special exception to the GPL applies to versions of the Autoconf 2722d3407da1Smrg# Macro released by the Autoconf Archive. When you make and distribute a 2723d3407da1Smrg# modified version of the Autoconf Macro, you may extend this special 2724d3407da1Smrg# exception to the GPL to apply to your modified version as well.# 2725d3407da1SmrgAC_DEFUN([XORG_CHECK_LINKER_FLAGS], 2726d3407da1Smrg[AC_MSG_CHECKING([whether the linker accepts $1]) 2727d3407da1Smrgdnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: 2728d3407da1SmrgAS_LITERAL_IF([$1], 2729d3407da1Smrg [AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [ 2730d3407da1Smrg ax_save_FLAGS=$LDFLAGS 2731d3407da1Smrg LDFLAGS="$1" 2732d3407da1Smrg AC_LINK_IFELSE([m4_default([$4],[AC_LANG_PROGRAM()])], 2733d3407da1Smrg AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, 2734d3407da1Smrg AS_TR_SH(xorg_cv_linker_flags_[$1])=no) 2735d3407da1Smrg LDFLAGS=$ax_save_FLAGS])], 2736d3407da1Smrg [ax_save_FLAGS=$LDFLAGS 2737d3407da1Smrg LDFLAGS="$1" 2738d3407da1Smrg AC_LINK_IFELSE([AC_LANG_PROGRAM()], 2739d3407da1Smrg eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, 2740d3407da1Smrg eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no) 2741d3407da1Smrg LDFLAGS=$ax_save_FLAGS]) 2742d3407da1Smrgeval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1]) 2743d3407da1SmrgAC_MSG_RESULT($xorg_check_linker_flags) 2744d3407da1Smrgif test "x$xorg_check_linker_flags" = xyes; then 2745d3407da1Smrg m4_default([$2], :) 2746d3407da1Smrgelse 2747d3407da1Smrg m4_default([$3], :) 2748d3407da1Smrgfi 2749d3407da1Smrg]) # XORG_CHECK_LINKER_FLAGS 2750a7d72839Smrg 2751d3407da1Smrg# XORG_MEMORY_CHECK_FLAGS 2752d3407da1Smrg# ----------------------- 2753d3407da1Smrg# Minimum version: 1.16.0 2754fd991a63Smrg# 2755d3407da1Smrg# This macro attempts to find appropriate memory checking functionality 2756d3407da1Smrg# for various platforms which unit testing code may use to catch various 2757d3407da1Smrg# forms of memory allocation and access errors in testing. 2758d3407da1Smrg# 2759d3407da1Smrg# Interface to module: 2760d3407da1Smrg# XORG_MALLOC_DEBUG_ENV - environment variables to set to enable debugging 2761d3407da1Smrg# Usually added to TESTS_ENVIRONMENT in Makefile.am 2762d3407da1Smrg# 2763d3407da1Smrg# If the user sets the value of XORG_MALLOC_DEBUG_ENV, it is used verbatim. 2764d3407da1Smrg# 2765d3407da1SmrgAC_DEFUN([XORG_MEMORY_CHECK_FLAGS],[ 2766a7d72839Smrg 2767d3407da1SmrgAC_REQUIRE([AC_CANONICAL_HOST]) 2768d3407da1SmrgAC_ARG_VAR([XORG_MALLOC_DEBUG_ENV], 2769d3407da1Smrg [Environment variables to enable memory checking in tests]) 2770a7d72839Smrg 2771d3407da1Smrg# Check for different types of support on different platforms 2772d3407da1Smrgcase $host_os in 2773d3407da1Smrg solaris*) 2774d3407da1Smrg AC_CHECK_LIB([umem], [umem_alloc], 2775d3407da1Smrg [malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default']) 2776d3407da1Smrg ;; 2777d3407da1Smrg *-gnu*) # GNU libc - Value is used as a single byte bit pattern, 2778d3407da1Smrg # both directly and inverted, so should not be 0 or 255. 2779d3407da1Smrg malloc_debug_env='MALLOC_PERTURB_=15' 2780d3407da1Smrg ;; 2781d3407da1Smrg darwin*) 2782d3407da1Smrg malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' 2783d3407da1Smrg ;; 2784d3407da1Smrg *bsd*) 2785d3407da1Smrg malloc_debug_env='MallocPreScribble=1 MallocScribble=1' 2786d3407da1Smrg ;; 2787d3407da1Smrgesac 2788a7d72839Smrg 2789d3407da1Smrg# User supplied flags override default flags 2790d3407da1Smrgif test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then 2791d3407da1Smrg malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" 2792d3407da1Smrgfi 2793a7d72839Smrg 2794d3407da1SmrgAC_SUBST([XORG_MALLOC_DEBUG_ENV],[$malloc_debug_env]) 2795d3407da1Smrg]) # XORG_WITH_LINT 2796fd991a63Smrg 2797d3407da1Smrg# XORG_CHECK_MALLOC_ZERO 2798d3407da1Smrg# ---------------------- 2799d3407da1Smrg# Minimum version: 1.0.0 2800a7d72839Smrg# 2801d3407da1Smrg# Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if 2802d3407da1Smrg# malloc(0) returns NULL. Packages should add one of these cflags to 2803d3407da1Smrg# their AM_CFLAGS (or other appropriate *_CFLAGS) to use them. 2804d3407da1SmrgAC_DEFUN([XORG_CHECK_MALLOC_ZERO],[ 2805d3407da1SmrgAC_ARG_ENABLE(malloc0returnsnull, 2806d3407da1Smrg AS_HELP_STRING([--enable-malloc0returnsnull], 2807d3407da1Smrg [malloc(0) returns NULL (default: auto)]), 2808d3407da1Smrg [MALLOC_ZERO_RETURNS_NULL=$enableval], 2809d3407da1Smrg [MALLOC_ZERO_RETURNS_NULL=auto]) 2810a7d72839Smrg 2811d3407da1SmrgAC_MSG_CHECKING([whether malloc(0) returns NULL]) 2812d3407da1Smrgif test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then 2813d3407da1SmrgAC_CACHE_VAL([xorg_cv_malloc0_returns_null], 2814d3407da1Smrg [AC_RUN_IFELSE([AC_LANG_PROGRAM([ 2815d3407da1Smrg#include <stdlib.h> 2816d3407da1Smrg],[ 2817d3407da1Smrg char *m0, *r0, *c0, *p; 2818d3407da1Smrg m0 = malloc(0); 2819d3407da1Smrg p = malloc(10); 2820d3407da1Smrg r0 = realloc(p,0); 2821d3407da1Smrg c0 = calloc(0,10); 2822d3407da1Smrg exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1); 2823d3407da1Smrg])], 2824d3407da1Smrg [xorg_cv_malloc0_returns_null=yes], 2825d3407da1Smrg [xorg_cv_malloc0_returns_null=no])]) 2826d3407da1SmrgMALLOC_ZERO_RETURNS_NULL=$xorg_cv_malloc0_returns_null 2827d3407da1Smrgfi 2828d3407da1SmrgAC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL]) 2829a7d72839Smrg 2830d3407da1Smrgif test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then 2831d3407da1Smrg MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL" 2832d3407da1Smrg XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS 2833d3407da1Smrg XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC" 2834d3407da1Smrgelse 2835d3407da1Smrg MALLOC_ZERO_CFLAGS="" 2836d3407da1Smrg XMALLOC_ZERO_CFLAGS="" 2837d3407da1Smrg XTMALLOC_ZERO_CFLAGS="" 2838d3407da1Smrgfi 2839a7d72839Smrg 2840d3407da1SmrgAC_SUBST([MALLOC_ZERO_CFLAGS]) 2841d3407da1SmrgAC_SUBST([XMALLOC_ZERO_CFLAGS]) 2842d3407da1SmrgAC_SUBST([XTMALLOC_ZERO_CFLAGS]) 2843d3407da1Smrg]) # XORG_CHECK_MALLOC_ZERO 2844b1cb5b87Smrg 2845d3407da1Smrg# XORG_WITH_LINT() 2846d3407da1Smrg# ---------------- 2847d3407da1Smrg# Minimum version: 1.1.0 2848a7d72839Smrg# 2849d3407da1Smrg# This macro enables the use of a tool that flags some suspicious and 2850d3407da1Smrg# non-portable constructs (likely to be bugs) in C language source code. 2851d3407da1Smrg# It will attempt to locate the tool and use appropriate options. 2852d3407da1Smrg# There are various lint type tools on different platforms. 2853d3407da1Smrg# 2854d3407da1Smrg# Interface to module: 2855d3407da1Smrg# LINT: returns the path to the tool found on the platform 2856d3407da1Smrg# or the value set to LINT on the configure cmd line 2857d3407da1Smrg# also an Automake conditional 2858d3407da1Smrg# LINT_FLAGS: an Automake variable with appropriate flags 2859d3407da1Smrg# 2860d3407da1Smrg# --with-lint: 'yes' user instructs the module to use lint 2861d3407da1Smrg# 'no' user instructs the module not to use lint (default) 2862d3407da1Smrg# 2863d3407da1Smrg# If the user sets the value of LINT, AC_PATH_PROG skips testing the path. 2864d3407da1Smrg# If the user sets the value of LINT_FLAGS, they are used verbatim. 2865d3407da1Smrg# 2866d3407da1SmrgAC_DEFUN([XORG_WITH_LINT],[ 2867a7d72839Smrg 2868d3407da1SmrgAC_ARG_VAR([LINT], [Path to a lint-style command]) 2869d3407da1SmrgAC_ARG_VAR([LINT_FLAGS], [Flags for the lint-style command]) 2870d3407da1SmrgAC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], 2871d3407da1Smrg [Use a lint-style source code checker (default: disabled)])], 2872d3407da1Smrg [use_lint=$withval], [use_lint=no]) 2873a7d72839Smrg 2874d3407da1Smrg# Obtain platform specific info like program name and options 2875d3407da1Smrg# The lint program on FreeBSD and NetBSD is different from the one on Solaris 2876d3407da1Smrgcase $host_os in 2877d3407da1Smrg *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*) 2878d3407da1Smrg lint_name=splint 2879d3407da1Smrg lint_options="-badflag" 2880d3407da1Smrg ;; 2881d3407da1Smrg *freebsd* | *netbsd*) 2882d3407da1Smrg lint_name=lint 2883d3407da1Smrg lint_options="-u -b" 2884d3407da1Smrg ;; 2885d3407da1Smrg *solaris*) 2886d3407da1Smrg lint_name=lint 2887d3407da1Smrg lint_options="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2" 2888d3407da1Smrg ;; 2889d3407da1Smrgesac 2890a7d72839Smrg 2891d3407da1Smrg# Test for the presence of the program (either guessed by the code or spelled out by the user) 2892d3407da1Smrgif test "x$use_lint" = x"yes" ; then 2893d3407da1Smrg AC_PATH_PROG([LINT], [$lint_name]) 2894d3407da1Smrg if test "x$LINT" = "x"; then 2895d3407da1Smrg AC_MSG_ERROR([--with-lint=yes specified but lint-style tool not found in PATH]) 2896d3407da1Smrg fi 2897d3407da1Smrgelif test "x$use_lint" = x"no" ; then 2898d3407da1Smrg if test "x$LINT" != "x"; then 2899d3407da1Smrg AC_MSG_WARN([ignoring LINT environment variable since --with-lint=no was specified]) 2900d3407da1Smrg fi 2901fd991a63Smrgelse 2902d3407da1Smrg AC_MSG_ERROR([--with-lint expects 'yes' or 'no'. Use LINT variable to specify path.]) 2903fd991a63Smrgfi 2904a7d72839Smrg 2905d3407da1Smrg# User supplied flags override default flags 2906d3407da1Smrgif test "x$LINT_FLAGS" != "x"; then 2907d3407da1Smrg lint_options=$LINT_FLAGS 2908d3407da1Smrgfi 2909a7d72839Smrg 2910d3407da1SmrgAC_SUBST([LINT_FLAGS],[$lint_options]) 2911d3407da1SmrgAM_CONDITIONAL(LINT, [test "x$LINT" != x]) 2912fd991a63Smrg 2913d3407da1Smrg]) # XORG_WITH_LINT 2914fd991a63Smrg 2915d3407da1Smrg# XORG_LINT_LIBRARY(LIBNAME) 2916d3407da1Smrg# -------------------------- 2917d3407da1Smrg# Minimum version: 1.1.0 2918a7d72839Smrg# 2919d3407da1Smrg# Sets up flags for building lint libraries for checking programs that call 2920d3407da1Smrg# functions in the library. 2921d3407da1Smrg# 2922d3407da1Smrg# Interface to module: 2923d3407da1Smrg# LINTLIB - Automake variable with the name of lint library file to make 2924d3407da1Smrg# MAKE_LINT_LIB - Automake conditional 2925d3407da1Smrg# 2926d3407da1Smrg# --enable-lint-library: - 'yes' user instructs the module to created a lint library 2927d3407da1Smrg# - 'no' user instructs the module not to create a lint library (default) 2928fd991a63Smrg 2929d3407da1SmrgAC_DEFUN([XORG_LINT_LIBRARY],[ 2930d3407da1SmrgAC_REQUIRE([XORG_WITH_LINT]) 2931d3407da1SmrgAC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], 2932d3407da1Smrg [Create lint library (default: disabled)])], 2933d3407da1Smrg [make_lint_lib=$enableval], [make_lint_lib=no]) 2934a7d72839Smrg 2935d3407da1Smrgif test "x$make_lint_lib" = x"yes" ; then 2936d3407da1Smrg LINTLIB=llib-l$1.ln 2937d3407da1Smrg if test "x$LINT" = "x"; then 2938d3407da1Smrg AC_MSG_ERROR([Cannot make lint library without --with-lint]) 2939d3407da1Smrg fi 2940d3407da1Smrgelif test "x$make_lint_lib" != x"no" ; then 2941d3407da1Smrg AC_MSG_ERROR([--enable-lint-library expects 'yes' or 'no'.]) 2942d3407da1Smrgfi 2943a7d72839Smrg 2944d3407da1SmrgAC_SUBST(LINTLIB) 2945d3407da1SmrgAM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) 2946b1cb5b87Smrg 2947d3407da1Smrg]) # XORG_LINT_LIBRARY 2948b1cb5b87Smrg 2949d3407da1Smrg# XORG_COMPILER_BRAND 2950d3407da1Smrg# ------------------- 2951d3407da1Smrg# Minimum version: 1.14.0 2952d3407da1Smrg# 2953d3407da1Smrg# Checks for various brands of compilers and sets flags as appropriate: 2954d3407da1Smrg# GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes" 2955d3407da1Smrg# GNU g++ - relies on AC_PROG_CXX to set GXX to "yes" 2956d3407da1Smrg# clang compiler - sets CLANGCC to "yes" 2957d3407da1Smrg# Intel compiler - sets INTELCC to "yes" 2958d3407da1Smrg# Sun/Oracle Solaris Studio cc - sets SUNCC to "yes" 2959d3407da1Smrg# 2960d3407da1SmrgAC_DEFUN([XORG_COMPILER_BRAND], [ 2961d3407da1SmrgAC_LANG_CASE( 2962d3407da1Smrg [C], [ 2963d3407da1Smrg dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC 2964d3407da1Smrg dnl and complains that AC_PROG_CC_C99 is obsolete 2965d3407da1Smrg m4_version_prereq([2.70], 2966d3407da1Smrg [AC_REQUIRE([AC_PROG_CC])], 2967d3407da1Smrg [AC_REQUIRE([AC_PROG_CC_C99])]) 2968d3407da1Smrg ], 2969d3407da1Smrg [C++], [ 2970d3407da1Smrg AC_REQUIRE([AC_PROG_CXX]) 2971d3407da1Smrg ] 2972d3407da1Smrg) 2973d3407da1SmrgAC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"]) 2974d3407da1SmrgAC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) 2975d3407da1SmrgAC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) 2976d3407da1Smrg]) # XORG_COMPILER_BRAND 2977a7d72839Smrg 2978d3407da1Smrg# XORG_TESTSET_CFLAG(<variable>, <flag>, [<alternative flag>, ...]) 2979d3407da1Smrg# --------------- 2980d3407da1Smrg# Minimum version: 1.16.0 2981d3407da1Smrg# 2982d3407da1Smrg# Test if the compiler works when passed the given flag as a command line argument. 2983d3407da1Smrg# If it succeeds, the flag is appended to the given variable. If not, it tries the 2984d3407da1Smrg# next flag in the list until there are no more options. 2985d3407da1Smrg# 2986d3407da1Smrg# Note that this does not guarantee that the compiler supports the flag as some 2987d3407da1Smrg# compilers will simply ignore arguments that they do not understand, but we do 2988d3407da1Smrg# attempt to weed out false positives by using -Werror=unknown-warning-option and 2989d3407da1Smrg# -Werror=unused-command-line-argument 2990d3407da1Smrg# 2991d3407da1SmrgAC_DEFUN([XORG_TESTSET_CFLAG], [ 2992d3407da1Smrgm4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) 2993d3407da1Smrgm4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) 2994d3407da1Smrg 2995d3407da1SmrgAC_LANG_COMPILER_REQUIRE 2996d3407da1Smrg 2997d3407da1SmrgAC_LANG_CASE( 2998d3407da1Smrg [C], [ 2999d3407da1Smrg dnl autoconf-2.70 folded AC_PROG_CC_C99 into AC_PROG_CC 3000d3407da1Smrg dnl and complains that AC_PROG_CC_C99 is obsolete 3001d3407da1Smrg m4_version_prereq([2.70], 3002d3407da1Smrg [AC_REQUIRE([AC_PROG_CC])], 3003d3407da1Smrg [AC_REQUIRE([AC_PROG_CC_C99])]) 3004d3407da1Smrg define([PREFIX], [C]) 3005d3407da1Smrg define([CACHE_PREFIX], [cc]) 3006d3407da1Smrg define([COMPILER], [$CC]) 3007d3407da1Smrg ], 3008d3407da1Smrg [C++], [ 3009d3407da1Smrg define([PREFIX], [CXX]) 3010d3407da1Smrg define([CACHE_PREFIX], [cxx]) 3011d3407da1Smrg define([COMPILER], [$CXX]) 3012d3407da1Smrg ] 3013d3407da1Smrg) 3014a7d72839Smrg 3015d3407da1Smrg[xorg_testset_save_]PREFIX[FLAGS]="$PREFIX[FLAGS]" 3016d3407da1Smrg 3017d3407da1Smrgif test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "x" ; then 3018d3407da1Smrg PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" 3019d3407da1Smrg AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unknown-warning-option], 3020d3407da1Smrg [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option], 3021d3407da1Smrg AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], 3022d3407da1Smrg [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=yes], 3023d3407da1Smrg [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=no])) 3024d3407da1Smrg [xorg_testset_]CACHE_PREFIX[_unknown_warning_option]=$[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option] 3025d3407da1Smrg PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" 3026d3407da1Smrgfi 3027fd991a63Smrg 3028d3407da1Smrgif test "x$[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]" = "x" ; then 3029d3407da1Smrg if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "xyes" ; then 3030d3407da1Smrg PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" 3031d3407da1Smrg fi 3032d3407da1Smrg PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" 3033d3407da1Smrg AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unused-command-line-argument], 3034d3407da1Smrg [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument], 3035d3407da1Smrg AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], 3036d3407da1Smrg [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=yes], 3037d3407da1Smrg [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=no])) 3038d3407da1Smrg [xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]=$[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument] 3039d3407da1Smrg PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" 3040d3407da1Smrgfi 3041fd991a63Smrg 3042d3407da1Smrgfound="no" 3043d3407da1Smrgm4_foreach([flag], m4_cdr($@), [ 3044d3407da1Smrg if test $found = "no" ; then 3045d3407da1Smrg if test "x$xorg_testset_]CACHE_PREFIX[_unknown_warning_option" = "xyes" ; then 3046d3407da1Smrg PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" 3047d3407da1Smrg fi 3048d3407da1Smrg 3049d3407da1Smrg if test "x$xorg_testset_]CACHE_PREFIX[_unused_command_line_argument" = "xyes" ; then 3050d3407da1Smrg PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" 3051d3407da1Smrg fi 3052d3407da1Smrg 3053d3407da1Smrg PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag[" 3054d3407da1Smrg 3055d3407da1Smrgdnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname 3056d3407da1Smrg AC_MSG_CHECKING([if ]COMPILER[ supports ]flag[]) 3057d3407da1Smrg cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[]) 3058d3407da1Smrg AC_CACHE_VAL($cacheid, 3059d3407da1Smrg [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])], 3060d3407da1Smrg [eval $cacheid=yes], 3061d3407da1Smrg [eval $cacheid=no])]) 3062d3407da1Smrg 3063d3407da1Smrg PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" 3064d3407da1Smrg 3065d3407da1Smrg eval supported=\$$cacheid 3066d3407da1Smrg AC_MSG_RESULT([$supported]) 3067d3407da1Smrg if test "$supported" = "yes" ; then 3068d3407da1Smrg $1="$$1 ]flag[" 3069d3407da1Smrg found="yes" 3070d3407da1Smrg fi 3071d3407da1Smrg fi 3072d3407da1Smrg]) 3073d3407da1Smrg]) # XORG_TESTSET_CFLAG 3074fd991a63Smrg 3075d3407da1Smrg# XORG_COMPILER_FLAGS 3076d3407da1Smrg# --------------- 3077d3407da1Smrg# Minimum version: 1.16.0 3078d3407da1Smrg# 3079d3407da1Smrg# Defines BASE_CFLAGS or BASE_CXXFLAGS to contain a set of command line 3080d3407da1Smrg# arguments supported by the selected compiler which do NOT alter the generated 3081d3407da1Smrg# code. These arguments will cause the compiler to print various warnings 3082d3407da1Smrg# during compilation AND turn a conservative set of warnings into errors. 3083d3407da1Smrg# 3084d3407da1Smrg# The set of flags supported by BASE_CFLAGS and BASE_CXXFLAGS will grow in 3085d3407da1Smrg# future versions of util-macros as options are added to new compilers. 3086d3407da1Smrg# 3087d3407da1SmrgAC_DEFUN([XORG_COMPILER_FLAGS], [ 3088d3407da1SmrgAC_REQUIRE([XORG_COMPILER_BRAND]) 3089d3407da1Smrg 3090d3407da1SmrgAC_ARG_ENABLE(selective-werror, 3091d3407da1Smrg AS_HELP_STRING([--disable-selective-werror], 3092d3407da1Smrg [Turn off selective compiler errors. (default: enabled)]), 3093d3407da1Smrg [SELECTIVE_WERROR=$enableval], 3094d3407da1Smrg [SELECTIVE_WERROR=yes]) 3095d3407da1Smrg 3096d3407da1SmrgAC_LANG_CASE( 3097d3407da1Smrg [C], [ 3098d3407da1Smrg define([PREFIX], [C]) 3099d3407da1Smrg ], 3100d3407da1Smrg [C++], [ 3101d3407da1Smrg define([PREFIX], [CXX]) 3102d3407da1Smrg ] 3103d3407da1Smrg) 3104d3407da1Smrg# -v is too short to test reliably with XORG_TESTSET_CFLAG 3105d3407da1Smrgif test "x$SUNCC" = "xyes"; then 3106d3407da1Smrg [BASE_]PREFIX[FLAGS]="-v" 3107fd991a63Smrgelse 3108d3407da1Smrg [BASE_]PREFIX[FLAGS]="" 3109a7d72839Smrgfi 3110a7d72839Smrg 3111d3407da1Smrg# This chunk of warnings were those that existed in the legacy CWARNFLAGS 3112d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall]) 3113d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith]) 3114d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations]) 3115d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat]) 3116d3407da1Smrg 3117d3407da1SmrgAC_LANG_CASE( 3118d3407da1Smrg [C], [ 3119d3407da1Smrg XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes]) 3120d3407da1Smrg XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes]) 3121d3407da1Smrg XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs]) 3122d3407da1Smrg XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast]) 3123d3407da1Smrg XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition], [-fd]) 3124d3407da1Smrg XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement]) 3125d3407da1Smrg ] 3126d3407da1Smrg) 3127a7d72839Smrg 3128d3407da1Smrg# This chunk adds additional warnings that could catch undesired effects. 3129d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused]) 3130d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized]) 3131d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow]) 3132d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn]) 3133d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute]) 3134d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls]) 3135d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) 3136d3407da1Smrg 3137d3407da1Smrg# These are currently disabled because they are noisy. They will be enabled 3138d3407da1Smrg# in the future once the codebase is sufficiently modernized to silence 3139d3407da1Smrg# them. For now, I don't want them to drown out the other warnings. 3140d3407da1Smrg# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) 3141d3407da1Smrg# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) 3142d3407da1Smrg# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) 3143d3407da1Smrg 3144d3407da1Smrg# Turn some warnings into errors, so we don't accidentally get successful builds 3145d3407da1Smrg# when there are problems that should be fixed. 3146d3407da1Smrg 3147d3407da1Smrgif test "x$SELECTIVE_WERROR" = "xyes" ; then 3148d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED]) 3149d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull]) 3150d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self]) 3151d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main]) 3152d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces]) 3153d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point]) 3154d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT]) 3155d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs]) 3156d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds]) 3157d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings]) 3158d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address]) 3159d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION]) 3160d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) # Also -errwarn=E_BAD_PTR_INT_COMBINATION 3161d3407da1Smrgelse 3162d3407da1SmrgAC_MSG_WARN([You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT]) 3163d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit]) 3164d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull]) 3165d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self]) 3166d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain]) 3167d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces]) 3168d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point]) 3169d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type]) 3170d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs]) 3171d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds]) 3172d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings]) 3173d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress]) 3174d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast]) 3175d3407da1SmrgXORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast]) 3176d3407da1Smrgfi 3177a7d72839Smrg 3178d3407da1SmrgAC_SUBST([BASE_]PREFIX[FLAGS]) 3179d3407da1Smrg]) # XORG_COMPILER_FLAGS 3180a7d72839Smrg 3181d3407da1Smrg# XORG_CWARNFLAGS 3182d3407da1Smrg# --------------- 3183d3407da1Smrg# Minimum version: 1.2.0 3184d3407da1Smrg# Deprecated since: 1.16.0 (Use XORG_COMPILER_FLAGS instead) 3185fd991a63Smrg# 3186d3407da1Smrg# Defines CWARNFLAGS to enable C compiler warnings. 3187d3407da1Smrg# 3188d3407da1Smrg# This function is deprecated because it defines -fno-strict-aliasing 3189d3407da1Smrg# which alters the code generated by the compiler. If -fno-strict-aliasing 3190d3407da1Smrg# is needed, then it should be added explicitly in the module when 3191d3407da1Smrg# it is updated to use BASE_CFLAGS. 3192d3407da1Smrg# 3193d3407da1SmrgAC_DEFUN([XORG_CWARNFLAGS], [ 3194d3407da1SmrgAC_REQUIRE([XORG_COMPILER_FLAGS]) 3195d3407da1SmrgAC_REQUIRE([XORG_COMPILER_BRAND]) 3196d3407da1SmrgAC_LANG_CASE( 3197d3407da1Smrg [C], [ 3198d3407da1Smrg CWARNFLAGS="$BASE_CFLAGS" 3199d3407da1Smrg if test "x$GCC" = xyes ; then 3200d3407da1Smrg CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" 3201d3407da1Smrg fi 3202d3407da1Smrg AC_SUBST(CWARNFLAGS) 3203d3407da1Smrg ] 3204d3407da1Smrg) 3205d3407da1Smrg]) # XORG_CWARNFLAGS 3206a7d72839Smrg 3207d3407da1Smrg# XORG_STRICT_OPTION 3208d3407da1Smrg# ----------------------- 3209d3407da1Smrg# Minimum version: 1.3.0 3210a7d72839Smrg# 3211d3407da1Smrg# Add configure option to enable strict compilation flags, such as treating 3212d3407da1Smrg# warnings as fatal errors. 3213d3407da1Smrg# If --enable-strict-compilation is passed to configure, adds strict flags to 3214d3407da1Smrg# $BASE_CFLAGS or $BASE_CXXFLAGS and the deprecated $CWARNFLAGS. 3215d3407da1Smrg# 3216d3407da1Smrg# Starting in 1.14.0 also exports $STRICT_CFLAGS for use in other tests or 3217d3407da1Smrg# when strict compilation is unconditionally desired. 3218d3407da1SmrgAC_DEFUN([XORG_STRICT_OPTION], [ 3219d3407da1SmrgAC_REQUIRE([XORG_CWARNFLAGS]) 3220d3407da1SmrgAC_REQUIRE([XORG_COMPILER_FLAGS]) 3221d3407da1Smrg 3222d3407da1SmrgAC_ARG_ENABLE(strict-compilation, 3223d3407da1Smrg AS_HELP_STRING([--enable-strict-compilation], 3224d3407da1Smrg [Enable all warnings from compiler and make them errors (default: disabled)]), 3225d3407da1Smrg [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) 3226a7d72839Smrg 3227d3407da1SmrgAC_LANG_CASE( 3228d3407da1Smrg [C], [ 3229d3407da1Smrg define([PREFIX], [C]) 3230d3407da1Smrg ], 3231d3407da1Smrg [C++], [ 3232d3407da1Smrg define([PREFIX], [CXX]) 3233d3407da1Smrg ] 3234d3407da1Smrg) 3235a7d72839Smrg 3236d3407da1Smrg[STRICT_]PREFIX[FLAGS]="" 3237d3407da1SmrgXORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic]) 3238d3407da1SmrgXORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn]) 3239a7d72839Smrg 3240d3407da1Smrg# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not 3241d3407da1Smrg# activate it with -Werror, so we add it here explicitly. 3242d3407da1SmrgXORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes]) 3243a7d72839Smrg 3244d3407da1Smrgif test "x$STRICT_COMPILE" = "xyes"; then 3245d3407da1Smrg [BASE_]PREFIX[FLAGS]="$[BASE_]PREFIX[FLAGS] $[STRICT_]PREFIX[FLAGS]" 3246d3407da1Smrg AC_LANG_CASE([C], [CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"]) 3247d3407da1Smrgfi 3248d3407da1SmrgAC_SUBST([STRICT_]PREFIX[FLAGS]) 3249d3407da1SmrgAC_SUBST([BASE_]PREFIX[FLAGS]) 3250d3407da1SmrgAC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) 3251d3407da1Smrg]) # XORG_STRICT_OPTION 3252a7d72839Smrg 3253d3407da1Smrg# XORG_DEFAULT_NOCODE_OPTIONS 3254d3407da1Smrg# --------------------------- 3255d3407da1Smrg# Minimum version: 1.20.0 3256fd991a63Smrg# 3257d3407da1Smrg# Defines default options for X.Org modules which don't compile code, 3258d3407da1Smrg# such as fonts, bitmaps, cursors, and docs. 3259d3407da1Smrg# 3260d3407da1SmrgAC_DEFUN([XORG_DEFAULT_NOCODE_OPTIONS], [ 3261d3407da1SmrgAC_REQUIRE([AC_PROG_INSTALL]) 3262d3407da1SmrgXORG_RELEASE_VERSION 3263d3407da1SmrgXORG_CHANGELOG 3264d3407da1SmrgXORG_INSTALL 3265d3407da1SmrgXORG_MANPAGE_SECTIONS 3266d3407da1Smrgm4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], 3267d3407da1Smrg [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) 3268d3407da1Smrg]) # XORG_DEFAULT_NOCODE_OPTIONS 3269a7d72839Smrg 3270d3407da1Smrg# XORG_DEFAULT_OPTIONS 3271fd991a63Smrg# -------------------- 3272d3407da1Smrg# Minimum version: 1.3.0 3273fd991a63Smrg# 3274d3407da1Smrg# Defines default options for X.Org modules which compile code. 3275fd991a63Smrg# 3276d3407da1SmrgAC_DEFUN([XORG_DEFAULT_OPTIONS], [ 3277d3407da1SmrgAC_REQUIRE([AC_PROG_INSTALL]) 3278d3407da1SmrgXORG_COMPILER_FLAGS 3279d3407da1SmrgXORG_CWARNFLAGS 3280d3407da1SmrgXORG_STRICT_OPTION 3281d3407da1SmrgXORG_DEFAULT_NOCODE_OPTIONS 3282d3407da1Smrg]) # XORG_DEFAULT_OPTIONS 3283d3407da1Smrg 3284d3407da1Smrg# XORG_INSTALL() 3285d3407da1Smrg# ---------------- 3286d3407da1Smrg# Minimum version: 1.4.0 3287d3407da1Smrg# 3288d3407da1Smrg# Defines the variable INSTALL_CMD as the command to copy 3289d3407da1Smrg# INSTALL from $prefix/share/util-macros. 3290d3407da1Smrg# 3291d3407da1SmrgAC_DEFUN([XORG_INSTALL], [ 3292d3407da1SmrgAC_REQUIRE([PKG_PROG_PKG_CONFIG]) 3293d3407da1Smrgmacros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` 3294d3407da1SmrgINSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ 3295d3407da1Smrgmv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ 3296d3407da1Smrg|| (rm -f \$(top_srcdir)/.INSTALL.tmp; test -e \$(top_srcdir)/INSTALL || ( \ 3297d3407da1Smrgtouch \$(top_srcdir)/INSTALL; \ 3298d3407da1Smrgecho 'failed to copy INSTALL from util-macros: installing empty INSTALL.' >&2))" 3299d3407da1SmrgAC_SUBST([INSTALL_CMD]) 3300d3407da1Smrg]) # XORG_INSTALL 3301d3407da1Smrgdnl Copyright 2005 Red Hat, Inc 3302d3407da1Smrgdnl 3303d3407da1Smrgdnl Permission to use, copy, modify, distribute, and sell this software and its 3304d3407da1Smrgdnl documentation for any purpose is hereby granted without fee, provided that 3305d3407da1Smrgdnl the above copyright notice appear in all copies and that both that 3306d3407da1Smrgdnl copyright notice and this permission notice appear in supporting 3307d3407da1Smrgdnl documentation. 3308d3407da1Smrgdnl 3309d3407da1Smrgdnl The above copyright notice and this permission notice shall be included 3310d3407da1Smrgdnl in all copies or substantial portions of the Software. 3311d3407da1Smrgdnl 3312d3407da1Smrgdnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 3313d3407da1Smrgdnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 3314d3407da1Smrgdnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 3315d3407da1Smrgdnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR 3316d3407da1Smrgdnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 3317d3407da1Smrgdnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 3318d3407da1Smrgdnl OTHER DEALINGS IN THE SOFTWARE. 3319d3407da1Smrgdnl 3320d3407da1Smrgdnl Except as contained in this notice, the name of the copyright holders shall 3321d3407da1Smrgdnl not be used in advertising or otherwise to promote the sale, use or 3322d3407da1Smrgdnl other dealings in this Software without prior written authorization 3323d3407da1Smrgdnl from the copyright holders. 3324d3407da1Smrgdnl 3325a7d72839Smrg 3326d3407da1Smrg# XORG_RELEASE_VERSION 3327d3407da1Smrg# -------------------- 3328d3407da1Smrg# Defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use. 3329a7d72839Smrg 3330d3407da1SmrgAC_DEFUN([XORG_RELEASE_VERSION],[ 3331d3407da1Smrg AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR], 3332d3407da1Smrg [`echo $PACKAGE_VERSION | cut -d . -f 1`], 3333d3407da1Smrg [Major version of this package]) 3334d3407da1Smrg PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` 3335d3407da1Smrg if test "x$PVM" = "x"; then 3336d3407da1Smrg PVM="0" 3337d3407da1Smrg fi 3338d3407da1Smrg AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR], 3339d3407da1Smrg [$PVM], 3340d3407da1Smrg [Minor version of this package]) 3341d3407da1Smrg PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` 3342d3407da1Smrg if test "x$PVP" = "x"; then 3343d3407da1Smrg PVP="0" 3344d3407da1Smrg fi 3345d3407da1Smrg AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], 3346d3407da1Smrg [$PVP], 3347d3407da1Smrg [Patch version of this package]) 3348d3407da1Smrg]) 3349a7d72839Smrg 3350d3407da1Smrg# XORG_CHANGELOG() 3351d3407da1Smrg# ---------------- 3352d3407da1Smrg# Minimum version: 1.2.0 3353d3407da1Smrg# 3354d3407da1Smrg# Defines the variable CHANGELOG_CMD as the command to generate 3355d3407da1Smrg# ChangeLog from git. 3356d3407da1Smrg# 3357d3407da1Smrg# 3358d3407da1SmrgAC_DEFUN([XORG_CHANGELOG], [ 3359d3407da1SmrgCHANGELOG_CMD="((GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp) 2>/dev/null && \ 3360d3407da1Smrgmv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ 3361d3407da1Smrg|| (rm -f \$(top_srcdir)/.changelog.tmp; test -e \$(top_srcdir)/ChangeLog || ( \ 3362d3407da1Smrgtouch \$(top_srcdir)/ChangeLog; \ 3363d3407da1Smrgecho 'git failed to create ChangeLog: installing empty ChangeLog.' >&2))" 3364d3407da1SmrgAC_SUBST([CHANGELOG_CMD]) 3365d3407da1Smrg]) # XORG_CHANGELOG 3366a7d72839Smrg 3367