diff -Nru autoconf-dickey-2.52+20170501/acgeneral.m4 autoconf-dickey-2.52+20200111/acgeneral.m4 --- autoconf-dickey-2.52+20170501/acgeneral.m4 2015-09-27 01:03:40.000000000 +0000 +++ autoconf-dickey-2.52+20200111/acgeneral.m4 2018-08-19 17:35:45.000000000 +0000 @@ -698,6 +698,7 @@ AC_SUBST([sysconfdir], ['${prefix}/etc'])dnl AC_SUBST([sharedstatedir], ['${prefix}/com'])dnl AC_SUBST([localstatedir], ['${prefix}/var'])dnl +AC_SUBST([runstatedir], ['${localstatedir}/run'])dnl AC_SUBST([libdir], ['${exec_prefix}/lib'])dnl AC_SUBST([includedir], ['${prefix}/include'])dnl AC_SUBST([oldincludedir], ['/usr/include'])dnl @@ -843,6 +844,15 @@ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst \ + | --runs | --run | --ru) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* \ + | --runs=* | --run=* | --ru=*) + runstatedir=$ac_optarg ;; + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) @@ -1128,6 +1138,7 @@ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR extra definition of runtime data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] diff -Nru autoconf-dickey-2.52+20170501/aclang.m4 autoconf-dickey-2.52+20200111/aclang.m4 --- autoconf-dickey-2.52+20170501/aclang.m4 2017-04-30 15:06:25.000000000 +0000 +++ autoconf-dickey-2.52+20200111/aclang.m4 2019-08-28 21:09:52.000000000 +0000 @@ -389,32 +389,35 @@ # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION) # ---------------------------------- -# Don't include because on OSF/1 3.0 it includes -# which includes which contains a -# prototype for select. Similarly for bzero. +# This test used to merely assign f=$1 in main(), but that was optimized away +# by HP unbundled cc A.05.36 for ia64 under +O3, presumably because the program +# is about to exit. Conversely, the AIX linker optimizes an unused external +# declaration that initializes f=$1. Therefore, the test program has both an +# external initialization of f, as well as using f in a way that affects the +# exit status. +# m4_define([AC_LANG_FUNC_LINK_TRY(C)], [AC_LANG_PROGRAM( -[/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $1 (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ +[#define $1 autoconf_temporary +#include /* least-intrusive standard header which defines gcc2 __stub macros */ +#undef $1 + #ifdef __cplusplus extern "C" #endif + /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char $1 (); -char (*f) (); -], -[/* The GNU C library defines this for functions which it implements +char $1 (void); +],[ +/* The GNU C library defines stubs for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$1) || defined (__stub___$1) -choke me -#else -f = $1; /* workaround for ICC 12.0.3 */ if (f == 0) return 1; +#error found stub for $1 #endif -])]) + + return $1 ();])]) # AC_LANG_BOOL_COMPILE_TRY(C)(PROLOGUE, EXPRESSION) @@ -1303,7 +1306,7 @@ _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOLS(F77, [m4_default([$1], - [g77 f77 xlf cf77 cft77 frt pgf77 fl32 af77 fort77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 lf95 g95 fc])]) + [g77 f77 xlf cf77 cft77 frt pgf77 fl32 af77 fort77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 lf95 g95])]) # Provide some information about the compiler. echo "$as_me:__oline__:" \ diff -Nru autoconf-dickey-2.52+20170501/acspecific.m4 autoconf-dickey-2.52+20200111/acspecific.m4 --- autoconf-dickey-2.52+20170501/acspecific.m4 2017-04-30 15:06:25.000000000 +0000 +++ autoconf-dickey-2.52+20200111/acspecific.m4 2020-01-11 17:23:29.000000000 +0000 @@ -1,5 +1,6 @@ # This file is part of Autoconf. -*- Autoconf -*- # Macros that test for specific features. +# Copyright 2006-2019,2020 Thomas E. Dickey # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # @@ -121,7 +122,7 @@ # AC_PROG_YACC # ------------ AC_DEFUN([AC_PROG_YACC], -[AC_CHECK_PROGS(YACC, 'bison -y' byacc, yacc)]) +[AC_CHECK_PROGS(YACC, byacc 'bison -y', yacc)]) # AC_PROG_LEX @@ -624,21 +625,28 @@ # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include +/usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include +/opt/local/include +/opt/X11/include + /usr/include/X11 +/usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include +/usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 +/usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 diff -Nru autoconf-dickey-2.52+20170501/acversion.m4 autoconf-dickey-2.52+20200111/acversion.m4 --- autoconf-dickey-2.52+20170501/acversion.m4 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/acversion.m4 2020-01-11 15:08:04.000000000 +0000 @@ -2,4 +2,4 @@ # Version of Autoconf. # Copyright 1999, 2000, 2001 Free Software Foundation, Inc. -m4_define([AC_ACVERSION], [2.52.20170501]) +m4_define([AC_ACVERSION], [2.52.20200111]) diff -Nru autoconf-dickey-2.52+20170501/ChangeLog autoconf-dickey-2.52+20200111/ChangeLog --- autoconf-dickey-2.52+20170501/ChangeLog 2017-05-02 01:34:15.000000000 +0000 +++ autoconf-dickey-2.52+20200111/ChangeLog 2020-01-11 17:46:57.000000000 +0000 @@ -1,4 +1,40 @@ -- vile:fk=utf-8 +2020-01-11 Thomas E. Dickey + Version 2.52.20200111. + + Check/display m4's version in AC_PROG_GNU_M4 + + Add /opt/local and /opt/X11 paths for recent MacOS configurations. + + Check for byacc before bison, etc., for consistency with mawk, etc. + +2019-09-01 Thomas E. Dickey + Version 2.52.20190901. + + Correct version in generated manpages (report by Sven Joachim). + +2019-08-28 Thomas E. Dickey + Version 2.52.20190828. + + Add X11R7 include/lib paths for some older NetBSD configurations. + + Drop "fc" from Fortran77 choices, to work with modern Unix systems. + +2018-10-06 Thomas E. Dickey + Version 2.52.20181006. + + Adapt changes from autoconf in 2002, etc., to work around optimization + in AC_LANG_FUNC_LINK_TRY. The workaround in 2012-03-03 is not needed. + +2018-08-19 Thomas E. Dickey + Version 2.52.20180819. + + Recognize recent cruft "--runstatedir" which has made its way into + packager's boilerplate, notwithstanding the blatant inconsistency with + actual usage (Debian #887390). + + Fix some warnings in test-packages. + 2017-05-01 Thomas Dickey Version 2.52.20170501. diff -Nru autoconf-dickey-2.52+20170501/configure autoconf-dickey-2.52+20200111/configure --- autoconf-dickey-2.52+20170501/configure 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/configure 2020-01-11 18:05:14.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by Autoconf 2.52.20170501 for GNU Autoconf 2.52.20170501. +# Generated by Autoconf 2.52.20200111 for GNU Autoconf 2.52.20200111. # # Report bugs to . # @@ -141,6 +141,7 @@ sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' @@ -150,8 +151,8 @@ # Identity of this package. PACKAGE_NAME='GNU Autoconf' PACKAGE_TARNAME='autoconf' -PACKAGE_VERSION='2.52.20170501' -PACKAGE_STRING='GNU Autoconf 2.52.20170501' +PACKAGE_VERSION='2.52.20200111' +PACKAGE_STRING='GNU Autoconf 2.52.20200111' PACKAGE_BUGREPORT='dickey@invisible-island.net' ac_prev= @@ -283,6 +284,15 @@ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst \ + | --runs | --run | --ru) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* \ + | --runs=* | --run=* | --ru=*) + runstatedir=$ac_optarg ;; + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) @@ -555,7 +565,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <&5 + { echo "$as_me:819: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} cat "$ac_site_file" >&5 . "$ac_site_file" @@ -816,7 +827,7 @@ # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then - { echo "$as_me:819: loading cache $cache_file" >&5 + { echo "$as_me:830: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; @@ -824,7 +835,7 @@ esac fi else - { echo "$as_me:827: creating cache $cache_file" >&5 + { echo "$as_me:838: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -840,21 +851,21 @@ eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) - { echo "$as_me:843: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 + { echo "$as_me:854: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { echo "$as_me:847: error: \`$ac_var' was not set in the previous run" >&5 + { echo "$as_me:858: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:853: error: \`$ac_var' has changed since the previous run:" >&5 + { echo "$as_me:864: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:855: former value: $ac_old_val" >&5 + { echo "$as_me:866: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:857: current value: $ac_new_val" >&5 + { echo "$as_me:868: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; @@ -873,9 +884,9 @@ fi done if $ac_cache_corrupted; then - { echo "$as_me:876: error: changes in the environment can compromise the build" >&5 + { echo "$as_me:887: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:878: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 + { { echo "$as_me:889: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi @@ -896,10 +907,10 @@ echo "#! $SHELL" >conftest.sh echo "exit 0" >>conftest.sh chmod +x conftest.sh -if { (echo "$as_me:899: PATH=\".;.\"; conftest.sh") >&5 +if { (echo "$as_me:910: PATH=\".;.\"; conftest.sh") >&5 (PATH=".;."; conftest.sh) 2>&5 ac_status=$? - echo "$as_me:902: \$? = $ac_status" >&5 + echo "$as_me:913: \$? = $ac_status" >&5 (exit $ac_status); }; then ac_path_separator=';' else @@ -925,7 +936,7 @@ fi done if test -z "$ac_aux_dir"; then - { { echo "$as_me:928: error: cannot find install-sh or install.sh in config $srcdir/config" >&5 + { { echo "$as_me:939: error: cannot find install-sh or install.sh in config $srcdir/config" >&5 echo "$as_me: error: cannot find install-sh or install.sh in config $srcdir/config" >&2;} { (exit 1); exit 1; }; } fi @@ -945,7 +956,7 @@ # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:948: checking for a BSD compatible install" >&5 +echo "$as_me:959: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then @@ -994,7 +1005,7 @@ INSTALL=$ac_install_sh fi fi -echo "$as_me:997: result: $INSTALL" >&5 +echo "$as_me:1008: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -1005,7 +1016,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -echo "$as_me:1008: checking whether build environment is sane" >&5 +echo "$as_me:1019: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 @@ -1028,7 +1039,7 @@ # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". - { { echo "$as_me:1031: error: ls -t appears to fail. Make sure there is not a broken + { { echo "$as_me:1042: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} @@ -1041,14 +1052,14 @@ # Ok. : else - { { echo "$as_me:1044: error: newly created file is older than distributed files! + { { echo "$as_me:1055: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi rm -f conftest* -echo "$as_me:1051: result: yes" >&5 +echo "$as_me:1062: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" @@ -1071,11 +1082,11 @@ else am_missing_run= am_backtick='`' - { echo "$as_me:1074: WARNING: ${am_backtick}missing' script is too old or missing" >&5 + { echo "$as_me:1085: WARNING: ${am_backtick}missing' script is too old or missing" >&5 echo "$as_me: WARNING: ${am_backtick}missing' script is too old or missing" >&2;} fi -echo "$as_me:1078: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "$as_me:1089: checking whether ${MAKE-make} sets \${MAKE}" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then @@ -1095,21 +1106,21 @@ rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:1098: result: yes" >&5 + echo "$as_me:1109: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else - echo "$as_me:1102: result: no" >&5 + echo "$as_me:1113: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi PACKAGE=autoconf -VERSION=2.52.20170501 +VERSION=2.52.20200111 if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - { { echo "$as_me:1112: error: source directory already configured; run \"make distclean\" there first" >&5 + { { echo "$as_me:1123: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi @@ -1151,7 +1162,7 @@ # Extract the first word of "expr", so it can be a program name with args. set dummy expr; ac_word=$2 -echo "$as_me:1154: checking for $ac_word" >&5 +echo "$as_me:1165: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_EXPR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1168,7 +1179,7 @@ test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_EXPR="$ac_dir/$ac_word" - echo "$as_me:1171: found $ac_dir/$ac_word" >&5 + echo "$as_me:1182: found $ac_dir/$ac_word" >&5 break fi done @@ -1179,10 +1190,10 @@ EXPR=$ac_cv_path_EXPR if test -n "$EXPR"; then - echo "$as_me:1182: result: $EXPR" >&5 + echo "$as_me:1193: result: $EXPR" >&5 echo "${ECHO_T}$EXPR" >&6 else - echo "$as_me:1185: result: no" >&5 + echo "$as_me:1196: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1194,7 +1205,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:1197: checking for $ac_word" >&5 +echo "$as_me:1208: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_M4+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1211,7 +1222,7 @@ test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_M4="$ac_dir/$ac_word" - echo "$as_me:1214: found $ac_dir/$ac_word" >&5 + echo "$as_me:1225: found $ac_dir/$ac_word" >&5 break fi done @@ -1222,10 +1233,10 @@ M4=$ac_cv_path_M4 if test -n "$M4"; then - echo "$as_me:1225: result: $M4" >&5 + echo "$as_me:1236: result: $M4" >&5 echo "${ECHO_T}$M4" >&6 else - echo "$as_me:1228: result: no" >&5 + echo "$as_me:1239: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1233,8 +1244,20 @@ done test -n "$M4" || M4="m4" -echo "$as_me:1236: checking whether m4 supports frozen files" >&5 -echo $ECHO_N "checking whether m4 supports frozen files... $ECHO_C" >&6 +echo "$as_me:1247: checking version of $M4" >&5 +echo $ECHO_N "checking version of $M4... $ECHO_C" >&6 +if test "${ac_cv_m4_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + ac_cv_m4_version=`$M4 --version | head -n 1 | sed -E -e 's/^.*[ ]([1-9][0-9]*\.)/\1/g' -e 's/[^0-9.]*$//' 2>/dev/null` + test -z "$ac_cv_m4_version" && ac_cv_m4_version=unknown + +fi +echo "$as_me:1257: result: $ac_cv_m4_version" >&5 +echo "${ECHO_T}$ac_cv_m4_version" >&6 +echo "$as_me:1259: checking whether $M4 supports frozen files" >&5 +echo $ECHO_N "checking whether $M4 supports frozen files... $ECHO_C" >&6 if test "${ac_cv_prog_gnu_m4+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else @@ -1245,10 +1268,10 @@ esac fi fi -echo "$as_me:1248: result: $ac_cv_prog_gnu_m4" >&5 +echo "$as_me:1271: result: $ac_cv_prog_gnu_m4" >&5 echo "${ECHO_T}$ac_cv_prog_gnu_m4" >&6 if test x"$ac_cv_prog_gnu_m4" != xyes; then - { { echo "$as_me:1251: error: GNU m4 1.4 is required" >&5 + { { echo "$as_me:1274: error: GNU m4 1.4 is required" >&5 echo "$as_me: error: GNU m4 1.4 is required" >&2;} { (exit 1); exit 1; }; } fi @@ -1260,7 +1283,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:1263: checking for $ac_word" >&5 +echo "$as_me:1286: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1275,7 +1298,7 @@ test -z "$ac_dir" && ac_dir=. $as_executable_p "$ac_dir/$ac_word" || continue ac_cv_prog_AWK="$ac_prog" -echo "$as_me:1278: found $ac_dir/$ac_word" >&5 +echo "$as_me:1301: found $ac_dir/$ac_word" >&5 break done @@ -1283,10 +1306,10 @@ fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - echo "$as_me:1286: result: $AWK" >&5 + echo "$as_me:1309: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else - echo "$as_me:1289: result: no" >&5 + echo "$as_me:1312: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1295,7 +1318,7 @@ # Some AWK fail if echo xfoo | $AWK '/foo|^bar$/ { print }' | grep xfoo >/dev/null; then :; else - { { echo "$as_me:1298: error: the regex engine of $AWK is too broken to be used + { { echo "$as_me:1321: error: the regex engine of $AWK is too broken to be used you might want to install GNU AWK" >&5 echo "$as_me: error: the regex engine of $AWK is too broken to be used you might want to install GNU AWK" >&2;} @@ -1309,7 +1332,7 @@ # We use a path for perl so the #! line in autoscan will work. # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 -echo "$as_me:1312: checking for $ac_word" >&5 +echo "$as_me:1335: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1326,7 +1349,7 @@ test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_PERL="$ac_dir/$ac_word" - echo "$as_me:1329: found $ac_dir/$ac_word" >&5 + echo "$as_me:1352: found $ac_dir/$ac_word" >&5 break fi done @@ -1338,17 +1361,17 @@ PERL=$ac_cv_path_PERL if test -n "$PERL"; then - echo "$as_me:1341: result: $PERL" >&5 + echo "$as_me:1364: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6 else - echo "$as_me:1344: result: no" >&5 + echo "$as_me:1367: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$PERL" != no; then PERLSCRIPTS="autoscan autoupdate" else - { echo "$as_me:1351: WARNING: autoscan and autoupdate will not be built since perl is not found" >&5 + { echo "$as_me:1374: WARNING: autoscan and autoupdate will not be built since perl is not found" >&5 echo "$as_me: WARNING: autoscan and autoupdate will not be built since perl is not found" >&2;} fi @@ -1364,7 +1387,7 @@ # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:1367: checking for a BSD compatible install" >&5 +echo "$as_me:1390: checking for a BSD compatible install" >&5 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then @@ -1413,7 +1436,7 @@ INSTALL=$ac_install_sh fi fi -echo "$as_me:1416: result: $INSTALL" >&5 +echo "$as_me:1439: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -1428,7 +1451,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -echo "$as_me:1431: checking for $ac_word" >&5 +echo "$as_me:1454: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_INSTALL_INFO+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -1445,7 +1468,7 @@ test -z "$ac_dir" && ac_dir=. if $as_executable_p "$ac_dir/$ac_word"; then ac_cv_path_INSTALL_INFO="$ac_dir/$ac_word" - echo "$as_me:1448: found $ac_dir/$ac_word" >&5 + echo "$as_me:1471: found $ac_dir/$ac_word" >&5 break fi done @@ -1456,10 +1479,10 @@ INSTALL_INFO=$ac_cv_path_INSTALL_INFO if test -n "$INSTALL_INFO"; then - echo "$as_me:1459: result: $INSTALL_INFO" >&5 + echo "$as_me:1482: result: $INSTALL_INFO" >&5 echo "${ECHO_T}$INSTALL_INFO" >&6 else - echo "$as_me:1462: result: no" >&5 + echo "$as_me:1485: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1472,7 +1495,7 @@ ( $INSTALL_INFO --version | fgrep -i -v debian ) >/dev/null 2>&1; then : else - { echo "$as_me:1475: WARNING: install-info utility not found" >&5 + { echo "$as_me:1498: WARNING: install-info utility not found" >&5 echo "$as_me: WARNING: install-info utility not found" >&2;} INSTALL_INFO=no fi @@ -1595,7 +1618,7 @@ : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:1598: creating $CONFIG_STATUS" >&5 +{ echo "$as_me:1621: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL @@ -1718,8 +1741,8 @@ cat >>$CONFIG_STATUS <&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} @@ -1782,7 +1805,7 @@ ac_need_defaults=false;; # This is an error. - -*) { { echo "$as_me:1785: error: unrecognized option: $1 + -*) { { echo "$as_me:1808: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} @@ -1801,7 +1824,7 @@ ## Running config.status. ## ## ----------------------- ## -This file was extended by $as_me (GNU Autoconf 2.52.20170501) 2.52.20170501, executed with +This file was extended by $as_me (GNU Autoconf 2.52.20200111) 2.52.20200111, executed with CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS @@ -1824,7 +1847,7 @@ "config/Makefile" ) CONFIG_FILES="$CONFIG_FILES config/Makefile" ;; "tests/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "tests/atconfig" ) CONFIG_FILES="$CONFIG_FILES tests/atconfig" ;; - *) { { echo "$as_me:1827: error: invalid argument: $ac_config_target" >&5 + *) { { echo "$as_me:1850: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac @@ -1886,6 +1909,7 @@ s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t +s,@runstatedir@,$runstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t @@ -2057,7 +2081,7 @@ esac if test x"$ac_file" != x-; then - { echo "$as_me:2060: creating $ac_file" >&5 + { echo "$as_me:2084: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi @@ -2075,7 +2099,7 @@ -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:2078: error: cannot find input file: $f" >&5 + test -f "$f" || { { echo "$as_me:2102: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo $f;; @@ -2088,7 +2112,7 @@ echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:2091: error: cannot find input file: $f" >&5 + { { echo "$as_me:2115: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -2104,7 +2128,7 @@ if test -n "$ac_seen"; then ac_used=`grep '@datarootdir@' $ac_item` if test -z "$ac_used"; then - { echo "$as_me:2107: WARNING: datarootdir was used implicitly but not set: + { echo "$as_me:2131: WARNING: datarootdir was used implicitly but not set: $ac_seen" >&5 echo "$as_me: WARNING: datarootdir was used implicitly but not set: $ac_seen" >&2;} @@ -2113,7 +2137,7 @@ fi ac_seen=`grep '${datarootdir}' $ac_item` if test -n "$ac_seen"; then - { echo "$as_me:2116: WARNING: datarootdir was used explicitly but not set: + { echo "$as_me:2140: WARNING: datarootdir was used explicitly but not set: $ac_seen" >&5 echo "$as_me: WARNING: datarootdir was used explicitly but not set: $ac_seen" >&2;} @@ -2150,7 +2174,7 @@ ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file` if test -z "$ac_init"; then ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` - { echo "$as_me:2153: WARNING: Variable $ac_name is used but was not set: + { echo "$as_me:2177: WARNING: Variable $ac_name is used but was not set: $ac_seen" >&5 echo "$as_me: WARNING: Variable $ac_name is used but was not set: $ac_seen" >&2;} @@ -2161,7 +2185,7 @@ egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out if test -s $tmp/out; then ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` - { echo "$as_me:2164: WARNING: Some variables may not be substituted: + { echo "$as_me:2188: WARNING: Some variables may not be substituted: $ac_seen" >&5 echo "$as_me: WARNING: Some variables may not be substituted: $ac_seen" >&2;} @@ -2200,7 +2224,7 @@ fi # Report the state of this version of Autoconf if this is a beta. -case 2.52.20170501 in +case 2.52.20200111 in *[a-z]*) cat < Sun, 19 Jun 2022 09:06:12 -0700 + +autoconf-dickey (2.52+20200111-1) unstable; urgency=medium + + * New upstream release. + * Disable the adequate autopkgtest. + * Bump Standards-Version to 4.4.1, no changes needed. + + -- Sven Joachim Sun, 19 Jan 2020 19:20:13 +0100 + +autoconf-dickey (2.52+20190901-1) unstable; urgency=medium + + * New upstream release. + * Bump debhelper compatibility level to 12. + - Build-depend on debhelper-compat (= 12) and drop debian/compat. + * Bump Standards-Version to 4.4.0, no changes needed. + + -- Sven Joachim Mon, 23 Sep 2019 19:03:48 +0200 + +autoconf-dickey (2.52+20181006-1) unstable; urgency=medium + + * New upstream release. + + -- Sven Joachim Wed, 10 Oct 2018 22:22:24 +0200 + +autoconf-dickey (2.52+20180819-1) unstable; urgency=medium + + * New upstream release. + - Recognize the "--runstatedir" option (Closes: #887390). + * Bump debhelper compatibility level to 11. + * Bump Standards-Version to 4.2.1, no changes needed. + * Update years in debian/copyright. + + -- Sven Joachim Sun, 02 Sep 2018 11:35:46 +0200 + +autoconf-dickey (2.52+20170501-3) unstable; urgency=medium + + * Update Vcs-* headers to point at salsa.debian.org. + * Use https in the Homepage field. + * Update debian/watch to version 4, and look for tarballs on + https://invisible-mirror.net. + * Bump Standards-Version to 4.1.4, no changes needed. + + -- Sven Joachim Thu, 24 May 2018 19:02:54 +0200 + autoconf-dickey (2.52+20170501-2) unstable; urgency=medium * Bump debhelper compatibility level to 10. diff -Nru autoconf-dickey-2.52+20170501/debian/compat autoconf-dickey-2.52+20200111/debian/compat --- autoconf-dickey-2.52+20170501/debian/compat 2017-07-24 18:39:20.000000000 +0000 +++ autoconf-dickey-2.52+20200111/debian/compat 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -10 diff -Nru autoconf-dickey-2.52+20170501/debian/control autoconf-dickey-2.52+20200111/debian/control --- autoconf-dickey-2.52+20170501/debian/control 2017-10-28 17:43:06.000000000 +0000 +++ autoconf-dickey-2.52+20200111/debian/control 2022-06-19 16:06:12.000000000 +0000 @@ -2,13 +2,13 @@ Section: devel Priority: optional Maintainer: Sven Joachim -Build-Depends: debhelper (>= 10) +Build-Depends: debhelper-compat (= 11) Build-Depends-Indep: m4 -Standards-Version: 4.1.1 +Standards-Version: 4.4.1 Rules-Requires-Root: no -Homepage: http://invisible-island.net/autoconf/autoconf.html -Vcs-Git: https://anonscm.debian.org/git/collab-maint/autoconf-dickey.git -Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/autoconf-dickey.git/ +Homepage: https://invisible-island.net/autoconf/autoconf.html +Vcs-Git: https://salsa.debian.org/joachim-guest/autoconf-dickey.git +Vcs-Browser: https://salsa.debian.org/joachim-guest/autoconf-dickey Package: autoconf-dickey Architecture: all @@ -18,4 +18,3 @@ This hacked version of autoconf is required to bootstrap ncurses and some other packages maintained upstream by Thomas Dickey. It should not be used for other purposes. - diff -Nru autoconf-dickey-2.52+20170501/debian/copyright autoconf-dickey-2.52+20200111/debian/copyright --- autoconf-dickey-2.52+20170501/debian/copyright 2017-06-09 16:35:24.000000000 +0000 +++ autoconf-dickey-2.52+20200111/debian/copyright 2020-01-19 17:17:54.000000000 +0000 @@ -100,7 +100,7 @@ The Debian packaging is: - Copyright (C) 2011, 2012 Sven Joachim + Copyright (C) 2011-2013, 2015-2018 Sven Joachim and is licensed under the GPL version 2 or later, see "/usr/share/common-licenses/GPL-2". @@ -108,7 +108,7 @@ Files with other copyright statement: -package/debian*: Copyright (C) 2010,2012 Thomas E. Dickey +package/debian*: Copyright (C) 2010-2017,2018 Thomas E. Dickey Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, diff -Nru autoconf-dickey-2.52+20170501/debian/tests/control autoconf-dickey-2.52+20200111/debian/tests/control --- autoconf-dickey-2.52+20170501/debian/tests/control 2017-07-26 19:33:17.000000000 +0000 +++ autoconf-dickey-2.52+20200111/debian/tests/control 2020-01-19 17:27:59.000000000 +0000 @@ -1,5 +1,2 @@ -Test-Command: adequate autoconf-dickey >&2 -Depends: autoconf-dickey, adequate - Test-Command: cp -a ./* $AUTOPKGTEST_TMP; cd $AUTOPKGTEST_TMP; autoreconf-dickey -f -i Depends: autoconf-dickey diff -Nru autoconf-dickey-2.52+20170501/debian/watch autoconf-dickey-2.52+20200111/debian/watch --- autoconf-dickey-2.52+20170501/debian/watch 2017-08-09 17:18:20.000000000 +0000 +++ autoconf-dickey-2.52+20200111/debian/watch 2020-01-19 17:17:54.000000000 +0000 @@ -1,4 +1,4 @@ -version=3 +version=4 -opts=passive,uversionmangle=s/-/+/,pgpsigurlmangle=s/$/.asc/ \ - ftp://ftp.invisible-island.net/autoconf/autoconf-(.*)\.tgz +opts=uversionmangle=s/-/+/,pgpsigurlmangle=s/$/.asc/ \ + https://invisible-mirror.net/archives/autoconf/autoconf-(.*)\.tgz diff -Nru autoconf-dickey-2.52+20170501/doc/autoconf.info autoconf-dickey-2.52+20200111/doc/autoconf.info --- autoconf-dickey-2.52+20170501/doc/autoconf.info 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/doc/autoconf.info 2020-01-11 17:50:22.000000000 +0000 @@ -1,4 +1,4 @@ -This is autoconf.info, produced by makeinfo version 4.13 from +This is autoconf.info, produced by makeinfo version 6.3 from autoconf.texi. INFO-DIR-SECTION GNU admin @@ -9,24 +9,23 @@ INFO-DIR-SECTION Individual utilities START-INFO-DIR-ENTRY * autoscan: (autoconf)autoscan Invocation. - Semi-automatic `configure.ac' writing + Semi-automatic 'configure.ac' writing * ifnames: (autoconf)ifnames Invocation. Listing the conditionals in source code * autoconf: (autoconf)autoconf Invocation. How to create configuration scripts * autoreconf: (autoconf)autoreconf Invocation. - Remaking multiple `configure' scripts + Remaking multiple 'configure' scripts * configure: (autoconf)configure Invocation. Configuring a package * config.status: (autoconf)config.status Invocation. Recreating a configuration END-INFO-DIR-ENTRY - Autoconf: Creating Automatic Configuration Scripts, by David -MacKenzie. +Autoconf: Creating Automatic Configuration Scripts, by David MacKenzie. This file documents the GNU Autoconf package for creating scripts to -configure source code packages using templates and an `m4' macro +configure source code packages using templates and an 'm4' macro package. Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 Free @@ -49,10 +48,10 @@  File: autoconf.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - This file documents the GNU Autoconf package for creating scripts to +This file documents the GNU Autoconf package for creating scripts to configure source code packages using templates and the GNU M4 macro -package. This is edition 2.52.20170501, for Autoconf version -2.52.20170501. +package. This is edition 2.52.20200111, for Autoconf version +2.52.20200111. * Menu: @@ -67,7 +66,7 @@ * Writing Autoconf Macros:: Adding new macros to Autoconf * Portable Shell:: Shell script portability pitfalls * Manual Configuration:: Selecting features that can't be guessed -* Site Configuration:: Local defaults for `configure' +* Site Configuration:: Local defaults for 'configure' * Running configure scripts:: How to use the Autoconf output * config.status Invocation:: Recreating a configuration * Obsolete Constructs:: Kept for backward compatibility @@ -87,15 +86,15 @@ * Libtool:: Building libraries portably * Pointers:: More info on the GNU build system -Making `configure' Scripts +Making 'configure' Scripts * Writing configure.ac:: What to put in an Autoconf input file -* autoscan Invocation:: Semi-automatic `configure.ac' writing +* autoscan Invocation:: Semi-automatic 'configure.ac' writing * ifnames Invocation:: Listing the conditionals in source code * autoconf Invocation:: How to create configuration scripts -* autoreconf Invocation:: Remaking multiple `configure' scripts +* autoreconf Invocation:: Remaking multiple 'configure' scripts -Writing `configure.ac' +Writing 'configure.ac' * Shell Script Compiler:: Autoconf as solution of a problem * Autoconf Language:: Programming in Autoconf @@ -103,12 +102,12 @@ Initialization and Output Files -* Notices:: Copyright, version numbers in `configure' +* Notices:: Copyright, version numbers in 'configure' * Input:: Where Autoconf should find files * Output:: Outputting results from the configuration * Configuration Actions:: Preparing the output based on results * Configuration Files:: Creating output files -* Makefile Substitutions:: Using output variables in `Makefile's +* Makefile Substitutions:: Using output variables in 'Makefile's * Configuration Headers:: Creating a configuration header file * Configuration Commands:: Running arbitrary instantiation commands * Configuration Links:: Links depending from the configuration @@ -206,13 +205,13 @@ * Defining Symbols:: Defining C preprocessor symbols * Setting Output Variables:: Replacing variables in output files -* Caching Results:: Speeding up subsequent `configure' runs -* Printing Messages:: Notifying `configure' users +* Caching Results:: Speeding up subsequent 'configure' runs +* Printing Messages:: Notifying 'configure' users Caching Results * Cache Variable Names:: Shell variables used in caches -* Cache Files:: Files `configure' uses for caching +* Cache Files:: Files 'configure' uses for caching * Cache Checkpointing:: Loading and saving the cache file Programming in M4 @@ -237,7 +236,7 @@ * Macro Definitions:: Basic format of an Autoconf macro * Macro Names:: What to call your new macros -* Reporting Messages:: Notifying `autoconf' users +* Reporting Messages:: Notifying 'autoconf' users * Dependencies Between Macros:: What to do when macros depend on other macros * Obsoleting Macros:: Warning about old ways of doing things * Coding Style:: Writing Autoconf macros a` la Autoconf @@ -273,15 +272,15 @@ * Pretty Help Strings:: Formating help string * Site Details:: Configuring site details * Transforming Names:: Changing program names when installing -* Site Defaults:: Giving `configure' local defaults +* Site Defaults:: Giving 'configure' local defaults Transforming Program Names When Installing -* Transformation Options:: `configure' options to transform names +* Transformation Options:: 'configure' options to transform names * Transformation Examples:: Sample uses of transforming names -* Transformation Rules:: `Makefile' uses of transforming names +* Transformation Rules:: 'Makefile' uses of transforming names -Running `configure' Scripts +Running 'configure' Scripts * Basic Installation:: Instructions for typical cases * Compilers and Options:: Selecting compilers and optimization @@ -289,15 +288,15 @@ * Installation Names:: Installing in different directories * Optional Features:: Selecting optional features * System Type:: Specifying the system type -* Sharing Defaults:: Setting site-wide defaults for `configure' +* Sharing Defaults:: Setting site-wide defaults for 'configure' * Environment Variables:: Defining environment variables. -* configure Invocation:: Changing how `configure' runs +* configure Invocation:: Changing how 'configure' runs Obsolete Constructs * Obsolete config.status Use:: Different calling convention -* acconfig.h:: Additional entries in `config.h.in' -* autoupdate Invocation:: Automatic update of `configure.ac' +* acconfig.h:: Additional entries in 'config.h.in' +* autoupdate Invocation:: Automatic update of 'configure.ac' * Obsolete Macros:: Backward compatibility macros * Autoconf 1:: Tips for upgrading your files * Autoconf 2.13:: Some fresher tips @@ -305,7 +304,7 @@ Upgrading From Version 1 * Changed File Names:: Files you might rename -* Changed Makefiles:: New things to put in `Makefile.in' +* Changed Makefiles:: New things to put in 'Makefile.in' * Changed Macros:: Macro calls you might replace * Changed Results:: Changes in how to check test results * Changed Macro Writing:: Better ways to write your own macros @@ -317,19 +316,20 @@ Questions About Autoconf -* Distributing:: Distributing `configure' scripts +* Distributing:: Distributing 'configure' scripts * Why GNU m4:: Why not use the standard M4? * Bootstrapping:: Autoconf and GNU M4 require each other? -* Why Not Imake:: Why GNU uses `configure' instead of Imake +* Why Not Imake:: Why GNU uses 'configure' instead of Imake History of Autoconf -* Genesis:: Prehistory and naming of `configure' +* Genesis:: Prehistory and naming of 'configure' * Exodus:: The plagues of M4 and Perl * Leviticus:: The priestly code of portability arrives * Numbers:: Growth and contributors * Deuteronomy:: Approaching the promises of easy configuration +  File: autoconf.info, Node: Introduction, Next: The GNU build system, Prev: Top, Up: Top @@ -351,8 +351,8 @@ Autoconf is a tool for producing shell scripts that automatically configure software source code packages to adapt to many kinds of UNIX-like systems. The configuration scripts produced by Autoconf are -independent of Autoconf when they are run, so their users do not need -to have Autoconf. +independent of Autoconf when they are run, so their users do not need to +have Autoconf. The configuration scripts produced by Autoconf require no manual user intervention when run; they do not normally even need an argument @@ -385,12 +385,12 @@ software packages--for a more complete solution, it should be used in concert with other GNU build tools like Automake and Libtool. These other tools take on jobs like the creation of a portable, recursive -`Makefile' with all of the standard targets, linking of shared +'Makefile' with all of the standard targets, linking of shared libraries, and so on. *Note The GNU build system::, for more information. Autoconf imposes some restrictions on the names of macros used with -`#if' in C programs (*note Preprocessor Symbol Index::). +'#if' in C programs (*note Preprocessor Symbol Index::). Autoconf requires GNU M4 in order to generate the scripts. It uses features that some UNIX versions of M4, including GNU M4 1.3, do not @@ -408,14 +408,14 @@ Bug reports should be preferably submitted to the Autoconf Gnats database(2), or sent to the Autoconf Bugs mailing list . If possible, first check that your bug is not -already solved in current development versions, and that it has not -been reported yet. Be sure to include all the needed information and a -short `configure.ac' that demonstrates the problem. +already solved in current development versions, and that it has not been +reported yet. Be sure to include all the needed information and a short +'configure.ac' that demonstrates the problem. Autoconf's development tree is accessible via CVS; see the Autoconf web page for details. There is also a CVSweb interface to the Autoconf -development tree(3). Patches relative to the current CVS version can -be sent for review to the Autoconf Patches mailing list +development tree(3). Patches relative to the current CVS version can be +sent for review to the Autoconf Patches mailing list . Because of its mission, Autoconf includes only a set of often-used @@ -427,16 +427,16 @@ ---------- Footnotes ---------- (1) Autoconf web page, -`http://www.gnu.org/software/autoconf/autoconf.html'. +. (2) Autoconf Gnats database, -`http://sources.redhat.com/cgi-bin/gnatsweb.pl?database=autoconf'. +. (3) CVSweb interface to the Autoconf development tree, -`http://subversions.gnu.org/cgi-bin/cvsweb/autoconf/'. +. (4) Autoconf Macro Archive, -`http://www.gnu.org/software/ac-archive/'. +.  File: autoconf.info, Node: The GNU build system, Next: Making configure Scripts, Prev: Introduction, Up: Top @@ -466,44 +466,43 @@ 2.1 Automake ============ -The ubiquity of `make' means that a `Makefile' is almost the only -viable way to distribute automatic build rules for software, but one -quickly runs into `make''s numerous limitations. Its lack of support -for automatic dependency tracking, recursive builds in subdirectories, -reliable timestamps (e.g. for network filesystems), and so on, mean +The ubiquity of 'make' means that a 'Makefile' is almost the only viable +way to distribute automatic build rules for software, but one quickly +runs into 'make''s numerous limitations. Its lack of support for +automatic dependency tracking, recursive builds in subdirectories, +reliable timestamps (e.g. for network filesystems), and so on, mean that developers must painfully (and often incorrectly) reinvent the wheel for each project. Portability is non-trivial, thanks to the -quirks of `make' on many systems. On top of all this is the manual +quirks of 'make' on many systems. On top of all this is the manual labor required to implement the many standard targets that users have -come to expect (`make install', `make distclean', `make uninstall', +come to expect ('make install', 'make distclean', 'make uninstall', etc.). Since you are, of course, using Autoconf, you also have to -insert repetitive code in your `Makefile.in' to recognize `@CC@', -`@CFLAGS@', and other substitutions provided by `configure'. Into this -mess steps "Automake". +insert repetitive code in your 'Makefile.in' to recognize '@CC@', +'@CFLAGS@', and other substitutions provided by 'configure'. Into this +mess steps "Automake". - Automake allows you to specify your build needs in a `Makefile.am' + Automake allows you to specify your build needs in a 'Makefile.am' file with a vastly simpler and more powerful syntax than that of a plain -`Makefile', and then generates a portable `Makefile.in' for use with -Autoconf. For example, the `Makefile.am' to build and install a simple +'Makefile', and then generates a portable 'Makefile.in' for use with +Autoconf. For example, the 'Makefile.am' to build and install a simple "Hello world" program might look like: bin_PROGRAMS = hello hello_SOURCES = hello.c -The resulting `Makefile.in' (~400 lines) automatically supports all the +The resulting 'Makefile.in' (~400 lines) automatically supports all the standard targets, the substitutions provided by Autoconf, automatic -dependency tracking, `VPATH' building, and so on. `make' will build -the `hello' program, and `make install' will install it in -`/usr/local/bin' (or whatever prefix was given to `configure', if not -`/usr/local'). +dependency tracking, 'VPATH' building, and so on. 'make' will build the +'hello' program, and 'make install' will install it in '/usr/local/bin' +(or whatever prefix was given to 'configure', if not '/usr/local'). Automake may require that additional tools be present on the -_developer's_ machine. For example, the `Makefile.in' that the -developer works with may not be portable (e.g. it might use special +_developer's_ machine. For example, the 'Makefile.in' that the +developer works with may not be portable (e.g. it might use special features of your compiler to automatically generate dependency -information). Running `make dist', however, produces a -`hello-1.0.tar.gz' package (or whatever the program/version is) with a -`Makefile.in' that will work on any system. +information). Running 'make dist', however, produces a +'hello-1.0.tar.gz' package (or whatever the program/version is) with a +'Makefile.in' that will work on any system. The benefits of Automake increase for larger packages (especially ones with subdirectories), but even for small programs the added @@ -517,25 +516,24 @@ Very often, one wants to build not only programs, but libraries, so that other programs can benefit from the fruits of your labor. Ideally, one -would like to produce _shared_ (dynamically-linked) libraries, which -can be used by multiple programs without duplication on disk or in -memory and can be updated independently of the linked programs. -Producing shared libraries portably, however, is the stuff of -nightmares--each system has its own incompatible tools, compiler flags, -and magic incantations. Fortunately, GNU provides a solution: -"Libtool". +would like to produce _shared_ (dynamically-linked) libraries, which can +be used by multiple programs without duplication on disk or in memory +and can be updated independently of the linked programs. Producing +shared libraries portably, however, is the stuff of nightmares--each +system has its own incompatible tools, compiler flags, and magic +incantations. Fortunately, GNU provides a solution: "Libtool". Libtool handles all the requirements of building shared libraries for you, and at this time seems to be the _only_ way to do so with any portability. It also handles many other headaches, such as: the -interaction of `Makefile' rules with the variable suffixes of shared +interaction of 'Makefile' rules with the variable suffixes of shared libraries, linking reliably to shared libraries before they are installed by the superuser, and supplying a consistent versioning system (so that different versions of a library can be installed or upgraded without breaking binary compatibility). Although Libtool, like Autoconf, can be used on its own, it is most simply utilized in -conjunction with Automake--there, Libtool is used automatically -whenever shared libraries are needed, and you need not know its syntax. +conjunction with Automake--there, Libtool is used automatically whenever +shared libraries are needed, and you need not know its syntax.  File: autoconf.info, Node: Pointers, Prev: Libtool, Up: The GNU build system @@ -543,12 +541,12 @@ 2.3 Pointers ============ -Developers who are used to the simplicity of `make' for small projects +Developers who are used to the simplicity of 'make' for small projects on a single system might be daunted at the prospect of learning to use -Automake and Autoconf. As your software is distributed to more and -more users, however, you will otherwise quickly find yourself putting -lots of effort into reinventing the services that the GNU build tools -provide, and making the same mistakes that they once made and overcame. +Automake and Autoconf. As your software is distributed to more and more +users, however, you will otherwise quickly find yourself putting lots of +effort into reinventing the services that the GNU build tools provide, +and making the same mistakes that they once made and overcame. (Besides, since you're already learning Autoconf, Automake will be a piece of cake.) @@ -565,7 +563,7 @@ - Books - The book `GNU Autoconf, Automake and Libtool'(4) describes the + The book 'GNU Autoconf, Automake and Libtool'(4) describes the complete GNU build environment. You can also find the entire book on-line at "The Goat Book" home page(5). @@ -575,66 +573,65 @@ Autoconf/Automake tutorials online, and also links to the Autoconf Macro Archive(7). - ---------- Footnotes ---------- - (1) Autoconf, `http://www.gnu.org/software/autoconf/'. + (1) Autoconf, . - (2) Automake, `http://www.gnu.org/software/automake/'. + (2) Automake, . - (3) Libtool, `http://www.gnu.org/software/libtool/'. + (3) Libtool, . - (4) `GNU Autoconf, Automake and Libtool', by G. V. Vaughan, B. -Elliston, T. Tromey, and I. L. Taylor. New Riders, 2000, ISBN + (4) 'GNU Autoconf, Automake and Libtool', by G. V. Vaughan, B. +Elliston, T. Tromey, and I. L. Taylor. New Riders, 2000, ISBN 1578701902. - (5) "The Goat Book" home page, `http://sources.redhat.com/autobook/'. + (5) "The Goat Book" home page, . - (6) Autoconf Developer Page, `http://sources.redhat.com/autoconf/'. + (6) Autoconf Developer Page, . (7) Autoconf Macro Archive, -`http://www.gnu.org/software/ac-archive/'. +.  File: autoconf.info, Node: Making configure Scripts, Next: Setup, Prev: The GNU build system, Up: Top -3 Making `configure' Scripts +3 Making 'configure' Scripts **************************** The configuration scripts that Autoconf produces are by convention -called `configure'. When run, `configure' creates several files, -replacing configuration parameters in them with appropriate values. -The files that `configure' creates are: +called 'configure'. When run, 'configure' creates several files, +replacing configuration parameters in them with appropriate values. The +files that 'configure' creates are: - - one or more `Makefile' files, one in each subdirectory of the + - one or more 'Makefile' files, one in each subdirectory of the package (*note Makefile Substitutions::); - optionally, a C header file, the name of which is configurable, - containing `#define' directives (*note Configuration Headers::); + containing '#define' directives (*note Configuration Headers::); - - a shell script called `config.status' that, when run, will recreate + - a shell script called 'config.status' that, when run, will recreate the files listed above (*note config.status Invocation::); - - an optional shell script normally called `config.cache' (created - when using `configure --config-cache') that saves the results of + - an optional shell script normally called 'config.cache' (created + when using 'configure --config-cache') that saves the results of running many of the tests (*note Cache Files::); - - a file called `config.log' containing any messages produced by - compilers, to help debugging if `configure' makes a mistake. + - a file called 'config.log' containing any messages produced by + compilers, to help debugging if 'configure' makes a mistake. - To create a `configure' script with Autoconf, you need to write an -Autoconf input file `configure.ac' (or `configure.in') and run -`autoconf' on it. If you write your own feature tests to supplement + To create a 'configure' script with Autoconf, you need to write an +Autoconf input file 'configure.ac' (or 'configure.in') and run +'autoconf' on it. If you write your own feature tests to supplement those that come with Autoconf, you might also write files called -`aclocal.m4' and `acsite.m4'. If you use a C header file to contain -`#define' directives, you might also run `autoheader', and you will -distribute the generated file `config.h.in' with the package. +'aclocal.m4' and 'acsite.m4'. If you use a C header file to contain +'#define' directives, you might also run 'autoheader', and you will +distribute the generated file 'config.h.in' with the package. Here is a diagram showing how the files that can be used in configuration are produced. Programs that are executed are suffixed by -`*'. Optional files are enclosed in square brackets (`[]'). -`autoconf' and `autoheader' also read the installed Autoconf macro -files (by reading `autoconf.m4'). +'*'. Optional files are enclosed in square brackets ('[]'). 'autoconf' +and 'autoheader' also read the installed Autoconf macro files (by +reading 'autoconf.m4'). Files used in preparing a software package for distribution: your source files --> [autoscan*] --> [configure.scan] --> configure.ac @@ -658,34 +655,34 @@ * Menu: * Writing configure.ac:: What to put in an Autoconf input file -* autoscan Invocation:: Semi-automatic `configure.ac' writing +* autoscan Invocation:: Semi-automatic 'configure.ac' writing * ifnames Invocation:: Listing the conditionals in source code * autoconf Invocation:: How to create configuration scripts -* autoreconf Invocation:: Remaking multiple `configure' scripts +* autoreconf Invocation:: Remaking multiple 'configure' scripts  File: autoconf.info, Node: Writing configure.ac, Next: autoscan Invocation, Prev: Making configure Scripts, Up: Making configure Scripts -3.1 Writing `configure.ac' +3.1 Writing 'configure.ac' ========================== -To produce a `configure' script for a software package, create a file -called `configure.ac' that contains invocations of the Autoconf macros +To produce a 'configure' script for a software package, create a file +called 'configure.ac' that contains invocations of the Autoconf macros that test the system features your package needs or can use. Autoconf macros already exist to check for many features; see *note Existing Tests::, for their descriptions. For most other features, you can use Autoconf template macros to produce custom checks; see *note Writing Tests::, for information about them. For especially tricky or -specialized features, `configure.ac' might need to contain some -hand-crafted shell commands; see *note Portable Shell::. The -`autoscan' program can give you a good start in writing `configure.ac' -(*note autoscan Invocation::, for more information). +specialized features, 'configure.ac' might need to contain some +hand-crafted shell commands; see *note Portable Shell::. The 'autoscan' +program can give you a good start in writing 'configure.ac' (*note +autoscan Invocation::, for more information). - Previous versions of Autoconf promoted the name `configure.in', -which is somewhat ambiguous (the tool needed to produce this file is not + Previous versions of Autoconf promoted the name 'configure.in', which +is somewhat ambiguous (the tool needed to produce this file is not described by its extension), and introduces a slight confusion with -`config.h.in' and so on (for which `.in' means "to be processed by -`configure'"). Using `configure.ac' is now preferred. +'config.h.in' and so on (for which '.in' means "to be processed by +'configure'"). Using 'configure.ac' is now preferred. * Menu: @@ -700,41 +697,41 @@ ----------------------------- Just as for any other computer language, in order to properly program -`configure.ac' in Autoconf you must understand _what_ problem the +'configure.ac' in Autoconf you must understand _what_ problem the language tries to address and _how_ it does so. The problem Autoconf addresses is that the world is a mess. After -all, you are using Autoconf in order to have your package compile -easily on all sorts of different systems, some of them being extremely -hostile. Autoconf itself bears the price for these differences: -`configure' must run on all those systems, and thus `configure' must -limit itself to their lowest common denominator of features. +all, you are using Autoconf in order to have your package compile easily +on all sorts of different systems, some of them being extremely hostile. +Autoconf itself bears the price for these differences: 'configure' must +run on all those systems, and thus 'configure' must limit itself to +their lowest common denominator of features. Naturally, you might then think of shell scripts; who needs -`autoconf'? A set of properly written shell functions is enough to -make it easy to write `configure' scripts by hand. Sigh! -Unfortunately, shell functions do not belong to the least common -denominator; therefore, where you would like to define a function and -use it ten times, you would instead need to copy its body ten times. - - So, what is really needed is some kind of compiler, `autoconf', that -takes an Autoconf program, `configure.ac', and transforms it into a -portable shell script, `configure'. +'autoconf'? A set of properly written shell functions is enough to make +it easy to write 'configure' scripts by hand. Sigh! Unfortunately, +shell functions do not belong to the least common denominator; +therefore, where you would like to define a function and use it ten +times, you would instead need to copy its body ten times. + + So, what is really needed is some kind of compiler, 'autoconf', that +takes an Autoconf program, 'configure.ac', and transforms it into a +portable shell script, 'configure'. - How does `autoconf' perform this task? + How does 'autoconf' perform this task? There are two obvious possibilities: creating a brand new language or extending an existing one. The former option is very attractive: all sorts of optimizations could easily be implemented in the compiler and many rigorous checks could be performed on the Autoconf program (e.g. -rejecting any non-portable construct). Alternatively, you can extend -an existing language, such as the `sh' (Bourne shell) language. +rejecting any non-portable construct). Alternatively, you can extend an +existing language, such as the 'sh' (Bourne shell) language. - Autoconf does the latter: it is a layer on top of `sh'. It was -therefore most convenient to implement `autoconf' as a macro expander: -a program that repeatedly performs "macro expansions" on text input, -replacing macro calls with macro bodies and producing a pure `sh' -script in the end. Instead of implementing a dedicated Autoconf macro + Autoconf does the latter: it is a layer on top of 'sh'. It was +therefore most convenient to implement 'autoconf' as a macro expander: a +program that repeatedly performs "macro expansions" on text input, +replacing macro calls with macro bodies and producing a pure 'sh' script +in the end. Instead of implementing a dedicated Autoconf macro expander, it is natural to use an existing general-purpose macro language, such as M4, and implement the extensions as a set of M4 macros. @@ -754,12 +751,12 @@ When calling macros that take arguments, there must not be any blank space between the macro name and the open parenthesis. Arguments should -be enclosed within the M4 quote characters `[' and `]', and be -separated by commas. Any leading spaces in arguments are ignored, -unless they are quoted. You may safely leave out the quotes when the -argument is simple text, but _always_ quote complex arguments such as -other macro calls. This rule applies recursively for every macro call, -including macros called from other macros. +be enclosed within the M4 quote characters '[' and ']', and be separated +by commas. Any leading spaces in arguments are ignored, unless they are +quoted. You may safely leave out the quotes when the argument is simple +text, but _always_ quote complex arguments such as other macro calls. +This rule applies recursively for every macro call, including macros +called from other macros. For instance: @@ -773,7 +770,7 @@ [AC_DEFINE(HAVE_STDIO_H)], [AC_MSG_ERROR([Sorry, can't do anything for you])]) -Notice that the argument of `AC_MSG_ERROR' is still quoted; otherwise, +Notice that the argument of 'AC_MSG_ERROR' is still quoted; otherwise, its comma would have been interpreted as an argument separator. The following example is wrong and dangerous, as it is underquoted: @@ -800,32 +797,32 @@ AC_MSG_WARN([[AC_DC stinks --Iron Maiden]]) You are now able to understand one of the constructs of Autoconf that -has been continually misunderstood... The rule of thumb is that +has been continually misunderstood... The rule of thumb is that _whenever you expect macro expansion, expect quote expansion_; i.e., expect one level of quotes to be lost. For instance: AC_COMPILE_IFELSE([char b[10];],, [AC_MSG_ERROR([you lose])]) -is incorrect: here, the first argument of `AC_COMPILE_IFELSE' is `char -b[10];' and will be expanded once, which results in `char b10;'. -(There was an idiom common in Autoconf's past to address this issue via -the M4 `changequote' primitive, but do not use it!) Let's take a -closer look: the author meant the first argument to be understood as a -literal, and therefore it must be quoted twice: +is incorrect: here, the first argument of 'AC_COMPILE_IFELSE' is 'char +b[10];' and will be expanded once, which results in 'char b10;'. (There +was an idiom common in Autoconf's past to address this issue via the M4 +'changequote' primitive, but do not use it!) Let's take a closer look: +the author meant the first argument to be understood as a literal, and +therefore it must be quoted twice: AC_COMPILE_IFELSE([[char b[10];]],, [AC_MSG_ERROR([you lose])]) -Voila`, you actually produce `char b[10];' this time! +Voila`, you actually produce 'char b[10];' this time! The careful reader will notice that, according to these guidelines, -the "properly" quoted `AC_CHECK_HEADER' example above is actually +the "properly" quoted 'AC_CHECK_HEADER' example above is actually lacking three pairs of quotes! Nevertheless, for the sake of readability, double quotation of literals is used only where needed in this manual. Some macros take optional arguments, which this documentation -represents as [ARG] (not to be confused with the quote characters). -You may just leave them empty, or use `[]' to make the emptiness of the +represents as [ARG] (not to be confused with the quote characters). You +may just leave them empty, or use '[]' to make the emptiness of the argument explicit, or you may simply omit the trailing commas. The three lines below are equivalent: @@ -833,16 +830,16 @@ AC_CHECK_HEADERS(stdio.h,,,) AC_CHECK_HEADERS(stdio.h) - It is best to put each macro call on its own line in `configure.ac'. + It is best to put each macro call on its own line in 'configure.ac'. Most of the macros don't add extra newlines; they rely on the newline -after the macro call to terminate the commands. This approach makes -the generated `configure' script a little easier to read by not -inserting lots of blank lines. It is generally safe to set shell -variables on the same line as a macro call, because the shell allows -assignments without intervening newlines. +after the macro call to terminate the commands. This approach makes the +generated 'configure' script a little easier to read by not inserting +lots of blank lines. It is generally safe to set shell variables on the +same line as a macro call, because the shell allows assignments without +intervening newlines. - You can include comments in `configure.ac' files by starting them -with the `#'. For example, it is helpful to begin `configure.ac' files + You can include comments in 'configure.ac' files by starting them +with the '#'. For example, it is helpful to begin 'configure.ac' files with a line like this: # Process this file with autoconf to produce a configure script. @@ -850,17 +847,17 @@  File: autoconf.info, Node: configure.ac Layout, Prev: Autoconf Language, Up: Writing configure.ac -3.1.3 Standard `configure.ac' Layout +3.1.3 Standard 'configure.ac' Layout ------------------------------------ -The order in which `configure.ac' calls the Autoconf macros is not -important, with a few exceptions. Every `configure.ac' must contain a -call to `AC_INIT' before the checks, and a call to `AC_OUTPUT' at the +The order in which 'configure.ac' calls the Autoconf macros is not +important, with a few exceptions. Every 'configure.ac' must contain a +call to 'AC_INIT' before the checks, and a call to 'AC_OUTPUT' at the end (*note Output::). Additionally, some macros rely on other macros having been called first, because they check previously set values of some variables to decide what to do. These macros are noted in the -individual descriptions (*note Existing Tests::), and they also warn -you when `configure' is created if they are called out of order. +individual descriptions (*note Existing Tests::), and they also warn you +when 'configure' is created if they are called out of order. To encourage consistency, here is a suggested order for calling the Autoconf macros. Generally speaking, the things near the end of this @@ -868,7 +865,7 @@ library functions could be affected by types and libraries. Autoconf requirements - `AC_INIT(PACKAGE, VERSION, BUG-REPORT-ADDRESS)' + 'AC_INIT(PACKAGE, VERSION, BUG-REPORT-ADDRESS)' information on the package checks for programs checks for libraries @@ -878,67 +875,65 @@ checks for compiler characteristics checks for library functions checks for system services - `AC_CONFIG_FILES([FILE...])' - `AC_OUTPUT' + 'AC_CONFIG_FILES([FILE...])' + 'AC_OUTPUT'  File: autoconf.info, Node: autoscan Invocation, Next: ifnames Invocation, Prev: Writing configure.ac, Up: Making configure Scripts -3.2 Using `autoscan' to Create `configure.ac' +3.2 Using 'autoscan' to Create 'configure.ac' ============================================= -The `autoscan' program can help you create and/or maintain a -`configure.ac' file for a software package. `autoscan' examines source +The 'autoscan' program can help you create and/or maintain a +'configure.ac' file for a software package. 'autoscan' examines source files in the directory tree rooted at a directory given as a command line argument, or the current directory if none is given. It searches the source files for common portability problems and creates a file -`configure.scan' which is a preliminary `configure.ac' for that -package, and checks a possibly existing `configure.ac' for completeness. +'configure.scan' which is a preliminary 'configure.ac' for that package, +and checks a possibly existing 'configure.ac' for completeness. - When using `autoscan' to create a `configure.ac', you should -manually examine `configure.scan' before renaming it to `configure.ac'; -it will probably need some adjustments. Occasionally, `autoscan' -outputs a macro in the wrong order relative to another macro, so that -`autoconf' produces a warning; you need to move such macros manually. -Also, if you want the package to use a configuration header file, you -must add a call to `AC_CONFIG_HEADERS' (*note Configuration Headers::). -You might also have to change or add some `#if' directives to your -program in order to make it work with Autoconf (*note ifnames -Invocation::, for information about a program that can help with that -job). + When using 'autoscan' to create a 'configure.ac', you should manually +examine 'configure.scan' before renaming it to 'configure.ac'; it will +probably need some adjustments. Occasionally, 'autoscan' outputs a +macro in the wrong order relative to another macro, so that 'autoconf' +produces a warning; you need to move such macros manually. Also, if you +want the package to use a configuration header file, you must add a call +to 'AC_CONFIG_HEADERS' (*note Configuration Headers::). You might also +have to change or add some '#if' directives to your program in order to +make it work with Autoconf (*note ifnames Invocation::, for information +about a program that can help with that job). - When using `autoscan' to maintain a `configure.ac', simply consider -adding its suggestions. The file `autoscan.log' will contain detailed + When using 'autoscan' to maintain a 'configure.ac', simply consider +adding its suggestions. The file 'autoscan.log' will contain detailed information on why a macro is requested. - `autoscan' uses several data files (installed along with Autoconf) -to determine which macros to output when it finds particular symbols in -a package's source files. These data files all have the same format: -each line consists of a symbol, whitespace, and the Autoconf macro to -output if that symbol is encountered. Lines starting with `#' are -comments. + 'autoscan' uses several data files (installed along with Autoconf) to +determine which macros to output when it finds particular symbols in a +package's source files. These data files all have the same format: each +line consists of a symbol, whitespace, and the Autoconf macro to output +if that symbol is encountered. Lines starting with '#' are comments. - `autoscan' is only installed if you already have Perl installed. -`autoscan' accepts the following options: + 'autoscan' is only installed if you already have Perl installed. +'autoscan' accepts the following options: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit. -`--verbose' -`-v' +'--verbose' +'-v' Print the names of the files it examines and the potentially interesting symbols it finds in them. This output can be voluminous. -`--autoconf-dir=DIR' -`-A DIR' +'--autoconf-dir=DIR' +'-A DIR' Override the location where the installed Autoconf data files are - looked for. You can also set the `AC_MACRODIR' environment + looked for. You can also set the 'AC_MACRODIR' environment variable to a directory; this option overrides the environment variable. @@ -948,129 +943,129 @@  File: autoconf.info, Node: ifnames Invocation, Next: autoconf Invocation, Prev: autoscan Invocation, Up: Making configure Scripts -3.3 Using `ifnames' to List Conditionals +3.3 Using 'ifnames' to List Conditionals ======================================== -`ifnames' can help you write `configure.ac' for a software package. It +'ifnames' can help you write 'configure.ac' for a software package. It prints the identifiers that the package already uses in C preprocessor conditionals. If a package has already been set up to have some -portability, `ifnames' can thus help you figure out what its -`configure' needs to check for. It may help fill in some gaps in a -`configure.ac' generated by `autoscan' (*note autoscan Invocation::). +portability, 'ifnames' can thus help you figure out what its 'configure' +needs to check for. It may help fill in some gaps in a 'configure.ac' +generated by 'autoscan' (*note autoscan Invocation::). - `ifnames' scans all of the C source files named on the command line + 'ifnames' scans all of the C source files named on the command line (or the standard input, if none are given) and writes to the standard output a sorted list of all the identifiers that appear in those files -in `#if', `#elif', `#ifdef', or `#ifndef' directives. It prints each -identifier on a line, followed by a space-separated list of the files -in which that identifier occurs. +in '#if', '#elif', '#ifdef', or '#ifndef' directives. It prints each +identifier on a line, followed by a space-separated list of the files in +which that identifier occurs. -`ifnames' accepts the following options: +'ifnames' accepts the following options: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit.  File: autoconf.info, Node: autoconf Invocation, Next: autoreconf Invocation, Prev: ifnames Invocation, Up: Making configure Scripts -3.4 Using `autoconf' to Create `configure' +3.4 Using 'autoconf' to Create 'configure' ========================================== -To create `configure' from `configure.ac', run the `autoconf' program -with no arguments. `autoconf' processes `configure.ac' with the `m4' -macro processor, using the Autoconf macros. If you give `autoconf' an -argument, it reads that file instead of `configure.ac' and writes the -configuration script to the standard output instead of to `configure'. -If you give `autoconf' the argument `-', it reads from the standard -input instead of `configure.ac' and writes the configuration script to +To create 'configure' from 'configure.ac', run the 'autoconf' program +with no arguments. 'autoconf' processes 'configure.ac' with the 'm4' +macro processor, using the Autoconf macros. If you give 'autoconf' an +argument, it reads that file instead of 'configure.ac' and writes the +configuration script to the standard output instead of to 'configure'. +If you give 'autoconf' the argument '-', it reads from the standard +input instead of 'configure.ac' and writes the configuration script to the standard output. The Autoconf macros are defined in several files. Some of the files -are distributed with Autoconf; `autoconf' reads them first. Then it -looks for the optional file `acsite.m4' in the directory that contains +are distributed with Autoconf; 'autoconf' reads them first. Then it +looks for the optional file 'acsite.m4' in the directory that contains the distributed Autoconf macro files, and for the optional file -`aclocal.m4' in the current directory. Those files can contain your +'aclocal.m4' in the current directory. Those files can contain your site's or the package's own Autoconf macro definitions (*note Writing -Autoconf Macros::, for more information). If a macro is defined in -more than one of the files that `autoconf' reads, the last definition -it reads overrides the earlier ones. +Autoconf Macros::, for more information). If a macro is defined in more +than one of the files that 'autoconf' reads, the last definition it +reads overrides the earlier ones. - `autoconf' accepts the following options: + 'autoconf' accepts the following options: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit. -`--verbose' -`-v' +'--verbose' +'-v' Report processing steps. -`--debug' -`-d' +'--debug' +'-d' Don't remove the temporary files. -`--autoconf-dir=DIR' -`-A DIR' +'--autoconf-dir=DIR' +'-A DIR' Override the location where the installed Autoconf data files are - looked for. You can also set the `AC_MACRODIR' environment + looked for. You can also set the 'AC_MACRODIR' environment variable to a directory; this option overrides the environment variable. This option is rarely needed and dangerous; it is only used when one plays with different versions of Autoconf simultaneously. -`--localdir=DIR' -`-l DIR' - Look for the package file `aclocal.m4' in directory DIR instead of +'--localdir=DIR' +'-l DIR' + Look for the package file 'aclocal.m4' in directory DIR instead of in the current directory. -`--output=FILE' -`-o FILE' - Save output (script or trace) to FILE. The file `-' stands for - the standard output. +'--output=FILE' +'-o FILE' + Save output (script or trace) to FILE. The file '-' stands for the + standard output. -`--warnings=CATEGORY' -`-W CATEGORY' +'--warnings=CATEGORY' +'-W CATEGORY' Report the warnings related to CATEGORY (which can actually be a comma separated list). *Note Reporting Messages::, macro - `AC_DIAGNOSE', for a comprehensive list of categories. Special + 'AC_DIAGNOSE', for a comprehensive list of categories. Special values include: - `all' + 'all' report all the warnings - `none' + 'none' report none - `error' + 'error' treats warnings as errors - `no-CATEGORY' + 'no-CATEGORY' disable warnings falling into CATEGORY - Warnings about `syntax' are enabled by default, and the environment - variable `WARNINGS', a comma separated list of categories, is - honored. `autoconf -W CATEGORY' will actually behave as if you had + Warnings about 'syntax' are enabled by default, and the environment + variable 'WARNINGS', a comma separated list of categories, is + honored. 'autoconf -W CATEGORY' will actually behave as if you had run: autoconf --warnings=syntax,$WARNINGS,CATEGORY - If you want to disable `autoconf''s defaults and `WARNINGS', but + If you want to disable 'autoconf''s defaults and 'WARNINGS', but (for example) enable the warnings about obsolete constructs, you - would use `-W none,obsolete'. + would use '-W none,obsolete'. - `autoconf' displays a back trace for errors, but not for warnings; - if you want them, just pass `-W error'. For instance, on this - `configure.ac': + 'autoconf' displays a back trace for errors, but not for warnings; + if you want them, just pass '-W error'. For instance, on this + 'configure.ac': AC_DEFUN([INNER], [AC_TRY_RUN([true])]) @@ -1094,71 +1089,70 @@ configure.ac:5: OUTER is expanded from... configure.ac:8: the top level -`--trace=MACRO[:FORMAT]' -`-t MACRO[:FORMAT]' - Do not create the `configure' script, but list the calls to MACRO - according to the FORMAT. Multiple `--trace' arguments can be used - to list several macros. Multiple `--trace' arguments for a single +'--trace=MACRO[:FORMAT]' +'-t MACRO[:FORMAT]' + Do not create the 'configure' script, but list the calls to MACRO + according to the FORMAT. Multiple '--trace' arguments can be used + to list several macros. Multiple '--trace' arguments for a single macro are not cumulative; instead, you should just make FORMAT as long as needed. The FORMAT is a regular string, with newlines if desired, and - several special escape codes. It defaults to `$f:$l:$n:$%'; see + several special escape codes. It defaults to '$f:$l:$n:$%'; see below for details on the FORMAT. -`--initialization' -`-i' - By default, `--trace' does not trace the initialization of the - Autoconf macros (typically the `AC_DEFUN' definitions). This +'--initialization' +'-i' + By default, '--trace' does not trace the initialization of the + Autoconf macros (typically the 'AC_DEFUN' definitions). This results in a noticeable speedup, but can be disabled by this option. - It is often necessary to check the content of a `configure.ac' file, + It is often necessary to check the content of a 'configure.ac' file, but parsing it yourself is extremely fragile and error-prone. It is -suggested that you rely upon `--trace' to scan `configure.ac'. +suggested that you rely upon '--trace' to scan 'configure.ac'. - The FORMAT of `--trace' can use the following special escapes: + The FORMAT of '--trace' can use the following special escapes: -`$$' - The character `$'. +'$$' + The character '$'. -`$f' +'$f' The filename from which MACRO is called. -`$l' +'$l' The line number from which MACRO is called. -`$d' +'$d' The depth of the MACRO call. This is an M4 technical detail that you probably don't want to know about. -`$n' +'$n' The name of the MACRO. -`$NUM' +'$NUM' The NUMth argument of the call to MACRO. -`$@' -`$SEP@' -`${SEPARATOR}@' +'$@' +'$SEP@' +'${SEPARATOR}@' All the arguments passed to MACRO, separated by the character SEP - or the string SEPARATOR (`,' by default). Each argument is - quoted, i.e. enclosed in a pair of square brackets. + or the string SEPARATOR (',' by default). Each argument is quoted, + i.e. enclosed in a pair of square brackets. -`$*' -`$SEP*' -`${SEPARATOR}*' +'$*' +'$SEP*' +'${SEPARATOR}*' As above, but the arguments are not quoted. -`$%' -`$SEP%' -`${SEPARATOR}%' - As above, but the arguments are not quoted, all new line - characters in the arguments are smashed, and the default separator - is `:'. +'$%' +'$SEP%' +'${SEPARATOR}%' + As above, but the arguments are not quoted, all new line characters + in the arguments are smashed, and the default separator is ':'. - The escape `$%' produces single-line trace outputs (unless you put - newlines in the `separator'), while `$@' and `$*' do not. + The escape '$%' produces single-line trace outputs (unless you put + newlines in the 'separator'), while '$@' and '$*' do not. For instance, to find the list of variables that are substituted, use: @@ -1169,7 +1163,7 @@ configure.ac:2:AC_SUBST:ECHO_T More traces deleted -The example below highlights the difference between `$@', `$*', and +The example below highlights the difference between '$@', '$*', and *$%*. $ cat configure.ac @@ -1205,109 +1199,109 @@  File: autoconf.info, Node: autoreconf Invocation, Prev: autoconf Invocation, Up: Making configure Scripts -3.5 Using `autoreconf' to Update `configure' Scripts +3.5 Using 'autoreconf' to Update 'configure' Scripts ==================================================== -If you have a lot of Autoconf-generated `configure' scripts, the -`autoreconf' program can save you some work. It runs `autoconf' (and -`autoheader', where appropriate) repeatedly to remake the Autoconf -`configure' scripts and configuration header templates in the directory -tree rooted at the current directory. By default, it only remakes -those files that are older than their `configure.ac' or (if present) -`aclocal.m4'. Since `autoheader' does not change the timestamp of its +If you have a lot of Autoconf-generated 'configure' scripts, the +'autoreconf' program can save you some work. It runs 'autoconf' (and +'autoheader', where appropriate) repeatedly to remake the Autoconf +'configure' scripts and configuration header templates in the directory +tree rooted at the current directory. By default, it only remakes those +files that are older than their 'configure.ac' or (if present) +'aclocal.m4'. Since 'autoheader' does not change the timestamp of its output file if the file wouldn't be changing, this is not necessarily the minimum amount of work. If you install a new version of Autoconf, -you can make `autoreconf' remake _all_ of the files by giving it the -`--force' option. +you can make 'autoreconf' remake _all_ of the files by giving it the +'--force' option. - If you give `autoreconf' the `--autoconf-dir=DIR' or -`--localdir=DIR' options, it passes them down to `autoconf' and -`autoheader' (with relative paths adjusted properly). + If you give 'autoreconf' the '--autoconf-dir=DIR' or '--localdir=DIR' +options, it passes them down to 'autoconf' and 'autoheader' (with +relative paths adjusted properly). - `autoreconf' does not support having, in the same directory tree, + 'autoreconf' does not support having, in the same directory tree, both directories that are parts of a larger package (sharing -`aclocal.m4' and `acconfig.h') and directories that are independent -packages (each with their own `aclocal.m4' and `acconfig.h'). It +'aclocal.m4' and 'acconfig.h') and directories that are independent +packages (each with their own 'aclocal.m4' and 'acconfig.h'). It assumes that they are all part of the same package if you use -`--localdir', or that each directory is a separate package if you don't +'--localdir', or that each directory is a separate package if you don't use it. This restriction may be removed in the future. - *Note Automatic Remaking::, for `Makefile' rules to automatically -remake `configure' scripts when their source files change. That method + *Note Automatic Remaking::, for 'Makefile' rules to automatically +remake 'configure' scripts when their source files change. That method handles the timestamps of configuration header templates properly, but -does not pass `--autoconf-dir=DIR' or `--localdir=DIR'. +does not pass '--autoconf-dir=DIR' or '--localdir=DIR'. -`autoreconf' accepts the following options: +'autoreconf' accepts the following options: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit. -`--verbose' - Print the name of each directory where `autoreconf' runs - `autoconf' (and `autoheader', if appropriate). +'--verbose' + Print the name of each directory where 'autoreconf' runs 'autoconf' + (and 'autoheader', if appropriate). -`--debug' -`-d' +'--debug' +'-d' Don't remove the temporary files. -`--force' -`-f' - Remake even `configure' scripts and configuration headers that are - newer than their input files (`configure.ac' and, if present, - `aclocal.m4'). +'--force' +'-f' + Remake even 'configure' scripts and configuration headers that are + newer than their input files ('configure.ac' and, if present, + 'aclocal.m4'). -`--install' -`-i' +'--install' +'-i' Copy missing auxiliary files. This option is similar to the option - `--add-missing' in `automake'. + '--add-missing' in 'automake'. -`--symlink' -`-s' +'--symlink' +'-s' Instead of copying missing auxiliary files, install symbolic links. -`--localdir=DIR' -`-l DIR' - Have `autoconf' and `autoheader' look for the package files - `aclocal.m4' and (`autoheader' only) `acconfig.h' (but not - `FILE.top' and `FILE.bot') in directory DIR instead of in the - directory containing each `configure.ac'. +'--localdir=DIR' +'-l DIR' + Have 'autoconf' and 'autoheader' look for the package files + 'aclocal.m4' and ('autoheader' only) 'acconfig.h' (but not + 'FILE.top' and 'FILE.bot') in directory DIR instead of in the + directory containing each 'configure.ac'. -`--autoconf-dir=DIR' -`-A DIR' +'--autoconf-dir=DIR' +'-A DIR' Override the location where the installed Autoconf data files are - looked for. You can also set the `AC_MACRODIR' environment + looked for. You can also set the 'AC_MACRODIR' environment variable to a directory; this option overrides the environment variable. This option is rarely needed and dangerous; it is only used when one plays with different versions of Autoconf simultaneously. -`--m4dir=DIR' -`-M DIR' - Specify location of additional macro files (`m4' by default). +'--m4dir=DIR' +'-M DIR' + Specify location of additional macro files ('m4' by default). Additionally, the following options are recognized and passed to -`automake': +'automake': -`--cygnus' +'--cygnus' Assume program is part of Cygnus-style tree. -`--foreign' +'--foreign' Set strictness to foreign. -`--gnits' +'--gnits' Set strictness to gnits. -`--gnu' +'--gnu' Set strictness to gnu. -`--include-deps' - Include generated dependencies in `Makefile.in'. +'--include-deps' + Include generated dependencies in 'Makefile.in'.  File: autoconf.info, Node: Setup, Next: Existing Tests, Prev: Making configure Scripts, Up: Top @@ -1315,19 +1309,19 @@ 4 Initialization and Output Files ********************************* -Autoconf-generated `configure' scripts need some information about how -to initialize, such as how to find the package's source files; and -about the output files to produce. The following sections describe +Autoconf-generated 'configure' scripts need some information about how +to initialize, such as how to find the package's source files; and about +the output files to produce. The following sections describe initialization and the creation of output files. * Menu: -* Notices:: Copyright, version numbers in `configure' +* Notices:: Copyright, version numbers in 'configure' * Input:: Where Autoconf should find files * Output:: Outputting results from the configuration * Configuration Actions:: Preparing the output based on results * Configuration Files:: Creating output files -* Makefile Substitutions:: Using output variables in `Makefile's +* Makefile Substitutions:: Using output variables in 'Makefile's * Configuration Headers:: Creating a configuration header file * Configuration Commands:: Running arbitrary instantiation commands * Configuration Links:: Links depending from the configuration @@ -1337,44 +1331,44 @@  File: autoconf.info, Node: Notices, Next: Input, Prev: Setup, Up: Setup -4.1 Notices in `configure' +4.1 Notices in 'configure' ========================== -The following macros manage version numbers for `configure' scripts. +The following macros manage version numbers for 'configure' scripts. Using them is optional. -- Macro: AC_PREREQ (VERSION) Ensure that a recent enough version of Autoconf is being used. If - the version of Autoconf being used to create `configure' is earlier + the version of Autoconf being used to create 'configure' is earlier than VERSION, print an error message to the standard error output - and do not create `configure'. For example: + and do not create 'configure'. For example: - AC_PREREQ(2.52.20170501) + AC_PREREQ(2.52.20200111) - This macro is the only macro that may be used before `AC_INIT', but + This macro is the only macro that may be used before 'AC_INIT', but for consistency, you are invited not to do so. -- Macro: AC_COPYRIGHT (COPYRIGHT-NOTICE) - State that, in addition to the Free Software Foundation's - copyright on the Autoconf macros, parts of your `configure' are - covered by the COPYRIGHT-NOTICE. + State that, in addition to the Free Software Foundation's copyright + on the Autoconf macros, parts of your 'configure' are covered by + the COPYRIGHT-NOTICE. - The COPYRIGHT-NOTICE will show up in both the head of `configure' - and in `configure --version'. + The COPYRIGHT-NOTICE will show up in both the head of 'configure' + and in 'configure --version'. -- Macro: AC_REVISION (REVISION-INFO) - Copy revision stamp REVISION-INFO into the `configure' script, - with any dollar signs or double-quotes removed. This macro lets - you put a revision stamp from `configure.ac' into `configure' - without RCS or `cvs' changing it when you check in `configure'. - That way, you can determine easily which revision of - `configure.ac' a particular `configure' corresponds to. + Copy revision stamp REVISION-INFO into the 'configure' script, with + any dollar signs or double-quotes removed. This macro lets you put + a revision stamp from 'configure.ac' into 'configure' without RCS + or 'cvs' changing it when you check in 'configure'. That way, you + can determine easily which revision of 'configure.ac' a particular + 'configure' corresponds to. - For example, this line in `configure.ac': + For example, this line in 'configure.ac': - AC_REVISION($Revision: 1.45 $) + AC_REVISION($Revision: 1.53 $) - produces this in `configure': + produces this in 'configure': #! /bin/sh # From configure.ac Revision: 1.30 @@ -1382,43 +1376,43 @@  File: autoconf.info, Node: Input, Next: Output, Prev: Notices, Up: Setup -4.2 Finding `configure' Input +4.2 Finding 'configure' Input ============================= -Every `configure' script must call `AC_INIT' before doing anything -else. The only other required macro is `AC_OUTPUT' (*note Output::). +Every 'configure' script must call 'AC_INIT' before doing anything else. +The only other required macro is 'AC_OUTPUT' (*note Output::). -- Macro: AC_INIT (PACKAGE, VERSION, [BUG-REPORT-ADDRESS]) Process any command-line arguments and perform various - initializations and verifications. Set the name of the PACKAGE - and its VERSION. The optional argument BUG-REPORT-ADDRESS should - be the email to which users should send bug reports. + initializations and verifications. Set the name of the PACKAGE and + its VERSION. The optional argument BUG-REPORT-ADDRESS should be + the email to which users should send bug reports. -- Macro: AC_CONFIG_SRCDIR (UNIQUE-FILE-IN-SOURCE-DIR) UNIQUE-FILE-IN-SOURCE-DIR is some file that is in the package's - source directory; `configure' checks for this file's existence to + source directory; 'configure' checks for this file's existence to make sure that the directory that it is told contains the source code in fact does. Occasionally people accidentally specify the - wrong directory with `--srcdir'; this is a safety check. *Note + wrong directory with '--srcdir'; this is a safety check. *Note configure Invocation::, for more information. - Packages that do manual configuration or use the `install' program -might need to tell `configure' where to find some other shell scripts -by calling `AC_CONFIG_AUX_DIR', though the default places it looks are + Packages that do manual configuration or use the 'install' program +might need to tell 'configure' where to find some other shell scripts by +calling 'AC_CONFIG_AUX_DIR', though the default places it looks are correct for most cases. -- Macro: AC_CONFIG_AUX_DIR (DIR) - Use the auxiliary build tools (e.g., `install-sh', `config.sub', - `config.guess', Cygnus `configure', Automake and Libtool scripts - etc.) that are in directory DIR. These are auxiliary files used + Use the auxiliary build tools (e.g., 'install-sh', 'config.sub', + 'config.guess', Cygnus 'configure', Automake and Libtool scripts + etc.) that are in directory DIR. These are auxiliary files used in configuration. DIR can be either absolute or relative to - `SRCDIR'. The default is `SRCDIR' or `SRCDIR/..' or - `SRCDIR/../..', whichever is the first that contains `install-sh'. + 'SRCDIR'. The default is 'SRCDIR' or 'SRCDIR/..' or + 'SRCDIR/../..', whichever is the first that contains 'install-sh'. The other files are not checked for, so that using - `AC_PROG_INSTALL' does not automatically require distributing the - other auxiliary files. It checks for `install.sh' also, but that - name is obsolete because some `make' have a rule that creates - `install' from it if there is no `Makefile'. + 'AC_PROG_INSTALL' does not automatically require distributing the + other auxiliary files. It checks for 'install.sh' also, but that + name is obsolete because some 'make' have a rule that creates + 'install' from it if there is no 'Makefile'.  File: autoconf.info, Node: Output, Next: Configuration Actions, Prev: Input, Up: Setup @@ -1426,44 +1420,43 @@ 4.3 Outputting Files ==================== -Every Autoconf-generated `configure' script must finish by calling -`AC_OUTPUT'. It is the macro that generates `config.status', which -will create the `Makefile's and any other files resulting from -configuration. The only other required macro is `AC_INIT' (*note -Input::). +Every Autoconf-generated 'configure' script must finish by calling +'AC_OUTPUT'. It is the macro that generates 'config.status', which will +create the 'Makefile's and any other files resulting from configuration. +The only other required macro is 'AC_INIT' (*note Input::). -- Macro: AC_OUTPUT - Generate `config.status' and launch it. Call this macro once, at - the end of `configure.ac'. + Generate 'config.status' and launch it. Call this macro once, at + the end of 'configure.ac'. - `config.status' will take all the configuration actions: all the + 'config.status' will take all the configuration actions: all the output files (see *note Configuration Files::, macro - `AC_CONFIG_FILES'), header files (see *note Configuration - Headers::, macro `AC_CONFIG_HEADERS'), commands (see *note - Configuration Commands::, macro `AC_CONFIG_COMMANDS'), links (see - *note Configuration Links::, macro `AC_CONFIG_LINKS'), + 'AC_CONFIG_FILES'), header files (see *note Configuration + Headers::, macro 'AC_CONFIG_HEADERS'), commands (see *note + Configuration Commands::, macro 'AC_CONFIG_COMMANDS'), links (see + *note Configuration Links::, macro 'AC_CONFIG_LINKS'), subdirectories to configure (see *note Subdirectories::, macro - `AC_CONFIG_SUBDIRS') are honored. + 'AC_CONFIG_SUBDIRS') are honored. - Historically, the usage of `AC_OUTPUT' was somewhat different. -*Note Obsolete Macros::, for a description of the arguments that -`AC_OUTPUT' used to support. - - If you run `make' on subdirectories, you should run it using the -`make' variable `MAKE'. Most versions of `make' set `MAKE' to the name -of the `make' program plus any options it was given. (But many do not + Historically, the usage of 'AC_OUTPUT' was somewhat different. *Note +Obsolete Macros::, for a description of the arguments that 'AC_OUTPUT' +used to support. + + If you run 'make' on subdirectories, you should run it using the +'make' variable 'MAKE'. Most versions of 'make' set 'MAKE' to the name +of the 'make' program plus any options it was given. (But many do not include in it the values of any variables set on the command line, so -those are not passed on automatically.) Some old versions of `make' do +those are not passed on automatically.) Some old versions of 'make' do not set this variable. The following macro allows you to use it even with those versions. -- Macro: AC_PROG_MAKE_SET - If `make' predefines the variable `MAKE', define output variable - `SET_MAKE' to be empty. Otherwise, define `SET_MAKE' to contain - `MAKE=make'. Calls `AC_SUBST' for `SET_MAKE'. + If 'make' predefines the variable 'MAKE', define output variable + 'SET_MAKE' to be empty. Otherwise, define 'SET_MAKE' to contain + 'MAKE=make'. Calls 'AC_SUBST' for 'SET_MAKE'. - To use this macro, place a line like this in each `Makefile.in' that -runs `MAKE' on other directories: + To use this macro, place a line like this in each 'Makefile.in' that +runs 'MAKE' on other directories: @SET_MAKE@ @@ -1473,15 +1466,15 @@ 4.4 Taking Configuration Actions ================================ -`configure' is designed so that it appears to do everything itself, but -there is actually a hidden slave: `config.status'. `configure' is in -charge of examining your system, but it is `config.status' that -actually takes the proper actions based on the results of `configure'. -The most typical task of `config.status' is to _instantiate_ files. +'configure' is designed so that it appears to do everything itself, but +there is actually a hidden slave: 'config.status'. 'configure' is in +charge of examining your system, but it is 'config.status' that actually +takes the proper actions based on the results of 'configure'. The most +typical task of 'config.status' is to _instantiate_ files. This section describes the common behavior of the four standard -instantiating macros: `AC_CONFIG_FILES', `AC_CONFIG_HEADERS', -`AC_CONFIG_COMMANDS' and `AC_CONFIG_LINKS'. They all have this +instantiating macros: 'AC_CONFIG_FILES', 'AC_CONFIG_HEADERS', +'AC_CONFIG_COMMANDS' and 'AC_CONFIG_LINKS'. They all have this prototype: AC_CONFIG_FOOS(TAG..., [COMMANDS], [INIT-CMDS]) @@ -1493,18 +1486,18 @@ of the files to instantiate. COMMANDS - Shell commands output literally into `config.status', and - associated with a tag that the user can use to tell `config.status' + Shell commands output literally into 'config.status', and + associated with a tag that the user can use to tell 'config.status' which the commands to run. The commands are run each time a TAG - request is given to `config.status'; typically, each time the file - `TAG' is created. + request is given to 'config.status'; typically, each time the file + 'TAG' is created. INIT-CMDS Shell commands output _unquoted_ near the beginning of - `config.status', and executed each time `config.status' runs + 'config.status', and executed each time 'config.status' runs (regardless of the tag). Because they are unquoted, for example, - `$var' will be output as the value of `var'. INIT-CMDS is - typically used by `configure' to give `config.status' some + '$var' will be output as the value of 'var'. INIT-CMDS is + typically used by 'configure' to give 'config.status' some variables it needs to run the COMMANDS. All these macros can be called multiple times, with different TAGs, @@ -1522,24 +1515,24 @@ ... && AC_CONFIG_FOOS(fooo) ... && AC_CONFIG_FOOS(foooo) - The macro `AC_CONFIG_FILES' and `AC_CONFIG_HEADERS' use specials -TAGs: they may have the form `OUTPUT' or `OUTPUT:INPUTS'. The file + The macro 'AC_CONFIG_FILES' and 'AC_CONFIG_HEADERS' use specials +TAGs: they may have the form 'OUTPUT' or 'OUTPUT:INPUTS'. The file OUTPUT is instantiated from its templates, INPUTS if specified, -defaulting to `OUTPUT.in'. +defaulting to 'OUTPUT.in'. - For instance `AC_CONFIG_FILES(Makefile:boiler/top.mk:boiler/bot.mk)' -asks for the creation of `Makefile' that will be the expansion of the -output variables in the concatenation of `boiler/top.mk' and -`boiler/bot.mk'. - - The special value `-' might be used to denote the standard output -when used in OUTPUT, or the standard input when used in the INPUTS. -You most probably don't need to use this in `configure.ac', but it is -convenient when using the command line interface of `./config.status', + For instance 'AC_CONFIG_FILES(Makefile:boiler/top.mk:boiler/bot.mk)' +asks for the creation of 'Makefile' that will be the expansion of the +output variables in the concatenation of 'boiler/top.mk' and +'boiler/bot.mk'. + + The special value '-' might be used to denote the standard output +when used in OUTPUT, or the standard input when used in the INPUTS. You +most probably don't need to use this in 'configure.ac', but it is +convenient when using the command line interface of './config.status', see *note config.status Invocation::, for more details. - The INPUTS may be absolute or relative filenames. In the latter -case they are first looked for in the build tree, and then in the source + The INPUTS may be absolute or relative filenames. In the latter case +they are first looked for in the build tree, and then in the source tree.  @@ -1551,17 +1544,17 @@ Be sure to read the previous section, *note Configuration Actions::. -- Macro: AC_CONFIG_FILES (FILE..., [CMDS], [INIT-CMDS]) - Make `AC_OUTPUT' create each `FILE' by copying an input file (by - default `FILE.in'), substituting the output variable values. This + Make 'AC_OUTPUT' create each 'FILE' by copying an input file (by + default 'FILE.in'), substituting the output variable values. This macro is one of the instantiating macros, see *note Configuration - Actions::. *Note Makefile Substitutions::, for more information - on using output variables. *Note Setting Output Variables::, for - more information on creating them. This macro creates the - directory that the file is in if it doesn't exist. Usually, - `Makefile's are created this way, but other files, such as - `.gdbinit', can be specified as well. + Actions::. *Note Makefile Substitutions::, for more information on + using output variables. *Note Setting Output Variables::, for more + information on creating them. This macro creates the directory + that the file is in if it doesn't exist. Usually, 'Makefile's are + created this way, but other files, such as '.gdbinit', can be + specified as well. - Typical calls to `AC_CONFIG_FILES' look like this: + Typical calls to 'AC_CONFIG_FILES' look like this: AC_CONFIG_FILES(Makefile src/Makefile man/Makefile X/Imakefile) AC_CONFIG_FILES(autoconf, chmod +x autoconf) @@ -1572,8 +1565,8 @@ AC_CONFIG_FILES(Makefile:boiler/top.mk:boiler/bot.mk lib/Makefile:boiler/lib.mk) - Doing this allows you to keep your file names acceptable to - MS-DOS, or to prepend and/or append boilerplate to the file. + Doing this allows you to keep your file names acceptable to MS-DOS, + or to prepend and/or append boilerplate to the file.  File: autoconf.info, Node: Makefile Substitutions, Next: Configuration Headers, Prev: Configuration Files, Up: Setup @@ -1582,26 +1575,26 @@ ============================== Each subdirectory in a distribution that contains something to be -compiled or installed should come with a file `Makefile.in', from which -`configure' will create a `Makefile' in that directory. To create a -`Makefile', `configure' performs a simple variable substitution, -replacing occurrences of `@VARIABLE@' in `Makefile.in' with the value -that `configure' has determined for that variable. Variables that are -substituted into output files in this way are called "output -variables". They are ordinary shell variables that are set in -`configure'. To make `configure' substitute a particular variable into -the output files, the macro `AC_SUBST' must be called with that -variable name as an argument. Any occurrences of `@VARIABLE@' for -other variables are left unchanged. *Note Setting Output Variables::, -for more information on creating output variables with `AC_SUBST'. +compiled or installed should come with a file 'Makefile.in', from which +'configure' will create a 'Makefile' in that directory. To create a +'Makefile', 'configure' performs a simple variable substitution, +replacing occurrences of '@VARIABLE@' in 'Makefile.in' with the value +that 'configure' has determined for that variable. Variables that are +substituted into output files in this way are called "output variables". +They are ordinary shell variables that are set in 'configure'. To make +'configure' substitute a particular variable into the output files, the +macro 'AC_SUBST' must be called with that variable name as an argument. +Any occurrences of '@VARIABLE@' for other variables are left unchanged. +*Note Setting Output Variables::, for more information on creating +output variables with 'AC_SUBST'. - A software package that uses a `configure' script should be -distributed with a file `Makefile.in', but no `Makefile'; that way, the + A software package that uses a 'configure' script should be +distributed with a file 'Makefile.in', but no 'Makefile'; that way, the user has to properly configure the package for the local system before compiling it. - *Note Makefile Conventions: (standards)Makefile Conventions, for -more information on what to put in `Makefile's. + *Note Makefile Conventions: (standards)Makefile Conventions, for more +information on what to put in 'Makefile's. * Menu: @@ -1622,93 +1615,93 @@ complete list of output variables. *Note Installation Directory Variables::, for the list of the preset ones related to installation directories. Below are listed the other preset ones. They all are -precious variables (*note Setting Output Variables::, `AC_ARG_VAR'). +precious variables (*note Setting Output Variables::, 'AC_ARG_VAR'). -- Variable: CFLAGS Debugging and optimization options for the C compiler. If it is - not set in the environment when `configure' runs, the default - value is set when you call `AC_PROG_CC' (or empty if you don't). - `configure' uses this variable when compiling programs to test for + not set in the environment when 'configure' runs, the default value + is set when you call 'AC_PROG_CC' (or empty if you don't). + 'configure' uses this variable when compiling programs to test for C features. -- Variable: configure_input A comment saying that the file was generated automatically by - `configure' and giving the name of the input file. `AC_OUTPUT' + 'configure' and giving the name of the input file. 'AC_OUTPUT' adds a comment line containing this variable to the top of every - `Makefile' it creates. For other files, you should reference this + 'Makefile' it creates. For other files, you should reference this variable in a comment at the top of each input file. For example, an input shell script should begin like this: #! /bin/sh # @configure_input@ - The presence of that line also reminds people editing the file - that it needs to be processed by `configure' in order to be used. + The presence of that line also reminds people editing the file that + it needs to be processed by 'configure' in order to be used. -- Variable: CPPFLAGS - Header file search directory (`-IDIR') and any other miscellaneous + Header file search directory ('-IDIR') and any other miscellaneous options for the C and C++ preprocessors and compilers. If it is - not set in the environment when `configure' runs, the default - value is empty. `configure' uses this variable when compiling or + not set in the environment when 'configure' runs, the default value + is empty. 'configure' uses this variable when compiling or preprocessing programs to test for C and C++ features. -- Variable: CXXFLAGS Debugging and optimization options for the C++ compiler. If it is - not set in the environment when `configure' runs, the default - value is set when you call `AC_PROG_CXX' (or empty if you don't). - `configure' uses this variable when compiling programs to test for + not set in the environment when 'configure' runs, the default value + is set when you call 'AC_PROG_CXX' (or empty if you don't). + 'configure' uses this variable when compiling programs to test for C++ features. -- Variable: DEFS - `-D' options to pass to the C compiler. If `AC_CONFIG_HEADERS' is - called, `configure' replaces `@DEFS@' with `-DHAVE_CONFIG_H' + '-D' options to pass to the C compiler. If 'AC_CONFIG_HEADERS' is + called, 'configure' replaces '@DEFS@' with '-DHAVE_CONFIG_H' instead (*note Configuration Headers::). This variable is not - defined while `configure' is performing its tests, only when + defined while 'configure' is performing its tests, only when creating the output files. *Note Setting Output Variables::, for how to check the results of previous tests. -- Variable: ECHO_C -- Variable: ECHO_N -- Variable: ECHO_T - How does one suppress the trailing newline from `echo' for + How does one suppress the trailing newline from 'echo' for question-answer message pairs? These variables provide a way: echo $ECHO_N "And the winner is... $ECHO_C" sleep 100000000000 echo "${ECHO_T}dead." - Some old and uncommon `echo' implementations offer no means to - achieve this, in which case `ECHO_T' is set to tab. You might not + Some old and uncommon 'echo' implementations offer no means to + achieve this, in which case 'ECHO_T' is set to tab. You might not want to use it. -- Variable: FFLAGS - Debugging and optimization options for the Fortran 77 compiler. - If it is not set in the environment when `configure' runs, the - default value is set when you call `AC_PROG_F77' (or empty if you - don't). `configure' uses this variable when compiling programs to - test for Fortran 77 features. + Debugging and optimization options for the Fortran 77 compiler. If + it is not set in the environment when 'configure' runs, the default + value is set when you call 'AC_PROG_F77' (or empty if you don't). + 'configure' uses this variable when compiling programs to test for + Fortran 77 features. -- Variable: LDFLAGS - Stripping (`-s'), path (`-L'), and any other miscellaneous options + Stripping ('-s'), path ('-L'), and any other miscellaneous options for the linker. Don't use this variable to pass library names - (`-l') to the linker, use `LIBS' instead. If it is not set in the - environment when `configure' runs, the default value is empty. - `configure' uses this variable when linking programs to test for - C, C++ and Fortran 77 features. + ('-l') to the linker, use 'LIBS' instead. If it is not set in the + environment when 'configure' runs, the default value is empty. + 'configure' uses this variable when linking programs to test for C, + C++ and Fortran 77 features. -- Variable: LIBS - `-l' options to pass to the linker. The default value is empty, + '-l' options to pass to the linker. The default value is empty, but some Autoconf macros may prepend extra libraries to this variable if those libraries are found and provide necessary - functions, see *note Libraries::. `configure' uses this variable + functions, see *note Libraries::. 'configure' uses this variable when linking programs to test for C, C++ and Fortran 77 features. -- Variable: srcdir - The directory that contains the source code for that `Makefile'. + The directory that contains the source code for that 'Makefile'. -- Variable: top_srcdir The top-level source code directory for the package. In the - top-level directory, this is the same as `srcdir'. + top-level directory, this is the same as 'srcdir'.  File: autoconf.info, Node: Installation Directory Variables, Next: Build Directories, Prev: Preset Output Variables, Up: Makefile Substitutions @@ -1757,13 +1750,13 @@ The directory for installing C header files for non-gcc compilers. -- Variable: prefix - The common installation prefix for all files. If EXEC_PREFIX is + The common installation prefix for all files. If EXEC_PREFIX is defined to a different value, PREFIX is used only for architecture-independent files. -- Variable: sbindir - The directory for installing executables that system - administrators run. + The directory for installing executables that system administrators + run. -- Variable: sharedstatedir The directory for installing modifiable architecture-independent @@ -1772,41 +1765,41 @@ -- Variable: sysconfdir The directory for installing read-only single-machine data. - Most of these variables have values that rely on `prefix' or -`exec_prefix'. It is on purpose that the directory output variables -keep them unexpanded: typically `@datadir@' will be replaced by -`${prefix}/share', not `/usr/local/share'. + Most of these variables have values that rely on 'prefix' or +'exec_prefix'. It is on purpose that the directory output variables +keep them unexpanded: typically '@datadir@' will be replaced by +'${prefix}/share', not '/usr/local/share'. This behavior is mandated by the GNU coding standards, so that when the user runs: -`make' +'make' she can still specify a different prefix from the one specified to - `configure', in which case, if needed, the package shall hard code + 'configure', in which case, if needed, the package shall hard code dependencies to her late desires. -`make install' +'make install' she can specify a different installation location, in which case the package _must_ still depend on the location which was compiled - in (i.e., never recompile when `make install' is run). This is an + in (i.e., never recompile when 'make install' is run). This is an extremely important feature, as many people may decide to install - all the files of a package grouped together, and then install - links from the final locations to there. + all the files of a package grouped together, and then install links + from the final locations to there. - In order to support these features, it is essential that `datadir' -remains being defined as `${prefix}/share' to depend upon the current -value of `prefix'. + In order to support these features, it is essential that 'datadir' +remains being defined as '${prefix}/share' to depend upon the current +value of 'prefix'. A corollary is that you should not use these variables but in -Makefiles. For instance, instead of trying to evaluate `datadir' in -`configure' and hardcoding it in Makefiles using e.g. -`AC_DEFINE_UNQUOTED(DATADIR, "$datadir")', you should add -`-DDATADIR="$(datadir)"' to your `CPPFLAGS'. - - Similarly you should not rely on `AC_OUTPUT_FILES' to replace -`datadir' and friends in your shell scripts and other files, rather let -`make' manage their replacement. For instance Autoconf ships templates -of its shell scripts ending with `.sh', and uses this Makefile snippet: +Makefiles. For instance, instead of trying to evaluate 'datadir' in +'configure' and hardcoding it in Makefiles using e.g. +'AC_DEFINE_UNQUOTED(DATADIR, "$datadir")', you should add +'-DDATADIR="$(datadir)"' to your 'CPPFLAGS'. + + Similarly you should not rely on 'AC_OUTPUT_FILES' to replace +'datadir' and friends in your shell scripts and other files, rather let +'make' manage their replacement. For instance Autoconf ships templates +of its shell scripts ending with '.sh', and uses this Makefile snippet: .sh: rm -f $@ $@.tmp @@ -1816,17 +1809,17 @@ Three things are noteworthy: -`@datadir\@' - The backslash prevents `configure' from replacing `@datadir@' in +'@datadir\@' + The backslash prevents 'configure' from replacing '@datadir@' in the sed expression itself. -`$(pkgdatadir)' - Don't use `@pkgdatadir@'! Use the matching makefile variable +'$(pkgdatadir)' + Don't use '@pkgdatadir@'! Use the matching makefile variable instead. -`,' - Don't use `/' in the sed expression(s) since most probably the - variables you use, such as `$(pkgdatadir)', will contain some. +',' + Don't use '/' in the sed expression(s) since most probably the + variables you use, such as '$(pkgdatadir)', will contain some.  File: autoconf.info, Node: Build Directories, Next: Automatic Remaking, Prev: Installation Directory Variables, Up: Makefile Substitutions @@ -1838,33 +1831,33 @@ simultaneously from the same copy of the source code. The object files for each architecture are kept in their own directory. - To support doing this, `make' uses the `VPATH' variable to find the -files that are in the source directory. GNU `make' and most other -recent `make' programs can do this. Older `make' programs do not -support `VPATH'; when using them, the source code must be in the same + To support doing this, 'make' uses the 'VPATH' variable to find the +files that are in the source directory. GNU 'make' and most other +recent 'make' programs can do this. Older 'make' programs do not +support 'VPATH'; when using them, the source code must be in the same directory as the object files. - To support `VPATH', each `Makefile.in' should contain two lines that + To support 'VPATH', each 'Makefile.in' should contain two lines that look like: srcdir = @srcdir@ VPATH = @srcdir@ - Do not set `VPATH' to the value of another variable, for example -`VPATH = $(srcdir)', because some versions of `make' do not do variable -substitutions on the value of `VPATH'. - - `configure' substitutes in the correct value for `srcdir' when it -produces `Makefile'. - - Do not use the `make' variable `$<', which expands to the file name -of the file in the source directory (found with `VPATH'), except in -implicit rules. (An implicit rule is one such as `.c.o', which tells -how to create a `.o' file from a `.c' file.) Some versions of `make' -do not set `$<' in explicit rules; they expand it to an empty value. + Do not set 'VPATH' to the value of another variable, for example +'VPATH = $(srcdir)', because some versions of 'make' do not do variable +substitutions on the value of 'VPATH'. + + 'configure' substitutes in the correct value for 'srcdir' when it +produces 'Makefile'. + + Do not use the 'make' variable '$<', which expands to the file name +of the file in the source directory (found with 'VPATH'), except in +implicit rules. (An implicit rule is one such as '.c.o', which tells +how to create a '.o' file from a '.c' file.) Some versions of 'make' do +not set '$<' in explicit rules; they expand it to an empty value. - Instead, `Makefile' command lines should always refer to source -files by prefixing them with `$(srcdir)/'. For example: + Instead, 'Makefile' command lines should always refer to source files +by prefixing them with '$(srcdir)/'. For example: time.info: time.texinfo $(MAKEINFO) $(srcdir)/time.texinfo @@ -1875,23 +1868,23 @@ 4.6.4 Automatic Remaking ------------------------ -You can put rules like the following in the top-level `Makefile.in' for -a package to automatically update the configuration information when -you change the configuration files. This example includes all of the -optional files, such as `aclocal.m4' and those related to configuration -header files. Omit from the `Makefile.in' rules for any of these files +You can put rules like the following in the top-level 'Makefile.in' for +a package to automatically update the configuration information when you +change the configuration files. This example includes all of the +optional files, such as 'aclocal.m4' and those related to configuration +header files. Omit from the 'Makefile.in' rules for any of these files that your package does not use. - The `$(srcdir)/' prefix is included because of limitations in the -`VPATH' mechanism. + The '$(srcdir)/' prefix is included because of limitations in the +'VPATH' mechanism. - The `stamp-' files are necessary because the timestamps of -`config.h.in' and `config.h' will not be changed if remaking them does + The 'stamp-' files are necessary because the timestamps of +'config.h.in' and 'config.h' will not be changed if remaking them does not change their contents. This feature avoids unnecessary -recompilation. You should include the file `stamp-h.in' your package's -distribution, so `make' will consider `config.h.in' up to date. Don't -use `touch' (*note Limitations of Usual Tools::), rather use `echo' -(using `date' would cause needless differences, hence CVS conflicts +recompilation. You should include the file 'stamp-h.in' your package's +distribution, so 'make' will consider 'config.h.in' up to date. Don't +use 'touch' (*note Limitations of Usual Tools::), rather use 'echo' +(using 'date' would cause needless differences, hence CVS conflicts etc.). $(srcdir)/configure: configure.ac aclocal.m4 @@ -1917,10 +1910,9 @@ will need to convert the indented lines to start with the tab character.) - In addition, you should use `AC_CONFIG_FILES(stamp-h, echo timestamp -> stamp-h)' so `config.status' will ensure that `config.h' is -considered up to date. *Note Output::, for more information about -`AC_OUTPUT'. + In addition, you should use 'AC_CONFIG_FILES(stamp-h, echo timestamp +> stamp-h)' so 'config.status' will ensure that 'config.h' is considered +up to date. *Note Output::, for more information about 'AC_OUTPUT'. *Note config.status Invocation::, for more examples of handling configuration-related dependencies. @@ -1932,45 +1924,45 @@ ============================== When a package tests more than a few C preprocessor symbols, the command -lines to pass `-D' options to the compiler can get quite long. This -causes two problems. One is that the `make' output is hard to visually +lines to pass '-D' options to the compiler can get quite long. This +causes two problems. One is that the 'make' output is hard to visually scan for errors. More seriously, the command lines can exceed the length limits of some operating systems. As an alternative to passing -`-D' options to the compiler, `configure' scripts can create a C header -file containing `#define' directives. The `AC_CONFIG_HEADERS' macro -selects this kind of output. It should be called right after `AC_INIT'. +'-D' options to the compiler, 'configure' scripts can create a C header +file containing '#define' directives. The 'AC_CONFIG_HEADERS' macro +selects this kind of output. It should be called right after 'AC_INIT'. - The package should `#include' the configuration header file before + The package should '#include' the configuration header file before any other header files, to prevent inconsistencies in declarations (for -example, if it redefines `const'). Use `#include ' instead -of `#include "config.h"', and pass the C compiler a `-I.' option (or -`-I..'; whichever directory contains `config.h'). That way, even if -the source directory is configured itself (perhaps to make a -distribution), other build directories can also be configured without -finding the `config.h' from the source directory. +example, if it redefines 'const'). Use '#include ' instead of +'#include "config.h"', and pass the C compiler a '-I.' option (or +'-I..'; whichever directory contains 'config.h'). That way, even if the +source directory is configured itself (perhaps to make a distribution), +other build directories can also be configured without finding the +'config.h' from the source directory. -- Macro: AC_CONFIG_HEADERS (HEADER ..., [CMDS], [INIT-CMDS]) This macro is one of the instantiating macros, see *note - Configuration Actions::. Make `AC_OUTPUT' create the file(s) in + Configuration Actions::. Make 'AC_OUTPUT' create the file(s) in the whitespace-separated list HEADER containing C preprocessor - `#define' statements, and replace `@DEFS@' in generated files with - `-DHAVE_CONFIG_H' instead of the value of `DEFS'. The usual name - for HEADER is `config.h'. + '#define' statements, and replace '@DEFS@' in generated files with + '-DHAVE_CONFIG_H' instead of the value of 'DEFS'. The usual name + for HEADER is 'config.h'. If HEADER already exists and its contents are identical to what - `AC_OUTPUT' would put in it, it is left alone. Doing this allows + 'AC_OUTPUT' would put in it, it is left alone. Doing this allows some changes in configuration without needlessly causing object files that depend on the header file to be recompiled. - Usually the input file is named `HEADER.in'; however, you can + Usually the input file is named 'HEADER.in'; however, you can override the input file name by appending to HEADER, a colon-separated list of input files. Examples: AC_CONFIG_HEADERS(config.h:config.hin) AC_CONFIG_HEADERS(defines.h:defs.pre:defines.h.in:defs.post) - Doing this allows you to keep your file names acceptable to - MS-DOS, or to prepend and/or append boilerplate to the file. + Doing this allows you to keep your file names acceptable to MS-DOS, + or to prepend and/or append boilerplate to the file. *Note Configuration Actions::, for more details on HEADER. @@ -1987,15 +1979,15 @@ ------------------------------------ Your distribution should contain a template file that looks as you want -the final header file to look, including comments, with `#undef' +the final header file to look, including comments, with '#undef' statements which are used as hooks. For example, suppose your -`configure.ac' makes these calls: +'configure.ac' makes these calls: AC_CONFIG_HEADERS(conf.h) AC_CHECK_HEADERS(unistd.h) -Then you could have code like the following in `conf.h.in'. On systems -that have `unistd.h', `configure' will `#define' `HAVE_UNISTD_H' to 1. +Then you could have code like the following in 'conf.h.in'. On systems +that have 'unistd.h', 'configure' will '#define' 'HAVE_UNISTD_H' to 1. On other systems, the whole line will be commented out (in case the system predefines that symbol). @@ -2013,131 +2005,130 @@ /* We are in trouble. */ #endif - The use of old form templates, with `#define' instead of `#undef' is + The use of old form templates, with '#define' instead of '#undef' is strongly discouraged. Since it is a tedious task to keep a template header up to date, you -may use `autoheader' to generate it, see *note autoheader Invocation::. +may use 'autoheader' to generate it, see *note autoheader Invocation::.  File: autoconf.info, Node: autoheader Invocation, Next: Autoheader Macros, Prev: Header Templates, Up: Configuration Headers -4.7.2 Using `autoheader' to Create `config.h.in' +4.7.2 Using 'autoheader' to Create 'config.h.in' ------------------------------------------------ -The `autoheader' program can create a template file of C `#define' -statements for `configure' to use. If `configure.ac' invokes -`AC_CONFIG_HEADERS(FILE)', `autoheader' creates `FILE.in'; if multiple +The 'autoheader' program can create a template file of C '#define' +statements for 'configure' to use. If 'configure.ac' invokes +'AC_CONFIG_HEADERS(FILE)', 'autoheader' creates 'FILE.in'; if multiple file arguments are given, the first one is used. Otherwise, -`autoheader' creates `config.h.in'. +'autoheader' creates 'config.h.in'. - In order to do its job, `autoheader' needs you to document all of -the symbols that you might use; i.e., there must be at least one -`AC_DEFINE' or one `AC_DEFINE_UNQUOTED' using its third argument for -each symbol (*note Defining Symbols::). An additional constraint is -that the first argument of `AC_DEFINE' must be a literal. Note that -all symbols defined by Autoconf's built-in tests are already documented -properly; you only need to document those that you define yourself. - - You might wonder why `autoheader' is needed: after all, why would -`configure' need to "patch" a `config.h.in' to produce a `config.h' -instead of just creating `config.h' from scratch? Well, when -everything rocks, the answer is just that we are wasting our time -maintaining `autoheader': generating `config.h' directly is all that is -needed. When things go wrong, however, you'll be thankful for the -existence of `autoheader'. + In order to do its job, 'autoheader' needs you to document all of the +symbols that you might use; i.e., there must be at least one 'AC_DEFINE' +or one 'AC_DEFINE_UNQUOTED' using its third argument for each symbol +(*note Defining Symbols::). An additional constraint is that the first +argument of 'AC_DEFINE' must be a literal. Note that all symbols +defined by Autoconf's built-in tests are already documented properly; +you only need to document those that you define yourself. + + You might wonder why 'autoheader' is needed: after all, why would +'configure' need to "patch" a 'config.h.in' to produce a 'config.h' +instead of just creating 'config.h' from scratch? Well, when everything +rocks, the answer is just that we are wasting our time maintaining +'autoheader': generating 'config.h' directly is all that is needed. +When things go wrong, however, you'll be thankful for the existence of +'autoheader'. The fact that the symbols are documented is important in order to -_check_ that `config.h' makes sense. The fact that there is a well -defined list of symbols that should be `#define''d (or not) is also +_check_ that 'config.h' makes sense. The fact that there is a well +defined list of symbols that should be '#define''d (or not) is also important for people who are porting packages to environments where -`configure' cannot be run: they just have to _fill in the blanks_. +'configure' cannot be run: they just have to _fill in the blanks_. - But let's come back to the point: `autoheader''s invocation... + But let's come back to the point: 'autoheader''s invocation... - If you give `autoheader' an argument, it uses that file instead of -`configure.ac' and writes the header file to the standard output -instead of to `config.h.in'. If you give `autoheader' an argument of -`-', it reads the standard input instead of `configure.ac' and writes -the header file to the standard output. + If you give 'autoheader' an argument, it uses that file instead of +'configure.ac' and writes the header file to the standard output instead +of to 'config.h.in'. If you give 'autoheader' an argument of '-', it +reads the standard input instead of 'configure.ac' and writes the header +file to the standard output. - `autoheader' accepts the following options: + 'autoheader' accepts the following options: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit. -`--debug' -`-d' +'--debug' +'-d' Don't remove the temporary files. -`--verbose' -`-v' +'--verbose' +'-v' Report processing steps. -`--autoconf-dir=DIR' -`-A DIR' +'--autoconf-dir=DIR' +'-A DIR' Override the location where the installed Autoconf data files are - looked for. You can also set the `AC_MACRODIR' environment + looked for. You can also set the 'AC_MACRODIR' environment variable to a directory; this option overrides the environment variable. This option is rarely needed and dangerous; it is only used when one plays with different versions of Autoconf simultaneously. -`--localdir=DIR' -`-l DIR' - Look for the package files `aclocal.m4' and `acconfig.h' (but not - `FILE.top' and `FILE.bot') in directory DIR instead of in the +'--localdir=DIR' +'-l DIR' + Look for the package files 'aclocal.m4' and 'acconfig.h' (but not + 'FILE.top' and 'FILE.bot') in directory DIR instead of in the current directory. -`--warnings=CATEGORY' -`-W CATEGORY' +'--warnings=CATEGORY' +'-W CATEGORY' Report the warnings related to CATEGORY (which can actually be a - comma separated list). Current categories include: + comma separated list). Current categories include: - `obsolete' + 'obsolete' report the uses of obsolete constructs - `all' + 'all' report all the warnings - `none' + 'none' report none - `error' + 'error' treats warnings as errors - `no-CATEGORY' + 'no-CATEGORY' disable warnings falling into CATEGORY -  File: autoconf.info, Node: Autoheader Macros, Prev: autoheader Invocation, Up: Configuration Headers 4.7.3 Autoheader Macros ----------------------- -`autoheader' scans `configure.ac' and figures out which C preprocessor -symbols it might define. It knows how to generate templates for -symbols defined by `AC_CHECK_HEADERS', `AC_CHECK_FUNCS' etc., but if -you `AC_DEFINE' any additional symbol, you must define a template for -it. If there are missing templates, `autoheader' fails with an error +'autoheader' scans 'configure.ac' and figures out which C preprocessor +symbols it might define. It knows how to generate templates for symbols +defined by 'AC_CHECK_HEADERS', 'AC_CHECK_FUNCS' etc., but if you +'AC_DEFINE' any additional symbol, you must define a template for it. +If there are missing templates, 'autoheader' fails with an error message. The simplest way to create a template for a SYMBOL is to supply the -DESCRIPTION argument to an `AC_DEFINE(SYMBOL)'; see *note Defining +DESCRIPTION argument to an 'AC_DEFINE(SYMBOL)'; see *note Defining Symbols::. You may also use one of the following macros. -- Macro: AH_VERBATIM (KEY, TEMPLATE) - Tell `autoheader' to include the TEMPLATE as-is in the header + Tell 'autoheader' to include the TEMPLATE as-is in the header template file. This TEMPLATE is associated with the KEY, which is used to sort all the different templates and guarantee their - uniqueness. It should be the symbol that can be `AC_DEFINE''d. + uniqueness. It should be the symbol that can be 'AC_DEFINE''d. For example: @@ -2148,8 +2139,8 @@ #endif]) -- Macro: AH_TEMPLATE (KEY, DESCRIPTION) - Tell `autoheader' to generate a template for KEY. This macro - generates standard templates just like `AC_DEFINE' when a + Tell 'autoheader' to generate a template for KEY. This macro + generates standard templates just like 'AC_DEFINE' when a DESCRIPTION is given. For example: @@ -2181,15 +2172,15 @@ ============================================ You execute arbitrary commands either before, during and after -`config.status' is run. The three following macros accumulate the +'config.status' is run. The three following macros accumulate the commands to run when they are called multiple times. -`AC_CONFIG_COMMANDS' replaces the obsolete macro `AC_OUTPUT_COMMANDS', +'AC_CONFIG_COMMANDS' replaces the obsolete macro 'AC_OUTPUT_COMMANDS', see *note Obsolete Macros::, for details. -- Macro: AC_CONFIG_COMMANDS (TAG..., [CMDS], [INIT-CMDS]) Specify additional shell commands to run at the end of - `config.status', and shell commands to initialize any variables - from `configure'. Associate the commands to the TAG. Since + 'config.status', and shell commands to initialize any variables + from 'configure'. Associate the commands to the TAG. Since typically the CMDS create a file, TAG should naturally be the name of that file. This macro is one of the instantiating macros, see *note Configuration Actions::. @@ -2204,16 +2195,16 @@ AC_CONFIG_COMMANDS(time-stamp, [date >time-stamp]) -- Macro: AC_CONFIG_COMMANDS_PRE (CMDS) - Execute the CMDS right before creating `config.status'. A typical + Execute the CMDS right before creating 'config.status'. A typical use is computing values derived from variables built during the - execution of `configure': + execution of 'configure': AC_CONFIG_COMMANDS_PRE( [LTLIBOBJS=`echo $LIBOBJS | sed 's/\.o/\.lo/g'` AC_SUBST(LTLIBOBJS)]) -- Macro: AC_CONFIG_COMMANDS_POST (CMDS) - Execute the CMDS right after creating `config.status'. + Execute the CMDS right after creating 'config.status'.  File: autoconf.info, Node: Configuration Links, Next: Subdirectories, Prev: Configuration Commands, Up: Setup @@ -2222,29 +2213,28 @@ ================================ You may find it convenient to create links whose destinations depend -upon results of tests. One can use `AC_CONFIG_COMMANDS' but the +upon results of tests. One can use 'AC_CONFIG_COMMANDS' but the creation of relative symbolic links can be delicate when the package is built in another directory than its sources. -- Macro: AC_CONFIG_LINKS (DEST:SOURCE..., [CMDS], [INIT-CMDS]) - Make `AC_OUTPUT' link each of the existing files SOURCE to the + Make 'AC_OUTPUT' link each of the existing files SOURCE to the corresponding link name DEST. Makes a symbolic link if possible, otherwise a hard link. The DEST and SOURCE names should be - relative to the top level source or build directory. This macro - is one of the instantiating macros, see *note Configuration - Actions::. + relative to the top level source or build directory. This macro is + one of the instantiating macros, see *note Configuration Actions::. For example, this call: AC_CONFIG_LINKS(host.h:config/$machine.h object.h:config/$obj_format.h) - creates in the current directory `host.h' as a link to - `SRCDIR/config/$machine.h', and `object.h' as a link to - `SRCDIR/config/$obj_format.h'. + creates in the current directory 'host.h' as a link to + 'SRCDIR/config/$machine.h', and 'object.h' as a link to + 'SRCDIR/config/$obj_format.h'. - The tempting value `.' for DEST is invalid: it makes it impossible - for `config.status' to guess the links to establish. + The tempting value '.' for DEST is invalid: it makes it impossible + for 'config.status' to guess the links to establish. One can then run: ./config.status host.h object.h @@ -2256,13 +2246,13 @@ 4.10 Configuring Other Packages in Subdirectories ================================================= -In most situations, calling `AC_OUTPUT' is sufficient to produce -`Makefile's in subdirectories. However, `configure' scripts that -control more than one independent package can use `AC_CONFIG_SUBDIRS' -to run `configure' scripts for other packages in subdirectories. +In most situations, calling 'AC_OUTPUT' is sufficient to produce +'Makefile's in subdirectories. However, 'configure' scripts that +control more than one independent package can use 'AC_CONFIG_SUBDIRS' to +run 'configure' scripts for other packages in subdirectories. -- Macro: AC_CONFIG_SUBDIRS (DIR ...) - Make `AC_OUTPUT' run `configure' in each subdirectory DIR in the + Make 'AC_OUTPUT' run 'configure' in each subdirectory DIR in the given whitespace-separated list. Each DIR should be a literal, i.e., please do not use: @@ -2271,30 +2261,30 @@ fi AC_CONFIG_SUBDIRS($my_subdirs) - because this prevents `./configure --help=recursive' from - displaying the options of the package `foo'. Rather, you should + because this prevents './configure --help=recursive' from + displaying the options of the package 'foo'. Rather, you should write: if test "$package_foo_enabled" = yes then; AC_CONFIG_SUBDIRS(foo) fi - If a given DIR is not found, no error is reported, so a - `configure' script can configure whichever parts of a large source - tree are present. If a given DIR contains `configure.gnu', it is - run instead of `configure'. This is for packages that might use a - non-autoconf script `Configure', which can't be called through a - wrapper `configure' since it would be the same file on - case-insensitive filesystems. Likewise, if a DIR contains - `configure.ac' but no `configure', the Cygnus `configure' script - found by `AC_CONFIG_AUX_DIR' is used. + If a given DIR is not found, no error is reported, so a 'configure' + script can configure whichever parts of a large source tree are + present. If a given DIR contains 'configure.gnu', it is run + instead of 'configure'. This is for packages that might use a + non-autoconf script 'Configure', which can't be called through a + wrapper 'configure' since it would be the same file on + case-insensitive filesystems. Likewise, if a DIR contains + 'configure.ac' but no 'configure', the Cygnus 'configure' script + found by 'AC_CONFIG_AUX_DIR' is used. - The subdirectory `configure' scripts are given the same command - line options that were given to this `configure' script, with minor + The subdirectory 'configure' scripts are given the same command + line options that were given to this 'configure' script, with minor changes if needed (e.g., to adjust a relative path for the cache file or source directory). This macro also sets the output - variable `subdirs' to the list of directories `DIR ...'. - `Makefile' rules can use this variable to determine which + variable 'subdirs' to the list of directories 'DIR ...'. + 'Makefile' rules can use this variable to determine which subdirectories to recurse into. This macro may be called multiple times. @@ -2304,32 +2294,32 @@ 4.11 Default Prefix =================== -By default, `configure' sets the prefix for files it installs to -`/usr/local'. The user of `configure' can select a different prefix -using the `--prefix' and `--exec-prefix' options. There are two ways -to change the default: when creating `configure', and when running it. +By default, 'configure' sets the prefix for files it installs to +'/usr/local'. The user of 'configure' can select a different prefix +using the '--prefix' and '--exec-prefix' options. There are two ways to +change the default: when creating 'configure', and when running it. Some software packages might want to install in a directory besides -`/usr/local' by default. To accomplish that, use the -`AC_PREFIX_DEFAULT' macro. +'/usr/local' by default. To accomplish that, use the +'AC_PREFIX_DEFAULT' macro. -- Macro: AC_PREFIX_DEFAULT (PREFIX) Set the default installation prefix to PREFIX instead of - `/usr/local'. + '/usr/local'. - It may be convenient for users to have `configure' guess the + It may be convenient for users to have 'configure' guess the installation prefix from the location of a related program that they have already installed. If you wish to do that, you can call -`AC_PREFIX_PROGRAM'. +'AC_PREFIX_PROGRAM'. -- Macro: AC_PREFIX_PROGRAM (PROGRAM) If the user did not specify an installation prefix (using the - `--prefix' option), guess a value for it by looking for PROGRAM in - `PATH', the way the shell does. If PROGRAM is found, set the - prefix to the parent of the directory containing PROGRAM; - otherwise leave the prefix specified in `Makefile.in' unchanged. - For example, if PROGRAM is `gcc' and the `PATH' contains - `/usr/local/gnu/bin/gcc', set the prefix to `/usr/local/gnu'. + '--prefix' option), guess a value for it by looking for PROGRAM in + 'PATH', the way the shell does. If PROGRAM is found, set the + prefix to the parent of the directory containing PROGRAM; otherwise + leave the prefix specified in 'Makefile.in' unchanged. For + example, if PROGRAM is 'gcc' and the 'PATH' contains + '/usr/local/gnu/bin/gcc', set the prefix to '/usr/local/gnu'.  File: autoconf.info, Node: Existing Tests, Next: Writing Tests, Prev: Setup, Up: Top @@ -2345,7 +2335,7 @@ These tests print messages telling the user which feature they're checking for, and what they find. They cache their results for future -`configure' runs (*note Caching Results::). +'configure' runs (*note Caching Results::). Some of these macros set output variables. *Note Makefile Substitutions::, for how to get their values. The phrase "define NAME" @@ -2392,17 +2382,17 @@ 5.1.1 Standard Symbols ---------------------- -All the generic macros that `AC_DEFINE' a symbol as a result of their +All the generic macros that 'AC_DEFINE' a symbol as a result of their test transform their ARGUMENTs to a standard alphabet. First, ARGUMENT -is converted to upper case and any asterisks (`*') are each converted -to `P'. Any remaining characters that are not alphanumeric are -converted to underscores. +is converted to upper case and any asterisks ('*') are each converted to +'P'. Any remaining characters that are not alphanumeric are converted +to underscores. For instance, AC_CHECK_TYPES(struct $Expensive*) -will define the symbol `HAVE_STRUCT__EXPENSIVEP' if the check succeeds. +will define the symbol 'HAVE_STRUCT__EXPENSIVEP' if the check succeeds.  File: autoconf.info, Node: Default Includes, Prev: Standard Symbols, Up: Common Behavior @@ -2468,12 +2458,12 @@ If the default includes are used, then Autoconf will automatically check for the presence of these headers and their compatibility, i.e., -you don't need to run `AC_HEADERS_STDC', nor check for `stdlib.h' etc. +you don't need to run 'AC_HEADERS_STDC', nor check for 'stdlib.h' etc. These headers are checked for in the same order as they are included. -For instance, on some systems `string.h' and `strings.h' both exist, -but conflict. Then `HAVE_STRING_H' will be defined, but -`HAVE_STRINGS_H' won't. +For instance, on some systems 'string.h' and 'strings.h' both exist, but +conflict. Then 'HAVE_STRING_H' will be defined, but 'HAVE_STRINGS_H' +won't.  File: autoconf.info, Node: Alternative Programs, Next: Files, Prev: Common Behavior, Up: Existing Tests @@ -2503,58 +2493,58 @@ some cases whether they support certain features. -- Macro: AC_PROG_AWK - Check for `mawk', `gawk', `nawk', and `awk', in that order, and - set output variable `AWK' to the first one that is found. It - tries `mawk' first because that is reported to be the fastest + Check for 'mawk', 'gawk', 'nawk', and 'awk', in that order, and set + output variable 'AWK' to the first one that is found. It tries + 'mawk' first because that is reported to be the fastest implementation. -- Macro: AC_PROG_INSTALL - Set output variable `INSTALL' to the path of a BSD compatible - `install' program, if one is found in the current `PATH'. - Otherwise, set `INSTALL' to `DIR/install-sh -c', checking the - directories specified to `AC_CONFIG_AUX_DIR' (or its default + Set output variable 'INSTALL' to the path of a BSD compatible + 'install' program, if one is found in the current 'PATH'. + Otherwise, set 'INSTALL' to 'DIR/install-sh -c', checking the + directories specified to 'AC_CONFIG_AUX_DIR' (or its default directories) to determine DIR (*note Output::). Also set the - variables `INSTALL_PROGRAM' and `INSTALL_SCRIPT' to `${INSTALL}' - and `INSTALL_DATA' to `${INSTALL} -m 644'. + variables 'INSTALL_PROGRAM' and 'INSTALL_SCRIPT' to '${INSTALL}' + and 'INSTALL_DATA' to '${INSTALL} -m 644'. - This macro screens out various instances of `install' known not to + This macro screens out various instances of 'install' known not to work. It prefers to find a C program rather than a shell script, - for speed. Instead of `install-sh', it can also use `install.sh', - but that name is obsolete because some `make' programs have a rule - that creates `install' from it if there is no `Makefile'. - - Autoconf comes with a copy of `install-sh' that you can use. If - you use `AC_PROG_INSTALL', you must include either `install-sh' or - `install.sh' in your distribution, or `configure' will produce an + for speed. Instead of 'install-sh', it can also use 'install.sh', + but that name is obsolete because some 'make' programs have a rule + that creates 'install' from it if there is no 'Makefile'. + + Autoconf comes with a copy of 'install-sh' that you can use. If + you use 'AC_PROG_INSTALL', you must include either 'install-sh' or + 'install.sh' in your distribution, or 'configure' will produce an error message saying it can't find them--even if the system you're - on has a good `install' program. This check is a safety measure - to prevent you from accidentally leaving that file out, which - would prevent your package from installing on systems that don't - have a BSD-compatible `install' program. + on has a good 'install' program. This check is a safety measure to + prevent you from accidentally leaving that file out, which would + prevent your package from installing on systems that don't have a + BSD-compatible 'install' program. If you need to use your own installation program because it has - features not found in standard `install' programs, there is no - reason to use `AC_PROG_INSTALL'; just put the file name of your - program into your `Makefile.in' files. + features not found in standard 'install' programs, there is no + reason to use 'AC_PROG_INSTALL'; just put the file name of your + program into your 'Makefile.in' files. -- Macro: AC_PROG_LEX - If `flex' is found, set output variable `LEX' to `flex' and - `LEXLIB' to `-lfl', if that library is in a standard place. - Otherwise set `LEX' to `lex' and `LEXLIB' to `-ll'. - - Define `YYTEXT_POINTER' if `yytext' is a `char *' instead of a - `char []'. Also set output variable `LEX_OUTPUT_ROOT' to the base - of the file name that the lexer generates; usually `lex.yy', but + If 'flex' is found, set output variable 'LEX' to 'flex' and + 'LEXLIB' to '-lfl', if that library is in a standard place. + Otherwise set 'LEX' to 'lex' and 'LEXLIB' to '-ll'. + + Define 'YYTEXT_POINTER' if 'yytext' is a 'char *' instead of a + 'char []'. Also set output variable 'LEX_OUTPUT_ROOT' to the base + of the file name that the lexer generates; usually 'lex.yy', but sometimes something else. These results vary according to whether - `lex' or `flex' is being used. + 'lex' or 'flex' is being used. You are encouraged to use Flex in your sources, since it is both - more pleasant to use than plain Lex and the C source it produces - is portable. In order to ensure portability, however, you must - either provide a function `yywrap' or, if you don't use it (e.g., - your scanner has no `#include'-like feature), simply include a - `%noyywrap' statement in the scanner's source. Once this done, - the scanner is portable (unless _you_ felt free to use nonportable + more pleasant to use than plain Lex and the C source it produces is + portable. In order to ensure portability, however, you must either + provide a function 'yywrap' or, if you don't use it (e.g., your + scanner has no '#include'-like feature), simply include a + '%noyywrap' statement in the scanner's source. Once this done, the + scanner is portable (unless _you_ felt free to use nonportable constructs) and does not depend on any library. In this case, and in this case only, it is suggested that you use this Autoconf snippet: @@ -2566,25 +2556,25 @@ AC_SUBST(LEXLIB, '') fi - The shell script `missing' can be found in the Automake + The shell script 'missing' can be found in the Automake distribution. - To ensure backward compatibility, Automake's `AM_PROG_LEX' invokes + To ensure backward compatibility, Automake's 'AM_PROG_LEX' invokes (indirectly) this macro twice, which will cause an annoying but - benign "`AC_PROG_LEX' invoked multiple times" warning. Future + benign "'AC_PROG_LEX' invoked multiple times" warning. Future versions of Automake will fix this issue, meanwhile, just ignore this message. -- Macro: AC_PROG_LN_S - If `ln -s' works on the current file system (the operating system + If 'ln -s' works on the current file system (the operating system and file system support symbolic links), set the output variable - `LN_S' to `ln -s'; otherwise, if `ln' works, set `LN_S' to `ln' - and otherwise set it to `cp -p'. + 'LN_S' to 'ln -s'; otherwise, if 'ln' works, set 'LN_S' to 'ln' and + otherwise set it to 'cp -p'. If you make a link a directory other than the current directory, - its meaning depends on whether `ln' or `ln -s' is used. To safely - create links using `$(LN_S)', either find out which form is used - and adjust the arguments, or always invoke `ln' in the directory + its meaning depends on whether 'ln' or 'ln -s' is used. To safely + create links using '$(LN_S)', either find out which form is used + and adjust the arguments, or always invoke 'ln' in the directory where the link is to be created. In other words, it does not work to do: @@ -2595,13 +2585,13 @@ (cd /x && $(LN_S) foo bar) -- Macro: AC_PROG_RANLIB - Set output variable `RANLIB' to `ranlib' if `ranlib' is found, and - otherwise to `:' (do nothing). + Set output variable 'RANLIB' to 'ranlib' if 'ranlib' is found, and + otherwise to ':' (do nothing). -- Macro: AC_PROG_YACC - If `bison' is found, set output variable `YACC' to `bison -y'. - Otherwise, if `byacc' is found, set `YACC' to `byacc'. Otherwise - set `YACC' to `yacc'. + If 'byacc' is found, set 'YACC' to 'byacc'. Otherwise, if 'bison' + is found, set output variable 'YACC' to 'bison -y'. Finally, if + neither 'byacc' or 'bison' is found, set 'YACC' to 'yacc'.  File: autoconf.info, Node: Generic Programs, Prev: Particular Programs, Up: Alternative Programs @@ -2613,73 +2603,73 @@ test macros. If you need to check the behavior of a program as well as find out whether it is present, you have to write your own test for it (*note Writing Tests::). By default, these macros use the environment -variable `PATH'. If you need to check for a program that might not be -in the user's `PATH', you can pass a modified path to use instead, like +variable 'PATH'. If you need to check for a program that might not be +in the user's 'PATH', you can pass a modified path to use instead, like this: AC_PATH_PROG(INETD, inetd, /usr/libexec/inetd, $PATH:/usr/libexec:/usr/sbin:/usr/etc:etc) You are strongly encouraged to declare the VARIABLE passed to -`AC_CHECK_PROG' etc. as precious, *Note Setting Output Variables::, -`AC_ARG_VAR', for more details. +'AC_CHECK_PROG' etc. as precious, *Note Setting Output Variables::, +'AC_ARG_VAR', for more details. -- Macro: AC_CHECK_PROG (VARIABLE, PROG-TO-CHECK-FOR, VALUE-IF-FOUND, [VALUE-IF-NOT-FOUND], [PATH], [REJECT]) - Check whether program PROG-TO-CHECK-FOR exists in `PATH'. If it - is found, set VARIABLE to VALUE-IF-FOUND, otherwise to - VALUE-IF-NOT-FOUND, if given. Always pass over REJECT (an - absolute file name) even if it is the first found in the search - path; in that case, set VARIABLE using the absolute file name of - the PROG-TO-CHECK-FOR found that is not REJECT. If VARIABLE was - already set, do nothing. Calls `AC_SUBST' for VARIABLE. + Check whether program PROG-TO-CHECK-FOR exists in 'PATH'. If it is + found, set VARIABLE to VALUE-IF-FOUND, otherwise to + VALUE-IF-NOT-FOUND, if given. Always pass over REJECT (an absolute + file name) even if it is the first found in the search path; in + that case, set VARIABLE using the absolute file name of the + PROG-TO-CHECK-FOR found that is not REJECT. If VARIABLE was + already set, do nothing. Calls 'AC_SUBST' for VARIABLE. -- Macro: AC_CHECK_PROGS (VARIABLE, PROGS-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH]) Check for each program in the whitespace-separated list - PROGS-TO-CHECK-FOR exists on the `PATH'. If it is found, set - VARIABLE to the name of that program. Otherwise, continue - checking the next program in the list. If none of the programs in - the list are found, set VARIABLE to VALUE-IF-NOT-FOUND; if + PROGS-TO-CHECK-FOR exists on the 'PATH'. If it is found, set + VARIABLE to the name of that program. Otherwise, continue checking + the next program in the list. If none of the programs in the list + are found, set VARIABLE to VALUE-IF-NOT-FOUND; if VALUE-IF-NOT-FOUND is not specified, the value of VARIABLE is not - changed. Calls `AC_SUBST' for VARIABLE. + changed. Calls 'AC_SUBST' for VARIABLE. -- Macro: AC_CHECK_TOOL (VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH]) - Like `AC_CHECK_PROG', but first looks for PROG-TO-CHECK-FOR with a - prefix of the host type as determined by `AC_CANONICAL_HOST', + Like 'AC_CHECK_PROG', but first looks for PROG-TO-CHECK-FOR with a + prefix of the host type as determined by 'AC_CANONICAL_HOST', followed by a dash (*note Canonicalizing::). For example, if the - user runs `configure --host=i386-gnu', then this call: + user runs 'configure --host=i386-gnu', then this call: AC_CHECK_TOOL(RANLIB, ranlib, :) - sets `RANLIB' to `i386-gnu-ranlib' if that program exists in - `PATH', or otherwise to `ranlib' if that program exists in `PATH', - or to `:' if neither program exists. + sets 'RANLIB' to 'i386-gnu-ranlib' if that program exists in + 'PATH', or otherwise to 'ranlib' if that program exists in 'PATH', + or to ':' if neither program exists. -- Macro: AC_CHECK_TOOLS (VARIABLE, PROGS-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH]) - Like `AC_CHECK_TOOL', each of the tools in the list + Like 'AC_CHECK_TOOL', each of the tools in the list PROGS-TO-CHECK-FOR are checked with a prefix of the host type as - determined by `AC_CANONICAL_HOST', followed by a dash (*note - Canonicalizing::). If none of the tools can be found with a - prefix, then the first one without a prefix is used. If a tool is - found, set VARIABLE to the name of that program. If none of the + determined by 'AC_CANONICAL_HOST', followed by a dash (*note + Canonicalizing::). If none of the tools can be found with a + prefix, then the first one without a prefix is used. If a tool is + found, set VARIABLE to the name of that program. If none of the tools in the list are found, set VARIABLE to VALUE-IF-NOT-FOUND; if VALUE-IF-NOT-FOUND is not specified, the value of VARIABLE is not - changed. Calls `AC_SUBST' for VARIABLE. + changed. Calls 'AC_SUBST' for VARIABLE. -- Macro: AC_PATH_PROG (VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH]) - Like `AC_CHECK_PROG', but set VARIABLE to the entire path of + Like 'AC_CHECK_PROG', but set VARIABLE to the entire path of PROG-TO-CHECK-FOR if found. -- Macro: AC_PATH_PROGS (VARIABLE, PROGS-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH]) - Like `AC_CHECK_PROGS', but if any of PROGS-TO-CHECK-FOR are found, + Like 'AC_CHECK_PROGS', but if any of PROGS-TO-CHECK-FOR are found, set VARIABLE to the entire path of the program found. -- Macro: AC_PATH_TOOL (VARIABLE, PROG-TO-CHECK-FOR, [VALUE-IF-NOT-FOUND], [PATH]) - Like `AC_CHECK_TOOL', but set VARIABLE to the entire path of the + Like 'AC_CHECK_TOOL', but set VARIABLE to the entire path of the program if it is found.  @@ -2701,8 +2691,8 @@ -- Macro: AC_CHECK_FILES (FILES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - Executes `AC_CHECK_FILE' once for each file listed in FILES. - Additionally, defines `HAVE_FILE' (*note Standard Symbols::) for + Executes 'AC_CHECK_FILE' once for each file listed in FILES. + Additionally, defines 'HAVE_FILE' (*note Standard Symbols::) for each file found.  @@ -2720,46 +2710,46 @@ ensure that the C, C++, or Fortran 77 function FUNCTION is available by checking whether a test program can be linked with the library LIBRARY to get the function. LIBRARY is the base name of - the library; e.g., to check for `-lmp', use `mp' as the LIBRARY + the library; e.g., to check for '-lmp', use 'mp' as the LIBRARY argument. - ACTION-IF-FOUND is a list of shell commands to run if the link - with the library succeeds; ACTION-IF-NOT-FOUND is a list of shell + ACTION-IF-FOUND is a list of shell commands to run if the link with + the library succeeds; ACTION-IF-NOT-FOUND is a list of shell commands to run if the link fails. If ACTION-IF-FOUND is not - specified, the default action will prepend `-lLIBRARY' to `LIBS' - and define `HAVE_LIBLIBRARY' (in all capitals). This macro is - intended to support building of `LIBS' in a right-to-left + specified, the default action will prepend '-lLIBRARY' to 'LIBS' + and define 'HAVE_LIBLIBRARY' (in all capitals). This macro is + intended to support building of 'LIBS' in a right-to-left (least-dependent to most-dependent) fashion such that library dependencies are satisfied as a natural side-effect of consecutive - tests. Some linkers are very sensitive to library ordering so the - order in which `LIBS' is generated is important to reliable + tests. Some linkers are very sensitive to library ordering so the + order in which 'LIBS' is generated is important to reliable detection of libraries. - If linking with LIBRARY results in unresolved symbols that would - be resolved by linking with additional libraries, give those - libraries as the OTHER-LIBRARIES argument, separated by spaces: - e.g. `-lXt -lX11'. Otherwise, this macro will fail to detect that - LIBRARY is present, because linking the test program will always - fail with unresolved symbols. The OTHER-LIBRARIES argument should - be limited to cases where it is desirable to test for one library - in the presence of another that is not already in `LIBS'. + If linking with LIBRARY results in unresolved symbols that would be + resolved by linking with additional libraries, give those libraries + as the OTHER-LIBRARIES argument, separated by spaces: e.g. '-lXt + -lX11'. Otherwise, this macro will fail to detect that LIBRARY is + present, because linking the test program will always fail with + unresolved symbols. The OTHER-LIBRARIES argument should be limited + to cases where it is desirable to test for one library in the + presence of another that is not already in 'LIBS'. -- Macro: AC_SEARCH_LIBS (FUNCTION, SEARCH-LIBS, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES]) Search for a library defining FUNCTION if it's not already - available. This equates to calling `AC_TRY_LINK_FUNC' first with + available. This equates to calling 'AC_TRY_LINK_FUNC' first with no libraries, then for each library listed in SEARCH-LIBS. - Add `-lLIBRARY' to `LIBS' for the first library found to contain + Add '-lLIBRARY' to 'LIBS' for the first library found to contain FUNCTION, and run ACTION-IF-FOUND. If the function is not found, run ACTION-IF-NOT-FOUND. - If linking with LIBRARY results in unresolved symbols that would - be resolved by linking with additional libraries, give those - libraries as the OTHER-LIBRARIES argument, separated by spaces: - e.g. `-lXt -lX11'. Otherwise, this macro will fail to detect that - FUNCTION is present, because linking the test program will always - fail with unresolved symbols. + If linking with LIBRARY results in unresolved symbols that would be + resolved by linking with additional libraries, give those libraries + as the OTHER-LIBRARIES argument, separated by spaces: e.g. '-lXt + -lX11'. Otherwise, this macro will fail to detect that FUNCTION is + present, because linking the test program will always fail with + unresolved symbols.  File: autoconf.info, Node: Library Functions, Next: Header Files, Prev: Libraries, Up: Existing Tests @@ -2767,10 +2757,10 @@ 5.5 Library Functions ===================== -The following macros check for particular C library functions. If -there is no macro specifically defined to check for a function you need, -and you don't need to check for any special properties of it, then you -can use one of the general function-check macros. +The following macros check for particular C library functions. If there +is no macro specifically defined to check for a function you need, and +you don't need to check for any special properties of it, then you can +use one of the general function-check macros. * Menu: @@ -2789,17 +2779,16 @@ portability issues. By definition, this list will always require additions, please help us keeping it as complete as possible -`unlink' - The POSIX spec says that `unlink' causes the given files to be - removed only after there are no more open file handles for it. - Not all OS's support this behaviour though. So even on systems - that provide `unlink', you cannot portably assume it is OK to call - it on files that are open. For example, on Windows 9x and ME, - such a call would fail; on DOS it could even lead to file system +'unlink' + The POSIX spec says that 'unlink' causes the given files to be + removed only after there are no more open file handles for it. Not + all OS's support this behaviour though. So even on systems that + provide 'unlink', you cannot portably assume it is OK to call it on + files that are open. For example, on Windows 9x and ME, such a + call would fail; on DOS it could even lead to file system corruption, as the file might end up being written to after the OS has removed it. -  File: autoconf.info, Node: Particular Functions, Next: Generic Functions, Prev: Function Portability, Up: Library Functions @@ -2810,31 +2799,31 @@ in some cases how they respond when given certain arguments. -- Macro: AC_FUNC_ALLOCA - Check how to get `alloca'. Tries to get a builtin version by - checking for `alloca.h' or the predefined C preprocessor macros - `__GNUC__' and `_AIX'. If this macro finds `alloca.h', it defines - `HAVE_ALLOCA_H'. + Check how to get 'alloca'. Tries to get a builtin version by + checking for 'alloca.h' or the predefined C preprocessor macros + '__GNUC__' and '_AIX'. If this macro finds 'alloca.h', it defines + 'HAVE_ALLOCA_H'. If those attempts fail, it looks for the function in the standard C library. If any of those methods succeed, it defines - `HAVE_ALLOCA'. Otherwise, it sets the output variable `ALLOCA' to - `alloca.o' and defines `C_ALLOCA' (so programs can periodically - call `alloca(0)' to garbage collect). This variable is separate - from `LIBOBJS' so multiple programs can share the value of - `ALLOCA' without needing to create an actual library, in case only - some of them use the code in `LIBOBJS'. - - This macro does not try to get `alloca' from the System V R3 - `libPW' or the System V R4 `libucb' because those libraries - contain some incompatible functions that cause trouble. Some - versions do not even contain `alloca' or contain a buggy version. - If you still want to use their `alloca', use `ar' to extract - `alloca.o' from them instead of compiling `alloca.c'. + 'HAVE_ALLOCA'. Otherwise, it sets the output variable 'ALLOCA' to + 'alloca.o' and defines 'C_ALLOCA' (so programs can periodically + call 'alloca(0)' to garbage collect). This variable is separate + from 'LIBOBJS' so multiple programs can share the value of 'ALLOCA' + without needing to create an actual library, in case only some of + them use the code in 'LIBOBJS'. + + This macro does not try to get 'alloca' from the System V R3 + 'libPW' or the System V R4 'libucb' because those libraries contain + some incompatible functions that cause trouble. Some versions do + not even contain 'alloca' or contain a buggy version. If you still + want to use their 'alloca', use 'ar' to extract 'alloca.o' from + them instead of compiling 'alloca.c'. - Source files that use `alloca' should start with a piece of code + Source files that use 'alloca' should start with a piece of code like the following, to declare it properly. In some versions of - AIX, the declaration of `alloca' must precede everything else - except for comments and preprocessor directives. The `#pragma' + AIX, the declaration of 'alloca' must precede everything else + except for comments and preprocessor directives. The '#pragma' directive is indented so that pre-ANSI C compilers will ignore it, rather than choke on it. @@ -2854,193 +2843,193 @@ #endif -- Macro: AC_FUNC_CHOWN - If the `chown' function is available and works (in particular, it - should accept `-1' for `uid' and `gid'), define `HAVE_CHOWN'. + If the 'chown' function is available and works (in particular, it + should accept '-1' for 'uid' and 'gid'), define 'HAVE_CHOWN'. -- Macro: AC_FUNC_CLOSEDIR_VOID - If the `closedir' function does not return a meaningful value, - define `CLOSEDIR_VOID'. Otherwise, callers ought to check its + If the 'closedir' function does not return a meaningful value, + define 'CLOSEDIR_VOID'. Otherwise, callers ought to check its return value for an error indicator. -- Macro: AC_FUNC_ERROR_AT_LINE - If the `error_at_line' function is not found, require an - `AC_LIBOBJ' replacement of `error'. + If the 'error_at_line' function is not found, require an + 'AC_LIBOBJ' replacement of 'error'. -- Macro: AC_FUNC_FNMATCH - If the `fnmatch' function is available and works (unlike the one on - Solaris 2.4), define `HAVE_FNMATCH'. + If the 'fnmatch' function is available and works (unlike the one on + Solaris 2.4), define 'HAVE_FNMATCH'. -- Macro: AC_FUNC_FORK - This macro checks for the `fork' and `vfork' functions. If a - working `fork' is found, define `HAVE_WORKING_FORK'. This macro - checks whether `fork' is just a stub by trying to run it. - - If `vfork.h' is found, define `HAVE_VFORK_H'. If a working `vfork' - is found, define `HAVE_WORKING_VFORK'. Otherwise, define `vfork' - to be `fork' for backward compatibility with previous versions of - `autoconf'. This macro checks for several known errors in - implementations of `vfork' and considers the system to not have a - working `vfork' if it detects any of them. It is not considered to - be an implementation error if a child's invocation of `signal' + This macro checks for the 'fork' and 'vfork' functions. If a + working 'fork' is found, define 'HAVE_WORKING_FORK'. This macro + checks whether 'fork' is just a stub by trying to run it. + + If 'vfork.h' is found, define 'HAVE_VFORK_H'. If a working 'vfork' + is found, define 'HAVE_WORKING_VFORK'. Otherwise, define 'vfork' + to be 'fork' for backward compatibility with previous versions of + 'autoconf'. This macro checks for several known errors in + implementations of 'vfork' and considers the system to not have a + working 'vfork' if it detects any of them. It is not considered to + be an implementation error if a child's invocation of 'signal' modifies the parent's signal handler, since child processes rarely change their signal handlers. - Since this macro defines `vfork' only for backward compatibility - with previous versions of `autoconf' you're encouraged to define it + Since this macro defines 'vfork' only for backward compatibility + with previous versions of 'autoconf' you're encouraged to define it yourself in new code: #if !HAVE_WORKING_VFORK # define vfork fork #endif -- Macro: AC_FUNC_FSEEKO - If the `fseeko' function is available, define `HAVE_FSEEKO'. - Define `_LARGEFILE_SOURCE' if necessary. + If the 'fseeko' function is available, define 'HAVE_FSEEKO'. + Define '_LARGEFILE_SOURCE' if necessary. -- Macro: AC_FUNC_GETGROUPS - If the `getgroups' function is available and works (unlike on - Ultrix 4.3, where `getgroups (0, 0)' always fails), define - `HAVE_GETGROUPS'. Set `GETGROUPS_LIBS' to any libraries needed to - get that function. This macro runs `AC_TYPE_GETGROUPS'. + If the 'getgroups' function is available and works (unlike on + Ultrix 4.3, where 'getgroups (0, 0)' always fails), define + 'HAVE_GETGROUPS'. Set 'GETGROUPS_LIBS' to any libraries needed to + get that function. This macro runs 'AC_TYPE_GETGROUPS'. -- Macro: AC_FUNC_GETLOADAVG Check how to get the system load averages. If the system has the - `getloadavg' function, define `HAVE_GETLOADAVG', and set - `GETLOADAVG_LIBS' to any libraries needed to get that function. - Also add `GETLOADAVG_LIBS' to `LIBS'. + 'getloadavg' function, define 'HAVE_GETLOADAVG', and set + 'GETLOADAVG_LIBS' to any libraries needed to get that function. + Also add 'GETLOADAVG_LIBS' to 'LIBS'. - Otherwise, require an `AC_LIBOBJ' replacement (`getloadavg.c') of - `getloadavg', and possibly define several other C preprocessor + Otherwise, require an 'AC_LIBOBJ' replacement ('getloadavg.c') of + 'getloadavg', and possibly define several other C preprocessor macros and output variables: - 1. Define `C_GETLOADAVG'. + 1. Define 'C_GETLOADAVG'. - 2. Define `SVR4', `DGUX', `UMAX', or `UMAX4_3' if on those + 2. Define 'SVR4', 'DGUX', 'UMAX', or 'UMAX4_3' if on those systems. - 3. If `nlist.h' is found, define `NLIST_STRUCT'. + 3. If 'nlist.h' is found, define 'NLIST_STRUCT'. - 4. If `struct nlist' has an `n_un.n_name' member, define - `HAVE_STRUCT_NLIST_N_UN_N_NAME'. The obsolete symbol - `NLIST_NAME_UNION' is still defined, but do not depend upon + 4. If 'struct nlist' has an 'n_un.n_name' member, define + 'HAVE_STRUCT_NLIST_N_UN_N_NAME'. The obsolete symbol + 'NLIST_NAME_UNION' is still defined, but do not depend upon it. 5. Programs may need to be installed setgid (or setuid) for - `getloadavg' to work. In this case, define - `GETLOADAVG_PRIVILEGED', set the output variable `NEED_SETGID' - to `true' (and otherwise to `false'), and set `KMEM_GROUP' to + 'getloadavg' to work. In this case, define + 'GETLOADAVG_PRIVILEGED', set the output variable 'NEED_SETGID' + to 'true' (and otherwise to 'false'), and set 'KMEM_GROUP' to the name of the group that should own the installed program. -- Macro: AC_FUNC_GETMNTENT - Check for `getmntent' in the `sun', `seq', and `gen' libraries, - for Irix 4, PTX, and Unixware, respectively. Then, if `getmntent' - is available, define `HAVE_GETMNTENT'. + Check for 'getmntent' in the 'sun', 'seq', and 'gen' libraries, for + Irix 4, PTX, and Unixware, respectively. Then, if 'getmntent' is + available, define 'HAVE_GETMNTENT'. -- Macro: AC_FUNC_GETPGRP - If `getpgrp' takes no argument (the POSIX.1 version), define - `GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a + If 'getpgrp' takes no argument (the POSIX.1 version), define + 'GETPGRP_VOID'. Otherwise, it is the BSD version, which takes a process ID as an argument. This macro does not check whether - `getpgrp' exists at all; if you need to work in that situation, - first call `AC_CHECK_FUNC' for `getpgrp'. + 'getpgrp' exists at all; if you need to work in that situation, + first call 'AC_CHECK_FUNC' for 'getpgrp'. -- Macro: AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK - If `link' is a symbolic link, then `lstat' should treat `link/' - the same as `link/.'. However, many older `lstat' implementations + If 'link' is a symbolic link, then 'lstat' should treat 'link/' the + same as 'link/.'. However, many older 'lstat' implementations incorrectly ignore trailing slashes. - It is safe to assume that if `lstat' incorrectly ignores trailing - slashes, then other symbolic-link-aware functions like `unlink' - and `unlink' also incorrectly ignore trailing slashes. - - If `lstat' behaves properly, define - `LSTAT_FOLLOWS_SLASHED_SYMLINK', otherwise require an `AC_LIBOBJ' - replacement of `lstat'. + It is safe to assume that if 'lstat' incorrectly ignores trailing + slashes, then other symbolic-link-aware functions like 'unlink' and + 'unlink' also incorrectly ignore trailing slashes. + + If 'lstat' behaves properly, define + 'LSTAT_FOLLOWS_SLASHED_SYMLINK', otherwise require an 'AC_LIBOBJ' + replacement of 'lstat'. -- Macro: AC_FUNC_MALLOC - If the `malloc' works correctly (`malloc (0)' returns a valid - pointer), define `HAVE_MALLOC'. + If the 'malloc' works correctly ('malloc (0)' returns a valid + pointer), define 'HAVE_MALLOC'. -- Macro: AC_FUNC_MEMCMP - If the `memcmp' function is not available, or does not work on + If the 'memcmp' function is not available, or does not work on 8-bit data (like the one on SunOS 4.1.3), or fails when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary (such as the one on NeXT x86 OpenStep), require an - `AC_LIBOBJ' replacement for `memcmp'. + 'AC_LIBOBJ' replacement for 'memcmp'. -- Macro: AC_FUNC_MKTIME - If the `mktime' function is not available, or does not work - correctly, require an `AC_LIBOBJ' replacement for `mktime'. + If the 'mktime' function is not available, or does not work + correctly, require an 'AC_LIBOBJ' replacement for 'mktime'. -- Macro: AC_FUNC_MMAP - If the `mmap' function exists and works correctly, define - `HAVE_MMAP'. Only checks private fixed mapping of already-mapped + If the 'mmap' function exists and works correctly, define + 'HAVE_MMAP'. Only checks private fixed mapping of already-mapped memory. -- Macro: AC_FUNC_OBSTACK - If the obstacks are found, define `HAVE_OBSTACK', else require an - `AC_LIBOBJ' replacement for `obstack'. + If the obstacks are found, define 'HAVE_OBSTACK', else require an + 'AC_LIBOBJ' replacement for 'obstack'. -- Macro: AC_FUNC_SELECT_ARGTYPES - Determines the correct type to be passed for each of the `select' + Determines the correct type to be passed for each of the 'select' function's arguments, and defines those types in - `SELECT_TYPE_ARG1', `SELECT_TYPE_ARG234', and `SELECT_TYPE_ARG5' - respectively. `SELECT_TYPE_ARG1' defaults to `int', - `SELECT_TYPE_ARG234' defaults to `int *', and `SELECT_TYPE_ARG5' - defaults to `struct timeval *'. + 'SELECT_TYPE_ARG1', 'SELECT_TYPE_ARG234', and 'SELECT_TYPE_ARG5' + respectively. 'SELECT_TYPE_ARG1' defaults to 'int', + 'SELECT_TYPE_ARG234' defaults to 'int *', and 'SELECT_TYPE_ARG5' + defaults to 'struct timeval *'. -- Macro: AC_FUNC_SETPGRP - If `setpgrp' takes no argument (the POSIX.1 version), define - `SETPGRP_VOID'. Otherwise, it is the BSD version, which takes two + If 'setpgrp' takes no argument (the POSIX.1 version), define + 'SETPGRP_VOID'. Otherwise, it is the BSD version, which takes two process IDs as arguments. This macro does not check whether - `setpgrp' exists at all; if you need to work in that situation, - first call `AC_CHECK_FUNC' for `setpgrp'. + 'setpgrp' exists at all; if you need to work in that situation, + first call 'AC_CHECK_FUNC' for 'setpgrp'. -- Macro: AC_FUNC_STAT -- Macro: AC_FUNC_LSTAT - Determine whether `stat' or `lstat' have the bug that it succeeds - when given the zero-length file name argument. The `stat' and - `lstat' from SunOS 4.1.4 and the Hurd (as of 1998-11-01) do this. + Determine whether 'stat' or 'lstat' have the bug that it succeeds + when given the zero-length file name argument. The 'stat' and + 'lstat' from SunOS 4.1.4 and the Hurd (as of 1998-11-01) do this. - If it does, then define `HAVE_STAT_EMPTY_STRING_BUG' (or - `HAVE_LSTAT_EMPTY_STRING_BUG') and ask for an `AC_LIBOBJ' + If it does, then define 'HAVE_STAT_EMPTY_STRING_BUG' (or + 'HAVE_LSTAT_EMPTY_STRING_BUG') and ask for an 'AC_LIBOBJ' replacement of it. -- Macro: AC_FUNC_SETVBUF_REVERSED - If `setvbuf' takes the buffering type as its second argument and + If 'setvbuf' takes the buffering type as its second argument and the buffer pointer as the third, instead of the other way around, - define `SETVBUF_REVERSED'. + define 'SETVBUF_REVERSED'. -- Macro: AC_FUNC_STRCOLL - If the `strcoll' function exists and works correctly, define - `HAVE_STRCOLL'. This does a bit more than - `AC_CHECK_FUNCS(strcoll)', because some systems have incorrect - definitions of `strcoll' that should not be used. + If the 'strcoll' function exists and works correctly, define + 'HAVE_STRCOLL'. This does a bit more than + 'AC_CHECK_FUNCS(strcoll)', because some systems have incorrect + definitions of 'strcoll' that should not be used. -- Macro: AC_FUNC_STRTOD - If the `strtod' function does not exist or doesn't work correctly, - ask for an `AC_LIBOBJ' replacement of `strtod'. In this case, - because `strtod.c' is likely to need `pow', set the output - variable `POW_LIB' to the extra library needed. + If the 'strtod' function does not exist or doesn't work correctly, + ask for an 'AC_LIBOBJ' replacement of 'strtod'. In this case, + because 'strtod.c' is likely to need 'pow', set the output variable + 'POW_LIB' to the extra library needed. -- Macro: AC_FUNC_STRERROR_R - If `strerror_r' is available, define `HAVE_STRERROR_R'. If its - implementation correctly returns a `char *', define - `HAVE_WORKING_STRERROR_R'. On at least DEC UNIX 4.0[A-D] and HP-UX - B.10.20, `strerror_r' returns `int'. Actually, this tests only + If 'strerror_r' is available, define 'HAVE_STRERROR_R'. If its + implementation correctly returns a 'char *', define + 'HAVE_WORKING_STRERROR_R'. On at least DEC UNIX 4.0[A-D] and HP-UX + B.10.20, 'strerror_r' returns 'int'. Actually, this tests only whether it returns a scalar or an array, but that should be enough. - This is used by the common `error.c'. + This is used by the common 'error.c'. -- Macro: AC_FUNC_STRFTIME - Check for `strftime' in the `intl' library, for SCO UNIX. Then, - if `strftime' is available, define `HAVE_STRFTIME'. + Check for 'strftime' in the 'intl' library, for SCO UNIX. Then, if + 'strftime' is available, define 'HAVE_STRFTIME'. -- Macro: AC_FUNC_UTIME_NULL - If `utime(FILE, NULL)' sets FILE's timestamp to the present, - define `HAVE_UTIME_NULL'. + If 'utime(FILE, NULL)' sets FILE's timestamp to the present, define + 'HAVE_UTIME_NULL'. -- Macro: AC_FUNC_VPRINTF - If `vprintf' is found, define `HAVE_VPRINTF'. Otherwise, if - `_doprnt' is found, define `HAVE_DOPRNT'. (If `vprintf' is - available, you may assume that `vfprintf' and `vsprintf' are also + If 'vprintf' is found, define 'HAVE_VPRINTF'. Otherwise, if + '_doprnt' is found, define 'HAVE_DOPRNT'. (If 'vprintf' is + available, you may assume that 'vfprintf' and 'vsprintf' are also available.)  @@ -3051,28 +3040,28 @@ These macros are used to find functions not covered by the "particular" test macros. If the functions might be in libraries other than the -default C library, first call `AC_CHECK_LIB' for those libraries. If -you need to check the behavior of a function as well as find out -whether it is present, you have to write your own test for it (*note -Writing Tests::). +default C library, first call 'AC_CHECK_LIB' for those libraries. If +you need to check the behavior of a function as well as find out whether +it is present, you have to write your own test for it (*note Writing +Tests::). -- Macro: AC_CHECK_FUNC (FUNCTION, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) If C function FUNCTION is available, run shell commands ACTION-IF-FOUND, otherwise ACTION-IF-NOT-FOUND. If you just want to define a symbol if the function is available, consider using - `AC_CHECK_FUNCS' instead. This macro checks for functions with C - linkage even when `AC_LANG(C++)' has been called, since C is more + 'AC_CHECK_FUNCS' instead. This macro checks for functions with C + linkage even when 'AC_LANG(C++)' has been called, since C is more standardized than C++. (*note Language Choice::, for more information about selecting the language for checks.) -- Macro: AC_CHECK_FUNCS (FUNCTION..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - For each FUNCTION in the whitespace-separated argument list, - define `HAVE_FUNCTION' (in all capitals) if it is available. If + For each FUNCTION in the whitespace-separated argument list, define + 'HAVE_FUNCTION' (in all capitals) if it is available. If ACTION-IF-FOUND is given, it is additional shell code to execute when one of the functions is found. You can give it a value of - `break' to break out of the loop on the first match. If + 'break' to break out of the loop on the first match. If ACTION-IF-NOT-FOUND is given, it is executed when one of the functions is not found. @@ -3083,43 +3072,43 @@ ready to replace them. Use the first three of the following macros to specify a function to -be replaced, and the last one (`AC_REPLACE_FUNCS') to check for and +be replaced, and the last one ('AC_REPLACE_FUNCS') to check for and replace the function if needed. -- Macro: AC_LIBOBJ (FUNCTION) - Specify that `FUNCTION.c' must be included in the executables to + Specify that 'FUNCTION.c' must be included in the executables to replace a missing or broken implementation of FUNCTION. - Technically, it adds `FUNCTION.$ac_objext' to the output variable - `LIBOBJS' and calls `AC_LIBSOURCE' for `FUNCTION.c'. You should - not directly change `LIBOBJS', since this is not traceable. + Technically, it adds 'FUNCTION.$ac_objext' to the output variable + 'LIBOBJS' and calls 'AC_LIBSOURCE' for 'FUNCTION.c'. You should + not directly change 'LIBOBJS', since this is not traceable. -- Macro: AC_LIBSOURCE (FILE) Specify that FILE might be needed to compile the project. If you - need to know what files might be needed by a `configure.ac', you - should trace `AC_LIBSOURCE'. FILE must be a literal. + need to know what files might be needed by a 'configure.ac', you + should trace 'AC_LIBSOURCE'. FILE must be a literal. - This macro is called automatically from `AC_LIBOBJ', but you must - call it explicitly if you pass a shell variable to `AC_LIBOBJ'. In + This macro is called automatically from 'AC_LIBOBJ', but you must + call it explicitly if you pass a shell variable to 'AC_LIBOBJ'. In that case, since shell variables cannot be traced statically, you - must pass to `AC_LIBSOURCE' any possible files that the shell - variable might cause `AC_LIBOBJ' to need. For example, if you - want to pass a variable `$foo_or_bar' to `AC_LIBOBJ' that holds - either `"foo"' or `"bar"', you should do: + must pass to 'AC_LIBSOURCE' any possible files that the shell + variable might cause 'AC_LIBOBJ' to need. For example, if you want + to pass a variable '$foo_or_bar' to 'AC_LIBOBJ' that holds either + '"foo"' or '"bar"', you should do: AC_LIBSOURCE(foo.c) AC_LIBSOURCE(bar.c) AC_LIBOBJ($foo_or_bar) There is usually a way to avoid this, however, and you are - encouraged to simply call `AC_LIBOBJ' with literal arguments. + encouraged to simply call 'AC_LIBOBJ' with literal arguments. - Note that this macro replaces the obsolete `AC_LIBOBJ_DECL', with + Note that this macro replaces the obsolete 'AC_LIBOBJ_DECL', with slightly different semantics: the old macro took the function name, - e.g. `foo', as its argument rather than the file name. + e.g. 'foo', as its argument rather than the file name. -- Macro: AC_LIBSOURCES (FILES) - Like `AC_LIBSOURCE', but accepts one or more FILES in a + Like 'AC_LIBSOURCE', but accepts one or more FILES in a comma-separated M4 list. Thus, the above example might be rewritten: @@ -3127,12 +3116,12 @@ AC_LIBOBJ($foo_or_bar) -- Macro: AC_REPLACE_FUNCS (FUNCTION...) - Like `AC_CHECK_FUNCS', but uses `AC_LIBOBJ(FUNCTION)' as + Like 'AC_CHECK_FUNCS', but uses 'AC_LIBOBJ(FUNCTION)' as ACTION-IF-NOT-FOUND. You can declare your replacement function by - enclosing the prototype in `#if !HAVE_FUNCTION'. If the system - has the function, it probably declares it in a header file you - should be including, so you shouldn't redeclare it lest your - declaration conflict. + enclosing the prototype in '#if !HAVE_FUNCTION'. If the system has + the function, it probably declares it in a header file you should + be including, so you shouldn't redeclare it lest your declaration + conflict.  File: autoconf.info, Node: Header Files, Next: Declarations, Prev: Library Functions, Up: Existing Tests @@ -3141,9 +3130,9 @@ ================ The following macros check for the presence of certain C header files. -If there is no macro specifically defined to check for a header file -you need, and you don't need to check for any special properties of it, -then you can use one of the general header-file check macros. +If there is no macro specifically defined to check for a header file you +need, and you don't need to check for any special properties of it, then +you can use one of the general header-file check macros. * Menu: @@ -3161,12 +3150,12 @@ -- Macro: AC_HEADER_DIRENT Check for the following header files. For the first one that is - found and defines `DIR', define the listed C preprocessor macro: + found and defines 'DIR', define the listed C preprocessor macro: - `dirent.h' `HAVE_DIRENT_H' - `sys/ndir.h' `HAVE_SYS_NDIR_H' - `sys/dir.h' `HAVE_SYS_DIR_H' - `ndir.h' `HAVE_NDIR_H' + 'dirent.h' 'HAVE_DIRENT_H' + 'sys/ndir.h' 'HAVE_SYS_NDIR_H' + 'sys/dir.h' 'HAVE_SYS_DIR_H' + 'ndir.h' 'HAVE_NDIR_H' The directory-library declarations in your source code should look something like the following: @@ -3189,35 +3178,35 @@ #endif Using the above declarations, the program would declare variables - to be of type `struct dirent', not `struct direct', and would - access the length of a directory entry name by passing a pointer - to a `struct dirent' to the `NAMLEN' macro. + to be of type 'struct dirent', not 'struct direct', and would + access the length of a directory entry name by passing a pointer to + a 'struct dirent' to the 'NAMLEN' macro. - This macro also checks for the SCO Xenix `dir' and `x' libraries. + This macro also checks for the SCO Xenix 'dir' and 'x' libraries. -- Macro: AC_HEADER_MAJOR - If `sys/types.h' does not define `major', `minor', and `makedev', - but `sys/mkdev.h' does, define `MAJOR_IN_MKDEV'; otherwise, if - `sys/sysmacros.h' does, define `MAJOR_IN_SYSMACROS'. + If 'sys/types.h' does not define 'major', 'minor', and 'makedev', + but 'sys/mkdev.h' does, define 'MAJOR_IN_MKDEV'; otherwise, if + 'sys/sysmacros.h' does, define 'MAJOR_IN_SYSMACROS'. -- Macro: AC_HEADER_STAT - If the macros `S_ISDIR', `S_ISREG' et al. defined in `sys/stat.h' + If the macros 'S_ISDIR', 'S_ISREG' et al. defined in 'sys/stat.h' do not work properly (returning false positives), define - `STAT_MACROS_BROKEN'. This is the case on Tektronix UTekV, Amdahl + 'STAT_MACROS_BROKEN'. This is the case on Tektronix UTekV, Amdahl UTS and Motorola System V/88. -- Macro: AC_HEADER_STDC - Define `STDC_HEADERS' if the system has ANSI C header files. - Specifically, this macro checks for `stdlib.h', `stdarg.h', - `string.h', and `float.h'; if the system has those, it probably - has the rest of the ANSI C header files. This macro also checks - whether `string.h' declares `memchr' (and thus presumably the - other `mem' functions), whether `stdlib.h' declare `free' (and - thus presumably `malloc' and other related functions), and whether - the `ctype.h' macros work on characters with the high bit set, as - ANSI C requires. + Define 'STDC_HEADERS' if the system has ANSI C header files. + Specifically, this macro checks for 'stdlib.h', 'stdarg.h', + 'string.h', and 'float.h'; if the system has those, it probably has + the rest of the ANSI C header files. This macro also checks + whether 'string.h' declares 'memchr' (and thus presumably the other + 'mem' functions), whether 'stdlib.h' declare 'free' (and thus + presumably 'malloc' and other related functions), and whether the + 'ctype.h' macros work on characters with the high bit set, as ANSI + C requires. - Use `STDC_HEADERS' instead of `__STDC__' to determine whether the + Use 'STDC_HEADERS' instead of '__STDC__' to determine whether the system has ANSI-compliant header files (and probably C library functions) because many systems that have GCC do not have ANSI C header files. @@ -3226,13 +3215,13 @@ it is probably easier to declare the functions you use than to figure out exactly what the system header files declare. Some systems contain a mix of functions ANSI and BSD; some are mostly - ANSI but lack `memmove'; some define the BSD functions as macros in - `string.h' or `strings.h'; some have only the BSD functions but - `string.h'; some declare the memory functions in `memory.h', some - in `string.h'; etc. It is probably sufficient to check for one + ANSI but lack 'memmove'; some define the BSD functions as macros in + 'string.h' or 'strings.h'; some have only the BSD functions but + 'string.h'; some declare the memory functions in 'memory.h', some + in 'string.h'; etc. It is probably sufficient to check for one string function and one memory function; if the library has the - ANSI versions of those then it probably has most of the others. - If you put the following in `configure.ac': + ANSI versions of those then it probably has most of the others. If + you put the following in 'configure.ac': AC_HEADER_STDC AC_CHECK_FUNCS(strchr memcpy) @@ -3253,21 +3242,21 @@ # endif #endif - If you use a function like `memchr', `memset', `strtok', or - `strspn', which have no BSD equivalent, then macros won't suffice; + If you use a function like 'memchr', 'memset', 'strtok', or + 'strspn', which have no BSD equivalent, then macros won't suffice; you must provide an implementation of each function. An easy way to incorporate your implementations only when needed (since the ones in system C libraries may be hand optimized) is to, taking - `memchr' for example, put it in `memchr.c' and use - `AC_REPLACE_FUNCS(memchr)'. + 'memchr' for example, put it in 'memchr.c' and use + 'AC_REPLACE_FUNCS(memchr)'. -- Macro: AC_HEADER_SYS_WAIT - If `sys/wait.h' exists and is compatible with POSIX.1, define - `HAVE_SYS_WAIT_H'. Incompatibility can occur if `sys/wait.h' does - not exist, or if it uses the old BSD `union wait' instead of `int' - to store a status value. If `sys/wait.h' is not POSIX.1 - compatible, then instead of including it, define the POSIX.1 - macros with their usual interpretations. Here is an example: + If 'sys/wait.h' exists and is compatible with POSIX.1, define + 'HAVE_SYS_WAIT_H'. Incompatibility can occur if 'sys/wait.h' does + not exist, or if it uses the old BSD 'union wait' instead of 'int' + to store a status value. If 'sys/wait.h' is not POSIX.1 + compatible, then instead of including it, define the POSIX.1 macros + with their usual interpretations. Here is an example: #include #if HAVE_SYS_WAIT_H @@ -3280,9 +3269,9 @@ # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif - `_POSIX_VERSION' is defined when `unistd.h' is included on POSIX.1 -systems. If there is no `unistd.h', it is definitely not a POSIX.1 -system. However, some non-POSIX.1 systems do have `unistd.h'. + '_POSIX_VERSION' is defined when 'unistd.h' is included on POSIX.1 +systems. If there is no 'unistd.h', it is definitely not a POSIX.1 +system. However, some non-POSIX.1 systems do have 'unistd.h'. The way to check if the system supports POSIX.1 is: @@ -3296,14 +3285,14 @@ #endif -- Macro: AC_HEADER_TIME - If a program may include both `time.h' and `sys/time.h', define - `TIME_WITH_SYS_TIME'. On some older systems, `sys/time.h' - includes `time.h', but `time.h' is not protected against multiple - inclusion, so programs should not explicitly include both files. - This macro is useful in programs that use, for example, `struct - timeval' or `struct timezone' as well as `struct tm'. It is best - used in conjunction with `HAVE_SYS_TIME_H', which can be checked - for using `AC_CHECK_HEADERS(sys/time.h)'. + If a program may include both 'time.h' and 'sys/time.h', define + 'TIME_WITH_SYS_TIME'. On some older systems, 'sys/time.h' includes + 'time.h', but 'time.h' is not protected against multiple inclusion, + so programs should not explicitly include both files. This macro + is useful in programs that use, for example, 'struct timeval' or + 'struct timezone' as well as 'struct tm'. It is best used in + conjunction with 'HAVE_SYS_TIME_H', which can be checked for using + 'AC_CHECK_HEADERS(sys/time.h)'. #if TIME_WITH_SYS_TIME # include @@ -3317,9 +3306,9 @@ #endif -- Macro: AC_HEADER_TIOCGWINSZ - If the use of `TIOCGWINSZ' requires `', then define - `GWINSZ_IN_SYS_IOCTL'. Otherwise `TIOCGWINSZ' can be found in - `'. + If the use of 'TIOCGWINSZ' requires '', then define + 'GWINSZ_IN_SYS_IOCTL'. Otherwise 'TIOCGWINSZ' can be found in + ''. Use: @@ -3347,42 +3336,42 @@ If the system header file HEADER-FILE is usable, execute shell commands ACTION-IF-FOUND, otherwise execute ACTION-IF-NOT-FOUND. If you just want to define a symbol if the header file is - available, consider using `AC_CHECK_HEADERS' instead. + available, consider using 'AC_CHECK_HEADERS' instead. The meaning of "usable" depends upon the content of INCLUDES: - if INCLUDES is empty + if INCLUDES is empty check whether HEADER-FILE can be _preprocessed_ without error. - if INCLUDE is set + if INCLUDE is set Check whether INCLUDES #include can be _compiled_ without error. You may use - `AC_CHECK_HEADER' (and `AC_CHECK_HEADERS') to check whether + 'AC_CHECK_HEADER' (and 'AC_CHECK_HEADERS') to check whether two headers are compatible. You may pass any kind of dummy content for INCLUDES, such as a - single space, a comment, to check whether HEADER-FILE compiles - with success. + single space, a comment, to check whether HEADER-FILE compiles with + success. -- Macro: AC_CHECK_HEADERS (HEADER-FILE..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [INCLUDES]) For each given system header file HEADER-FILE in the whitespace-separated argument list that exists, define - `HAVE_HEADER-FILE' (in all capitals). If ACTION-IF-FOUND is - given, it is additional shell code to execute when one of the - header files is found. You can give it a value of `break' to - break out of the loop on the first match. If ACTION-IF-NOT-FOUND - is given, it is executed when one of the header files is not found. + 'HAVE_HEADER-FILE' (in all capitals). If ACTION-IF-FOUND is given, + it is additional shell code to execute when one of the header files + is found. You can give it a value of 'break' to break out of the + loop on the first match. If ACTION-IF-NOT-FOUND is given, it is + executed when one of the header files is not found. - Be sure to read the documentation of `AC_CHECK_HEADER' to + Be sure to read the documentation of 'AC_CHECK_HEADER' to understand the influence of INCLUDES.  @@ -3394,8 +3383,8 @@ The following macros check for the declaration of variables and functions. If there is no macro specifically defined to check for a symbol you need, then you can use the general macros (*note Generic -Declarations::) or, for more complex tests, you may use -`AC_TRY_COMPILE' (*note Examining Syntax::). +Declarations::) or, for more complex tests, you may use 'AC_TRY_COMPILE' +(*note Examining Syntax::). * Menu: @@ -3411,8 +3400,8 @@ The following macros check for certain declarations. -- Macro: AC_DECL_SYS_SIGLIST - Define `SYS_SIGLIST_DECLARED' if the variable `sys_siglist' is - declared in a system header file, either `signal.h' or `unistd.h'. + Define 'SYS_SIGLIST_DECLARED' if the variable 'sys_siglist' is + declared in a system header file, either 'signal.h' or 'unistd.h'.  File: autoconf.info, Node: Generic Declarations, Prev: Particular Declarations, Up: Declarations @@ -3427,8 +3416,8 @@ [ACTION-IF-NOT-FOUND], [INCLUDES]) If SYMBOL (a function or a variable) is not declared in INCLUDES and a declaration is needed, run the shell commands - ACTION-IF-NOT-FOUND, otherwise ACTION-IF-FOUND. If no INCLUDES - are specified, the default includes are used (*note Default + ACTION-IF-NOT-FOUND, otherwise ACTION-IF-FOUND. If no INCLUDES are + specified, the default includes are used (*note Default Includes::). This macro actually tests whether it is valid to use SYMBOL as an @@ -3438,8 +3427,8 @@ -- Macro: AC_CHECK_DECLS (SYMBOLS, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [INCLUDES]) For each of the SYMBOLS (_comma_-separated list), define - `HAVE_DECL_SYMBOL' (in all capitals) to `1' if SYMBOL is declared, - otherwise to `0'. If ACTION-IF-NOT-FOUND is given, it is + 'HAVE_DECL_SYMBOL' (in all capitals) to '1' if SYMBOL is declared, + otherwise to '0'. If ACTION-IF-NOT-FOUND is given, it is additional shell code to execute when one of the function declarations is needed, otherwise ACTION-IF-FOUND is executed. @@ -3448,11 +3437,11 @@ AC_CHECK_DECLS([strlen]) AC_CHECK_DECLS([malloc, realloc, calloc, free]) - Unlike the other `AC_CHECK_*S' macros, when a SYMBOL is not - declared, `HAVE_DECL_SYMBOL' is defined to `0' instead of leaving - `HAVE_DECL_SYMBOL' undeclared. When you are _sure_ that the check - was performed, use `HAVE_DECL_SYMBOL' just like any other result - of Autoconf: + Unlike the other 'AC_CHECK_*S' macros, when a SYMBOL is not + declared, 'HAVE_DECL_SYMBOL' is defined to '0' instead of leaving + 'HAVE_DECL_SYMBOL' undeclared. When you are _sure_ that the check + was performed, use 'HAVE_DECL_SYMBOL' just like any other result of + Autoconf: #if !HAVE_DECL_SYMBOL extern char *symbol; @@ -3467,8 +3456,8 @@ #endif You fall into the second category only in extreme situations: - either your files may be used without being configured, or they - are used during the configuration. In most cases the traditional + either your files may be used without being configured, or they are + used during the configuration. In most cases the traditional approach is enough.  @@ -3481,7 +3470,7 @@ structures. If there is no macro specifically defined to check for a member you need, then you can use the general structure-member macro (*note Generic Structures::) or, for more complex tests, you may use -`AC_TRY_COMPILE' (*note Examining Syntax::). +'AC_TRY_COMPILE' (*note Examining Syntax::). * Menu: @@ -3497,37 +3486,37 @@ The following macros check for certain structures or structure members. -- Macro: AC_STRUCT_ST_BLKSIZE - If `struct stat' contains an `st_blksize' member, define - `HAVE_STRUCT_STAT_ST_BLKSIZE'. The former name, `HAVE_ST_BLKSIZE' + If 'struct stat' contains an 'st_blksize' member, define + 'HAVE_STRUCT_STAT_ST_BLKSIZE'. The former name, 'HAVE_ST_BLKSIZE' is to be avoided, as its support will cease in the future. This macro is obsoleted, and should be replaced by AC_CHECK_MEMBERS([struct stat.st_blksize]) -- Macro: AC_STRUCT_ST_BLOCKS - If `struct stat' contains an `st_blocks' member, define - `HAVE_STRUCT STAT_ST_BLOCKS'. Otherwise, require an `AC_LIBOBJ' - replacement of `fileblocks'. The former name, `HAVE_ST_BLOCKS' is + If 'struct stat' contains an 'st_blocks' member, define + 'HAVE_STRUCT STAT_ST_BLOCKS'. Otherwise, require an 'AC_LIBOBJ' + replacement of 'fileblocks'. The former name, 'HAVE_ST_BLOCKS' is to be avoided, as its support will cease in the future. -- Macro: AC_STRUCT_ST_RDEV - If `struct stat' contains an `st_rdev' member, define - `HAVE_STRUCT_STAT_ST_RDEV'. The former name for this macro, - `HAVE_ST_RDEV', is to be avoided as it will cease to be supported + If 'struct stat' contains an 'st_rdev' member, define + 'HAVE_STRUCT_STAT_ST_RDEV'. The former name for this macro, + 'HAVE_ST_RDEV', is to be avoided as it will cease to be supported in the future. Actually, even the new macro is obsolete, and should be replaced by: AC_CHECK_MEMBERS([struct stat.st_rdev]) -- Macro: AC_STRUCT_TM - If `time.h' does not define `struct tm', define `TM_IN_SYS_TIME', - which means that including `sys/time.h' had better define `struct + If 'time.h' does not define 'struct tm', define 'TM_IN_SYS_TIME', + which means that including 'sys/time.h' had better define 'struct tm'. -- Macro: AC_STRUCT_TIMEZONE - Figure out how to get the current timezone. If `struct tm' has a - `tm_zone' member, define `HAVE_STRUCT_TM_TM_ZONE' (and the - obsoleted `HAVE_TM_ZONE'). Otherwise, if the external array - `tzname' is found, define `HAVE_TZNAME'. + Figure out how to get the current timezone. If 'struct tm' has a + 'tm_zone' member, define 'HAVE_STRUCT_TM_TM_ZONE' (and the + obsoleted 'HAVE_TM_ZONE'). Otherwise, if the external array + 'tzname' is found, define 'HAVE_TZNAME'.  File: autoconf.info, Node: Generic Structures, Prev: Particular Structures, Up: Structures @@ -3540,8 +3529,8 @@ -- Macro: AC_CHECK_MEMBER (AGGREGATE.MEMBER, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [INCLUDES]) - Check whether MEMBER is a member of the aggregate AGGREGATE. If - no INCLUDES are specified, the default includes are used (*note + Check whether MEMBER is a member of the aggregate AGGREGATE. If no + INCLUDES are specified, the default includes are used (*note Default Includes::). AC_CHECK_MEMBER(struct passwd.pw_gecos,, @@ -3554,10 +3543,10 @@ -- Macro: AC_CHECK_MEMBERS (MEMBERS, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [INCLUDES]) - Check for the existence of each `AGGREGATE.MEMBER' of MEMBERS - using the previous macro. When MEMBER belongs to AGGREGATE, - define `HAVE_AGGREGATE_MEMBER' (in all capitals, with spaces and - dots replaced by underscores). + Check for the existence of each 'AGGREGATE.MEMBER' of MEMBERS using + the previous macro. When MEMBER belongs to AGGREGATE, define + 'HAVE_AGGREGATE_MEMBER' (in all capitals, with spaces and dots + replaced by underscores). This macro uses m4 lists: AC_CHECK_MEMBERS([struct stat.st_rdev, struct stat.st_blksize]) @@ -3584,28 +3573,28 @@ 5.9.1 Particular Type Checks ---------------------------- -These macros check for particular C types in `sys/types.h', `stdlib.h' +These macros check for particular C types in 'sys/types.h', 'stdlib.h' and others, if they exist. -- Macro: AC_TYPE_GETGROUPS - Define `GETGROUPS_T' to be whichever of `gid_t' or `int' is the - base type of the array argument to `getgroups'. + Define 'GETGROUPS_T' to be whichever of 'gid_t' or 'int' is the + base type of the array argument to 'getgroups'. -- Macro: AC_TYPE_MODE_T - Equivalent to `AC_CHECK_TYPE(mode_t, int)'. + Equivalent to 'AC_CHECK_TYPE(mode_t, int)'. -- Macro: AC_TYPE_OFF_T - Equivalent to `AC_CHECK_TYPE(off_t, long)'. + Equivalent to 'AC_CHECK_TYPE(off_t, long)'. -- Macro: AC_TYPE_PID_T - Equivalent to `AC_CHECK_TYPE(pid_t, int)'. + Equivalent to 'AC_CHECK_TYPE(pid_t, int)'. -- Macro: AC_TYPE_SIGNAL - If `signal.h' declares `signal' as returning a pointer to a - function returning `void', define `RETSIGTYPE' to be `void'; - otherwise, define it to be `int'. + If 'signal.h' declares 'signal' as returning a pointer to a + function returning 'void', define 'RETSIGTYPE' to be 'void'; + otherwise, define it to be 'int'. - Define signal handlers as returning type `RETSIGTYPE': + Define signal handlers as returning type 'RETSIGTYPE': RETSIGTYPE hup_handler () @@ -3614,11 +3603,11 @@ } -- Macro: AC_TYPE_SIZE_T - Equivalent to `AC_CHECK_TYPE(size_t, unsigned)'. + Equivalent to 'AC_CHECK_TYPE(size_t, unsigned)'. -- Macro: AC_TYPE_UID_T - If `uid_t' is not defined, define `uid_t' to be `int' and `gid_t' - to be `int'. + If 'uid_t' is not defined, define 'uid_t' to be 'int' and 'gid_t' + to be 'int'.  File: autoconf.info, Node: Generic Types, Prev: Particular Types, Up: Types @@ -3636,23 +3625,22 @@ -- Macro: AC_CHECK_TYPES (TYPES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [INCLUDES]) - For each TYPE of the TYPES that is defined, define `HAVE_TYPE' (in + For each TYPE of the TYPES that is defined, define 'HAVE_TYPE' (in all capitals). If no INCLUDES are specified, the default includes are used (*note Default Includes::). If ACTION-IF-FOUND is given, it is additional shell code to execute when one of the types is - found. If ACTION-IF-NOT-FOUND is given, it is executed when one - of the types is not found. + found. If ACTION-IF-NOT-FOUND is given, it is executed when one of + the types is not found. This macro uses m4 lists: AC_CHECK_TYPES(ptrdiff_t) AC_CHECK_TYPES([unsigned long long, uintmax_t]) - Autoconf, up to 2.13, used to provide to another version of -`AC_CHECK_TYPE', broken by design. In order to keep backward +'AC_CHECK_TYPE', broken by design. In order to keep backward compatibility, a simple heuristics, quite safe but not totally, is implemented. In case of doubt, read the documentation of the former -`AC_CHECK_TYPE', see *note Obsolete Macros::. +'AC_CHECK_TYPE', see *note Obsolete Macros::.  File: autoconf.info, Node: Compilers and Preprocessors, Next: System Services, Prev: Types, Up: Existing Tests @@ -3660,14 +3648,13 @@ 5.10 Compilers and Preprocessors ================================ -All the tests for compilers (`AC_PROG_CC', `AC_PROG_CXX', -`AC_PROG_F77') define the output variable `EXEEXT' based on the output -of the compiler, typically to the empty string if Unix and `.exe' if -Win32 or OS/2. - - They also define the output variable `OBJEXT' based on the output of -the compiler, after .c files have been excluded, typically to `o' if -Unix, `obj' if Win32. +All the tests for compilers ('AC_PROG_CC', 'AC_PROG_CXX', 'AC_PROG_F77') +define the output variable 'EXEEXT' based on the output of the compiler, +typically to the empty string if Unix and '.exe' if Win32 or OS/2. + + They also define the output variable 'OBJEXT' based on the output of +the compiler, after .c files have been excluded, typically to 'o' if +Unix, 'obj' if Win32. If the compiler being used does not produce executables, they fail. If the executables can't be run, and cross-compilation is not enabled, @@ -3688,11 +3675,11 @@ --------------------------------------- -- Macro: AC_CHECK_SIZEOF (TYPE, [UNUSED], [INCLUDES]) - Define `SIZEOF_TYPE' (*note Standard Symbols::) to be the size in - bytes of TYPE. If `type' is unknown, it gets a size of 0. If no + Define 'SIZEOF_TYPE' (*note Standard Symbols::) to be the size in + bytes of TYPE. If 'type' is unknown, it gets a size of 0. If no INCLUDES are specified, the default includes are used (*note Default Includes::). If you provide INCLUDE, make sure to include - `stdio.h' which is required for this macro to run. + 'stdio.h' which is required for this macro to run. This macro now works even when cross-compiling. The UNUSED argument was used when cross-compiling. @@ -3701,7 +3688,7 @@ AC_CHECK_SIZEOF(int *) - defines `SIZEOF_INT_P' to be 8 on DEC Alpha AXP systems. + defines 'SIZEOF_INT_P' to be 8 on DEC Alpha AXP systems.  File: autoconf.info, Node: C Compiler, Next: C++ Compiler, Prev: Generic Compiler Characteristics, Up: Compilers and Preprocessors @@ -3710,142 +3697,141 @@ --------------------------------- -- Macro: AC_PROG_CC ([COMPILER-SEARCH-LIST]) - Determine a C compiler to use. If `CC' is not already set in the - environment, check for `gcc' and `cc', then for other C compilers. - Set output variable `CC' to the name of the compiler found. + Determine a C compiler to use. If 'CC' is not already set in the + environment, check for 'gcc' and 'cc', then for other C compilers. + Set output variable 'CC' to the name of the compiler found. This macro may, however, be invoked with an optional first argument which, if specified, must be a space separated list of C compilers to search for. This just gives the user an opportunity to specify - an alternative search list for the C compiler. For example, if - you didn't like the default order, then you could invoke - `AC_PROG_CC' like this: + an alternative search list for the C compiler. For example, if you + didn't like the default order, then you could invoke 'AC_PROG_CC' + like this: AC_PROG_CC(cl egcs gcc cc) - If using the GNU C compiler, set shell variable `GCC' to `yes'. - If output variable `CFLAGS' was not already set, set it to `-g - -O2' for the GNU C compiler (`-O2' on systems where GCC does not - accept `-g'), or `-g' for other compilers. + If using the GNU C compiler, set shell variable 'GCC' to 'yes'. If + output variable 'CFLAGS' was not already set, set it to '-g -O2' + for the GNU C compiler ('-O2' on systems where GCC does not accept + '-g'), or '-g' for other compilers. -- Macro: AC_PROG_CC_C_O - If the C compiler does not accept the `-c' and `-o' options - simultaneously, define `NO_MINUS_C_MINUS_O'. This macro actually - tests both the compiler found by `AC_PROG_CC', and, if different, - the first `cc' in the path. The test fails if one fails. This + If the C compiler does not accept the '-c' and '-o' options + simultaneously, define 'NO_MINUS_C_MINUS_O'. This macro actually + tests both the compiler found by 'AC_PROG_CC', and, if different, + the first 'cc' in the path. The test fails if one fails. This macro was created for GNU Make to choose the default C compilation rule. -- Macro: AC_PROG_CC_STDC If the C compiler is not in ANSI C mode by default, try to add an - option to output variable `CC' to make it so. This macro tries + option to output variable 'CC' to make it so. This macro tries various options that select ANSI C on some system or another. It considers the compiler to be in ANSI C mode if it handles function prototypes correctly. If you use this macro, you should check after calling it whether the C compiler has been set to accept ANSI C; if not, the shell - variable `ac_cv_prog_cc_stdc' is set to `no'. If you wrote your + variable 'ac_cv_prog_cc_stdc' is set to 'no'. If you wrote your source code in ANSI C, you can make an un-ANSIfied copy of it by - using the program `ansi2knr', which comes with Automake. + using the program 'ansi2knr', which comes with Automake. -- Macro: AC_PROG_CPP - Set output variable `CPP' to a command that runs the C - preprocessor. If `$CC -E' doesn't work, `/lib/cpp' is used. It - is only portable to run `CPP' on files with a `.c' extension. + Set output variable 'CPP' to a command that runs the C + preprocessor. If '$CC -E' doesn't work, '/lib/cpp' is used. It is + only portable to run 'CPP' on files with a '.c' extension. If the current language is C (*note Language Choice::), many of the - specific test macros use the value of `CPP' indirectly by calling - `AC_TRY_CPP', `AC_CHECK_HEADER', `AC_EGREP_HEADER', or - `AC_EGREP_CPP'. + specific test macros use the value of 'CPP' indirectly by calling + 'AC_TRY_CPP', 'AC_CHECK_HEADER', 'AC_EGREP_HEADER', or + 'AC_EGREP_CPP'. Some preprocessors don't indicate missing include files by the error status. For such preprocessors an internal variable is set that causes other macros to check the standard error from the - preprocessor and consider the test failed if any warnings have - been reported. + preprocessor and consider the test failed if any warnings have been + reported. The following macros check for C compiler or machine architecture features. To check for characteristics not listed here, use -`AC_TRY_COMPILE' (*note Examining Syntax::) or `AC_TRY_RUN' (*note Run +'AC_TRY_COMPILE' (*note Examining Syntax::) or 'AC_TRY_RUN' (*note Run Time::) -- Macro: AC_C_BIGENDIAN If words are stored with the most significant byte first (like Motorola and SPARC, but not Intel and VAX, CPUs), define - `WORDS_BIGENDIAN'. + 'WORDS_BIGENDIAN'. -- Macro: AC_C_CONST If the C compiler does not fully support the ANSI C qualifier - `const', define `const' to be empty. Some C compilers that do not - define `__STDC__' do support `const'; some compilers that define - `__STDC__' do not completely support `const'. Programs can simply - use `const' as if every C compiler supported it; for those that - don't, the `Makefile' or configuration header file will define it + 'const', define 'const' to be empty. Some C compilers that do not + define '__STDC__' do support 'const'; some compilers that define + '__STDC__' do not completely support 'const'. Programs can simply + use 'const' as if every C compiler supported it; for those that + don't, the 'Makefile' or configuration header file will define it as empty. Occasionally installers use a C++ compiler to compile C code, typically because they lack a C compiler. This causes problems - with `const', because C and C++ treat `const' differently. For + with 'const', because C and C++ treat 'const' differently. For example: const int foo; is valid in C but not in C++. These differences unfortunately - cannot be papered over by defining `const' to be empty. + cannot be papered over by defining 'const' to be empty. - If `autoconf' detects this situation, it leaves `const' alone, as + If 'autoconf' detects this situation, it leaves 'const' alone, as this generally yields better results in practice. However, using a C++ compiler to compile C code is not recommended or supported, and installers who run into trouble in this area should get a C compiler like GCC to compile their C code. -- Macro: AC_C_VOLATILE - If the C compiler does not understand the keyword `volatile', - define `volatile' to be empty. Programs can simply use `volatile' + If the C compiler does not understand the keyword 'volatile', + define 'volatile' to be empty. Programs can simply use 'volatile' as if every C compiler supported it; for those that do not, the - `Makefile' or configuration header will define it as empty. + 'Makefile' or configuration header will define it as empty. If the correctness of your program depends on the semantics of - `volatile', simply defining it to be empty does, in a sense, break + 'volatile', simply defining it to be empty does, in a sense, break your code. However, given that the compiler does not support - `volatile', you are at its mercy anyway. At least your program + 'volatile', you are at its mercy anyway. At least your program will compile, when it wouldn't before. - In general, the `volatile' keyword is a feature of ANSI C, so you - might expect that `volatile' is available only when `__STDC__' is + In general, the 'volatile' keyword is a feature of ANSI C, so you + might expect that 'volatile' is available only when '__STDC__' is defined. However, Ultrix 4.3's native compiler does support - volatile, but does not defined `__STDC__'. + volatile, but does not defined '__STDC__'. -- Macro: AC_C_INLINE - If the C compiler supports the keyword `inline', do nothing. - Otherwise define `inline' to `__inline__' or `__inline' if it - accepts one of those, otherwise define `inline' to be empty. + If the C compiler supports the keyword 'inline', do nothing. + Otherwise define 'inline' to '__inline__' or '__inline' if it + accepts one of those, otherwise define 'inline' to be empty. -- Macro: AC_C_CHAR_UNSIGNED - If the C type `char' is unsigned, define `__CHAR_UNSIGNED__', + If the C type 'char' is unsigned, define '__CHAR_UNSIGNED__', unless the C compiler predefines it. -- Macro: AC_C_LONG_DOUBLE - If the C compiler supports the `long double' type, define - `HAVE_LONG_DOUBLE'. Some C compilers that do not define - `__STDC__' do support the `long double' type; some compilers that - define `__STDC__' do not support `long double'. + If the C compiler supports the 'long double' type, define + 'HAVE_LONG_DOUBLE'. Some C compilers that do not define '__STDC__' + do support the 'long double' type; some compilers that define + '__STDC__' do not support 'long double'. -- Macro: AC_C_STRINGIZE If the C preprocessor supports the stringizing operator, define - `HAVE_STRINGIZE'. The stringizing operator is `#' and is found in + 'HAVE_STRINGIZE'. The stringizing operator is '#' and is found in macros such as this: #define x(y) #y -- Macro: AC_C_PROTOTYPES - Check to see if function prototypes are understood by the - compiler. If so, define `PROTOTYPES'. In the case the compiler - does not handle prototypes, you should use `ansi2knr', which comes - with the Automake distribution, to unprotoize function - definitions. For function prototypes, you should first define - `PARAMS': + Check to see if function prototypes are understood by the compiler. + If so, define 'PROTOTYPES'. In the case the compiler does not + handle prototypes, you should use 'ansi2knr', which comes with the + Automake distribution, to unprotoize function definitions. For + function prototypes, you should first define 'PARAMS': #ifndef PARAMS # if PROTOTYPES @@ -3860,12 +3846,12 @@ size_t my_strlen PARAMS ((const char *)); -- Macro: AC_PROG_GCC_TRADITIONAL - Add `-traditional' to output variable `CC' if using the GNU C - compiler and `ioctl' does not work properly without - `-traditional'. That usually happens when the fixed header files - have not been installed on an old system. Since recent versions - of the GNU C compiler fix the header files automatically when - installed, this is becoming a less prevalent problem. + Add '-traditional' to output variable 'CC' if using the GNU C + compiler and 'ioctl' does not work properly without '-traditional'. + That usually happens when the fixed header files have not been + installed on an old system. Since recent versions of the GNU C + compiler fix the header files automatically when installed, this is + becoming a less prevalent problem.  File: autoconf.info, Node: C++ Compiler, Next: Fortran 77 Compiler, Prev: C Compiler, Up: Compilers and Preprocessors @@ -3875,44 +3861,44 @@ -- Macro: AC_PROG_CXX ([COMPILER-SEARCH-LIST]) Determine a C++ compiler to use. Check if the environment variable - `CXX' or `CCC' (in that order) is set; if so, then set output - variable `CXX' to its value. + 'CXX' or 'CCC' (in that order) is set; if so, then set output + variable 'CXX' to its value. - Otherwise, if the macro is invoked without an argument, then - search for a C++ compiler under the likely names (first `g++' and - `c++' then other names). If none of those checks succeed, then as - a last resort set `CXX' to `g++'. + Otherwise, if the macro is invoked without an argument, then search + for a C++ compiler under the likely names (first 'g++' and 'c++' + then other names). If none of those checks succeed, then as a last + resort set 'CXX' to 'g++'. This macro may, however, be invoked with an optional first argument which, if specified, must be a space separated list of C++ compilers to search for. This just gives the user an opportunity to specify an alternative search list for the C++ compiler. For example, if you didn't like the default order, then you could - invoke `AC_PROG_CXX' like this: + invoke 'AC_PROG_CXX' like this: AC_PROG_CXX(cl KCC CC cxx cc++ xlC aCC c++ g++ egcs gcc) - If using the GNU C++ compiler, set shell variable `GXX' to `yes'. - If output variable `CXXFLAGS' was not already set, set it to `-g - -O2' for the GNU C++ compiler (`-O2' on systems where G++ does not - accept `-g'), or `-g' for other compilers. + If using the GNU C++ compiler, set shell variable 'GXX' to 'yes'. + If output variable 'CXXFLAGS' was not already set, set it to '-g + -O2' for the GNU C++ compiler ('-O2' on systems where G++ does not + accept '-g'), or '-g' for other compilers. -- Macro: AC_PROG_CXXCPP - Set output variable `CXXCPP' to a command that runs the C++ - preprocessor. If `$CXX -E' doesn't work, `/lib/cpp' is used. It - is only portable to run `CXXCPP' on files with a `.c', `.C', or - `.cc' extension. + Set output variable 'CXXCPP' to a command that runs the C++ + preprocessor. If '$CXX -E' doesn't work, '/lib/cpp' is used. It + is only portable to run 'CXXCPP' on files with a '.c', '.C', or + '.cc' extension. If the current language is C++ (*note Language Choice::), many of - the specific test macros use the value of `CXXCPP' indirectly by - calling `AC_TRY_CPP', `AC_CHECK_HEADER', `AC_EGREP_HEADER', or - `AC_EGREP_CPP'. + the specific test macros use the value of 'CXXCPP' indirectly by + calling 'AC_TRY_CPP', 'AC_CHECK_HEADER', 'AC_EGREP_HEADER', or + 'AC_EGREP_CPP'. Some preprocessors don't indicate missing include files by the error status. For such preprocessors an internal variable is set that causes other macros to check the standard error from the - preprocessor and consider the test failed if any warnings have - been reported. However, it is not known whether such broken + preprocessor and consider the test failed if any warnings have been + reported. However, it is not known whether such broken preprocessors exist for C++.  @@ -3922,47 +3908,46 @@ ------------------------------------------ -- Macro: AC_PROG_F77 ([COMPILER-SEARCH-LIST]) - Determine a Fortran 77 compiler to use. If `F77' is not already - set in the environment, then check for `g77' and `f77', and then - some other names. Set the output variable `F77' to the name of - the compiler found. + Determine a Fortran 77 compiler to use. If 'F77' is not already + set in the environment, then check for 'g77' and 'f77', and then + some other names. Set the output variable 'F77' to the name of the + compiler found. This macro may, however, be invoked with an optional first argument which, if specified, must be a space separated list of Fortran 77 compilers to search for. This just gives the user an opportunity to specify an alternative search list for the Fortran 77 compiler. For example, if you didn't like the default order, then you could - invoke `AC_PROG_F77' like this: + invoke 'AC_PROG_F77' like this: AC_PROG_F77(fl32 f77 fort77 xlf cf77 g77 f90 xlf90) - If using `g77' (the GNU Fortran 77 compiler), then `AC_PROG_F77' - will set the shell variable `G77' to `yes'. If the output - variable `FFLAGS' was not already set in the environment, then set - it to `-g -02' for `g77' (or `-O2' where `g77' does not accept - `-g'). Otherwise, set `FFLAGS' to `-g' for all other Fortran 77 - compilers. + If using 'g77' (the GNU Fortran 77 compiler), then 'AC_PROG_F77' + will set the shell variable 'G77' to 'yes'. If the output variable + 'FFLAGS' was not already set in the environment, then set it to '-g + -02' for 'g77' (or '-O2' where 'g77' does not accept '-g'). + Otherwise, set 'FFLAGS' to '-g' for all other Fortran 77 compilers. -- Macro: AC_PROG_F77_C_O - Test if the Fortran 77 compiler accepts the options `-c' and `-o' - simultaneously, and define `F77_NO_MINUS_C_MINUS_O' if it does not. + Test if the Fortran 77 compiler accepts the options '-c' and '-o' + simultaneously, and define 'F77_NO_MINUS_C_MINUS_O' if it does not. The following macros check for Fortran 77 compiler characteristics. -To check for characteristics not listed here, use `AC_TRY_COMPILE' -(*note Examining Syntax::) or `AC_TRY_RUN' (*note Run Time::), making -sure to first set the current language to Fortran 77 `AC_LANG(Fortran +To check for characteristics not listed here, use 'AC_TRY_COMPILE' +(*note Examining Syntax::) or 'AC_TRY_RUN' (*note Run Time::), making +sure to first set the current language to Fortran 77 'AC_LANG(Fortran 77)' (*note Language Choice::). -- Macro: AC_F77_LIBRARY_LDFLAGS - Determine the linker flags (e.g. `-L' and `-l') for the "Fortran + Determine the linker flags (e.g. '-L' and '-l') for the "Fortran 77 intrinsic and run-time libraries" that are required to successfully link a Fortran 77 program or shared library. The - output variable `FLIBS' is set to these flags. + output variable 'FLIBS' is set to these flags. This macro is intended to be used in those situations when it is - necessary to mix, e.g. C++ and Fortran 77 source code into a single - program or shared library (*note Mixing Fortran 77 With C and C++: - (automake)Mixing Fortran 77 With C and C++.). + necessary to mix, e.g. C++ and Fortran 77 source code into a + single program or shared library (*note (automake)Mixing Fortran 77 + With C and C++::). For example, if object files from a C++ and Fortran 77 compiler must be linked together, then the C++ compiler/linker must be used @@ -3973,32 +3958,32 @@ However, the Fortran 77 intrinsic and run-time libraries must be linked in as well, but the C++ compiler/linker doesn't know by default how to add these Fortran 77 libraries. Hence, the macro - `AC_F77_LIBRARY_LDFLAGS' was created to determine these Fortran 77 + 'AC_F77_LIBRARY_LDFLAGS' was created to determine these Fortran 77 libraries. - The macro `AC_F77_DUMMY_MAIN' or `AC_F77_MAIN' will probably also + The macro 'AC_F77_DUMMY_MAIN' or 'AC_F77_MAIN' will probably also be necessary to link C/C++ with Fortran; see below. -- Macro: AC_F77_DUMMY_MAIN ([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) With many compilers, the Fortran libraries detected by - `AC_F77_LIBRARY_LDFLAGS' provide their own `main' entry function + 'AC_F77_LIBRARY_LDFLAGS' provide their own 'main' entry function that initializes things like Fortran I/O, and which then calls a - user-provided entry function named e.g. `MAIN__' to run the user's - program. The `AC_F77_DUMMY_MAIN' or `AC_F77_MAIN' macro figures + user-provided entry function named e.g. 'MAIN__' to run the user's + program. The 'AC_F77_DUMMY_MAIN' or 'AC_F77_MAIN' macro figures out how to deal with this interaction. When using Fortran for purely numerical functions (no I/O, - etcetera), users often prefer to provide their own `main' and skip + etcetera), users often prefer to provide their own 'main' and skip the Fortran library initializations. In this case, however, one - may still need to provide a dummy `MAIN__' routine in order to - prevent linking errors on some systems. `AC_F77_DUMMY_MAIN' + may still need to provide a dummy 'MAIN__' routine in order to + prevent linking errors on some systems. 'AC_F77_DUMMY_MAIN' detects whether any such routine is _required_ for linking, and - what its name is; the shell variable `F77_DUMMY_MAIN' holds this - name, `unknown' when no solution was found, and `none' when no - such dummy main is needed. + what its name is; the shell variable 'F77_DUMMY_MAIN' holds this + name, 'unknown' when no solution was found, and 'none' when no such + dummy main is needed. - By default, ACTION-IF-FOUND defines `F77_DUMMY_MAIN' to the name - of this routine (e.g. `MAIN__') _if_ it is required. + By default, ACTION-IF-FOUND defines 'F77_DUMMY_MAIN' to the name of + this routine (e.g. 'MAIN__') _if_ it is required. [ACTION-IF-NOT-FOUND] defaults to exiting with an error. In order to link with Fortran routines, the user's C/C++ program @@ -4012,38 +3997,38 @@ int F77_DUMMY_MAIN() { return 1; } #endif - Note that `AC_F77_DUMMY_MAIN' is called automatically from - `AC_F77_WRAPPERS'; there is generally no need to call it explicitly + Note that 'AC_F77_DUMMY_MAIN' is called automatically from + 'AC_F77_WRAPPERS'; there is generally no need to call it explicitly unless one wants to change the default actions. -- Macro: AC_F77_MAIN - As discussed above for `AC_F77_DUMMY_MAIN', many Fortran libraries - allow you to provide an entry point called e.g. `MAIN__' instead of - the usual `main', which is then called by a `main' function in the - Fortran libraries that initializes things like Fortran I/O. The - `AC_F77_MAIN' macro detects whether it is _possible_ to utilize - such an alternate main function, and defines `F77_MAIN' to the - name of the function. (If no alternate main function name is - found, `F77_MAIN' is simply defined to `main'.) - - Thus, when calling Fortran routines from C that perform things - like I/O, one should use this macro and name the "main" function - `F77_MAIN' instead of `main'. + As discussed above for 'AC_F77_DUMMY_MAIN', many Fortran libraries + allow you to provide an entry point called e.g. 'MAIN__' instead + of the usual 'main', which is then called by a 'main' function in + the Fortran libraries that initializes things like Fortran I/O. The + 'AC_F77_MAIN' macro detects whether it is _possible_ to utilize + such an alternate main function, and defines 'F77_MAIN' to the name + of the function. (If no alternate main function name is found, + 'F77_MAIN' is simply defined to 'main'.) + + Thus, when calling Fortran routines from C that perform things like + I/O, one should use this macro and name the "main" function + 'F77_MAIN' instead of 'main'. -- Macro: AC_F77_WRAPPERS - Defines C macros `F77_FUNC(name,NAME)' and `F77_FUNC_(name,NAME)' + Defines C macros 'F77_FUNC(name,NAME)' and 'F77_FUNC_(name,NAME)' to properly mangle the names of C/C++ identifiers, and identifiers with underscores, respectively, so that they match the name-mangling scheme used by the Fortran 77 compiler. Fortran 77 is case-insensitive, and in order to achieve this the Fortran 77 compiler converts all identifiers into a canonical case - and format. To call a Fortran 77 subroutine from C or to write a - C function that is callable from Fortran 77, the C program must - explicitly use identifiers in the format expected by the Fortran - 77 compiler. In order to do this, one simply wraps all C - identifiers in one of the macros provided by `AC_F77_WRAPPERS'. - For example, suppose you have the following Fortran 77 subroutine: + and format. To call a Fortran 77 subroutine from C or to write a C + function that is callable from Fortran 77, the C program must + explicitly use identifiers in the format expected by the Fortran 77 + compiler. In order to do this, one simply wraps all C identifiers + in one of the macros provided by 'AC_F77_WRAPPERS'. For example, + suppose you have the following Fortran 77 subroutine: subroutine foobar(x,y) double precision x, y @@ -4060,17 +4045,16 @@ void FOOBAR_F77(double *x, double *y); Note that we pass both the lowercase and uppercase versions of the - function name to `F77_FUNC' so that it can select the right one. + function name to 'F77_FUNC' so that it can select the right one. Note also that all parameters to Fortran 77 routines are passed as - pointers (*note Mixing Fortran 77 With C and C++: (automake)Mixing - Fortran 77 With C and C++.). + pointers (*note (automake)Mixing Fortran 77 With C and C++::). Although Autoconf tries to be intelligent about detecting the name-mangling scheme of the Fortran 77 compiler, there may be Fortran 77 compilers that it doesn't support yet. In this case, the above code will generate a compile-time error, but some other - behavior (e.g. disabling Fortran-related features) can be induced - by checking whether the `F77_FUNC' macro is defined. + behavior (e.g. disabling Fortran-related features) can be induced + by checking whether the 'F77_FUNC' macro is defined. Now, to call that routine from a C program, we would do something like: @@ -4081,14 +4065,14 @@ } If the Fortran 77 identifier contains an underscore (e.g. - `foo_bar'), you should use `F77_FUNC_' instead of `F77_FUNC' (with + 'foo_bar'), you should use 'F77_FUNC_' instead of 'F77_FUNC' (with the same arguments). This is because some Fortran 77 compilers mangle names differently if they contain an underscore. -- Macro: AC_F77_FUNC (NAME, [SHELLVAR]) Given an identifier NAME, set the shell variable SHELLVAR to hold the mangled version NAME according to the rules of the Fortran 77 - linker (see also `AC_F77_WRAPPERS'). SHELLVAR is optional; if it + linker (see also 'AC_F77_WRAPPERS'). SHELLVAR is optional; if it is not supplied, the shell variable will be simply NAME. The purpose of this macro is to give the caller a way to access the name-mangling information other than through the C preprocessor as @@ -4106,68 +4090,66 @@ -- Macro: AC_PATH_X Try to locate the X Window System include files and libraries. If - the user gave the command line options `--x-includes=DIR' and - `--x-libraries=DIR', use those directories. If either or both - were not given, get the missing values by running `xmkmf' on a - trivial `Imakefile' and examining the `Makefile' that it produces. - If that fails (such as if `xmkmf' is not present), look for them - in several directories where they often reside. If either method - is successful, set the shell variables `x_includes' and - `x_libraries' to their locations, unless they are in directories - the compiler searches by default. + the user gave the command line options '--x-includes=DIR' and + '--x-libraries=DIR', use those directories. If either or both were + not given, get the missing values by running 'xmkmf' on a trivial + 'Imakefile' and examining the 'Makefile' that it produces. If that + fails (such as if 'xmkmf' is not present), look for them in several + directories where they often reside. If either method is + successful, set the shell variables 'x_includes' and 'x_libraries' + to their locations, unless they are in directories the compiler + searches by default. If both methods fail, or the user gave the command line option - `--without-x', set the shell variable `no_x' to `yes'; otherwise + '--without-x', set the shell variable 'no_x' to 'yes'; otherwise set it to the empty string. -- Macro: AC_PATH_XTRA - An enhanced version of `AC_PATH_X'. It adds the C compiler flags - that X needs to output variable `X_CFLAGS', and the X linker flags - to `X_LIBS'. Define `X_DISPLAY_MISSING' if X is not available. - - This macro also checks for special libraries that some systems - need in order to compile X programs. It adds any that the system - needs to output variable `X_EXTRA_LIBS'. And it checks for - special X11R6 libraries that need to be linked with before - `-lX11', and adds any found to the output variable `X_PRE_LIBS'. - + An enhanced version of 'AC_PATH_X'. It adds the C compiler flags + that X needs to output variable 'X_CFLAGS', and the X linker flags + to 'X_LIBS'. Define 'X_DISPLAY_MISSING' if X is not available. + + This macro also checks for special libraries that some systems need + in order to compile X programs. It adds any that the system needs + to output variable 'X_EXTRA_LIBS'. And it checks for special X11R6 + libraries that need to be linked with before '-lX11', and adds any + found to the output variable 'X_PRE_LIBS'. -- Macro: AC_SYS_INTERPRETER Check whether the system supports starting scripts with a line of - the form `#! /bin/csh' to select the interpreter to use for the - script. After running this macro, shell code in `configure.ac' - can check the shell variable `interpval'; it will be set to `yes' - if the system supports `#!', `no' if not. + the form '#! /bin/csh' to select the interpreter to use for the + script. After running this macro, shell code in 'configure.ac' can + check the shell variable 'interpval'; it will be set to 'yes' if + the system supports '#!', 'no' if not. -- Macro: AC_SYS_LARGEFILE Arrange for large-file support(1). On some hosts, one must use special compiler options to build programs that can access large - files. Append any such options to the output variable `CC'. - Define `_FILE_OFFSET_BITS' and `_LARGE_FILES' if necessary. + files. Append any such options to the output variable 'CC'. + Define '_FILE_OFFSET_BITS' and '_LARGE_FILES' if necessary. Large-file support can be disabled by configuring with the - `--disable-largefile' option. + '--disable-largefile' option. If you use this macro, check that your program works even when - `off_t' is longer than `long', since this is common when - large-file support is enabled. For example, it is not correct to - print an arbitrary `off_t' value `X' with `printf ("%ld", (long) - X)'. + 'off_t' is longer than 'long', since this is common when large-file + support is enabled. For example, it is not correct to print an + arbitrary 'off_t' value 'X' with 'printf ("%ld", (long) X)'. -- Macro: AC_SYS_LONG_FILE_NAMES If the system supports file names longer than 14 characters, define - `HAVE_LONG_FILE_NAMES'. + 'HAVE_LONG_FILE_NAMES'. -- Macro: AC_SYS_POSIX_TERMIOS Check to see if POSIX termios headers and functions are available on the system. If so, set the shell variable - `am_cv_sys_posix_termios' to `yes'. If not, set the variable to - `no'. + 'am_cv_sys_posix_termios' to 'yes'. If not, set the variable to + 'no'. ---------- Footnotes ---------- (1) large-file support, -`http://www.sas.com/standards/large.file/x_open.20Mar96.html'. +.  File: autoconf.info, Node: UNIX Variants, Prev: System Services, Up: Existing Tests @@ -4182,20 +4164,20 @@ available or the environments they provide. -- Macro: AC_AIX - If on AIX, define `_ALL_SOURCE'. Allows the use of some BSD + If on AIX, define '_ALL_SOURCE'. Allows the use of some BSD functions. Should be called before any macros that run the C compiler. -- Macro: AC_ISC_POSIX - If on a POSIXized ISC UNIX, define `_POSIX_SOURCE' and add - `-posix' (for the GNU C compiler) or `-Xp' (for other C compilers) - to output variable `CC'. This allows the use of POSIX facilities. - Must be called after `AC_PROG_CC' and before any other macros that - run the C compiler. + If on a POSIXized ISC UNIX, define '_POSIX_SOURCE' and add '-posix' + (for the GNU C compiler) or '-Xp' (for other C compilers) to output + variable 'CC'. This allows the use of POSIX facilities. Must be + called after 'AC_PROG_CC' and before any other macros that run the + C compiler. -- Macro: AC_MINIX - If on Minix, define `_MINIX' and `_POSIX_SOURCE' and define - `_POSIX_1_SOURCE' to be 2. This allows the use of POSIX + If on Minix, define '_MINIX' and '_POSIX_SOURCE' and define + '_POSIX_1_SOURCE' to be 2. This allows the use of POSIX facilities. Should be called before any macros that run the C compiler. @@ -4245,36 +4227,36 @@ 6.1 Examining Declarations ========================== -The macro `AC_TRY_CPP' is used to check whether particular header files +The macro 'AC_TRY_CPP' is used to check whether particular header files exist. You can check for one at a time, or more than one if you need several header files to all exist for some purpose. -- Macro: AC_TRY_CPP (INCLUDES, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) - INCLUDES is C or C++ `#include' statements and declarations, on + INCLUDES is C or C++ '#include' statements and declarations, on which shell variable, back quote, and backslash substitutions are performed. (Actually, it can be any C program, but other statements are probably not useful.) If the preprocessor produces no error messages while processing it, run shell commands ACTION-IF-TRUE. Otherwise run shell commands ACTION-IF-FALSE. - This macro uses `CPPFLAGS', but not `CFLAGS', because `-g', `-O', - etc. are not valid options to many C preprocessors. + This macro uses 'CPPFLAGS', but not 'CFLAGS', because '-g', '-O', + etc. are not valid options to many C preprocessors. Here is how to find out whether a header file contains a particular declaration, such as a typedef, a structure, a structure member, or a -function. Use `AC_EGREP_HEADER' instead of running `grep' directly on +function. Use 'AC_EGREP_HEADER' instead of running 'grep' directly on the header file; on some systems the symbol might be defined in another -header file that the file you are checking `#include's. +header file that the file you are checking '#include's. -- Macro: AC_EGREP_HEADER (PATTERN, HEADER-FILE, ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]) If the output of running the preprocessor on the system header file - HEADER-FILE matches the `egrep' regular expression PATTERN, - execute shell commands ACTION-IF-FOUND, otherwise execute + HEADER-FILE matches the 'egrep' regular expression PATTERN, execute + shell commands ACTION-IF-FOUND, otherwise execute ACTION-IF-NOT-FOUND. To check for C preprocessor symbols, either defined by header files -or predefined by the C preprocessor, use `AC_EGREP_CPP'. Here is an +or predefined by the C preprocessor, use 'AC_EGREP_CPP'. Here is an example of the latter: AC_EGREP_CPP(yes, @@ -4285,13 +4267,13 @@ -- Macro: AC_EGREP_CPP (PATTERN, PROGRAM, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - PROGRAM is the text of a C or C++ program, on which shell - variable, back quote, and backslash substitutions are performed. - If the output of running the preprocessor on PROGRAM matches the - `egrep' regular expression PATTERN, execute shell commands - ACTION-IF-FOUND, otherwise execute ACTION-IF-NOT-FOUND. + PROGRAM is the text of a C or C++ program, on which shell variable, + back quote, and backslash substitutions are performed. If the + output of running the preprocessor on PROGRAM matches the 'egrep' + regular expression PATTERN, execute shell commands ACTION-IF-FOUND, + otherwise execute ACTION-IF-NOT-FOUND. - This macro calls `AC_PROG_CPP' or `AC_PROG_CXXCPP' (depending on + This macro calls 'AC_PROG_CPP' or 'AC_PROG_CXXCPP' (depending on which language is current, *note Language Choice::), if it hasn't been called already. @@ -4302,7 +4284,7 @@ ==================== To check for a syntax feature of the C, C++ or Fortran 77 compiler, such -as whether it recognizes a certain keyword, use `AC_TRY_COMPILE' to try +as whether it recognizes a certain keyword, use 'AC_TRY_COMPILE' to try to compile a small program that uses that feature. You can also use it to check for structures and structure members that are not present on all systems. @@ -4313,18 +4295,18 @@ language is current, *note Language Choice::), to see whether a function whose body consists of FUNCTION-BODY can be compiled. - For C and C++, INCLUDES is any `#include' statements needed by the + For C and C++, INCLUDES is any '#include' statements needed by the code in FUNCTION-BODY (INCLUDES will be ignored if the currently - selected language is Fortran 77). This macro also uses `CFLAGS' - or `CXXFLAGS' if either C or C++ is the currently selected - language, as well as `CPPFLAGS', when compiling. If Fortran 77 is - the currently selected language then `FFLAGS' will be used when + selected language is Fortran 77). This macro also uses 'CFLAGS' or + 'CXXFLAGS' if either C or C++ is the currently selected language, + as well as 'CPPFLAGS', when compiling. If Fortran 77 is the + currently selected language then 'FFLAGS' will be used when compiling. If the file compiles successfully, run shell commands ACTION-IF-FOUND, otherwise run ACTION-IF-NOT-FOUND. - This macro does not try to link; use `AC_TRY_LINK' if you need to + This macro does not try to link; use 'AC_TRY_LINK' if you need to do that (*note Examining Libraries::).  @@ -4334,12 +4316,12 @@ ======================= To check for a library, a function, or a global variable, Autoconf -`configure' scripts try to compile and link a small program that uses -it. This is unlike Metaconfig, which by default uses `nm' or `ar' on +'configure' scripts try to compile and link a small program that uses +it. This is unlike Metaconfig, which by default uses 'nm' or 'ar' on the C library to try to figure out which functions are available. Trying to link with the function is usually a more reliable approach because it avoids dealing with the variations in the options and output -formats of `nm' and `ar' and in the location of the standard libraries. +formats of 'nm' and 'ar' and in the location of the standard libraries. It also allows configuring for cross-compilation or checking a function's runtime behavior if needed. On the other hand, it can be slower than scanning the libraries once. @@ -4350,27 +4332,27 @@ However, some of them can be given options that make the exit status correct. This is a problem that Autoconf does not currently handle automatically. If users encounter this problem, they might be able to -solve it by setting `LDFLAGS' in the environment to pass whatever -options the linker needs (for example, `-Wl,-dn' on MIPS RISC/OS). +solve it by setting 'LDFLAGS' in the environment to pass whatever +options the linker needs (for example, '-Wl,-dn' on MIPS RISC/OS). - `AC_TRY_LINK' is used to compile test programs to test for functions -and global variables. It is also used by `AC_CHECK_LIB' to check for + 'AC_TRY_LINK' is used to compile test programs to test for functions +and global variables. It is also used by 'AC_CHECK_LIB' to check for libraries (*note Libraries::), by adding the library being checked for -to `LIBS' temporarily and trying to link a small program. +to 'LIBS' temporarily and trying to link a small program. -- Macro: AC_TRY_LINK (INCLUDES, FUNCTION-BODY, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - Depending on the current language (*note Language Choice::), - create a test program to see whether a function whose body - consists of FUNCTION-BODY can be compiled and linked. + Depending on the current language (*note Language Choice::), create + a test program to see whether a function whose body consists of + FUNCTION-BODY can be compiled and linked. - For C and C++, INCLUDES is any `#include' statements needed by the + For C and C++, INCLUDES is any '#include' statements needed by the code in FUNCTION-BODY (INCLUDES will be ignored if the currently - selected language is Fortran 77). This macro also uses `CFLAGS' - or `CXXFLAGS' if either C or C++ is the currently selected - language, as well as `CPPFLAGS', when compiling. If Fortran 77 is - the currently selected language then `FFLAGS' will be used when - compiling. However, both `LDFLAGS' and `LIBS' will be used during + selected language is Fortran 77). This macro also uses 'CFLAGS' or + 'CXXFLAGS' if either C or C++ is the currently selected language, + as well as 'CPPFLAGS', when compiling. If Fortran 77 is the + currently selected language then 'FFLAGS' will be used when + compiling. However, both 'LDFLAGS' and 'LIBS' will be used during linking in all cases. If the file compiles and links successfully, run shell commands @@ -4378,10 +4360,9 @@ -- Macro: AC_TRY_LINK_FUNC (FUNCTION, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) - Depending on the current language (*note Language Choice::), - create a test program to see whether a program whose body consists - of a prototype of and a call to FUNCTION can be compiled and - linked. + Depending on the current language (*note Language Choice::), create + a test program to see whether a program whose body consists of a + prototype of and a call to FUNCTION can be compiled and linked. If the file compiles and links successfully, run shell commands ACTION-IF-FOUND, otherwise run ACTION-IF-NOT-FOUND. @@ -4400,7 +4381,7 @@ If you really need to test for a run-time behavior while configuring, you can write a test program to determine the result, and compile and -run it using `AC_TRY_RUN'. Avoid running test programs if possible, +run it using 'AC_TRY_RUN'. Avoid running test programs if possible, because this prevents people from configuring your package for cross-compiling. @@ -4425,23 +4406,23 @@ back quote substitutions are performed. If it compiles and links successfully and returns an exit status of 0 when executed, run shell commands ACTION-IF-TRUE. Otherwise, run shell commands - ACTION-IF-FALSE; the exit status of the program is available in - the shell variable `$?'. This macro uses `CFLAGS' or `CXXFLAGS', - `CPPFLAGS', `LDFLAGS', and `LIBS' when compiling. + ACTION-IF-FALSE; the exit status of the program is available in the + shell variable '$?'. This macro uses 'CFLAGS' or 'CXXFLAGS', + 'CPPFLAGS', 'LDFLAGS', and 'LIBS' when compiling. If the C compiler being used does not produce executables that run - on the system where `configure' is being run, then the test - program is not run. If the optional shell commands + on the system where 'configure' is being run, then the test program + is not run. If the optional shell commands ACTION-IF-CROSS-COMPILING are given, they are run instead. - Otherwise, `configure' prints an error message and exits. + Otherwise, 'configure' prints an error message and exits. Try to provide a pessimistic default value to use when -cross-compiling makes run-time tests impossible. You do this by -passing the optional last argument to `AC_TRY_RUN'. `autoconf' prints -a warning message when creating `configure' each time it encounters a -call to `AC_TRY_RUN' with no ACTION-IF-CROSS-COMPILING argument given. -You may ignore the warning, though users will not be able to configure -your package for cross-compiling. A few of the macros distributed with +cross-compiling makes run-time tests impossible. You do this by passing +the optional last argument to 'AC_TRY_RUN'. 'autoconf' prints a warning +message when creating 'configure' each time it encounters a call to +'AC_TRY_RUN' with no ACTION-IF-CROSS-COMPILING argument given. You may +ignore the warning, though users will not be able to configure your +package for cross-compiling. A few of the macros distributed with Autoconf produce this warning message. To configure for cross-compiling you can also choose a value for @@ -4449,10 +4430,10 @@ Configuration::). Alternatively, set up a test results cache file with the correct values for the host system (*note Caching Results::). - To provide a default for calls of `AC_TRY_RUN' that are embedded in + To provide a default for calls of 'AC_TRY_RUN' that are embedded in other macros, including a few of the ones that come with Autoconf, you -can call `AC_PROG_CC' before running them. Then, if the shell variable -`cross_compiling' is set to `yes', use an alternate method to get the +can call 'AC_PROG_CC' before running them. Then, if the shell variable +'cross_compiling' is set to 'yes', use an alternate method to get the results instead of calling the macros.  @@ -4465,13 +4446,13 @@ should return 0 if the test succeeds, nonzero otherwise, so that success can be distinguished easily from a core dump or other failure; segmentation violations and other failures produce a nonzero exit -status. Test programs should `exit', not `return', from `main', -because on some systems (old Suns, at least) the argument to `return' -in `main' is ignored. +status. Test programs should 'exit', not 'return', from 'main', because +on some systems (old Suns, at least) the argument to 'return' in 'main' +is ignored. - Test programs can use `#if' or `#ifdef' to check the values of + Test programs can use '#if' or '#ifdef' to check the values of preprocessor macros defined by tests that have already run. For -example, if you call `AC_HEADER_STDC', then later on in `configure.ac' +example, if you call 'AC_HEADER_STDC', then later on in 'configure.ac' you can have a test program that includes an ANSI C header file conditionally: @@ -4480,8 +4461,8 @@ #endif If a test program needs to use or create a data file, give it a name -that starts with `conftest', such as `conftest.data'. The `configure' -script cleans up by running `rm -rf conftest*' after running test +that starts with 'conftest', such as 'conftest.data'. The 'configure' +script cleans up by running 'rm -rf conftest*' after running test programs and if the script is interrupted.  @@ -4501,7 +4482,7 @@ #endif Functions that test programs declare should also be conditionalized -for C++, which requires `extern "C"' prototypes. Make sure to not +for C++, which requires 'extern "C"' prototypes. Make sure to not include any header files containing clashing prototypes. #ifdef __cplusplus @@ -4514,16 +4495,16 @@ see whether it exists), organize the program to ensure that it never invokes that function. You can do this by calling it in another function that is never invoked. You can't do it by putting it after a -call to `exit', because GCC version 2 knows that `exit' never returns +call to 'exit', because GCC version 2 knows that 'exit' never returns and optimizes out any code that follows it in the same block. If you include any header files, make sure to call the functions relevant to them with the correct number of arguments, even if they are just 0, to avoid compilation errors due to prototypes. GCC version 2 has internal prototypes for several functions that it automatically -inlines; for example, `memcpy'. To avoid errors when checking for -them, either pass them the correct number of arguments or redeclare them -with a different return type (such as `char'). +inlines; for example, 'memcpy'. To avoid errors when checking for them, +either pass them the correct number of arguments or redeclare them with +a different return type (such as 'char').  File: autoconf.info, Node: Systemology, Next: Multiple Cases, Prev: Run Time, Up: Writing Tests @@ -4538,15 +4519,15 @@ QNX 4.25 QNX is a realtime operating system running on Intel architecture meant to be scalable from the small embedded systems to hundred - processor super-computer. It claims to be POSIX certified. More + processor super-computer. It claims to be POSIX certified. More information is available on the QNX home page(1), including the QNX man pages(2). ---------- Footnotes ---------- - (1) QNX home page, `www.qnx.com'. + (1) QNX home page, . - (2) QNX man pages, `http://support.qnx.com/support/docs/qnx4/'. + (2) QNX man pages, .  File: autoconf.info, Node: Multiple Cases, Next: Language Choice, Prev: Systemology, Up: Writing Tests @@ -4556,11 +4537,11 @@ Some operations are accomplished in several possible ways, depending on the UNIX variant. Checking for them essentially requires a "case -statement". Autoconf does not directly provide one; however, it is -easy to simulate by using a shell variable to keep track of whether a -way to perform the operation has been found yet. +statement". Autoconf does not directly provide one; however, it is easy +to simulate by using a shell variable to keep track of whether a way to +perform the operation has been found yet. - Here is an example that uses the shell variable `fstype' to keep + Here is an example that uses the shell variable 'fstype' to keep track of whether the remaining cases need to be checked. AC_MSG_CHECKING([how to get file system type]) @@ -4588,12 +4569,12 @@ 6.7 Language Choice =================== -Autoconf-generated `configure' scripts check for the C compiler and its +Autoconf-generated 'configure' scripts check for the C compiler and its features by default. Packages that use other programming languages -(maybe more than one, e.g. C and C++) need to test features of the +(maybe more than one, e.g. C and C++) need to test features of the compilers for the respective languages. The following macros determine which programming language is used in the subsequent tests in -`configure.ac'. +'configure.ac'. -- Macro: AC_LANG (LANGUAGE) Do compilation tests using the compiler, preprocessor and file @@ -4601,26 +4582,26 @@ Supported languages are: - `C' - Do compilation tests using `CC' and `CPP' and use extension - `.c' for test programs. - - `C++' - Do compilation tests using `CXX' and `CXXCPP' and use - extension `.C' for test programs. + 'C' + Do compilation tests using 'CC' and 'CPP' and use extension + '.c' for test programs. + + 'C++' + Do compilation tests using 'CXX' and 'CXXCPP' and use + extension '.C' for test programs. - `Fortran 77' - Do compilation tests using `F77' and use extension `.f' for + 'Fortran 77' + Do compilation tests using 'F77' and use extension '.f' for test programs. -- Macro: AC_LANG_PUSH (LANGUAGE) - Remember the current language (as set by `AC_LANG') on a stack, and - then select the LANGUAGE. Use this macro and `AC_LANG_POP' in + Remember the current language (as set by 'AC_LANG') on a stack, and + then select the LANGUAGE. Use this macro and 'AC_LANG_POP' in macros that need to temporarily switch to a particular language. -- Macro: AC_LANG_POP ([LANGUAGE]) Select the language that is saved on the top of the stack, as set - by `AC_LANG_PUSH', and remove it from the stack. + by 'AC_LANG_PUSH', and remove it from the stack. If given, LANGUAGE specifies the language we just _quit_. It is a good idea to specify it when it's known (which should be the @@ -4633,9 +4614,9 @@ -- Macro: AC_REQUIRE_CPP Ensure that whichever preprocessor would currently be used for - tests has been found. Calls `AC_REQUIRE' (*note Prerequisite - Macros::) with an argument of either `AC_PROG_CPP' or - `AC_PROG_CXXCPP', depending on which language is current. + tests has been found. Calls 'AC_REQUIRE' (*note Prerequisite + Macros::) with an argument of either 'AC_PROG_CPP' or + 'AC_PROG_CXXCPP', depending on which language is current.  File: autoconf.info, Node: Results, Next: Programming in M4, Prev: Writing Tests, Up: Top @@ -4643,18 +4624,18 @@ 7 Results of Tests ****************** -Once `configure' has determined whether a feature exists, what can it -do to record that information? There are four sorts of things it can -do: define a C preprocessor symbol, set a variable in the output files, -save the result in a cache file for future `configure' runs, and print -a message letting the user know the result of the test. +Once 'configure' has determined whether a feature exists, what can it do +to record that information? There are four sorts of things it can do: +define a C preprocessor symbol, set a variable in the output files, save +the result in a cache file for future 'configure' runs, and print a +message letting the user know the result of the test. * Menu: * Defining Symbols:: Defining C preprocessor symbols * Setting Output Variables:: Replacing variables in output files -* Caching Results:: Speeding up subsequent `configure' runs -* Printing Messages:: Notifying `configure' users +* Caching Results:: Speeding up subsequent 'configure' runs +* Printing Messages:: Notifying 'configure' users  File: autoconf.info, Node: Defining Symbols, Next: Setting Output Variables, Prev: Results, Up: Results @@ -4664,13 +4645,13 @@ A common action to take in response to a feature test is to define a C preprocessor symbol indicating the results of the test. That is done by -calling `AC_DEFINE' or `AC_DEFINE_UNQUOTED'. +calling 'AC_DEFINE' or 'AC_DEFINE_UNQUOTED'. - By default, `AC_OUTPUT' places the symbols defined by these macros -into the output variable `DEFS', which contains an option -`-DSYMBOL=VALUE' for each symbol defined. Unlike in Autoconf version -1, there is no variable `DEFS' defined while `configure' is running. -To check whether Autoconf macros have already defined a certain C + By default, 'AC_OUTPUT' places the symbols defined by these macros +into the output variable 'DEFS', which contains an option +'-DSYMBOL=VALUE' for each symbol defined. Unlike in Autoconf version 1, +there is no variable 'DEFS' defined while 'configure' is running. To +check whether Autoconf macros have already defined a certain C preprocessor symbol, test the value of the appropriate cache variable, as in this example: @@ -4679,33 +4660,33 @@ AC_CHECK_FUNC(_doprnt, [AC_DEFINE(HAVE_DOPRNT)]) fi - If `AC_CONFIG_HEADERS' has been called, then instead of creating -`DEFS', `AC_OUTPUT' creates a header file by substituting the correct -values into `#define' statements in a template file. *Note + If 'AC_CONFIG_HEADERS' has been called, then instead of creating +'DEFS', 'AC_OUTPUT' creates a header file by substituting the correct +values into '#define' statements in a template file. *Note Configuration Headers::, for more information about this kind of output. -- Macro: AC_DEFINE (VARIABLE, [VALUE], [DESCRIPTION]) Define C preprocessor variable VARIABLE. If VALUE is given, set VARIABLE to that value (verbatim), otherwise set it to 1. VALUE should not contain literal newlines, and if you are not using - `AC_CONFIG_HEADERS' it should not contain any `#' characters, as - `make' tends to eat them. To use a shell variable (which you need - to do in order to define a value containing the M4 quote - characters `[' or `]'), use `AC_DEFINE_UNQUOTED' instead. - DESCRIPTION is only useful if you are using `AC_CONFIG_HEADERS'. - In this case, DESCRIPTION is put into the generated `config.h.in' - as the comment before the macro define. The following example - defines the C preprocessor variable `EQUATION' to be the string - constant `"$a > $b"': + 'AC_CONFIG_HEADERS' it should not contain any '#' characters, as + 'make' tends to eat them. To use a shell variable (which you need + to do in order to define a value containing the M4 quote characters + '[' or ']'), use 'AC_DEFINE_UNQUOTED' instead. DESCRIPTION is only + useful if you are using 'AC_CONFIG_HEADERS'. In this case, + DESCRIPTION is put into the generated 'config.h.in' as the comment + before the macro define. The following example defines the C + preprocessor variable 'EQUATION' to be the string constant '"$a > + $b"': AC_DEFINE(EQUATION, "$a > $b") -- Macro: AC_DEFINE_UNQUOTED (VARIABLE, [VALUE], [DESCRIPTION]) - Like `AC_DEFINE', but three shell expansions are - performed--once--on VARIABLE and VALUE: variable expansion (`$'), - command substitution (``'), and backslash escaping (`\'). Single + Like 'AC_DEFINE', but three shell expansions are + performed--once--on VARIABLE and VALUE: variable expansion ('$'), + command substitution ('`'), and backslash escaping ('\'). Single and double quote characters in the value have no special meaning. - Use this macro instead of `AC_DEFINE' when VARIABLE or VALUE is a + Use this macro instead of 'AC_DEFINE' when VARIABLE or VALUE is a shell variable. Examples: AC_DEFINE_UNQUOTED(config_machfile, "$machfile") @@ -4713,9 +4694,9 @@ AC_DEFINE_UNQUOTED($ac_tr_hdr) Due to the syntactical bizarreness of the Bourne shell, do not use -semicolons to separate `AC_DEFINE' or `AC_DEFINE_UNQUOTED' calls from +semicolons to separate 'AC_DEFINE' or 'AC_DEFINE_UNQUOTED' calls from other macro calls or shell code; that can cause syntax errors in the -resulting `configure' script. Use either spaces or newlines. That is, +resulting 'configure' script. Use either spaces or newlines. That is, do this: AC_CHECK_HEADER(elf.h, [AC_DEFINE(SVR4) LIBS="$LIBS -lelf"]) @@ -4736,71 +4717,71 @@ 7.2 Setting Output Variables ============================ -Another way to record the results of tests is to set "output -variables", which are shell variables whose values are substituted into -files that `configure' outputs. The two macros below create new output -variables. *Note Preset Output Variables::, for a list of output -variables that are always available. +Another way to record the results of tests is to set "output variables", +which are shell variables whose values are substituted into files that +'configure' outputs. The two macros below create new output variables. +*Note Preset Output Variables::, for a list of output variables that are +always available. -- Macro: AC_SUBST (VARIABLE, [VALUE]) - Create an output variable from a shell variable. Make `AC_OUTPUT' + Create an output variable from a shell variable. Make 'AC_OUTPUT' substitute the variable VARIABLE into output files (typically one - or more `Makefile's). This means that `AC_OUTPUT' will replace - instances of `@VARIABLE@' in input files with the value that the - shell variable VARIABLE has when `AC_OUTPUT' is called. This - value of VARIABLE should not contain literal newlines. + or more 'Makefile's). This means that 'AC_OUTPUT' will replace + instances of '@VARIABLE@' in input files with the value that the + shell variable VARIABLE has when 'AC_OUTPUT' is called. This value + of VARIABLE should not contain literal newlines. - If VALUE is given, in addition assign it to `variable'. + If VALUE is given, in addition assign it to 'variable'. -- Macro: AC_SUBST_FILE (VARIABLE) Another way to create an output variable from a shell variable. - Make `AC_OUTPUT' insert (without substitutions) the contents of - the file named by shell variable VARIABLE into output files. This - means that `AC_OUTPUT' will replace instances of `@VARIABLE@' in - output files (such as `Makefile.in') with the contents of the file - that the shell variable VARIABLE names when `AC_OUTPUT' is called. - Set the variable to `/dev/null' for cases that do not have a file + Make 'AC_OUTPUT' insert (without substitutions) the contents of the + file named by shell variable VARIABLE into output files. This + means that 'AC_OUTPUT' will replace instances of '@VARIABLE@' in + output files (such as 'Makefile.in') with the contents of the file + that the shell variable VARIABLE names when 'AC_OUTPUT' is called. + Set the variable to '/dev/null' for cases that do not have a file to insert. - This macro is useful for inserting `Makefile' fragments containing - special dependencies or other `make' directives for particular host - or target types into `Makefile's. For example, `configure.ac' + This macro is useful for inserting 'Makefile' fragments containing + special dependencies or other 'make' directives for particular host + or target types into 'Makefile's. For example, 'configure.ac' could contain: AC_SUBST_FILE(host_frag) host_frag=$srcdir/conf/sun4.mh - and then a `Makefile.in' could contain: + and then a 'Makefile.in' could contain: @host_frag@ - Running `configure' in different environments can be extremely -dangerous. If for instance the user runs `CC=bizarre-cc ./configure', -then the cache, `config.h' and many other output files will depend upon -`bizarre-cc' being the C compiler. If for some reason the user runs -`/configure' again, or if it is run via `./config.status --recheck', -(*Note Automatic Remaking::, and *note config.status Invocation::), -then the configuration can be inconsistent, composed of results -depending upon two different compilers. + Running 'configure' in different environments can be extremely +dangerous. If for instance the user runs 'CC=bizarre-cc ./configure', +then the cache, 'config.h' and many other output files will depend upon +'bizarre-cc' being the C compiler. If for some reason the user runs +'/configure' again, or if it is run via './config.status --recheck', +(*Note Automatic Remaking::, and *note config.status Invocation::), then +the configuration can be inconsistent, composed of results depending +upon two different compilers. - Such variables are named "precious variables", and can be declared -as such by `AC_ARG_VAR'. + Such variables are named "precious variables", and can be declared as +such by 'AC_ARG_VAR'. -- Macro: AC_ARG_VAR (VARIABLE, DESCRIPTION) Declare VARIABLE is a precious variable, and include its - DESCRIPTION in the variable section of `./configure --help'. + DESCRIPTION in the variable section of './configure --help'. Being precious means that - - VARIABLE is `AC_SUBST''d. + - VARIABLE is 'AC_SUBST''d. - VARIABLE is kept in the cache including if it was not - specified on the `./configure' command line. Indeed, while - `configure' can notice the definition of `CC' in `./configure + specified on the './configure' command line. Indeed, while + 'configure' can notice the definition of 'CC' in './configure CC=bizarre-cc', it is impossible to notice it in - `CC=bizarre-cc ./configure', which, unfortunately, is what + 'CC=bizarre-cc ./configure', which, unfortunately, is what most users do. - - VARIABLE is checked for consistency between two `configure' + - VARIABLE is checked for consistency between two 'configure' runs. For instance: $ ./configure --silent --config-cache @@ -4830,42 +4811,41 @@ =================== To avoid checking for the same features repeatedly in various -`configure' scripts (or in repeated runs of one script), `configure' -can optionally save the results of many checks in a "cache file" (*note -Cache Files::). If a `configure' script runs with caching enabled and -finds a cache file, it reads the results of previous runs from the -cache and avoids rerunning those checks. As a result, `configure' can -then run much faster than if it had to perform all of the checks every -time. +'configure' scripts (or in repeated runs of one script), 'configure' can +optionally save the results of many checks in a "cache file" (*note +Cache Files::). If a 'configure' script runs with caching enabled and +finds a cache file, it reads the results of previous runs from the cache +and avoids rerunning those checks. As a result, 'configure' can then +run much faster than if it had to perform all of the checks every time. -- Macro: AC_CACHE_VAL (CACHE-ID, COMMANDS-TO-SET-IT) Ensure that the results of the check identified by CACHE-ID are - available. If the results of the check were in the cache file - that was read, and `configure' was not given the `--quiet' or - `--silent' option, print a message saying that the result was - cached; otherwise, run the shell commands COMMANDS-TO-SET-IT. If - the shell commands are run to determine the value, the value will - be saved in the cache file just before `configure' creates its - output files. *Note Cache Variable Names::, for how to choose the - name of the CACHE-ID variable. + available. If the results of the check were in the cache file that + was read, and 'configure' was not given the '--quiet' or '--silent' + option, print a message saying that the result was cached; + otherwise, run the shell commands COMMANDS-TO-SET-IT. If the shell + commands are run to determine the value, the value will be saved in + the cache file just before 'configure' creates its output files. + *Note Cache Variable Names::, for how to choose the name of the + CACHE-ID variable. The COMMANDS-TO-SET-IT _must have no side effects_ except for setting the variable CACHE-ID, see below. -- Macro: AC_CACHE_CHECK (MESSAGE, CACHE-ID, COMMANDS-TO-SET-IT) - A wrapper for `AC_CACHE_VAL' that takes care of printing the + A wrapper for 'AC_CACHE_VAL' that takes care of printing the messages. This macro provides a convenient shorthand for the most - common way to use these macros. It calls `AC_MSG_CHECKING' for - MESSAGE, then `AC_CACHE_VAL' with the CACHE-ID and COMMANDS - arguments, and `AC_MSG_RESULT' with CACHE-ID. + common way to use these macros. It calls 'AC_MSG_CHECKING' for + MESSAGE, then 'AC_CACHE_VAL' with the CACHE-ID and COMMANDS + arguments, and 'AC_MSG_RESULT' with CACHE-ID. The COMMANDS-TO-SET-IT _must have no side effects_ except for setting the variable CACHE-ID, see below. - It is very common to find buggy macros using `AC_CACHE_VAL' or -`AC_CACHE_CHECK', because people are tempted to call `AC_DEFINE' in the -COMMANDS-TO-SET-IT. Instead, the code that _follows_ the call to -`AC_CACHE_VAL' should call `AC_DEFINE', by examining the value of the + It is very common to find buggy macros using 'AC_CACHE_VAL' or +'AC_CACHE_CHECK', because people are tempted to call 'AC_DEFINE' in the +COMMANDS-TO-SET-IT. Instead, the code that _follows_ the call to +'AC_CACHE_VAL' should call 'AC_DEFINE', by examining the value of the cache variable. For instance, the following macro is broken: AC_DEFUN([AC_SHELL_TRUE], @@ -4879,7 +4859,7 @@ ]) This fails if the cache is enabled: the second time this macro is run, -`TRUE_WORKS' _will not be defined_. The proper implementation is: +'TRUE_WORKS' _will not be defined_. The proper implementation is: AC_DEFUN([AC_SHELL_TRUE], [AC_CACHE_CHECK([whether true(1) works], [ac_cv_shell_true_works], @@ -4892,14 +4872,14 @@ ]) Also, COMMANDS-TO-SET-IT should not print any messages, for example -with `AC_MSG_CHECKING'; do that before calling `AC_CACHE_VAL', so the +with 'AC_MSG_CHECKING'; do that before calling 'AC_CACHE_VAL', so the messages are printed regardless of whether the results of the check are retrieved from the cache or determined by running the shell commands. * Menu: * Cache Variable Names:: Shell variables used in caches -* Cache Files:: Files `configure' uses for caching +* Cache Files:: Files 'configure' uses for caching * Cache Checkpointing:: Loading and saving the cache file  @@ -4912,17 +4892,17 @@ PACKAGE-PREFIX_cv_VALUE-TYPE_SPECIFIC-VALUE_[ADDITIONAL-OPTIONS] -for example, `ac_cv_header_stat_broken' or -`ac_cv_prog_gcc_traditional'. The parts of the variable name are: +for example, 'ac_cv_header_stat_broken' or 'ac_cv_prog_gcc_traditional'. +The parts of the variable name are: PACKAGE-PREFIX An abbreviation for your package or organization; the same prefix you begin local Autoconf macros with, except lowercase by convention. For cache values used by the distributed Autoconf - macros, this value is `ac'. + macros, this value is 'ac'. -`_cv_' - Indicates that this shell variable is a cache value. This string +'_cv_' + Indicates that this shell variable is a cache value. This string _must_ be present in the variable name, including the leading underscore. @@ -4933,16 +4913,16 @@ SPECIFIC-VALUE Which member of the class of cache values this test applies to. - For example, which function (`alloca'), program (`gcc'), or output - variable (`INSTALL'). + For example, which function ('alloca'), program ('gcc'), or output + variable ('INSTALL'). ADDITIONAL-OPTIONS Any particular behavior of the specific member that this test - applies to. For example, `broken' or `set'. This part of the - name may be omitted if it does not apply. + applies to. For example, 'broken' or 'set'. This part of the name + may be omitted if it does not apply. The values assigned to cache variables may not contain newlines. -Usually, their values will be boolean (`yes' or `no') or the names of +Usually, their values will be boolean ('yes' or 'no') or the names of files or functions; so this is not an important restriction.  @@ -4956,21 +4936,21 @@ and configure runs. It is not useful on other systems. If its contents are invalid for some reason, the user may delete or edit it. - By default, `configure' uses no cache file (technically, it uses -`--cache-file=/dev/null'), to avoid problems caused by accidental use -of stale cache files. - - To enable caching, `configure' accepts `--config-cache' (or `-C') to -cache results in the file `config.cache'. Alternatively, -`--cache-file=FILE' specifies that FILE be the cache file. The cache -file is created if it does not exist already. When `configure' calls -`configure' scripts in subdirectories, it uses the `--cache-file' -argument so that they share the same cache. *Note Subdirectories::, -for information on configuring subdirectories with the -`AC_CONFIG_SUBDIRS' macro. + By default, 'configure' uses no cache file (technically, it uses +'--cache-file=/dev/null'), to avoid problems caused by accidental use of +stale cache files. + + To enable caching, 'configure' accepts '--config-cache' (or '-C') to +cache results in the file 'config.cache'. Alternatively, +'--cache-file=FILE' specifies that FILE be the cache file. The cache +file is created if it does not exist already. When 'configure' calls +'configure' scripts in subdirectories, it uses the '--cache-file' +argument so that they share the same cache. *Note Subdirectories::, for +information on configuring subdirectories with the 'AC_CONFIG_SUBDIRS' +macro. - `config.status' only pays attention to the cache file if it is given -the `--recheck' option, which makes it rerun `configure'. + 'config.status' only pays attention to the cache file if it is given +the '--recheck' option, which makes it rerun 'configure'. It is wrong to try to distribute cache files for particular system types. There is too much room for error in doing that, and too much @@ -4981,9 +4961,9 @@ The site initialization script can specify a site-wide cache file to use, instead of the usual per-program cache. In this case, the cache file will gradually accumulate information whenever someone runs a new -`configure' script. (Running `configure' merges the new cache results -with the existing cache file.) This may cause problems, however, if -the system configuration (e.g. the installed libraries or compilers) +'configure' script. (Running 'configure' merges the new cache results +with the existing cache file.) This may cause problems, however, if the +system configuration (e.g. the installed libraries or compilers) changes and the stale cache file is not deleted.  @@ -4994,18 +4974,18 @@ If your configure script, or a macro called from configure.ac, happens to abort the configure process, it may be useful to checkpoint the cache -a few times at key points using `AC_CACHE_SAVE'. Doing so will reduce +a few times at key points using 'AC_CACHE_SAVE'. Doing so will reduce the amount of time it takes to re-run the configure script with (hopefully) the error that caused the previous abort corrected. -- Macro: AC_CACHE_LOAD Loads values from existing cache file, or creates a new cache file - if a cache file is not found. Called automatically from `AC_INIT'. + if a cache file is not found. Called automatically from 'AC_INIT'. -- Macro: AC_CACHE_SAVE Flushes all cached values to the cache file. Called automatically - from `AC_OUTPUT', but it can be quite useful to call - `AC_CACHE_SAVE' at key points in configure.ac. + from 'AC_OUTPUT', but it can be quite useful to call + 'AC_CACHE_SAVE' at key points in configure.ac. For instance: @@ -5033,71 +5013,70 @@ 7.4 Printing Messages ===================== -`configure' scripts need to give users running them several kinds of +'configure' scripts need to give users running them several kinds of information. The following macros print messages in ways appropriate for each kind. The arguments to all of them get enclosed in shell double quotes, so the shell performs variable and back-quote substitution on them. - These macros are all wrappers around the `echo' shell command. -`configure' scripts should rarely need to run `echo' directly to print + These macros are all wrappers around the 'echo' shell command. +'configure' scripts should rarely need to run 'echo' directly to print messages for the user. Using these macros makes it easy to change how -and when each kind of message is printed; such changes need only be -made to the macro definitions and all of the callers will change +and when each kind of message is printed; such changes need only be made +to the macro definitions and all of the callers will change automatically. - To diagnose static issues, i.e., when `autoconf' is run, see *note + To diagnose static issues, i.e., when 'autoconf' is run, see *note Reporting Messages::. -- Macro: AC_MSG_CHECKING (FEATURE-DESCRIPTION) - Notify the user that `configure' is checking for a particular - feature. This macro prints a message that starts with `checking ' - and ends with `...' and no newline. It must be followed by a call - to `AC_MSG_RESULT' to print the result of the check and the - newline. The FEATURE-DESCRIPTION should be something like - `whether the Fortran compiler accepts C++ comments' or `for c89'. + Notify the user that 'configure' is checking for a particular + feature. This macro prints a message that starts with 'checking ' + and ends with '...' and no newline. It must be followed by a call + to 'AC_MSG_RESULT' to print the result of the check and the + newline. The FEATURE-DESCRIPTION should be something like 'whether + the Fortran compiler accepts C++ comments' or 'for c89'. - This macro prints nothing if `configure' is run with the `--quiet' - or `--silent' option. + This macro prints nothing if 'configure' is run with the '--quiet' + or '--silent' option. -- Macro: AC_MSG_RESULT (RESULT-DESCRIPTION) Notify the user of the results of a check. RESULT-DESCRIPTION is almost always the value of the cache variable for the check, - typically `yes', `no', or a file name. This macro should follow a - call to `AC_MSG_CHECKING', and the RESULT-DESCRIPTION should be - the completion of the message printed by the call to - `AC_MSG_CHECKING'. + typically 'yes', 'no', or a file name. This macro should follow a + call to 'AC_MSG_CHECKING', and the RESULT-DESCRIPTION should be the + completion of the message printed by the call to 'AC_MSG_CHECKING'. - This macro prints nothing if `configure' is run with the `--quiet' - or `--silent' option. + This macro prints nothing if 'configure' is run with the '--quiet' + or '--silent' option. -- Macro: AC_MSG_NOTICE (MESSAGE) - Deliver the MESSAGE to the user. It is useful mainly to print a + Deliver the MESSAGE to the user. It is useful mainly to print a general description of the overall purpose of a group of feature checks, e.g., AC_MSG_NOTICE([checking if stack overflow is detectable]) - This macro prints nothing if `configure' is run with the `--quiet' - or `--silent' option. + This macro prints nothing if 'configure' is run with the '--quiet' + or '--silent' option. -- Macro: AC_MSG_ERROR (ERROR-DESCRIPTION, [EXIT-STATUS]) - Notify the user of an error that prevents `configure' from + Notify the user of an error that prevents 'configure' from completing. This macro prints an error message to the standard - error output and exits `configure' with EXIT-STATUS (1 by default). - ERROR-DESCRIPTION should be something like `invalid value $HOME - for \$HOME'. + error output and exits 'configure' with EXIT-STATUS (1 by default). + ERROR-DESCRIPTION should be something like 'invalid value $HOME for + \$HOME'. The ERROR-DESCRIPTION should start with a lower-case letter, and "cannot" is preferred to "can't". -- Macro: AC_MSG_WARN (PROBLEM-DESCRIPTION) - Notify the `configure' user of a possible problem. This macro - prints the message to the standard error output; `configure' - continues running afterward, so macros that call `AC_MSG_WARN' - should provide a default (back-up) behavior for the situations - they warn about. PROBLEM-DESCRIPTION should be something like `ln - -s seems to make hard links'. + Notify the 'configure' user of a possible problem. This macro + prints the message to the standard error output; 'configure' + continues running afterward, so macros that call 'AC_MSG_WARN' + should provide a default (back-up) behavior for the situations they + warn about. PROBLEM-DESCRIPTION should be something like 'ln -s + seems to make hard links'.  File: autoconf.info, Node: Programming in M4, Next: Writing Autoconf Macros, Prev: Results, Up: Top @@ -5145,10 +5124,10 @@ ----------------------- To fully understand where proper quotation is important, you first need -to know what are the special characters in Autoconf: `#' introduces a -comment inside which no macro expansion is performed, `,' separates -arguments, `[' and `]' are the quotes themselves, and finally `(' and -`)' (which `m4' tries to match by pairs). +to know what are the special characters in Autoconf: '#' introduces a +comment inside which no macro expansion is performed, ',' separates +arguments, '[' and ']' are the quotes themselves, and finally '(' and +')' (which 'm4' tries to match by pairs). In order to understand the delicate case of macro calls, we first have to present some obvious failures. Below they are "obvious-ified", @@ -5170,7 +5149,7 @@ =>int tab[10]; Without this in mind, the reader will try hopelessly to use her macro -`array': +'array': define([array], [int tab[10];]) array @@ -5182,7 +5161,7 @@ ---------- Footnotes ---------- - (1) Using `defn'. + (1) Using 'defn'.  File: autoconf.info, Node: One Macro Call, Next: Quotation and Nested Macros, Prev: Active Characters, Up: M4 Quotation @@ -5195,13 +5174,13 @@ define([car], [$1]) -The two pairs of quotes above are not part of the arguments of -`define'; rather, they are understood by the top level when it tries to -find the arguments of `define'. Therefore, it is equivalent to write: +The two pairs of quotes above are not part of the arguments of 'define'; +rather, they are understood by the top level when it tries to find the +arguments of 'define'. Therefore, it is equivalent to write: define(car, $1) -But, while it is acceptable for a `configure.ac' to avoid unneeded +But, while it is acceptable for a 'configure.ac' to avoid unneeded quotes, it is bad practice for Autoconf macros which must both be more robust and also advocate perfect style. @@ -5216,7 +5195,7 @@ Let's pay attention to the special characters: car(#) - error-->EOF in argument list + error->EOF in argument list The closing parenthesis is hidden in the comment; with a hypothetical quoting, the top level understood it this way: @@ -5268,21 +5247,21 @@ car([[active]]) =>active - In the first case, the top level looks for the arguments of `car', -and finds `active'. Because `m4' evaluates its arguments before -applying the macro, `active' is expanded, which results in: + In the first case, the top level looks for the arguments of 'car', +and finds 'active'. Because 'm4' evaluates its arguments before +applying the macro, 'active' is expanded, which results in: car(ACT, IVE) =>ACT -In the second case, the top level gives `active' as first and only -argument of `car', which results in: +In the second case, the top level gives 'active' as first and only +argument of 'car', which results in: active =>ACT, IVE i.e., the argument is evaluated _after_ the macro that invokes it. In -the third case, `car' receives `[active]', which results in: +the third case, 'car' receives '[active]', which results in: [active] =>active @@ -5299,19 +5278,19 @@ =>int tab[10]; Huh? The first case is easily understood, but why is the second wrong, -and the third right? To understand that, you must know that after `m4' +and the third right? To understand that, you must know that after 'm4' expands a macro, the resulting text is immediately subjected to macro expansion and quote removal. This means that the quote removal occurs -twice--first before the argument is passed to the `car' macro, and -second after the `car' macro expands to the first argument. +twice--first before the argument is passed to the 'car' macro, and +second after the 'car' macro expands to the first argument. - As the author of the Autoconf macro `car', you then consider it to -be incorrect that your users have to double-quote the arguments of -`car', so you "fix" your macro. Let's call it `qar' for quoted car: + As the author of the Autoconf macro 'car', you then consider it to be +incorrect that your users have to double-quote the arguments of 'car', +so you "fix" your macro. Let's call it 'qar' for quoted car: define([qar], [[$1]]) -and check that `qar' is properly fixed: +and check that 'qar' is properly fixed: qar([int tab[10];]) =>int tab[10]; @@ -5325,25 +5304,25 @@ qar(active) =>ACT -where she wanted to reproduce what she used to do with `car': +where she wanted to reproduce what she used to do with 'car': car([active]) =>ACT, IVE -Worse yet: she wants to use a macro that produces a set of `cpp' macros: +Worse yet: she wants to use a macro that produces a set of 'cpp' macros: define([my_includes], [#include ]) car([my_includes]) =>#include qar(my_includes) - error-->EOF in argument list + error->EOF in argument list - This macro, `qar', because it double quotes its arguments, forces -its users to leave their macro calls unquoted, which is dangerous. -Commas and other active symbols are interpreted by `m4' before they are -given to the macro, often not in the way the users expect. Also, -because `qar' behaves differently from the other macros, it's an -exception that should be avoided in Autoconf. + This macro, 'qar', because it double quotes its arguments, forces its +users to leave their macro calls unquoted, which is dangerous. Commas +and other active symbols are interpreted by 'm4' before they are given +to the macro, often not in the way the users expect. Also, because +'qar' behaves differently from the other macros, it's an exception that +should be avoided in Autoconf.  File: autoconf.info, Node: Quadrigraphs, Next: Quotation Rule Of Thumb, Prev: Quotation and Nested Macros, Up: M4 Quotation @@ -5354,29 +5333,26 @@ When writing an autoconf macro you may occasionally need to generate special characters that are difficult to express with the standard autoconf quoting rules. For example, you may need to output the regular -expression `[^[]', which matches any character other than `['. This +expression '[^[]', which matches any character other than '['. This expression contains unbalanced brackets so it cannot be put easily into an M4 macro. You can work around this problem by using one of the following "quadrigraphs": -`@<:@' - `[' - -`@:>@' - `]' - -`@S|@' - `$' - -`@%:@' - `#' +'@<:@' + '[' +'@:>@' + ']' +'@S|@' + '$' +'@%:@' + '#' Quadrigraphs are replaced at a late stage of the translation process, -after `m4' is run, so they do not get in the way of M4 quoting. For -example, the string `[^@<:@]', if properly quoted, will appear as -`[^[]' in the `configure' script. +after 'm4' is run, so they do not get in the way of M4 quoting. For +example, the string '[^@<:@]', if properly quoted, will appear as '[^[]' +in the 'configure' script.  File: autoconf.info, Node: Quotation Rule Of Thumb, Prev: Quadrigraphs, Up: M4 Quotation @@ -5404,7 +5380,7 @@ changequote([, ])dnl [atoi (*tzname);], ac_cv_var_tzname=yes, ac_cv_var_tzname=no) -which is incredibly useless since `AC_TRY_LINK' is _already_ double +which is incredibly useless since 'AC_TRY_LINK' is _already_ double quoting, so you just need: AC_TRY_LINK( @@ -5417,8 +5393,8 @@ [ac_cv_var_tzname=no]) The M4-fluent reader will note that these two examples are rigorously -equivalent, since `m4' swallows both the `changequote(<<, >>)' and `<<' -`>>' when it "collects" the arguments: these quotes are not part of the +equivalent, since 'm4' swallows both the 'changequote(<<, >>)' and '<<' +'>>' when it "collects" the arguments: these quotes are not part of the arguments! Simplified, the example above is just doing this: @@ -5446,14 +5422,14 @@ See *Note Quadrigraphs::, for what to do if you run into a hopeless case where quoting does not suffice. - When you create a `configure' script using newly written macros, + When you create a 'configure' script using newly written macros, examine it carefully to check whether you need to add more quotes in -your macros. If one or more words have disappeared in the `m4' output, +your macros. If one or more words have disappeared in the 'm4' output, you need more quotes. When in doubt, quote. However, it's also possible to put on too many layers of quotes. If -this happens, the resulting `configure' script will contain unexpanded -macros. The `autoconf' program checks for this problem by doing `grep +this happens, the resulting 'configure' script will contain unexpanded +macros. The 'autoconf' program checks for this problem by doing 'grep AC_ configure'.  @@ -5478,16 +5454,16 @@ 8.2.1 Redefined M4 Macros ------------------------- -All the M4 native macros are moved in the `m4_' pseudo-namespace, e.g., -M4sugar renames `define' as `m4_define' etc. There is one exception: -`dnl' kept its original name, and no `m4_dnl' is defined. +All the M4 native macros are moved in the 'm4_' pseudo-namespace, e.g., +M4sugar renames 'define' as 'm4_define' etc. There is one exception: +'dnl' kept its original name, and no 'm4_dnl' is defined. M4sugar redefines some M4 macros, and made them slightly incompatible with their native equivalent. -- Macro: m4_defn (MACRO) Contrary to the M4 builtin, this macro fails if MACRO is not - defined. See `m4_undefine'. + defined. See 'm4_undefine'. -- Macro: m4_undefine (MACRO) Contrary to the M4 builtin, this macro fails if MACRO is not @@ -5499,7 +5475,7 @@ -- Macro: m4_popdef (MACRO) Contrary to the M4 builtin, this macro fails if MACRO is not - defined. See `m4_undefine'. + defined. See 'm4_undefine'.  File: autoconf.info, Node: Forbidden Patterns, Prev: Redefined M4 Macros, Up: Programming in M4sugar @@ -5509,28 +5485,28 @@ M4sugar provides a means to define suspicious patterns, patterns describing tokens which should not be found in the output. For -instance, if an Autoconf `configure' script includes tokens such as -`AC_DEFINE', or `dnl', then most probably something went wrong +instance, if an Autoconf 'configure' script includes tokens such as +'AC_DEFINE', or 'dnl', then most probably something went wrong (typically a macro was not evaluated because of over quotation). - M4sugar forbids all the tokens matching `^m4_' and `^dnl$'. + M4sugar forbids all the tokens matching '^m4_' and '^dnl$'. -- Macro: m4_pattern_forbid (PATTERN) Declare no token matching PATTERN must be found in the output. Comments are not checked; this can be a problem if, for instance, - you have some macro left unexpanded after an `#include'. No + you have some macro left unexpanded after an '#include'. No consensus is currently found in the Autoconf community, as some people consider it should be valid to name macros in comments (which doesn't makes sense to the author of this documentation, as - `#'-comments should document the output, not the input, documented - vy `dnl'-comments). + '#'-comments should document the output, not the input, documented + vy 'dnl'-comments). Of course, you might encounter exceptions to these generic rules, for -instance you might have to refer to `$m4_flags'. +instance you might have to refer to '$m4_flags'. -- Macro: m4_pattern_allow (PATTERN) Any token matching PATTERN is allowed, including if it matches an - `m4_pattern_forbid' pattern. + 'm4_pattern_forbid' pattern.  File: autoconf.info, Node: Writing Autoconf Macros, Next: Portable Shell, Prev: Programming in M4, Up: Top @@ -5546,7 +5522,7 @@ * Macro Definitions:: Basic format of an Autoconf macro * Macro Names:: What to call your new macros -* Reporting Messages:: Notifying `autoconf' users +* Reporting Messages:: Notifying 'autoconf' users * Dependencies Between Macros:: What to do when macros depend on other macros * Obsoleting Macros:: Warning about old ways of doing things * Coding Style:: Writing Autoconf macros a` la Autoconf @@ -5557,26 +5533,25 @@ 9.1 Macro Definitions ===================== -Autoconf macros are defined using the `AC_DEFUN' macro, which is -similar to the M4 builtin `define' macro. In addition to defining a -macro, `AC_DEFUN' adds to it some code that is used to constrain the -order in which macros are called (*note Prerequisite Macros::). +Autoconf macros are defined using the 'AC_DEFUN' macro, which is similar +to the M4 builtin 'define' macro. In addition to defining a macro, +'AC_DEFUN' adds to it some code that is used to constrain the order in +which macros are called (*note Prerequisite Macros::). An Autoconf macro definition looks like this: AC_DEFUN(MACRO-NAME, MACRO-BODY) - You can refer to any arguments passed to the macro as `$1', `$2', + You can refer to any arguments passed to the macro as '$1', '$2', etc. *Note How to define new macros: (m4.info)Definitions, for more complete information on writing M4 macros. - Be sure to properly quote both the MACRO-BODY _and_ the MACRO-NAME -to avoid any problems if the macro happens to have been previously -defined. - - Each macro should have a header comment that gives its prototype, -and a brief description. When arguments have default values, display -them in the prototype. For example: + Be sure to properly quote both the MACRO-BODY _and_ the MACRO-NAME to +avoid any problems if the macro happens to have been previously defined. + + Each macro should have a header comment that gives its prototype, and +a brief description. When arguments have default values, display them +in the prototype. For example: # AC_MSG_ERROR(ERROR, [EXIT-STATUS = 1]) # -------------------------------------- @@ -5584,17 +5559,17 @@ [{ _AC_ECHO([configure: error: $1], 2); exit m4_default([$2], 1); }]) Comments about the macro should be left in the header comment. Most -other comments will make their way into `configure', so just keep using -`#' to introduce comments. +other comments will make their way into 'configure', so just keep using +'#' to introduce comments. If you have some very special comments about pure M4 code, comments -that make no sense in `configure' and in the header comment, then use -the builtin `dnl': it causes `m4' to discard the text through the next +that make no sense in 'configure' and in the header comment, then use +the builtin 'dnl': it causes 'm4' to discard the text through the next newline. - Keep in mind that `dnl' is rarely needed to introduce comments; -`dnl' is more useful to get rid of the newlines following macros that -produce no output, such as `AC_REQUIRE'. + Keep in mind that 'dnl' is rarely needed to introduce comments; 'dnl' +is more useful to get rid of the newlines following macros that produce +no output, such as 'AC_REQUIRE'.  File: autoconf.info, Node: Macro Names, Next: Reporting Messages, Prev: Macro Definitions, Up: Writing Autoconf Macros @@ -5602,14 +5577,14 @@ 9.2 Macro Names =============== -All of the Autoconf macros have all-uppercase names starting with `AC_' +All of the Autoconf macros have all-uppercase names starting with 'AC_' to prevent them from accidentally conflicting with other text. All shell variables that they use for internal purposes have -mostly-lowercase names starting with `ac_'. To ensure that your macros -don't conflict with present or future Autoconf macros, you should -prefix your own macro names and any shell variables they use with some -other sequence. Possibilities include your initials, or an abbreviation -for the name of your organization or software package. +mostly-lowercase names starting with 'ac_'. To ensure that your macros +don't conflict with present or future Autoconf macros, you should prefix +your own macro names and any shell variables they use with some other +sequence. Possibilities include your initials, or an abbreviation for +the name of your organization or software package. Most of the Autoconf macros' names follow a structured naming convention that indicates the kind of feature check by the name. The @@ -5618,60 +5593,49 @@ use the same convention (*note Cache Variable Names::, for more information on them). - The first word of the name after `AC_' usually tells the category of + The first word of the name after 'AC_' usually tells the category of feature being tested. Here are the categories used in Autoconf for specific test macros, the kind of macro that you are more likely to write. They are also used for cache variables, in all-lowercase. Use them where applicable; where they're not, invent your own categories. -`C' +'C' C language builtin features. - -`DECL' +'DECL' Declarations of C variables in header files. - -`FUNC' +'FUNC' Functions in libraries. - -`GROUP' +'GROUP' UNIX group owners of files. - -`HEADER' +'HEADER' Header files. - -`LIB' +'LIB' C libraries. - -`PATH' +'PATH' The full path names to files, including programs. - -`PROG' +'PROG' The base names of programs. - -`MEMBER' +'MEMBER' Members of aggregates. - -`SYS' +'SYS' Operating system features. - -`TYPE' +'TYPE' C builtin or declared types. - -`VAR' +'VAR' C variables in libraries. After the category comes the name of the particular feature being tested. Any further words in the macro name indicate particular aspects -of the feature. For example, `AC_FUNC_UTIME_NULL' checks the behavior -of the `utime' function when called with a `NULL' pointer. +of the feature. For example, 'AC_FUNC_UTIME_NULL' checks the behavior +of the 'utime' function when called with a 'NULL' pointer. An internal macro should have a name that starts with an underscore; -Autoconf internals should therefore start with `_AC_'. Additionally, a -macro that is an internal subroutine of another macro should have a -name that starts with an underscore and the name of that other macro, +Autoconf internals should therefore start with '_AC_'. Additionally, a +macro that is an internal subroutine of another macro should have a name +that starts with an underscore and the name of that other macro, followed by one or more words saying what the internal macro does. For -example, `AC_PATH_X' has internal macros `_AC_PATH_X_XMKMF' and -`_AC_PATH_X_DIRECT'. +example, 'AC_PATH_X' has internal macros '_AC_PATH_X_XMKMF' and +'_AC_PATH_X_DIRECT'.  File: autoconf.info, Node: Reporting Messages, Next: Dependencies Between Macros, Prev: Macro Names, Up: Writing Autoconf Macros @@ -5681,35 +5645,35 @@ When macros statically diagnose abnormal situations, benign or fatal, they should report them using these macros. For dynamic issues, i.e., -when `configure' is run, see *note Printing Messages::. +when 'configure' is run, see *note Printing Messages::. -- Macro: AC_DIAGNOSE (CATEGORY, MESSAGE) Report MESSAGE as a warning (or as an error if requested by the user) if it falls into the CATEGORY. You are encouraged to use standard categories, which currently include: - `all' + 'all' messages that don't fall into one of the following category. Use of an empty CATEGORY is equivalent. - `cross' + 'cross' related to cross compilation issues. - `obsolete' + 'obsolete' use of an obsolete construct. - `syntax' + 'syntax' dubious syntactic constructs, incorrectly ordered macro calls. -- Macro: AC_WARNING (MESSAGE) - Equivalent to `AC_DIAGNOSE([syntax], MESSAGE)', but you are + Equivalent to 'AC_DIAGNOSE([syntax], MESSAGE)', but you are strongly encouraged to use a finer grained category. -- Macro: AC_FATAL (MESSAGE) - Report a severe error MESSAGE, and have `autoconf' die. + Report a severe error MESSAGE, and have 'autoconf' die. - When the user runs `autoconf -W error', warnings from `AC_DIAGNOSE' -and `AC_WARNING' are reported as error, see *note autoconf Invocation::. + When the user runs 'autoconf -W error', warnings from 'AC_DIAGNOSE' +and 'AC_WARNING' are reported as error, see *note autoconf Invocation::.  File: autoconf.info, Node: Dependencies Between Macros, Next: Obsoleting Macros, Prev: Reporting Messages, Up: Writing Autoconf Macros @@ -5734,30 +5698,30 @@ ------------------------- A macro that you write might need to use values that have previously -been computed by other macros. For example, `AC_DECL_YYTEXT' examines -the output of `flex' or `lex', so it depends on `AC_PROG_LEX' having -been called first to set the shell variable `LEX'. +been computed by other macros. For example, 'AC_DECL_YYTEXT' examines +the output of 'flex' or 'lex', so it depends on 'AC_PROG_LEX' having +been called first to set the shell variable 'LEX'. Rather than forcing the user of the macros to keep track of the -dependencies between them, you can use the `AC_REQUIRE' macro to do it -automatically. `AC_REQUIRE' can ensure that a macro is only called if +dependencies between them, you can use the 'AC_REQUIRE' macro to do it +automatically. 'AC_REQUIRE' can ensure that a macro is only called if it is needed, and only called once. -- Macro: AC_REQUIRE (MACRO-NAME) If the M4 macro MACRO-NAME has not already been called, call it - (without any arguments). Make sure to quote MACRO-NAME with - square brackets. MACRO-NAME must have been defined using - `AC_DEFUN' or else contain a call to `AC_PROVIDE' to indicate that - it has been called. + (without any arguments). Make sure to quote MACRO-NAME with square + brackets. MACRO-NAME must have been defined using 'AC_DEFUN' or + else contain a call to 'AC_PROVIDE' to indicate that it has been + called. - `AC_REQUIRE' must be used inside an `AC_DEFUN''d macro; it must - not be called from the top level. + 'AC_REQUIRE' must be used inside an 'AC_DEFUN''d macro; it must not + be called from the top level. - `AC_REQUIRE' is often misunderstood. It really implements + 'AC_REQUIRE' is often misunderstood. It really implements dependencies between macros in the sense that if one macro depends upon another, the latter will be expanded _before_ the body of the former. -In particular, `AC_REQUIRE(FOO)' is not replaced with the body of -`FOO'. For instance, this definition of macros: +In particular, 'AC_REQUIRE(FOO)' is not replaced with the body of 'FOO'. +For instance, this definition of macros: AC_DEFUN([TRAVOLTA], [test "$body_temparature_in_celsius" -gt "38" && @@ -5772,7 +5736,7 @@ AC_REQUIRE([NEWTON_JOHN]) fi]) -with this `configure.ac' +with this 'configure.ac' AC_INIT RESERVE_DANCE_FLOOR @@ -5803,8 +5767,8 @@ ... SOME_CHECK - You are encouraged to put all `AC_REQUIRE's at the beginning of a -macro. You can use `dnl' to avoid the empty lines they leave. + You are encouraged to put all 'AC_REQUIRE's at the beginning of a +macro. You can use 'dnl' to avoid the empty lines they leave.  File: autoconf.info, Node: Suggested Ordering, Prev: Prerequisite Macros, Up: Dependencies Between Macros @@ -5818,27 +5782,27 @@ macros that run the C compiler. Many of these dependencies are noted in the documentation. - Autoconf provides the `AC_BEFORE' macro to warn users when macros -with this kind of dependency appear out of order in a `configure.ac' -file. The warning occurs when creating `configure' from -`configure.ac', not when running `configure'. - - For example, `AC_PROG_CPP' checks whether the C compiler can run the -C preprocessor when given the `-E' option. It should therefore be -called after any macros that change which C compiler is being used, -such as `AC_PROG_CC'. So `AC_PROG_CC' contains: + Autoconf provides the 'AC_BEFORE' macro to warn users when macros +with this kind of dependency appear out of order in a 'configure.ac' +file. The warning occurs when creating 'configure' from 'configure.ac', +not when running 'configure'. + + For example, 'AC_PROG_CPP' checks whether the C compiler can run the +C preprocessor when given the '-E' option. It should therefore be +called after any macros that change which C compiler is being used, such +as 'AC_PROG_CC'. So 'AC_PROG_CC' contains: AC_BEFORE([$0], [AC_PROG_CPP])dnl -This warns the user if a call to `AC_PROG_CPP' has already occurred -when `AC_PROG_CC' is called. +This warns the user if a call to 'AC_PROG_CPP' has already occurred when +'AC_PROG_CC' is called. -- Macro: AC_BEFORE (THIS-MACRO-NAME, CALLED-MACRO-NAME) - Make `m4' print a warning message to the standard error output if + Make 'm4' print a warning message to the standard error output if CALLED-MACRO-NAME has already been called. THIS-MACRO-NAME should - be the name of the macro that is calling `AC_BEFORE'. The macro - CALLED-MACRO-NAME must have been defined using `AC_DEFUN' or else - contain a call to `AC_PROVIDE' to indicate that it has been called. + be the name of the macro that is calling 'AC_BEFORE'. The macro + CALLED-MACRO-NAME must have been defined using 'AC_DEFUN' or else + contain a call to 'AC_PROVIDE' to indicate that it has been called.  File: autoconf.info, Node: Obsoleting Macros, Next: Coding Style, Prev: Dependencies Between Macros, Up: Writing Autoconf Macros @@ -5850,19 +5814,19 @@ Often better ways of solving a particular problem are developed, or ad-hoc approaches are systematized. This process has occurred in many parts of Autoconf. One result is that some of the macros are now -considered "obsolete"; they still work, but are no longer considered -the best thing to do, hence they should be replaced with more modern -macros. Ideally, `autoupdate' should substitute the old macro calls -with their modern implementation. +considered "obsolete"; they still work, but are no longer considered the +best thing to do, hence they should be replaced with more modern macros. +Ideally, 'autoupdate' should substitute the old macro calls with their +modern implementation. Autoconf provides a simple means to obsolete a macro. -- Macro: AU_DEFUN (OLD-MACRO, IMPLEMENTATION, [MESSAGE]) Define OLD-MACRO as IMPLEMENTATION. The only difference with - `AC_DEFUN' is that the user will be warned that OLD-MACRO is now + 'AC_DEFUN' is that the user will be warned that OLD-MACRO is now obsolete. - If she then uses `autoupdate', the call to OLD-MACRO will be + If she then uses 'autoupdate', the call to OLD-MACRO will be replaced by the modern IMPLEMENTATION. The additional MESSAGE is then printed. @@ -5893,25 +5857,24 @@ you are unlikely to generate conflicts. Nevertheless, when you need to set a special value, _avoid using a regular macro name_; rather, use an "impossible" name. For instance, up to version 2.13, the macro -`AC_SUBST' used to remember what SYMBOLs were already defined by -setting `AC_SUBST_SYMBOL', which is a regular macro name. But since -there is a macro named `AC_SUBST_FILE', it was just impossible to -`AC_SUBST(FILE)'! In this case, `AC_SUBST(SYMBOL)' or -`_AC_SUBST(SYMBOL)' should have been used (yes, with the -parentheses)...or better yet, high-level macros such as -`AC_EXPAND_ONCE'. +'AC_SUBST' used to remember what SYMBOLs were already defined by setting +'AC_SUBST_SYMBOL', which is a regular macro name. But since there is a +macro named 'AC_SUBST_FILE', it was just impossible to 'AC_SUBST(FILE)'! +In this case, 'AC_SUBST(SYMBOL)' or '_AC_SUBST(SYMBOL)' should have been +used (yes, with the parentheses)...or better yet, high-level macros such +as 'AC_EXPAND_ONCE'. No Autoconf macro should ever enter the user-variable name space; i.e., except for the variables that are the actual result of running the -macro, all shell variables should start with `ac_'. In addition, small -macros or any macro that is likely to be embedded in other macros -should be careful not to use obvious names. +macro, all shell variables should start with 'ac_'. In addition, small +macros or any macro that is likely to be embedded in other macros should +be careful not to use obvious names. - Do not use `dnl' to introduce comments: most of the comments you are + Do not use 'dnl' to introduce comments: most of the comments you are likely to write are either header comments which are not output anyway, -or comments that should make their way into `configure'. There are -exceptional cases where you do want to comment special M4 constructs, -in which case `dnl' is right, but keep in mind that it is unlikely. +or comments that should make their way into 'configure'. There are +exceptional cases where you do want to comment special M4 constructs, in +which case 'dnl' is right, but keep in mind that it is unlikely. M4 ignores the leading spaces before each argument, use this feature to indent in such a way that arguments are (more or less) aligned with @@ -5939,8 +5902,8 @@ [ac_cv_emxos2=yes], [ac_cv_emxos2=no])]) - When using `AC_TRY_RUN' or any macro that cannot work when -cross-compiling, provide a pessimistic value (typically `no'). + When using 'AC_TRY_RUN' or any macro that cannot work when +cross-compiling, provide a pessimistic value (typically 'no'). Feel free to use various tricks to prevent auxiliary tools, such as syntax-highlighting editors, from behaving improperly. For instance, @@ -5961,38 +5924,38 @@ test $[@%:@] != 0 -Otherwise, the closing bracket would be hidden inside a `#'-comment, +Otherwise, the closing bracket would be hidden inside a '#'-comment, breaking the bracket-matching highlighting from Emacsen. Note the -preferred style to escape from M4: `$[1]', `$[@]', etc. Do not escape -when it is unneeded. Common examples of useless quotation are `[$]$1' -(write `$$1'), `[$]var' (use `$var'), etc. If you add portability -issues to the picture, you'll prefer `${1+"$[@]"}' to `"[$]@"', and -you'll prefer do something better than hacking Autoconf `:-)'. - - When using `sed', don't use `-e' except for indenting purpose. With -the `s' command, the preferred separator is `/' unless `/' itself is -used in the command, in which case you should use `,'. +preferred style to escape from M4: '$[1]', '$[@]', etc. Do not escape +when it is unneeded. Common examples of useless quotation are '[$]$1' +(write '$$1'), '[$]var' (use '$var'), etc. If you add portability +issues to the picture, you'll prefer '${1+"$[@]"}' to '"[$]@"', and +you'll prefer do something better than hacking Autoconf ':-)'. + + When using 'sed', don't use '-e' except for indenting purpose. With +the 's' command, the preferred separator is '/' unless '/' itself is +used in the command, in which case you should use ','. *Note Macro Definitions::, for details on how to define a macro. If -a macro doesn't use `AC_REQUIRE' and it is expected to never be the -object of an `AC_REQUIRE' directive, then use `define'. In case of -doubt, use `AC_DEFUN'. All the `AC_REQUIRE' statements should be at -the beginning of the macro, `dnl''ed. +a macro doesn't use 'AC_REQUIRE' and it is expected to never be the +object of an 'AC_REQUIRE' directive, then use 'define'. In case of +doubt, use 'AC_DEFUN'. All the 'AC_REQUIRE' statements should be at the +beginning of the macro, 'dnl''ed. You should not rely on the number of arguments: instead of checking whether an argument is missing, test that it is not empty. It provides both a simpler and a more predictable interface to the user, and saves room for further arguments. - Unless the macro is short, try to leave the closing `])' at the + Unless the macro is short, try to leave the closing '])' at the beginning of a line, followed by a comment that repeats the name of the macro being defined. This introduces an additional newline in -`configure'; normally, that is not a problem, but if you want to remove -it you can use `[]dnl' on the last line. You can similarly use `[]dnl' -after a macro call to remove its newline. `[]dnl' is recommended -instead of `dnl' to ensure that M4 does not interpret the `dnl' as -being attached to the preceding text or macro output. For example, -instead of: +'configure'; normally, that is not a problem, but if you want to remove +it you can use '[]dnl' on the last line. You can similarly use '[]dnl' +after a macro call to remove its newline. '[]dnl' is recommended +instead of 'dnl' to ensure that M4 does not interpret the 'dnl' as being +attached to the preceding text or macro output. For example, instead +of: AC_DEFUN([AC_PATH_X], [AC_MSG_CHECKING([for X]) @@ -6013,7 +5976,7 @@ If the macro is long, try to split it into logical chunks. Typically, macros that check for a bug in a function and prepare its -`AC_LIBOBJ' replacement should have an auxiliary macro to perform this +'AC_LIBOBJ' replacement should have an auxiliary macro to perform this setup. Do not hesitate to introduce auxiliary macros to factor your code. @@ -6054,17 +6017,17 @@ advantage of features that were added after UNIX version 7, circa 1977. You should not use shell functions, aliases, negated character classes, or other features that are not found in all Bourne-compatible shells; -restrict yourself to the lowest common denominator. Even `unset' is -not supported by all shells! Also, include a space after the -exclamation point in interpreter specifications, like this: +restrict yourself to the lowest common denominator. Even 'unset' is not +supported by all shells! Also, include a space after the exclamation +point in interpreter specifications, like this: #! /usr/bin/perl If you omit the space before the path, then 4.2BSD based systems (such -as Sequent DYNIX) will ignore the line, because they interpret `#! /' -as a 4-byte magic number. +as Sequent DYNIX) will ignore the line, because they interpret '#! /' as +a 4-byte magic number. - The set of external programs you should run in a `configure' script + The set of external programs you should run in a 'configure' script is fairly small. *Note Utilities in Makefiles: (standards)Utilities in Makefiles, for the list. This restriction allows users to start out with a fairly small set of programs and build the rest, avoiding too @@ -6092,15 +6055,14 @@ 10.1 Shellology =============== -There are several families of shells, most prominently the Bourne -family and the C shell family which are deeply incompatible. If you -want to write portable shell scripts, avoid members of the C shell -family. +There are several families of shells, most prominently the Bourne family +and the C shell family which are deeply incompatible. If you want to +write portable shell scripts, avoid members of the C shell family. Below we describe some of the members of the Bourne shell family. Ash - `ash' is often used on GNU/Linux and BSD systems as a light-weight + 'ash' is often used on GNU/Linux and BSD systems as a light-weight Bourne-compatible shell. Ash 0.2 has some bugs that are fixed in the 0.3.x series, but portable shell scripts should workaround them, since version 0.2 is still shipped with many GNU/Linux @@ -6108,7 +6070,7 @@ To be compatible with Ash 0.2: - - don't use `$?' after expanding empty or unset variables: + - don't use '$?' after expanding empty or unset variables: foo= false @@ -6124,46 +6086,46 @@ *Note Shell Substitutions::, item "Command Substitution". Bash - To detect whether you are running `bash', test if `BASH_VERSION' - is set. To disable its extensions and require POSIX - compatibility, run `set -o posix'. *Note Bash POSIX Mode: - (bash)Bash POSIX Mode, for details. + To detect whether you are running 'bash', test if 'BASH_VERSION' is + set. To disable its extensions and require POSIX compatibility, + run 'set -o posix'. *Note Bash POSIX Mode: (bash)Bash POSIX Mode, + for details. -`/usr/xpg4/bin/sh' on Solaris +'/usr/xpg4/bin/sh' on Solaris The POSIX-compliant Bourne shell on a Solaris system is - `/usr/xpg4/bin/sh' and is part of an extra optional package. - There is no extra charge for this package, but it is also not part - of a minimal OS install and therefore some folks may not have it. + '/usr/xpg4/bin/sh' and is part of an extra optional package. There + is no extra charge for this package, but it is also not part of a + minimal OS install and therefore some folks may not have it. Zsh - To detect whether you are running `zsh', test if `ZSH_VERSION' is - set. By default `zsh' is _not_ compatible with the Bourne shell: - you have to run `emulate sh' and set `NULLCMD' to `:'. *Note + To detect whether you are running 'zsh', test if 'ZSH_VERSION' is + set. By default 'zsh' is _not_ compatible with the Bourne shell: + you have to run 'emulate sh' and set 'NULLCMD' to ':'. *Note Compatibility: (zsh)Compatibility, for details. - Zsh 3.0.8 is the native `/bin/sh' on Mac OS X 10.0.3. + Zsh 3.0.8 is the native '/bin/sh' on Mac OS X 10.0.3. The following discussion between Russ Allbery and Robert Lipe is worth reading: Russ Allbery: - The GNU assumption that `/bin/sh' is the one and only shell leads + The GNU assumption that '/bin/sh' is the one and only shell leads to a permanent deadlock. Vendors don't want to break user's existant shell scripts, and there are some corner cases in the - Bourne shell that are not completely compatible with a POSIX - shell. Thus, vendors who have taken this route will _never_ - (OK..."never say never") replace the Bourne shell (as `/bin/sh') - with a POSIX shell. + Bourne shell that are not completely compatible with a POSIX shell. + Thus, vendors who have taken this route will _never_ (OK..."never + say never") replace the Bourne shell (as '/bin/sh') with a POSIX + shell. Robert Lipe: - This is exactly the problem. While most (at least most System - V's) do have a bourne shell that accepts shell functions most - vendor `/bin/sh' programs are not the POSIX shell. + This is exactly the problem. While most (at least most System V's) + do have a bourne shell that accepts shell functions most vendor + '/bin/sh' programs are not the POSIX shell. - So while most modern systems do have a shell _somewhere_ that - meets the POSIX standard, the challenge is to find it. + So while most modern systems do have a shell _somewhere_ that meets + the POSIX standard, the challenge is to find it.  File: autoconf.info, Node: Here-Documents, Next: File Descriptors, Prev: Shellology, Up: Portable Shell @@ -6171,13 +6133,12 @@ 10.2 Here-Documents =================== -Don't rely on `\' being preserved just because it has no special -meaning together with the next symbol. in the native `/bin/sh' on -OpenBSD 2.7 `\"' expands to `"' in here-documents with unquoted -delimiter. As a general rule, if `\\' expands to `\' use `\\' to get -`\'. +Don't rely on '\' being preserved just because it has no special meaning +together with the next symbol. in the native '/bin/sh' on OpenBSD 2.7 +'\"' expands to '"' in here-documents with unquoted delimiter. As a +general rule, if '\\' expands to '\' use '\\' to get '\'. - With OpenBSD 2.7's `/bin/sh' + With OpenBSD 2.7's '/bin/sh' $ cat < \" \\ @@ -6193,12 +6154,12 @@ Many older shells (including the Bourne shell) implement here-documents inefficiently. Users can generally speed things up by -using a faster shell, e.g., by using the command `bash ./configure' -rather than plain `./configure'. +using a faster shell, e.g., by using the command 'bash ./configure' +rather than plain './configure'. Some shells can be extremely inefficient when there are a lot of here-documents inside a single statement. For instance if your -`configure.ac' includes something like: +'configure.ac' includes something like: if ; then assume this and that @@ -6211,19 +6172,19 @@ ... fi - A shell parses the whole `if'/`fi' construct, creating temporary + A shell parses the whole 'if'/'fi' construct, creating temporary files for each here document in it. Some shells create links for such -here-documents on every `fork', so that the clean-up code they had +here-documents on every 'fork', so that the clean-up code they had installed correctly removes them. It is creating the links that the shell can take forever. - Moving the tests out of the `if'/`fi', or creating multiple -`if'/`fi' constructs, would improve the performance significantly. -Anyway, this kind of construct is not exactly the typical use of -Autoconf. In fact, it's even not recommended, because M4 macros can't -look into shell conditionals, so we may fail to expand a macro when it -was expanded before in a conditional path, and the condition turned out -to be false at run-time, and we end up not executing the macro at all. + Moving the tests out of the 'if'/'fi', or creating multiple 'if'/'fi' +constructs, would improve the performance significantly. Anyway, this +kind of construct is not exactly the typical use of Autoconf. In fact, +it's even not recommended, because M4 macros can't look into shell +conditionals, so we may fail to expand a macro when it was expanded +before in a conditional path, and the condition turned out to be false +at run-time, and we end up not executing the macro at all.  File: autoconf.info, Node: File Descriptors, Next: File System Conventions, Prev: Here-Documents, Up: Portable Shell @@ -6235,7 +6196,7 @@ arcane, use them for special purpose: 3 - some systems may open it to `/dev/tty'. + some systems may open it to '/dev/tty'. 4 used on the Kubota Titan. @@ -6252,16 +6213,16 @@ $ (eval '(echo matter >fullness)') >void Ambiguous output redirect. -In each case the expected result is of course `fullness' containing -`matter' and `void' being empty. +In each case the expected result is of course 'fullness' containing +'matter' and 'void' being empty. Don't try to redirect the standard error of a command substitution: -it must be done _inside_ the command substitution: when running `: `cd -/zorglub` 2>/dev/null' expect the error message to escape, while `: `cd +it must be done _inside_ the command substitution: when running ': `cd +/zorglub` 2>/dev/null' expect the error message to escape, while ': `cd /zorglub 2>/dev/null`' works properly. It is worth noting that Zsh (but not Ash nor Bash) makes it possible -in assignments though: `foo=`cd /zorglub` 2>/dev/null'. +in assignments though: 'foo=`cd /zorglub` 2>/dev/null'. Most shells, if not all (including Bash, Zsh, Ash), output traces on stderr, even for sub-shells. This might result in undesired content if @@ -6295,7 +6256,7 @@ 10.4 File System Conventions ============================ -While `autoconf' and friends will usually be run on some Unix variety, +While 'autoconf' and friends will usually be run on some Unix variety, it can and will be used on other systems, most notably DOS variants. This impacts several assumptions regarding file and path names. @@ -6322,27 +6283,27 @@ Make sure you quote the brackets if appropriate and keep the backslash as first character (*note Limitations of Builtins::). - Also, because the colon is used as part of a drivespec, these -systems don't use it as path separator. When creating or accessing -paths, use `$ac_path_separator' instead (or the `PATH_SEPARATOR' output -variable). `autoconf' sets this to the appropriate value (`:' or `;') -when it starts up. + Also, because the colon is used as part of a drivespec, these systems +don't use it as path separator. When creating or accessing paths, use +'$ac_path_separator' instead (or the 'PATH_SEPARATOR' output variable). +'autoconf' sets this to the appropriate value (':' or ';') when it +starts up. File names need extra care as well. While DOS-based environments -that are Unixy enough to run `autoconf' (such as DJGPP) will usually be +that are Unixy enough to run 'autoconf' (such as DJGPP) will usually be able to handle long file names properly, there are still limitations that can seriously break packages. Several of these issues can be easily detected by the doschk(1) package. A short overview follows; problems are marked with SFN/LFN to indicate where they apply: SFN means the issues are only relevant to -plain DOS, not to DOS boxes under Windows, while LFN identifies -problems that exist even under Windows. +plain DOS, not to DOS boxes under Windows, while LFN identifies problems +that exist even under Windows. No multiple dots (SFN) DOS cannot handle multiple dots in filenames. This is an especially important thing to remember when building a portable - configure script, as `autoconf' uses a .in suffix for template + configure script, as 'autoconf' uses a .in suffix for template files. This is perfectly OK on Unices: @@ -6351,8 +6312,8 @@ AC_CONFIG_FILES([source.c foo.bar]) AC_OUTPUT - but it causes problems on DOS, as it requires `config.h.in', - `source.c.in' and `foo.bar.in'. To make your package more portable + but it causes problems on DOS, as it requires 'config.h.in', + 'source.c.in' and 'foo.bar.in'. To make your package more portable to DOS-based environments, you should use this instead: AC_CONFIG_HEADER(config.h:config.hin) @@ -6361,21 +6322,21 @@ No leading dot (SFN) DOS cannot handle filenames that start with a dot. This is usually - not a very important issue for `autoconf'. + not a very important issue for 'autoconf'. Case insensitivity (LFN) DOS is case insensitive, so you cannot, for example, have both a - file called `INSTALL' and a directory called `install'. This also - affects `make'; if there's a file called `INSTALL' in the - directory, `make install' will do nothing (unless the `install' + file called 'INSTALL' and a directory called 'install'. This also + affects 'make'; if there's a file called 'INSTALL' in the + directory, 'make install' will do nothing (unless the 'install' target is marked as PHONY). The 8+3 limit (SFN) Because the DOS file system only stores the first 8 characters of the filename and the first 3 of the extension, those must be - unique. That means that `foobar-part1.c', `foobar-part2.c' and - `foobar-prettybird.c' all resolve to the same filename - (`FOOBAR-P.C'). The same goes for `foo.bar' and `foo.bartender'. + unique. That means that 'foobar-part1.c', 'foobar-part2.c' and + 'foobar-prettybird.c' all resolve to the same filename + ('FOOBAR-P.C'). The same goes for 'foo.bar' and 'foo.bartender'. Note: This is not usually a problem under Windows, as it uses numeric tails in the short version of filenames to make them @@ -6386,13 +6347,13 @@ Invalid characters Some characters are invalid in DOS filenames, and should therefore - be avoided. In a LFN environment, these are `/', `\', `?', `*', - `:', `<', `>', `|' and `"'. In a SFN environment, other - characters are also invalid. These include `+', `,', `[' and `]'. + be avoided. In a LFN environment, these are '/', '\', '?', '*', + ':', '<', '>', '|' and '"'. In a SFN environment, other characters + are also invalid. These include '+', ',', '[' and ']'. ---------- Footnotes ---------- - (1) doschk, `ftp://ftp.gnu.org/gnu/non-gnu/doschk/doschk-1.1.tar.gz'. + (1) doschk, .  File: autoconf.info, Node: Shell Substitutions, Next: Assignments, Prev: File System Conventions, Up: Portable Shell @@ -6402,7 +6363,7 @@ Contrary to a persistent urban legend, the Bourne shell does not systematically split variables and backquoted expressions, in particular -on the right-hand side of assignments and in the argument of `case'. +on the right-hand side of assignments and in the argument of 'case'. For instance, the following code: case "$given_srcdir" in @@ -6418,24 +6379,24 @@ esac and in fact it is even _more_ portable: in the first case of the first -attempt, the computation of `top_srcdir' is not portable, since not all -shells properly understand `"`..."..."...`"'. Worse yet, not all -shells understand `"`...\"...\"...`"' the same way. There is just no -portable way to use double-quoted strings inside double-quoted -backquoted expressions (pfew!). +attempt, the computation of 'top_srcdir' is not portable, since not all +shells properly understand '"`..."..."...`"'. Worse yet, not all shells +understand '"`...\"...\"...`"' the same way. There is just no portable +way to use double-quoted strings inside double-quoted backquoted +expressions (pfew!). -`$@' +'$@' One of the most famous shell-portability issues is related to - `"$@"': when there are no positional arguments, it is supposed to + '"$@"': when there are no positional arguments, it is supposed to be equivalent to nothing. But some shells, for instance under Digital Unix 4.0 and 5.0, will then replace it with an empty - argument. To be portable, use `${1+"$@"}'. + argument. To be portable, use '${1+"$@"}'. -`${VAR:-VALUE}' - Old BSD shells, including the Ultrix `sh', don't accept the colon +'${VAR:-VALUE}' + Old BSD shells, including the Ultrix 'sh', don't accept the colon for any shell substitution, and complain and die. -`${VAR=LITERAL}' +'${VAR=LITERAL}' Be sure to quote: : ${var='Some words'} @@ -6443,9 +6404,9 @@ otherwise some shells, such as on Digital Unix V 5.0, will die because of a "bad substitution". - Solaris' `/bin/sh' has a frightening bug in its interpretation of - this. Imagine you need set a variable to a string containing `}'. - This `}' character confuses Solaris' `/bin/sh' when the affected + Solaris' '/bin/sh' has a frightening bug in its interpretation of + this. Imagine you need set a variable to a string containing '}'. + This '}' character confuses Solaris' '/bin/sh' when the affected variable was already set. This bug can be exercised by running: $ unset foo @@ -6460,19 +6421,19 @@ }} ^ ugh! - It seems that `}' is interpreted as matching `${', even though it + It seems that '}' is interpreted as matching '${', even though it is enclosed in single quotes. The problem doesn't happen using double quotes. -`${VAR=EXPANDED-VALUE}' +'${VAR=EXPANDED-VALUE}' On Ultrix, running default="yu,yaa" : ${var="$default"} - will set VAR to `M-yM-uM-,M-yM-aM-a', i.e., the 8th bit of each - char will be set. You won't observe the phenomenon using a simple - `echo $var' since apparently the shell resets the 8th bit when it + will set VAR to 'M-yM-uM-,M-yM-aM-a', i.e., the 8th bit of each + char will be set. You won't observe the phenomenon using a simple + 'echo $var' since apparently the shell resets the 8th bit when it expands $var. Here are two means to make this shell confess its sins: @@ -6492,11 +6453,11 @@ echo $c done - You'll get `a b c' on a single line. Why? Because there are no - spaces in `$list': there are `M- ', i.e., spaces with the 8th bit + You'll get 'a b c' on a single line. Why? Because there are no + spaces in '$list': there are 'M- ', i.e., spaces with the 8th bit set, hence no IFS splitting is performed!!! - One piece of good news is that Ultrix works fine with `: + One piece of good news is that Ultrix works fine with ': ${list=$default}'; i.e., if you _don't_ quote. The bad news is then that QNX 4.25 then sets LIST to the _last_ item of DEFAULT! @@ -6505,29 +6466,29 @@ list=${list="$default"} - ...but beware of the `}' bug from Solaris (see above). For safety, + ...but beware of the '}' bug from Solaris (see above). For safety, use: test "${var+set}" = set || var={VALUE} -``COMMANDS`' +'`COMMANDS`' While in general it makes no sense, do not substitute a single builtin with side effects as Ash 0.2, trying to optimize, does not fork a sub-shell to perform the command. - For instance, if you wanted to check that `cd' is silent, do not - use `test -z "`cd /`"' because the following can happen: + For instance, if you wanted to check that 'cd' is silent, do not + use 'test -z "`cd /`"' because the following can happen: $ pwd /tmp $ test -n "`cd /`" && pwd / - The result of `foo=`exit 1`' is left as an exercise to the reader. + The result of 'foo=`exit 1`' is left as an exercise to the reader. -`$(COMMANDS)' - This construct is meant to replace ``COMMANDS`'; they can be - nested while this is impossible to do portably with back quotes. +'$(COMMANDS)' + This construct is meant to replace '`COMMANDS`'; they can be nested + while this is impossible to do portably with back quotes. Unfortunately it is not yet widely supported. Most notably, even recent releases of Solaris don't support it: @@ -6549,9 +6510,9 @@ ================ When setting several variables in a row, be aware that the order of the -evaluation is undefined. For instance `foo=1 foo=2; echo $foo' gives -`1' with sh on Solaris, but `2' with Bash. You must use `;' to enforce -the order: `foo=1; foo=2; echo $foo'. +evaluation is undefined. For instance 'foo=1 foo=2; echo $foo' gives +'1' with sh on Solaris, but '2' with Bash. You must use ';' to enforce +the order: 'foo=1; foo=2; echo $foo'. Don't rely on the exit status of an assignment: Ash 0.2 does not change the status and propagates that of the last statement: @@ -6574,15 +6535,15 @@ : ${var='my literal'} - 2. If the default value contains no closing brace, has to be - expanded, and the variable being initialized will never be - IFS-split (i.e., it's not a list), then use: + 2. If the default value contains no closing brace, has to be expanded, + and the variable being initialized will never be IFS-split (i.e., + it's not a list), then use: : ${var="$default"} - 3. If the default value contains no closing brace, has to be - expanded, and the variable being initialized will be IFS-split - (i.e., it's a list), then use: + 3. If the default value contains no closing brace, has to be expanded, + and the variable being initialized will be IFS-split (i.e., it's a + list), then use: var=${var="$default"} @@ -6590,9 +6551,9 @@ test "${var+set}" = set || var='${indirection}' - In most cases `var=${var="$default"}' is fine, but in case of doubt, -just use the latter. *Note Shell Substitutions::, items -`${VAR:-VALUE}' and `${VAR=VALUE}' for the rationale. + In most cases 'var=${var="$default"}' is fine, but in case of doubt, +just use the latter. *Note Shell Substitutions::, items '${VAR:-VALUE}' +and '${VAR=VALUE}' for the rationale.  File: autoconf.info, Node: Special Shell Variables, Next: Limitations of Builtins, Prev: Assignments, Up: Portable Shell @@ -6602,16 +6563,16 @@ Some shell variables should not be used, since they can have a deep influence on the behavior of the shell. In order to recover a sane -behavior from the shell, some variables should be unset, but `unset' is +behavior from the shell, some variables should be unset, but 'unset' is not portable (*note Limitations of Builtins::) and a fallback value is needed. We list these values below. -`CDPATH' - When this variable is set `cd' is verbose, so idioms such as - `abs=`cd $rel && pwd`' break because `abs' receives the path twice. +'CDPATH' + When this variable is set 'cd' is verbose, so idioms such as + 'abs=`cd $rel && pwd`' break because 'abs' receives the path twice. - Setting `CDPATH' to the empty value is not enough for most shells. - A simple colon is enough except for `zsh', which prefers a leading + Setting 'CDPATH' to the empty value is not enough for most shells. + A simple colon is enough except for 'zsh', which prefers a leading dot: zsh-3.1.6 % mkdir foo && (CDPATH=: cd foo) @@ -6621,79 +6582,80 @@ zsh-3.1.6 % (CDPATH=.: cd foo) zsh-3.1.6 % - (of course we could just `unset' `CDPATH', since it also behaves + (of course we could just 'unset' 'CDPATH', since it also behaves properly if set to the empty string). - Life wouldn't be so much fun if `bash' and `zsh' had the same + Life wouldn't be so much fun if 'bash' and 'zsh' had the same behavior: bash-2.02 % (CDPATH=:. cd foo) bash-2.02 % (CDPATH=.: cd foo) /tmp/foo - Therefore, a portable solution to neutralize `CDPATH' is + Therefore, a portable solution to neutralize 'CDPATH' is CDPATH=${ZSH_VERSION+.}: - Note that since `zsh' supports `unset', you may unset `CDPATH' - using `:' as a fallback, see *note Limitations of Builtins::. + Note that since 'zsh' supports 'unset', you may unset 'CDPATH' + using ':' as a fallback, see *note Limitations of Builtins::. -`IFS' - Don't set the first character of `IFS' to backslash. Indeed, +'IFS' + Don't set the first character of 'IFS' to backslash. Indeed, Bourne shells use the first character (backslash) when joining the - components in `"$@"' and some shells then re-interpret (!) the + components in '"$@"' and some shells then re-interpret (!) the backslash escapes, so you can end up with backspace and other strange characters. -`LANG' -`LC_ALL' -`LC_TIME' -`LC_CTYPE' -`LANGUAGE' -`LC_COLLATE' -`LC_NUMERIC' -`LC_MESSAGES' +'LANG' +'LC_ALL' +'LC_TIME' +'LC_CTYPE' +'LANGUAGE' +'LC_COLLATE' +'LC_NUMERIC' +'LC_MESSAGES' + These must not be set unconditionally because not all systems - understand e.g. `LANG=C' (notably SCO). Fixing `LC_MESSAGES' - prevents Solaris `sh' from translating var values in `set'! Non-C - `LC_CTYPE' values break the ctype check. Fixing `LC_COLLATE' - makes scripts more portable in some cases. For example, it causes - the regular expression `[a-z]' to match only lower-case letters on - ASCII platforms. However, `[a-z]' does not work in general even - when `LC_COLLATE' is fixed; for example, it does not work for + understand e.g. 'LANG=C' (notably SCO). Fixing 'LC_MESSAGES' + prevents Solaris 'sh' from translating var values in 'set'! Non-C + 'LC_CTYPE' values break the ctype check. Fixing 'LC_COLLATE' makes + scripts more portable in some cases. For example, it causes the + regular expression '[a-z]' to match only lower-case letters on + ASCII platforms. However, '[a-z]' does not work in general even + when 'LC_COLLATE' is fixed; for example, it does not work for EBCDIC platforms. For maximum portability, you should use regular - expressions like `[abcdefghijklmnopqrstuvwxyz]' that list + expressions like '[abcdefghijklmnopqrstuvwxyz]' that list characters explicitly instead of relying on ranges. _If_ one of these variables is set, you should try to unset it, - using `C' as a fall back value. see *note Limitations of - Builtins::, builtin `unset', for more details. + using 'C' as a fall back value. see *note Limitations of + Builtins::, builtin 'unset', for more details. -`NULLCMD' - When executing the command `>foo', `zsh' executes `$NULLCMD >foo'. - The Bourne shell considers `NULLCMD' is `:', while `zsh', even in - Bourne shell compatibility mode, sets `NULLCMD' to `cat'. If you - forgot to set `NULLCMD', your script might be suspended waiting - for data on its standard input. - -`status' - This variable is an alias to `$?' for `zsh' (at least 3.1.6), - hence read-only. Do not use it. - -`PATH_SEPARATOR' - On DJGPP systems, the `PATH_SEPARATOR' variable can be set to - either `:' or `;' to control the path separator `bash' uses to set - up certain environment variables (such as `PATH'). Since this only - works inside bash, you want autoconf to detect the regular DOS - path separator `;', so it can be safely substituted in files that - may not support `;' as path separator. So either unset this - variable or set it to `;'. +'NULLCMD' + When executing the command '>foo', 'zsh' executes '$NULLCMD >foo'. + The Bourne shell considers 'NULLCMD' is ':', while 'zsh', even in + Bourne shell compatibility mode, sets 'NULLCMD' to 'cat'. If you + forgot to set 'NULLCMD', your script might be suspended waiting for + data on its standard input. + +'status' + This variable is an alias to '$?' for 'zsh' (at least 3.1.6), hence + read-only. Do not use it. + +'PATH_SEPARATOR' + On DJGPP systems, the 'PATH_SEPARATOR' variable can be set to + either ':' or ';' to control the path separator 'bash' uses to set + up certain environment variables (such as 'PATH'). Since this only + works inside bash, you want autoconf to detect the regular DOS path + separator ';', so it can be safely substituted in files that may + not support ';' as path separator. So either unset this variable + or set it to ';'. -`RANDOM' - Many shells provide `RANDOM', a variable that returns a different +'RANDOM' + Many shells provide 'RANDOM', a variable that returns a different integer when used. Most of the time, its value does not change when it is not used, but on IRIX 6.5 the value changes all the - time. This can be observed by using `set'. + time. This can be observed by using 'set'.  File: autoconf.info, Node: Limitations of Builtins, Next: Limitations of Usual Tools, Prev: Special Shell Variables, Up: Portable Shell @@ -6701,27 +6663,27 @@ 10.8 Limitations of Shell Builtins ================================== -No, no, we are serious: some shells do have limitations! :) +No, no, we are serious: some shells do have limitations! :) You should always keep in mind that any built-in or command may support options, and therefore have a very different behavior with -arguments starting with a dash. For instance, the innocent `echo -"$word"' can give unexpected results when `word' starts with a dash. -It is often possible to avoid this problem using `echo "x$word"', taking -the `x' into account later in the pipe. +arguments starting with a dash. For instance, the innocent 'echo +"$word"' can give unexpected results when 'word' starts with a dash. It +is often possible to avoid this problem using 'echo "x$word"', taking +the 'x' into account later in the pipe. -`!' - You can't use `!', you'll have to rewrite your code. +'!' + You can't use '!', you'll have to rewrite your code. -`break' - The use of `break 2', etcetera, is safe. +'break' + The use of 'break 2', etcetera, is safe. -`case' +'case' You don't need to quote the argument; no splitting is performed. - You don't need the final `;;', but you should use it. + You don't need the final ';;', but you should use it. - Because of a bug in its `fnmatch', `bash' fails to properly handle + Because of a bug in its 'fnmatch', 'bash' fails to properly handle backslashes in character classes: bash-2.02$ case /tmp in [/\\]*) echo OK;; esac @@ -6736,37 +6698,37 @@ bash-2.02$ case /tmp in [\\/]*) echo OK;; esac OK -`echo' - The simple `echo' is probably the most surprising source of - portability troubles. It is not possible to use `echo' portably +'echo' + The simple 'echo' is probably the most surprising source of + portability troubles. It is not possible to use 'echo' portably unless both options and escape sequences are omitted. New applications which are not aiming at portability should use - `printf' instead of `echo'. + 'printf' instead of 'echo'. - Don't expect any option. *Note Preset Output Variables::, `ECHO_N' - etc. for a means to simulate `-c'. + Don't expect any option. *Note Preset Output Variables::, 'ECHO_N' + etc. for a means to simulate '-c'. Do not use backslashes in the arguments, as there is no consensus - on their handling. On `echo '\n' | wc -l', the `sh' of Digital - Unix 4.0, MIPS RISC/OS 4.52, answer 2, but the Solaris' `sh', Bash - and Zsh (in `sh' emulation mode) report 1. Please note that the - problem is truly `echo': all the shells understand `'\n'' as the - string composed of a backslash and an `n'. + on their handling. On 'echo '\n' | wc -l', the 'sh' of Digital + Unix 4.0, MIPS RISC/OS 4.52, answer 2, but the Solaris' 'sh', Bash + and Zsh (in 'sh' emulation mode) report 1. Please note that the + problem is truly 'echo': all the shells understand ''\n'' as the + string composed of a backslash and an 'n'. Because of these problems, do not pass a string containing - arbitrary characters to `echo'. For example, `echo "$foo"' is safe + arbitrary characters to 'echo'. For example, 'echo "$foo"' is safe if you know that FOO's value cannot contain backslashes and cannot - start with `-', but otherwise you should use a here-document like + start with '-', but otherwise you should use a here-document like this: cat </dev/null 2>&1 && ACTION - Use `case' where possible since it is faster, being a shell + Use 'case' where possible since it is faster, being a shell builtin: case $ac_feature in *[!-a-zA-Z0-9_]*) ACTION;; esac - Alas, negated character classes are probably not portable, - although no shell is known to not support the POSIX.2 syntax - `[!...]' (when in interactive mode, `zsh' is confused by the - `[!...]' syntax and looks for an event in its history because of - `!'). Many shells do not support the alternative syntax `[^...]' - (Solaris, Digital Unix, etc.). + Alas, negated character classes are probably not portable, although + no shell is known to not support the POSIX.2 syntax '[!...]' (when + in interactive mode, 'zsh' is confused by the '[!...]' syntax and + looks for an event in its history because of '!'). Many shells do + not support the alternative syntax '[^...]' (Solaris, Digital Unix, + etc.). One solution can be: @@ -6962,24 +6924,24 @@ expr "x$ac_feature" : '.*[^-a-zA-Z0-9_]' >/dev/null && ACTION - `expr "XFOO" : "XBAR"' is more robust than `echo "XFOO" | grep - "^XBAR"', because it avoids problems when `FOO' contains + 'expr "XFOO" : "XBAR"' is more robust than 'echo "XFOO" | grep + "^XBAR"', because it avoids problems when 'FOO' contains backslashes. -`trap' +'trap' It is safe to trap at least the signals 1, 2, 13 and 15. You can - also trap 0, i.e., have the `trap' run when the script ends - (either via an explicit `exit', or the end of the script). + also trap 0, i.e., have the 'trap' run when the script ends (either + via an explicit 'exit', or the end of the script). Although POSIX is not absolutely clear on this point, it is widely - admitted that when entering the trap `$?' should be set to the exit + admitted that when entering the trap '$?' should be set to the exit status of the last command run before the trap. The ambiguity can - be summarized as: "when the trap is launched by an `exit', what is - the _last_ command run: that before `exit', or `exit' itself?" + be summarized as: "when the trap is launched by an 'exit', what is + the _last_ command run: that before 'exit', or 'exit' itself?" - Bash considers `exit' to be the last command, while Zsh and - Solaris 8 `sh' consider that when the trap is run it is _still_ in - the `exit', hence it is the previous exit status that the trap + Bash considers 'exit' to be the last command, while Zsh and Solaris + 8 'sh' consider that when the trap is run it is _still_ in the + 'exit', hence it is the previous exit status that the trap receives: $ cat trap.sh @@ -6990,13 +6952,13 @@ $ bash trap.sh 0 - The portable solution is then simple: when you want to `exit 42', - run `(exit 42); exit 42', the first `exit' being used to set the + The portable solution is then simple: when you want to 'exit 42', + run '(exit 42); exit 42', the first 'exit' being used to set the exit status to 42 for Zsh, and the second to trigger the trap and pass 42 as exit status for Bash. - The shell in FreeBSD 4.0 has the following bug: `$?' is reset to 0 - by empty lines if the code is inside `trap'. + The shell in FreeBSD 4.0 has the following bug: '$?' is reset to 0 + by empty lines if the code is inside 'trap'. $ trap 'false @@ -7004,24 +6966,24 @@ $ exit 0 - Fortunately, this bug only affects `trap'. + Fortunately, this bug only affects 'trap'. -`true' - Don't worry: as far as we know `true' is portable. Nevertheless, +'true' + Don't worry: as far as we know 'true' is portable. Nevertheless, it's not always a builtin (e.g., Bash 1.x), and the portable shell - community tends to prefer using `:'. This has a funny side - effect: when asked whether `false' is more portable than `true' - Alexandre Oliva answered: + community tends to prefer using ':'. This has a funny side effect: + when asked whether 'false' is more portable than 'true' Alexandre + Oliva answered: In a sense, yes, because if it doesn't exist, the shell will produce an exit status of failure, which is correct for - `false', but not for `true'. + 'false', but not for 'true'. -`unset' - You cannot assume the support of `unset', nevertheless, because it +'unset' + You cannot assume the support of 'unset', nevertheless, because it is extremely useful to disable embarrassing variables such as - `CDPATH' or `LANG', you can test for its existence and use it - _provided_ you give a neutralizing value when `unset' is not + 'CDPATH' or 'LANG', you can test for its existence and use it + _provided_ you give a neutralizing value when 'unset' is not supported: if (unset FOO) >/dev/null 2>&1; then @@ -7033,7 +6995,7 @@ *Note Special Shell Variables::, for some neutralizing values. Also, see *note Limitations of Builtins::, documentation of - `export', for the case of environment variables. + 'export', for the case of environment variables.  File: autoconf.info, Node: Limitations of Usual Tools, Next: Limitations of Make, Prev: Limitations of Builtins, Up: Portable Shell @@ -7044,7 +7006,7 @@ The small set of tools you can expect to find on any machine can still include some limitations you should be aware of. -`awk' +'awk' Don't leave white spaces before the parentheses in user functions calls, GNU awk will reject it: @@ -7056,7 +7018,7 @@ BEGIN { die() }' Aaaaarg! - If you want your program to be deterministic, don't depend on `for' + If you want your program to be deterministic, don't depend on 'for' on arrays: $ cat for.awk @@ -7084,70 +7046,70 @@ $ echo bar | $AWK '/^bar|foo/ { print }' bar - Either do not depend on such patterns (i.e., use `/^(.*foo|bar)/', + Either do not depend on such patterns (i.e., use '/^(.*foo|bar)/', or use a simple test to reject such AWK. -`cat' - Don't rely on any option. The option `-v', which displays +'cat' + Don't rely on any option. The option '-v', which displays non-printing characters, _seems_ portable, though. -`cc' - When a compilation such as `cc foo.c -o foo' fails, some compilers - (such as CDS on Reliant UNIX) leave a `foo.o'. +'cc' + When a compilation such as 'cc foo.c -o foo' fails, some compilers + (such as CDS on Reliant UNIX) leave a 'foo.o'. -`cmp' - `cmp' performs a raw data comparison of two files, while `diff' +'cmp' + 'cmp' performs a raw data comparison of two files, while 'diff' compares two text files. Therefore, if you might compare DOS files, even if only checking whether two files are different, use - `diff' to avoid spurious differences due to differences of newline + 'diff' to avoid spurious differences due to differences of newline encoding. -`cp' - SunOS `cp' does not support `-f', although its `mv' does. It's - possible to deduce why `mv' and `cp' are different with respect to - `-f'. `mv' prompts by default before overwriting a read-only - file. `cp' does not. Therefore, `mv' requires a `-f' option, but - `cp' does not. `mv' and `cp' behave differently with respect to - read-only files because the simplest form of `cp' cannot overwrite - a read-only file, but the simplest form of `mv' can. This is - because `cp' opens the target for write access, whereas `mv' - simply calls `link' (or, in newer systems, `rename'). +'cp' + SunOS 'cp' does not support '-f', although its 'mv' does. It's + possible to deduce why 'mv' and 'cp' are different with respect to + '-f'. 'mv' prompts by default before overwriting a read-only file. + 'cp' does not. Therefore, 'mv' requires a '-f' option, but 'cp' + does not. 'mv' and 'cp' behave differently with respect to + read-only files because the simplest form of 'cp' cannot overwrite + a read-only file, but the simplest form of 'mv' can. This is + because 'cp' opens the target for write access, whereas 'mv' simply + calls 'link' (or, in newer systems, 'rename'). -`diff' - Option `-u' is nonportable. +'diff' + Option '-u' is nonportable. Some implementations, such as Tru64's, fail when comparing to - `/dev/null'. Use an empty file instead. + '/dev/null'. Use an empty file instead. -`dirname' - Not all hosts have `dirname', but it is reasonably easy to - emulate, e.g.: +'dirname' + Not all hosts have 'dirname', but it is reasonably easy to emulate, + e.g.: dir=`expr "x$file" : 'x\(.*\)/[^/]*' \| '.' : '.' - But there are a few subtilities, e.g., under UN*X, should `//1' - give `/'? Paul Eggert answers: + But there are a few subtilities, e.g., under UN*X, should '//1' + give '/'? Paul Eggert answers: - No, under some older flavors of Unix, leading `//' is a + No, under some older flavors of Unix, leading '//' is a special path name: it refers to a "super-root" and is used to - access other machines' files. Leading `///', `////', etc. - are equivalent to `/'; but leading `//' is special. I think + access other machines' files. Leading '///', '////', etc. + are equivalent to '/'; but leading '//' is special. I think this tradition started with Apollo Domain/OS, an OS that is still in use on some older hosts. POSIX.2 allows but does not require the special treatment for - `//'. It says that the behavior of dirname on path names of - the form `//([^/]+/*)?' is implementation defined. In these - cases, GNU `dirname' returns `/', but it's more portable to - return `//' as this works even on those older flavors of Unix. + '//'. It says that the behavior of dirname on path names of + the form '//([^/]+/*)?' is implementation defined. In these + cases, GNU 'dirname' returns '/', but it's more portable to + return '//' as this works even on those older flavors of Unix. - I have heard rumors that this special treatment of `//' may be + I have heard rumors that this special treatment of '//' may be dropped in future versions of POSIX, but for now it's still the standard. -`egrep' - The empty alternative is not portable, use `?' instead. For +'egrep' + The empty alternative is not portable, use '?' instead. For instance with Digital Unix v5.0: > printf "foo\n|foo\n" | egrep '^(|foo|bar)$' @@ -7158,42 +7120,42 @@ foo |bar - `egrep' also suffers the limitations of `grep'. + 'egrep' also suffers the limitations of 'grep'. -`expr' - No `expr' keyword starts with `x', so use `expr x"WORD" : - 'xREGEX'' to keep `expr' from misinterpreting WORD. - - Don't use `length', `substr', `match' and `index'. - -`expr' (`|') - You can use `|'. Although POSIX does require that `expr ''' - return the empty string, it does not specify the result when you - `|' together the empty string (or zero) with the empty string. For +'expr' + No 'expr' keyword starts with 'x', so use 'expr x"WORD" : 'xREGEX'' + to keep 'expr' from misinterpreting WORD. + + Don't use 'length', 'substr', 'match' and 'index'. + +'expr' ('|') + You can use '|'. Although POSIX does require that 'expr ''' return + the empty string, it does not specify the result when you '|' + together the empty string (or zero) with the empty string. For example: expr '' \| '' GNU/Linux and POSIX.2-1992 return the empty string for this case, - but traditional Unix returns `0' (Solaris is one such example). - In the latest POSIX draft, the specification has been changed to - match traditional Unix's behavior (which is bizarre, but it's too - late to fix this). Please note that the same problem does arise - when the empty string results from a computation, as in: + but traditional Unix returns '0' (Solaris is one such example). In + the latest POSIX draft, the specification has been changed to match + traditional Unix's behavior (which is bizarre, but it's too late to + fix this). Please note that the same problem does arise when the + empty string results from a computation, as in: expr bar : foo \| foo : bar Avoid this portability problem by avoiding the empty string. -`expr' (`:') - Don't use `\?', `\+' and `\|' in patterns, they are not supported +'expr' (':') + Don't use '\?', '\+' and '\|' in patterns, they are not supported on Solaris. - The POSIX.2-1992 standard is ambiguous as to whether `expr a : b' - (and `expr 'a' : '\(b\)'') output `0' or the empty string. In + The POSIX.2-1992 standard is ambiguous as to whether 'expr a : b' + (and 'expr 'a' : '\(b\)'') output '0' or the empty string. In practice, it outputs the empty string on most platforms, but portable scripts should not assume this. For instance, the QNX - 4.25 native `expr' returns `0'. + 4.25 native 'expr' returns '0'. You may believe that one means to get a uniform behavior would be to use the empty string as a default value: @@ -7201,18 +7163,18 @@ expr a : b \| '' unfortunately this behaves exactly as the original expression, see - the ``expr' (`:')' entry for more information. + the ''expr' (':')' entry for more information. - Older `expr' implementations (e.g. SunOS 4 `expr' and Solaris 8 - `/usr/ucb/expr') have a silly length limit that causes `expr' to + Older 'expr' implementations (e.g. SunOS 4 'expr' and Solaris 8 + '/usr/ucb/expr') have a silly length limit that causes 'expr' to fail if the matched substring is longer than 120 bytes. In this - case, you might want to fall back on `echo|sed' if `expr' fails. + case, you might want to fall back on 'echo|sed' if 'expr' fails. Don't leave, there is some more! - The QNX 4.25 `expr', in addition of preferring `0' to the empty - string, has a funny behavior in its exit status: it's always 1 - when parentheses are used! + The QNX 4.25 'expr', in addition of preferring '0' to the empty + string, has a funny behavior in its exit status: it's always 1 when + parentheses are used! $ val=`expr 'a' : 'a'`; echo "$?: $val" 0: 1 @@ -7225,82 +7187,82 @@ 1: 0 In practice this can be a big problem if you are ready to catch - failures of `expr' programs with some other method (such as using - `sed'), since you may get twice the result. For instance + failures of 'expr' programs with some other method (such as using + 'sed'), since you may get twice the result. For instance $ expr 'a' : '\(a\)' || echo 'a' | sed 's/^\(a\)$/\1/' - will output `a' on most hosts, but `aa' on QNX 4.25. A simple - work around consists in testing `expr' and use a variable set to - `expr' or to `false' according to the result. - -`find' - The option `-maxdepth' seems to be GNU specific. Tru64 v5.1, - NetBSD 1.5 and Solaris 2.5 `find' commands do not understand it. - -`grep' - Don't use `grep -s' to suppress output, because `grep -s' on - System V does not suppress output, only error messages. Instead, - redirect the standard output and standard error (in case the file - doesn't exist) of `grep' to `/dev/null'. Check the exit status of - `grep' to determine whether it found a match. + will output 'a' on most hosts, but 'aa' on QNX 4.25. A simple work + around consists in testing 'expr' and use a variable set to 'expr' + or to 'false' according to the result. + +'find' + The option '-maxdepth' seems to be GNU specific. Tru64 v5.1, + NetBSD 1.5 and Solaris 2.5 'find' commands do not understand it. + +'grep' + Don't use 'grep -s' to suppress output, because 'grep -s' on System + V does not suppress output, only error messages. Instead, redirect + the standard output and standard error (in case the file doesn't + exist) of 'grep' to '/dev/null'. Check the exit status of 'grep' + to determine whether it found a match. - Don't use multiple regexps with `-e', as some `grep' will only + Don't use multiple regexps with '-e', as some 'grep' will only honor the last pattern (eg., IRIX 6.5 and Solaris 2.5.1). Anyway, - Stardent Vistra SVR4 `grep' lacks `-e'... Instead, use - alternation and `egrep'. + Stardent Vistra SVR4 'grep' lacks '-e'... Instead, use alternation + and 'egrep'. -`ln' - Don't rely on `ln' having a `-f' option. Symbolic links are not - available on old systems, use `ln' as a fall back. +'ln' + Don't rely on 'ln' having a '-f' option. Symbolic links are not + available on old systems, use 'ln' as a fall back. - For versions of the DJGPP before 2.04, `ln' emulates soft links - for executables by generating a stub that in turn calls the real + For versions of the DJGPP before 2.04, 'ln' emulates soft links for + executables by generating a stub that in turn calls the real program. This feature also works with nonexistent files like in - the Unix spec. So `ln -s file link' will generate `link.exe', - which will attempt to call `file.exe' if run. But this feature only - works for executables, so `cp -p' is used instead for these + the Unix spec. So 'ln -s file link' will generate 'link.exe', + which will attempt to call 'file.exe' if run. But this feature + only works for executables, so 'cp -p' is used instead for these systems. DJGPP versions 2.04 and later have full symlink support. -`mv' - The only portable options are `-f' and `-i'. +'mv' + The only portable options are '-f' and '-i'. - Moving individual files between file systems is portable (it was - in V6), but it is not always atomic: when doing `mv new existing', + Moving individual files between file systems is portable (it was in + V6), but it is not always atomic: when doing 'mv new existing', there's a critical section where neither the old nor the new - version of `existing' actually exists. + version of 'existing' actually exists. - Moving directories across mount points is not portable, use `cp' - and `rm'. + Moving directories across mount points is not portable, use 'cp' + and 'rm'. -`sed' - Patterns should not include the separator (unless escaped), even - as part of a character class. In conformance with POSIX, the Cray - `sed' will reject `s/[^/]*$//': use `s,[^/]*$,,'. +'sed' + Patterns should not include the separator (unless escaped), even as + part of a character class. In conformance with POSIX, the Cray + 'sed' will reject 's/[^/]*$//': use 's,[^/]*$,,'. Sed scripts should not use branch labels longer than 8 characters and should not contain comments. - Don't include extra `;', as some `sed', such as NetBSD 1.4.2's, - try to interpret the second as a command: + Don't include extra ';', as some 'sed', such as NetBSD 1.4.2's, try + to interpret the second as a command: $ echo a | sed 's/x/x/;;s/x/x/' sed: 1: "s/x/x/;;s/x/x/": invalid command code ; - Input should have reasonably long lines, since some `sed' have an + Input should have reasonably long lines, since some 'sed' have an input buffer limited to 4000 bytes. - Alternation, `\|', is common but not portable. Anchors (`^' and - `$') inside groups are not portable. + Alternation, '\|', is common but not portable. Anchors ('^' and + '$') inside groups are not portable. Nested groups are extremely portable, but there is at least one - `sed' (System V/68 Base Operating System R3V7.1) that does not + 'sed' (System V/68 Base Operating System R3V7.1) that does not support it. - Of course the option `-e' is portable, but it is not needed. No + Of course the option '-e' is portable, but it is not needed. No valid Sed program can start with a dash, so it does not help - disambiguating. Its sole usefulness is helping enforcing - indenting as in: + disambiguating. Its sole usefulness is helping enforcing indenting + as in: sed -e INSTRUCTION-1 \ -e INSTRUCTION-2 @@ -7309,13 +7271,13 @@ sed INSTRUCTION-1;INSTRUCTION-2 - Contrary to yet another urban legend, you may portably use `&' in - the replacement part of the `s' command to mean "what was matched". + Contrary to yet another urban legend, you may portably use '&' in + the replacement part of the 's' command to mean "what was matched". -`sed' (`t') - Some old systems have `sed' that "forget" to reset their `t' flag +'sed' ('t') + Some old systems have 'sed' that "forget" to reset their 't' flag when starting a new cycle. For instance on MIPS RISC/OS, and on - IRIX 5.3, if you run the following `sed' script (the line numbers + IRIX 5.3, if you run the following 'sed' script (the line numbers are not actual part of the texts): s/keep me/kept/g # a @@ -7344,23 +7306,23 @@ kept deleted - Why? When processing 1, a matches, therefore sets the t flag, b + Why? When processing 1, a matches, therefore sets the t flag, b jumps to d, and the output is produced. When processing line 2, the t flag is still set (this is the bug). Line a fails to match, - but `sed' is not supposed to clear the t flag when a substitution + but 'sed' is not supposed to clear the t flag when a substitution fails. Line b sees that the flag is set, therefore it clears it, - and jumps to d, hence you get `delete me' instead of `deleted'. + and jumps to d, hence you get 'delete me' instead of 'deleted'. When processing 3 t is clear, a matches, so the flag is set, hence b clears the flags and jumps. Finally, since the flag is clear, 4 is processed properly. - There are two things one should remind about `t' in `sed'. - Firstly, always remember that `t' jumps if _some_ substitution + There are two things one should remind about 't' in 'sed'. + Firstly, always remember that 't' jumps if _some_ substitution succeeded, not only the immediately preceding substitution, - therefore, always use a fake `t clear; : clear' to reset the t - flag where indeed. + therefore, always use a fake 't clear; : clear' to reset the t flag + where indeed. - Secondly, you cannot rely on `sed' to clear the flag at each new + Secondly, you cannot rely on 'sed' to clear the flag at each new cycle. One portable implementation of the script above is: @@ -7372,14 +7334,13 @@ s/.*/deleted/g : end -`touch' - On some old BSD systems, `touch' or any command that results in an +'touch' + On some old BSD systems, 'touch' or any command that results in an empty file does not update the timestamps, so use a command like - `echo' as a workaround. - - GNU `touch' 3.16r (and presumably all before that) fails to work - on SunOS 4.1.3 when the empty file is on an NFS-mounted 4.2 volume. + 'echo' as a workaround. + GNU 'touch' 3.16r (and presumably all before that) fails to work on + SunOS 4.1.3 when the empty file is on an NFS-mounted 4.2 volume.  File: autoconf.info, Node: Limitations of Make, Prev: Limitations of Usual Tools, Up: Portable Shell @@ -7392,8 +7353,8 @@ executed by the shell, all its weaknesses are inherited... Leading underscore in macro names - Some Make don't support leading underscores in macro names, such - as on NEWS-OS 4.2R. + Some Make don't support leading underscores in macro names, such as + on NEWS-OS 4.2R. $ cat Makefile _am_include = # @@ -7411,9 +7372,9 @@ $ make -f Makefile2 this is test -`VPATH' - Don't use it! For instance any assignment to `VPATH' causes Sun - `make' to only execute the first set of double-colon rules. +'VPATH' + Don't use it! For instance any assignment to 'VPATH' causes Sun + 'make' to only execute the first set of double-colon rules.  File: autoconf.info, Node: Manual Configuration, Next: Site Configuration, Prev: Portable Shell, Up: Top @@ -7425,7 +7386,7 @@ programs. For example, the details of the object-file format, or special options that need to be passed to the compiler or linker. You can check for such features using ad-hoc means, such as having -`configure' check the output of the `uname' program, or looking for +'configure' check the output of the 'uname' program, or looking for libraries that are unique to particular systems. However, Autoconf provides a uniform method for handling unguessable features. @@ -7441,71 +7402,70 @@ 11.1 Specifying the System Type =============================== -Like other GNU `configure' scripts, Autoconf-generated `configure' +Like other GNU 'configure' scripts, Autoconf-generated 'configure' scripts can make decisions based on a canonical name for the system -type, which has the form: `CPU-VENDOR-OS', where OS can be `SYSTEM' or -`KERNEL-SYSTEM' +type, which has the form: 'CPU-VENDOR-OS', where OS can be 'SYSTEM' or +'KERNEL-SYSTEM' - `configure' can usually guess the canonical name for the type of + 'configure' can usually guess the canonical name for the type of system it's running on. To do so it runs a script called -`config.guess', which infers the name using the `uname' command or +'config.guess', which infers the name using the 'uname' command or symbols predefined by the C preprocessor. Alternately, the user can specify the system type with command line -arguments to `configure'. Doing so is necessary when cross-compiling. +arguments to 'configure'. Doing so is necessary when cross-compiling. In the most complex case of cross-compiling, three system types are involved. The options to specify them are(1): -`--build=BUILD-TYPE' +'--build=BUILD-TYPE' the type of system on which the package is being configured and compiled. -`--host=HOST-TYPE' +'--host=HOST-TYPE' the type of system on which the package will run. -`--target=TARGET-TYPE' +'--target=TARGET-TYPE' the type of system for which any compiler tools in the package will produce code (rarely needed). By default, it is the same as host. - They all default to the result of running `config.guess', unless you -specify either `--build' or `--host'. In this case, the default -becomes the system type you specified. If you specify both, and -they're different, `configure' will enter cross compilation mode, so it -won't run any tests that require execution. - - Hint: if you mean to override the result of `config.guess', prefer -`--build' over `--host'. In the future, `--host' will not override the -name of the build system type. Also, if you specify `--host', but not -`--build', when `configure' performs the first compiler test it will -try to run an executable produced by the compiler. If the execution -fails, it will enter cross-compilation mode. Note, however, that it -won't guess the build-system type, since this may require running test + They all default to the result of running 'config.guess', unless you +specify either '--build' or '--host'. In this case, the default becomes +the system type you specified. If you specify both, and they're +different, 'configure' will enter cross compilation mode, so it won't +run any tests that require execution. + + Hint: if you mean to override the result of 'config.guess', prefer +'--build' over '--host'. In the future, '--host' will not override the +name of the build system type. Also, if you specify '--host', but not +'--build', when 'configure' performs the first compiler test it will try +to run an executable produced by the compiler. If the execution fails, +it will enter cross-compilation mode. Note, however, that it won't +guess the build-system type, since this may require running test programs. Moreover, by the time the compiler test is performed, it may be too late to modify the build-system type: other tests may have -already been performed. Therefore, whenever you specify `--host', be -sure to specify `--build' too. +already been performed. Therefore, whenever you specify '--host', be +sure to specify '--build' too. ./configure --build=i686-pc-linux-gnu --host=m68k-coff -will enter cross-compilation mode, but `configure' will fail if it -can't run the code generated by the specified compiler if you configure -as follows: +will enter cross-compilation mode, but 'configure' will fail if it can't +run the code generated by the specified compiler if you configure as +follows: ./configure CC=m68k-coff-gcc - `configure' recognizes short aliases for many system types; for -example, `decstation' can be used instead of `mips-dec-ultrix4.2'. -`configure' runs a script called `config.sub' to canonicalize system + 'configure' recognizes short aliases for many system types; for +example, 'decstation' can be used instead of 'mips-dec-ultrix4.2'. +'configure' runs a script called 'config.sub' to canonicalize system type aliases. ---------- Footnotes ---------- - (1) For backward compatibility, `configure' will accept a system -type as an option by itself. Such an option will override the defaults -for build, host and target system types. The following configure -statement will configure a cross toolchain that will run on -NetBSD/alpha but generate code for GNU Hurd/sparc, which is also the -build platform. + (1) For backward compatibility, 'configure' will accept a system type +as an option by itself. Such an option will override the defaults for +build, host and target system types. The following configure statement +will configure a cross toolchain that will run on NetBSD/alpha but +generate code for GNU Hurd/sparc, which is also the build platform. ./configure --host=alpha-netbsd sparc-gnu @@ -7515,13 +7475,13 @@ 11.2 Getting the Canonical System Type ====================================== -The following macros make the system type available to `configure' +The following macros make the system type available to 'configure' scripts. - The variables `build_alias', `host_alias', and `target_alias' are -always exactly the arguments of `--build', `--host', and `--target'; in + The variables 'build_alias', 'host_alias', and 'target_alias' are +always exactly the arguments of '--build', '--host', and '--target'; in particular, they are left empty if the user did not use them, even if -the corresponding `AC_CANONICAL' macro was run. Any configure script +the corresponding 'AC_CANONICAL' macro was run. Any configure script may use these variables anywhere. These are the variables that should be used when in interaction with the user. @@ -7529,39 +7489,38 @@ system type, run the following macros to get canonical system names. These variables are not set before the macro call. - If you use these macros, you must distribute `config.guess' and -`config.sub' along with your source code. *Note Output::, for -information about the `AC_CONFIG_AUX_DIR' macro which you can use to -control in which directory `configure' looks for those scripts. + If you use these macros, you must distribute 'config.guess' and +'config.sub' along with your source code. *Note Output::, for +information about the 'AC_CONFIG_AUX_DIR' macro which you can use to +control in which directory 'configure' looks for those scripts. -- Macro: AC_CANONICAL_BUILD - Compute the canonical build-system type variable, `build', and its - three individual parts `build_cpu', `build_vendor', and `build_os'. + Compute the canonical build-system type variable, 'build', and its + three individual parts 'build_cpu', 'build_vendor', and 'build_os'. - If `--build' was specified, then `build' is the canonicalization - of `build_alias' by `config.sub', otherwise it is determined by - the shell script `config.guess'. + If '--build' was specified, then 'build' is the canonicalization of + 'build_alias' by 'config.sub', otherwise it is determined by the + shell script 'config.guess'. -- Macro: AC_CANONICAL_HOST - Compute the canonical host-system type variable, `host', and its - three individual parts `host_cpu', `host_vendor', and `host_os'. + Compute the canonical host-system type variable, 'host', and its + three individual parts 'host_cpu', 'host_vendor', and 'host_os'. - If `--host' was specified, then `host' is the canonicalization of - `host_alias' by `config.sub', otherwise it defaults to `build'. - - For temporary backward-compatibility, when `--host' is specified - by `--build' isn't, the build system will be assumed to be the - same as `--host', and `build_alias' will be set to that value. - Eventually, this historically incorrect behavior will go away. + If '--host' was specified, then 'host' is the canonicalization of + 'host_alias' by 'config.sub', otherwise it defaults to 'build'. + For temporary backward-compatibility, when '--host' is specified by + '--build' isn't, the build system will be assumed to be the same as + '--host', and 'build_alias' will be set to that value. Eventually, + this historically incorrect behavior will go away. -- Macro: AC_CANONICAL_TARGET - Compute the canonical target-system type variable, `target', and - its three individual parts `target_cpu', `target_vendor', and - `target_os'. + Compute the canonical target-system type variable, 'target', and + its three individual parts 'target_cpu', 'target_vendor', and + 'target_os'. - If `--target' was specified, then `target' is the canonicalization - of `target_alias' by `config.sub', otherwise it defaults to `host'. + If '--target' was specified, then 'target' is the canonicalization + of 'target_alias' by 'config.sub', otherwise it defaults to 'host'.  File: autoconf.info, Node: Using System Type, Prev: Canonicalizing, Up: Manual Configuration @@ -7570,12 +7529,12 @@ ========================== How do you use a canonical system type? Usually, you use it in one or -more `case' statements in `configure.ac' to select system-specific C -files. Then, using `AC_CONFIG_LINKS', link those files which have -names based on the system name, to generic names, such as `host.h' or -`target.c' (*note Configuration Links::). The `case' statement -patterns can use shell wild cards to group several cases together, like -in this fragment: +more 'case' statements in 'configure.ac' to select system-specific C +files. Then, using 'AC_CONFIG_LINKS', link those files which have names +based on the system name, to generic names, such as 'host.h' or +'target.c' (*note Configuration Links::). The 'case' statement patterns +can use shell wild cards to group several cases together, like in this +fragment: case "$target" in i386-*-mach* | i386-*-gnu*) @@ -7583,14 +7542,14 @@ i960-*-bout) obj_format=bout ;; esac -and in `configure.ac', use: +and in 'configure.ac', use: AC_CONFIG_LINKS(host.h:config/$machine.h object.h:config/$obj_format.h) You can also use the host system type to find cross-compilation tools. *Note Generic Programs::, for information about the -`AC_CHECK_TOOL' macro which does that. +'AC_CHECK_TOOL' macro which does that.  File: autoconf.info, Node: Site Configuration, Next: Running configure scripts, Prev: Manual Configuration, Up: Top @@ -7598,10 +7557,10 @@ 12 Site Configuration ********************* -`configure' scripts support several kinds of local configuration +'configure' scripts support several kinds of local configuration decisions. There are ways for users to specify where external software packages are, include or exclude optional features, install programs -under modified names, and set default values for `configure' options. +under modified names, and set default values for 'configure' options. * Menu: @@ -7610,7 +7569,7 @@ * Pretty Help Strings:: Formating help string * Site Details:: Configuring site details * Transforming Names:: Changing program names when installing -* Site Defaults:: Giving `configure' local defaults +* Site Defaults:: Giving 'configure' local defaults  File: autoconf.info, Node: External Software, Next: Package Options, Prev: Site Configuration, Up: Site Configuration @@ -7619,67 +7578,67 @@ =================================== Some packages require, or can optionally use, other software packages -that are already installed. The user can give `configure' command line +that are already installed. The user can give 'configure' command line options to specify which such external software to use. The options have one of these forms: --with-PACKAGE=[ARG] --without-PACKAGE - For example, `--with-gnu-ld' means work with the GNU linker instead -of some other linker. `--with-x' means work with The X Window System. + For example, '--with-gnu-ld' means work with the GNU linker instead +of some other linker. '--with-x' means work with The X Window System. - The user can give an argument by following the package name with `=' -and the argument. Giving an argument of `no' is for packages that are + The user can give an argument by following the package name with '=' +and the argument. Giving an argument of 'no' is for packages that are used by default; it says to _not_ use the package. An argument that is -neither `yes' nor `no' could include a name or number of a version of +neither 'yes' nor 'no' could include a name or number of a version of the other package, to specify more precisely which other package this program is supposed to work with. If no argument is given, it defaults -to `yes'. `--without-PACKAGE' is equivalent to `--with-PACKAGE=no'. +to 'yes'. '--without-PACKAGE' is equivalent to '--with-PACKAGE=no'. - `configure' scripts do not complain about `--with-PACKAGE' options + 'configure' scripts do not complain about '--with-PACKAGE' options that they do not support. This behavior permits configuring a source -tree containing multiple packages with a top-level `configure' script +tree containing multiple packages with a top-level 'configure' script when the packages support different options, without spurious error messages about options that some of the packages support. An unfortunate side effect is that option spelling errors are not diagnosed. No better approach to this problem has been suggested so far. - For each external software package that may be used, `configure.ac' -should call `AC_ARG_WITH' to detect whether the `configure' user asked + For each external software package that may be used, 'configure.ac' +should call 'AC_ARG_WITH' to detect whether the 'configure' user asked to use it. Whether each package is used or not by default, and which arguments are valid, is up to you. -- Macro: AC_ARG_WITH (PACKAGE, HELP-STRING, [ACTION-IF-GIVEN], [ACTION-IF-NOT-GIVEN]) - If the user gave `configure' the option `--with-PACKAGE' or - `--without-PACKAGE', run shell commands ACTION-IF-GIVEN. If + If the user gave 'configure' the option '--with-PACKAGE' or + '--without-PACKAGE', run shell commands ACTION-IF-GIVEN. If neither option was given, run shell commands ACTION-IF-NOT-GIVEN. The name PACKAGE indicates another software package that this program should work with. It should consist only of alphanumeric characters and dashes. The option's argument is available to the shell commands - ACTION-IF-GIVEN in the shell variable `withval', which is actually - just the value of the shell variable `with_PACKAGE', with any `-' - characters changed into `_'. You may use that variable instead, - if you wish. + ACTION-IF-GIVEN in the shell variable 'withval', which is actually + just the value of the shell variable 'with_PACKAGE', with any '-' + characters changed into '_'. You may use that variable instead, if + you wish. The argument HELP-STRING is a description of the option that looks like this: --with-readline support fancy command line editing HELP-STRING may be more than one line long, if more detail is - needed. Just make sure the columns line up in `configure --help'. - Avoid tabs in the help string. You'll need to enclose it in `[' - and `]' in order to produce the leading spaces. + needed. Just make sure the columns line up in 'configure --help'. + Avoid tabs in the help string. You'll need to enclose it in '[' + and ']' in order to produce the leading spaces. - You should format your HELP-STRING with the macro `AC_HELP_STRING' + You should format your HELP-STRING with the macro 'AC_HELP_STRING' (*note Pretty Help Strings::). -- Macro: AC_WITH (PACKAGE, ACTION-IF-GIVEN, [ACTION-IF-NOT-GIVEN]) - This is an obsolete version of `AC_ARG_WITH' that does not support + This is an obsolete version of 'AC_ARG_WITH' that does not support providing a help string.  @@ -7689,57 +7648,57 @@ ============================= If a software package has optional compile-time features, the user can -give `configure' command line options to specify whether to compile +give 'configure' command line options to specify whether to compile them. The options have one of these forms: --enable-FEATURE=[ARG] --disable-FEATURE These options allow users to choose which optional features to build -and install. `--enable-FEATURE' options should never make a feature -behave differently or cause one feature to replace another. They -should only cause parts of the program to be built rather than left out. +and install. '--enable-FEATURE' options should never make a feature +behave differently or cause one feature to replace another. They should +only cause parts of the program to be built rather than left out. - The user can give an argument by following the feature name with `=' -and the argument. Giving an argument of `no' requests that the feature + The user can give an argument by following the feature name with '=' +and the argument. Giving an argument of 'no' requests that the feature _not_ be made available. A feature with an argument looks like -`--enable-debug=stabs'. If no argument is given, it defaults to `yes'. -`--disable-FEATURE' is equivalent to `--enable-FEATURE=no'. +'--enable-debug=stabs'. If no argument is given, it defaults to 'yes'. +'--disable-FEATURE' is equivalent to '--enable-FEATURE=no'. - `configure' scripts do not complain about `--enable-FEATURE' options + 'configure' scripts do not complain about '--enable-FEATURE' options that they do not support. This behavior permits configuring a source -tree containing multiple packages with a top-level `configure' script +tree containing multiple packages with a top-level 'configure' script when the packages support different options, without spurious error messages about options that some of the packages support. An unfortunate side effect is that option spelling errors are not diagnosed. No better approach to this problem has been suggested so far. - For each optional feature, `configure.ac' should call -`AC_ARG_ENABLE' to detect whether the `configure' user asked to include -it. Whether each feature is included or not by default, and which -arguments are valid, is up to you. + For each optional feature, 'configure.ac' should call 'AC_ARG_ENABLE' +to detect whether the 'configure' user asked to include it. Whether +each feature is included or not by default, and which arguments are +valid, is up to you. -- Macro: AC_ARG_ENABLE (FEATURE, HELP-STRING, [ACTION-IF-GIVEN], [ACTION-IF-NOT-GIVEN]) - If the user gave `configure' the option `--enable-FEATURE' or - `--disable-FEATURE', run shell commands ACTION-IF-GIVEN. If + If the user gave 'configure' the option '--enable-FEATURE' or + '--disable-FEATURE', run shell commands ACTION-IF-GIVEN. If neither option was given, run shell commands ACTION-IF-NOT-GIVEN. The name FEATURE indicates an optional user-level facility. It should consist only of alphanumeric characters and dashes. The option's argument is available to the shell commands - ACTION-IF-GIVEN in the shell variable `enableval', which is - actually just the value of the shell variable `enable_FEATURE', - with any `-' characters changed into `_'. You may use that + ACTION-IF-GIVEN in the shell variable 'enableval', which is + actually just the value of the shell variable 'enable_FEATURE', + with any '-' characters changed into '_'. You may use that variable instead, if you wish. The HELP-STRING argument is like - that of `AC_ARG_WITH' (*note External Software::). + that of 'AC_ARG_WITH' (*note External Software::). - You should format your HELP-STRING with the macro `AC_HELP_STRING' + You should format your HELP-STRING with the macro 'AC_HELP_STRING' (*note Pretty Help Strings::). -- Macro: AC_ENABLE (FEATURE, ACTION-IF-GIVEN, [ACTION-IF-NOT-GIVEN]) - This is an obsolete version of `AC_ARG_ENABLE' that does not + This is an obsolete version of 'AC_ARG_ENABLE' that does not support providing a help string.  @@ -7748,17 +7707,18 @@ 12.3 Making Your Help Strings Look Pretty ========================================= -Properly formatting the `help strings' which are used in `AC_ARG_WITH' -(*note External Software::) and `AC_ARG_ENABLE' (*note Package -Options::) can be challenging. Specifically, you want your own `help -strings' to line up in the appropriate columns of `configure --help' -just like the standard Autoconf `help strings' do. This is the purpose -of the `AC_HELP_STRING' macro. +Properly formatting the 'help strings' which are used in 'AC_ARG_WITH' +(*note External Software::) and 'AC_ARG_ENABLE' (*note Package +Options::) can be challenging. Specifically, you want your own 'help +strings' to line up in the appropriate columns of 'configure --help' +just like the standard Autoconf 'help strings' do. This is the purpose +of the 'AC_HELP_STRING' macro. -- Macro: AC_HELP_STRING (LEFT-HAND-SIDE, RIGHT-HAND-SIDE) + Expands into an help string that looks pretty when the user - executes `configure --help'. It is typically used in `AC_ARG_WITH' - (*note External Software::) or `AC_ARG_ENABLE' (*note Package + executes 'configure --help'. It is typically used in 'AC_ARG_WITH' + (*note External Software::) or 'AC_ARG_ENABLE' (*note Package Options::). The following example will make this clearer. AC_DEFUN(TEST_MACRO, @@ -7769,13 +7729,13 @@ AC_CACHE_CHECK(whether to use foo, ac_cv_use_foo, ac_cv_use_foo=no)]) - Please note that the call to `AC_HELP_STRING' is *unquoted*. Then - the last few lines of `configure --help' will appear like this: + Please note that the call to 'AC_HELP_STRING' is *unquoted*. Then + the last few lines of 'configure --help' will appear like this: --enable and --with options recognized: --with-foo use foo (default is NO) - The `AC_HELP_STRING' macro is particularly helpful when the + The 'AC_HELP_STRING' macro is particularly helpful when the LEFT-HAND-SIDE and/or RIGHT-HAND-SIDE are composed of macro arguments, as shown in the following example. @@ -7800,8 +7760,8 @@ Such site configuration information should be put in a file that is edited _only by users_, not by programs. The location of the file can -either be based on the `prefix' variable, or be a standard location -such as the user's home directory. It could even be specified by an +either be based on the 'prefix' variable, or be a standard location such +as the user's home directory. It could even be specified by an environment variable. The programs should examine that file at run time, rather than at compile time. Run time configuration is more convenient for users and makes the configuration process simpler than @@ -7816,25 +7776,25 @@ =============================================== Autoconf supports changing the names of programs when installing them. -In order to use these transformations, `configure.ac' must call the -macro `AC_ARG_PROGRAM'. +In order to use these transformations, 'configure.ac' must call the +macro 'AC_ARG_PROGRAM'. -- Macro: AC_ARG_PROGRAM - Place in output variable `program_transform_name' a sequence of - `sed' commands for changing the names of installed programs. + Place in output variable 'program_transform_name' a sequence of + 'sed' commands for changing the names of installed programs. - If any of the options described below are given to `configure', + If any of the options described below are given to 'configure', program names are transformed accordingly. Otherwise, if - `AC_CANONICAL_TARGET' has been called and a `--target' value is - given that differs from the host type (specified with `--host'), - the target type followed by a dash is used as a prefix. - Otherwise, no program name transformation is done. + 'AC_CANONICAL_TARGET' has been called and a '--target' value is + given that differs from the host type (specified with '--host'), + the target type followed by a dash is used as a prefix. Otherwise, + no program name transformation is done. * Menu: -* Transformation Options:: `configure' options to transform names +* Transformation Options:: 'configure' options to transform names * Transformation Examples:: Sample uses of transforming names -* Transformation Rules:: `Makefile' uses of transforming names +* Transformation Rules:: 'Makefile' uses of transforming names  File: autoconf.info, Node: Transformation Options, Next: Transformation Examples, Prev: Transforming Names, Up: Transforming Names @@ -7842,17 +7802,17 @@ 12.5.1 Transformation Options ----------------------------- -You can specify name transformations by giving `configure' these -command line options: +You can specify name transformations by giving 'configure' these command +line options: -`--program-prefix=PREFIX' +'--program-prefix=PREFIX' prepend PREFIX to the names; -`--program-suffix=SUFFIX' +'--program-suffix=SUFFIX' append SUFFIX to the names; -`--program-transform-name=EXPRESSION' - perform `sed' substitution EXPRESSION on the names. +'--program-transform-name=EXPRESSION' + perform 'sed' substitution EXPRESSION on the names.  File: autoconf.info, Node: Transformation Examples, Next: Transformation Rules, Prev: Transformation Options, Up: Transforming Names @@ -7863,29 +7823,30 @@ These transformations are useful with programs that can be part of a cross-compilation development environment. For example, a cross-assembler running on a Sun 4 configured with -`--target=i960-vxworks' is normally installed as `i960-vxworks-as', -rather than `as', which could be confused with a native Sun 4 assembler. +'--target=i960-vxworks' is normally installed as 'i960-vxworks-as', +rather than 'as', which could be confused with a native Sun 4 assembler. - You can force a program name to begin with `g', if you don't want -GNU programs installed on your system to shadow other programs with the -same name. For example, if you configure GNU `diff' with -`--program-prefix=g', then when you run `make install' it is installed -as `/usr/local/bin/gdiff'. + You can force a program name to begin with 'g', if you don't want GNU +programs installed on your system to shadow other programs with the same +name. For example, if you configure GNU 'diff' with +'--program-prefix=g', then when you run 'make install' it is installed +as '/usr/local/bin/gdiff'. As a more sophisticated example, you could use --program-transform-name='s/^/g/; s/^gg/g/; s/^gless/less/' - to prepend `g' to most of the program names in a source tree, -excepting those like `gdb' that already have one and those like `less' -and `lesskey' that aren't GNU programs. (That is assuming that you -have a source tree containing those programs that is set up to use this + + to prepend 'g' to most of the program names in a source tree, +excepting those like 'gdb' that already have one and those like 'less' +and 'lesskey' that aren't GNU programs. (That is assuming that you have +a source tree containing those programs that is set up to use this feature.) One way to install multiple versions of some programs simultaneously is to append a version number to the name of one or both. For example, if you want to keep Autoconf version 1 around for awhile, you can -configure Autoconf version 2 using `--program-suffix=2' to install the -programs as `/usr/local/bin/autoconf2', `/usr/local/bin/autoheader2', +configure Autoconf version 2 using '--program-suffix=2' to install the +programs as '/usr/local/bin/autoconf2', '/usr/local/bin/autoheader2', etc. Nevertheless, pay attention that only the binaries are renamed, therefore you'd have problems with the library files which might overlap. @@ -7896,8 +7857,8 @@ 12.5.3 Transformation Rules --------------------------- -Here is how to use the variable `program_transform_name' in a -`Makefile.in': +Here is how to use the variable 'program_transform_name' in a +'Makefile.in': transform = @program_transform_name@ install: all @@ -7921,22 +7882,21 @@ rm -f $(bindir)/`echo $$p | sed '$(transform)'`; \ done - It is guaranteed that `program_transform_name' is never empty, and + It is guaranteed that 'program_transform_name' is never empty, and that there are no useless separators. Therefore you may safely embed -`program_transform_name' within a sed program using `;': +'program_transform_name' within a sed program using ';': transform = @program_transform_name@ transform_exe = s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/ Whether to do the transformations on documentation files (Texinfo or -`man') is a tricky question; there seems to be no perfect answer, due -to the several reasons for name transforming. Documentation is not -usually particular to a specific architecture, and Texinfo files do not -conflict with system documentation. But they might conflict with -earlier versions of the same files, and `man' pages sometimes do -conflict with system documentation. As a compromise, it is probably -best to do name transformations on `man' pages but not on Texinfo -manuals. +'man') is a tricky question; there seems to be no perfect answer, due to +the several reasons for name transforming. Documentation is not usually +particular to a specific architecture, and Texinfo files do not conflict +with system documentation. But they might conflict with earlier +versions of the same files, and 'man' pages sometimes do conflict with +system documentation. As a compromise, it is probably best to do name +transformations on 'man' pages but not on Texinfo manuals.  File: autoconf.info, Node: Site Defaults, Prev: Transforming Names, Up: Site Configuration @@ -7944,63 +7904,62 @@ 12.6 Setting Site Defaults ========================== -Autoconf-generated `configure' scripts allow your site to provide +Autoconf-generated 'configure' scripts allow your site to provide default values for some configuration values. You do this by creating site- and system-wide initialization files. - If the environment variable `CONFIG_SITE' is set, `configure' uses + If the environment variable 'CONFIG_SITE' is set, 'configure' uses its value as the name of a shell script to read. Otherwise, it reads -the shell script `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Thus, settings in +the shell script 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Thus, settings in machine-specific files override those in machine-independent ones in case of conflict. Site files can be arbitrary shell scripts, but only certain kinds of -code are really appropriate to be in them. Because `configure' reads +code are really appropriate to be in them. Because 'configure' reads any cache file after it has read any site files, a site file can define a default cache file to be shared between all Autoconf-generated -`configure' scripts run on that system (*note Cache Files::). If you +'configure' scripts run on that system (*note Cache Files::). If you set a default cache file in a site file, it is a good idea to also set -the output variable `CC' in that site file, because the cache file is +the output variable 'CC' in that site file, because the cache file is only valid for a particular compiler, but many systems have several available. You can examine or override the value set by a command line option to -`configure' in a site file; options set shell variables that have the -same names as the options, with any dashes turned into underscores. -The exceptions are that `--without-' and `--disable-' options are like -giving the corresponding `--with-' or `--enable-' option and the value -`no'. Thus, `--cache-file=localcache' sets the variable `cache_file' -to the value `localcache'; `--enable-warnings=no' or -`--disable-warnings' sets the variable `enable_warnings' to the value -`no'; `--prefix=/usr' sets the variable `prefix' to the value `/usr'; -etc. +'configure' in a site file; options set shell variables that have the +same names as the options, with any dashes turned into underscores. The +exceptions are that '--without-' and '--disable-' options are like +giving the corresponding '--with-' or '--enable-' option and the value +'no'. Thus, '--cache-file=localcache' sets the variable 'cache_file' to +the value 'localcache'; '--enable-warnings=no' or '--disable-warnings' +sets the variable 'enable_warnings' to the value 'no'; '--prefix=/usr' +sets the variable 'prefix' to the value '/usr'; etc. Site files are also good places to set default values for other -output variables, such as `CFLAGS', if you need to give them non-default +output variables, such as 'CFLAGS', if you need to give them non-default values: anything you would normally do, repetitively, on the command -line. If you use non-default values for PREFIX or EXEC_PREFIX -(wherever you locate the site file), you can set them in the site file -if you specify it with the `CONFIG_SITE' environment variable. +line. If you use non-default values for PREFIX or EXEC_PREFIX (wherever +you locate the site file), you can set them in the site file if you +specify it with the 'CONFIG_SITE' environment variable. You can set some cache values in the site file itself. Doing this is useful if you are cross-compiling, so it is impossible to check features that require running a test program. You could "prime the cache" by setting those values correctly for that system in -`PREFIX/etc/config.site'. To find out the names of the cache variables -you need to set, look for shell variables with `_cv_' in their names in -the affected `configure' scripts, or in the Autoconf M4 source code for +'PREFIX/etc/config.site'. To find out the names of the cache variables +you need to set, look for shell variables with '_cv_' in their names in +the affected 'configure' scripts, or in the Autoconf M4 source code for those macros. The cache file is careful to not override any variables set in the site files. Similarly, you should not override command-line options in -the site files. Your code should check that variables such as `prefix' -and `cache_file' have their default values (as set near the top of -`configure') before changing them. - - Here is a sample file `/usr/share/local/gnu/share/config.site'. The -command `configure --prefix=/usr/share/local/gnu' would read this file -(if `CONFIG_SITE' is not set to a different file). +the site files. Your code should check that variables such as 'prefix' +and 'cache_file' have their default values (as set near the top of +'configure') before changing them. + + Here is a sample file '/usr/share/local/gnu/share/config.site'. The +command 'configure --prefix=/usr/share/local/gnu' would read this file +(if 'CONFIG_SITE' is not set to a different file). # config.site for configure # @@ -8021,13 +7980,13 @@  File: autoconf.info, Node: Running configure scripts, Next: config.status Invocation, Prev: Site Configuration, Up: Top -13 Running `configure' Scripts +13 Running 'configure' Scripts ****************************** Below are instructions on how to configure a package that uses a -`configure' script, suitable for inclusion as an `INSTALL' file in the -package. A plain-text version of `INSTALL' which you may use comes -with Autoconf. +'configure' script, suitable for inclusion as an 'INSTALL' file in the +package. A plain-text version of 'INSTALL' which you may use comes with +Autoconf. * Menu: @@ -8037,9 +7996,9 @@ * Installation Names:: Installing in different directories * Optional Features:: Selecting optional features * System Type:: Specifying the system type -* Sharing Defaults:: Setting site-wide defaults for `configure' +* Sharing Defaults:: Setting site-wide defaults for 'configure' * Environment Variables:: Defining environment variables. -* configure Invocation:: Changing how `configure' runs +* configure Invocation:: Changing how 'configure' runs  File: autoconf.info, Node: Basic Installation, Next: Compilers and Options, Up: Running configure scripts @@ -8049,57 +8008,56 @@ These are generic installation instructions. - The `configure' shell script attempts to guess correct values for + The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. (Caching is disabled by +default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you +some point 'config.cache' contains results you don't want to keep, you may remove or edit it. - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You only need +'configure.ac' if you want to change it or regenerate 'configure' using +a newer version of 'autoconf'. The simplest way to compile this package is: - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. If you're + using 'csh' on an old version of System V, you might need to type + 'sh ./configure' instead to prevent 'csh' from trying to execute + 'configure' itself. - Running `configure' takes awhile. While running, it prints some + Running 'configure' takes awhile. While running, it prints some messages telling which features it is checking for. - 2. Type `make' to compile the package. + 2. Type 'make' to compile the package. - 3. Optionally, type `make check' to run any self-tests that come with + 3. Optionally, type 'make check' to run any self-tests that come with the package. - 4. Type `make install' to install the programs and any data files and + 4. Type 'make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. @@ -8111,11 +8069,11 @@ ========================== Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for +'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. - You can give `configure' initial values for variables by setting -them in the environment. You can do that on the command line like this: + You can give 'configure' initial values for variables by setting them +in the environment. You can do that on the command line like this: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix @@ -8129,16 +8087,16 @@ You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you must use a version of 'make' that +supports the 'VPATH' variable, such as GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. - If you have to use a `make' that does not support the `VPATH' + If you have to use a 'make' that does not support the 'VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another +one architecture, use 'make distclean' before reconfiguring for another architecture.  @@ -8147,25 +8105,25 @@ 13.4 Installation Names ======================= -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. +By default, 'make install' will install the package's files in +'/usr/local/bin', '/usr/local/man', etc. You can specify an +installation prefix other than '/usr/local' by giving 'configure' the +option '--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +give 'configure' the option '--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. Documentation +and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories +options like '--bindir=PATH' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.  File: autoconf.info, Node: Optional Features, Next: System Type, Prev: Installation Names, Up: Running configure scripts @@ -8173,17 +8131,17 @@ 13.5 Optional Features ====================== -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the +Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the package recognizes. - For packages that use the X Window System, `configure' can usually + For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations.  File: autoconf.info, Node: System Type, Next: Sharing Defaults, Prev: Optional Features, Up: Running configure scripts @@ -8191,12 +8149,12 @@ 13.6 Specifying the System Type =============================== -There may be some features `configure' cannot figure out automatically, +There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of host the package will run on. -Usually `configure' can figure that out, but if it prints a message -saying it cannot guess the host type, give it the `--build=TYPE' -option. TYPE can either be a short name for the system type, such as -`sun4', or a canonical name which has the form: +Usually 'configure' can figure that out, but if it prints a message +saying it cannot guess the host type, give it the '--build=TYPE' option. +TYPE can either be a short name for the system type, such as 'sun4', or +a canonical name which has the form: CPU-COMPANY-SYSTEM @@ -8205,22 +8163,22 @@ OS KERNEL-OS - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the '--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the host platform (i.e., that on which the generated programs will eventually be -run) with `--host=TYPE'. In this case, you should also specify the -build platform with `--build=TYPE', because, in this case, it may not -be possible to guess the build platform (it sometimes involves -compiling and running simple test programs, and this can't be done if -the compiler is a cross compiler). +run) with '--host=TYPE'. In this case, you should also specify the +build platform with '--build=TYPE', because, in this case, it may not be +possible to guess the build platform (it sometimes involves compiling +and running simple test programs, and this can't be done if the compiler +is a cross compiler).  File: autoconf.info, Node: Sharing Defaults, Next: Environment Variables, Prev: System Type, Up: Running configure scripts @@ -8228,13 +8186,13 @@ 13.7 Sharing Defaults ===================== -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. +If you want to set default values for 'configure' scripts to share, you +can create a site shell script called 'config.site' that gives default +values for variables like 'CC', 'cache_file', and 'prefix'. 'configure' +looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script.  File: autoconf.info, Node: Environment Variables, Next: configure Invocation, Prev: Sharing Defaults, Up: Running configure scripts @@ -8246,7 +8204,7 @@ environment passed to configure. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: +them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc @@ -8256,42 +8214,42 @@  File: autoconf.info, Node: configure Invocation, Prev: Environment Variables, Up: Running configure scripts -13.9 `configure' Invocation +13.9 'configure' Invocation =========================== -`configure' recognizes the following options to control how it operates. +'configure' recognizes the following options to control how it operates. -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' +'--help' +'-h' + Print a summary of the options to 'configure', and exit. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' script, and exit. -`--cache-file=FILE' +'--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to + traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error + suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). -`--srcdir=DIR' +'--srcdir=DIR' Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. + 'configure' can determine that directory automatically. -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details.  File: autoconf.info, Node: config.status Invocation, Next: Obsolete Constructs, Prev: Running configure scripts, Up: Top @@ -8299,7 +8257,7 @@ 14 Recreating a Configuration ***************************** -The `configure' script creates a file named `config.status', which +The 'configure' script creates a file named 'config.status', which actually configures, "instantiates", the template files. It also records the configuration options that were specified when the package was last configured in case reconfiguring is needed. @@ -8307,9 +8265,9 @@ Synopsis: ./config.status OPTION... [FILE...] - It configures the FILES, if none are specified, all the templates -are instantiated. The files must be specified without their -dependencies, as in + It configures the FILES, if none are specified, all the templates are +instantiated. The files must be specified without their dependencies, +as in ./config.status foobar @@ -8319,69 +8277,68 @@ The supported OPTIONs are: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options, the list of the template files and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit. -`--debug' -`-d' +'--debug' +'-d' Don't remove the temporary files. -`--file=FILE[:TEMPLATE]' +'--file=FILE[:TEMPLATE]' Require that FILE be instantiated as if - `AC_CONFIG_FILES(FILE:TEMPLATE)' was used. Both FILE and TEMPLATE - may be `-' in which case the standard output and/or standard - input, respectively, is used. If a TEMPLATE filename is relative, - it is first looked for in the build tree, and then in the source - tree. *Note Configuration Actions::, for more details. + 'AC_CONFIG_FILES(FILE:TEMPLATE)' was used. Both FILE and TEMPLATE + may be '-' in which case the standard output and/or standard input, + respectively, is used. If a TEMPLATE filename is relative, it is + first looked for in the build tree, and then in the source tree. + *Note Configuration Actions::, for more details. This option and the following ones provide one way for separately - distributed packages to share the values computed by `configure'. + distributed packages to share the values computed by 'configure'. Doing so can be useful if some of the packages need a superset of the features that one of them, perhaps a common library, does. - These options allow a `config.status' file to create files other - than the ones that its `configure.ac' specifies, so it can be used + These options allow a 'config.status' file to create files other + than the ones that its 'configure.ac' specifies, so it can be used for a different package. -`--header=FILE[:TEMPLATE]' - Same as `--file' above, but with `AC_CONFIG_HEADERS'. +'--header=FILE[:TEMPLATE]' + Same as '--file' above, but with 'AC_CONFIG_HEADERS'. -`--recheck' - Ask `config.status' to update itself and exit (no instantiation). - This option is useful if you change `configure', so that the +'--recheck' + Ask 'config.status' to update itself and exit (no instantiation). + This option is useful if you change 'configure', so that the results of some tests might be different from the previous run. - The `--recheck' option re-runs `configure' with the same arguments - you used before, plus the `--no-create' option, which prevents - `configure' from running `config.status' and creating `Makefile' - and other files, and the `--no-recursion' option, which prevents - `configure' from running other `configure' scripts in - subdirectories. (This is so other `Makefile' rules can run - `config.status' when it changes; *note Automatic Remaking::, for - an example). + The '--recheck' option re-runs 'configure' with the same arguments + you used before, plus the '--no-create' option, which prevents + 'configure' from running 'config.status' and creating 'Makefile' + and other files, and the '--no-recursion' option, which prevents + 'configure' from running other 'configure' scripts in + subdirectories. (This is so other 'Makefile' rules can run + 'config.status' when it changes; *note Automatic Remaking::, for an + example). - `config.status' checks several optional environment variables that + 'config.status' checks several optional environment variables that can alter its behavior: -- Variable: CONFIG_SHELL - The shell with which to run `configure' for the `--recheck' - option. It must be Bourne-compatible. The default is `/bin/sh'. + The shell with which to run 'configure' for the '--recheck' option. + It must be Bourne-compatible. The default is '/bin/sh'. -- Variable: CONFIG_STATUS The file name to use for the shell script that records the - configuration. The default is `./config.status'. This variable is - useful when one package uses parts of another and the `configure' + configuration. The default is './config.status'. This variable is + useful when one package uses parts of another and the 'configure' scripts shouldn't be merged because they are maintained separately. - You can use `./config.status' in your Makefiles. For example, in -the dependencies given above (*note Automatic Remaking::), -`config.status' is run twice when `configure.ac' has changed. If that -bothers you, you can make each run only regenerate the files for that -rule: + You can use './config.status' in your Makefiles. For example, in the +dependencies given above (*note Automatic Remaking::), 'config.status' +is run twice when 'configure.ac' has changed. If that bothers you, you +can make each run only regenerate the files for that rule: config.h: stamp-h stamp-h: config.h.in config.status ./config.status config.h @@ -8390,7 +8347,7 @@ Makefile: Makefile.in config.status ./config.status Makefile - The calling convention of `config.status' has changed, see *note + The calling convention of 'config.status' has changed, see *note Obsolete config.status Use::, for details.  @@ -8410,8 +8367,8 @@ * Menu: * Obsolete config.status Use:: Different calling convention -* acconfig.h:: Additional entries in `config.h.in' -* autoupdate Invocation:: Automatic update of `configure.ac' +* acconfig.h:: Additional entries in 'config.h.in' +* autoupdate Invocation:: Automatic update of 'configure.ac' * Obsolete Macros:: Backward compatibility macros * Autoconf 1:: Tips for upgrading your files * Autoconf 2.13:: Some fresher tips @@ -8419,31 +8376,31 @@  File: autoconf.info, Node: Obsolete config.status Use, Next: acconfig.h, Prev: Obsolete Constructs, Up: Obsolete Constructs -15.1 Obsolete `config.status' Invocation +15.1 Obsolete 'config.status' Invocation ======================================== -`config.status' now supports arguments to specify the files to +'config.status' now supports arguments to specify the files to instantiate, see *note config.status Invocation::, for more details. Before, environment variables had to be used. -- Variable: CONFIG_COMMANDS The tags of the commands to execute. The default is the arguments - given to `AC_OUTPUT' and `AC_CONFIG_COMMANDS' in `configure.ac'. + given to 'AC_OUTPUT' and 'AC_CONFIG_COMMANDS' in 'configure.ac'. -- Variable: CONFIG_FILES - The files in which to perform `@VARIABLE@' substitutions. The - default is the arguments given to `AC_OUTPUT' and - `AC_CONFIG_FILES' in `configure.ac'. + The files in which to perform '@VARIABLE@' substitutions. The + default is the arguments given to 'AC_OUTPUT' and 'AC_CONFIG_FILES' + in 'configure.ac'. -- Variable: CONFIG_HEADERS - The files in which to substitute C `#define' statements. The - default is the arguments given to `AC_CONFIG_HEADERS'; if that - macro was not called, `config.status' ignores this variable. + The files in which to substitute C '#define' statements. The + default is the arguments given to 'AC_CONFIG_HEADERS'; if that + macro was not called, 'config.status' ignores this variable. -- Variable: CONFIG_LINKS The symbolic links to establish. The default is the arguments - given to `AC_CONFIG_LINKS'; if that macro was not called, - `config.status' ignores this variable. + given to 'AC_CONFIG_LINKS'; if that macro was not called, + 'config.status' ignores this variable. In *note config.status Invocation::, using this old interface, the example would be: @@ -8458,38 +8415,36 @@ CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_HEADERS= \ CONFIG_FILES=Makefile ./config.status -(If `configure.ac' does not call `AC_CONFIG_HEADERS', there is no need -to set `CONFIG_HEADERS' in the `make' rules, equally for -`CONFIG_COMMANDS' etc.) +(If 'configure.ac' does not call 'AC_CONFIG_HEADERS', there is no need +to set 'CONFIG_HEADERS' in the 'make' rules, equally for +'CONFIG_COMMANDS' etc.)  File: autoconf.info, Node: acconfig.h, Next: autoupdate Invocation, Prev: Obsolete config.status Use, Up: Obsolete Constructs -15.2 `acconfig.h' +15.2 'acconfig.h' ================= -In order to produce `config.h.in', `autoheader' needs to build or to +In order to produce 'config.h.in', 'autoheader' needs to build or to find templates for each symbol. Modern releases of Autoconf use -`AH_VERBATIM' and `AH_TEMPLATE' (*note Autoheader Macros::), but in -older releases a file, `acconfig.h', contained the list of needed -templates. `autoheader' copies comments and `#define' and `#undef' -statements from `acconfig.h' in the current directory, if present. -This file used to be mandatory if you `AC_DEFINE' any additional -symbols. - - Modern releases of Autoconf also provide `AH_TOP' and `AH_BOTTOM' if -you need to prepend/append some information to `config.h.in'. Ancient -versions of Autoconf had a similar feature: if `./acconfig.h' contains -the string `@TOP@', `autoheader' copies the lines before the line -containing `@TOP@' into the top of the file that it generates. -Similarly, if `./acconfig.h' contains the string `@BOTTOM@', -`autoheader' copies the lines after that line to the end of the file it +'AH_VERBATIM' and 'AH_TEMPLATE' (*note Autoheader Macros::), but in +older releases a file, 'acconfig.h', contained the list of needed +templates. 'autoheader' copies comments and '#define' and '#undef' +statements from 'acconfig.h' in the current directory, if present. This +file used to be mandatory if you 'AC_DEFINE' any additional symbols. + + Modern releases of Autoconf also provide 'AH_TOP' and 'AH_BOTTOM' if +you need to prepend/append some information to 'config.h.in'. Ancient +versions of Autoconf had a similar feature: if './acconfig.h' contains +the string '@TOP@', 'autoheader' copies the lines before the line +containing '@TOP@' into the top of the file that it generates. +Similarly, if './acconfig.h' contains the string '@BOTTOM@', +'autoheader' copies the lines after that line to the end of the file it generates. Either or both of those strings may be omitted. An even older alternate way to produce the same effect in jurasik versions of -Autoconf is to create the files `FILE.top' (typically `config.h.top') -and/or `FILE.bot' in the current directory. If they exist, -`autoheader' copies them to the beginning and end, respectively, of its -output. +Autoconf is to create the files 'FILE.top' (typically 'config.h.top') +and/or 'FILE.bot' in the current directory. If they exist, 'autoheader' +copies them to the beginning and end, respectively, of its output. In former versions of Autoconf, the files used in preparing a software package for distribution were: @@ -8503,62 +8458,62 @@ [config.h.top] --+ [config.h.bot] --' - Use only the `AH_' macros, `configure.ac' should be self-contained, -and should not depend upon `acconfig.h' etc. + Use only the 'AH_' macros, 'configure.ac' should be self-contained, +and should not depend upon 'acconfig.h' etc.  File: autoconf.info, Node: autoupdate Invocation, Next: Obsolete Macros, Prev: acconfig.h, Up: Obsolete Constructs -15.3 Using `autoupdate' to Modernize `configure.ac' +15.3 Using 'autoupdate' to Modernize 'configure.ac' =================================================== -The `autoupdate' program updates a `configure.ac' file that calls +The 'autoupdate' program updates a 'configure.ac' file that calls Autoconf macros by their old names to use the current macro names. In version 2 of Autoconf, most of the macros were renamed to use a more uniform and descriptive naming scheme. *Note Macro Names::, for a -description of the new scheme. Although the old names still work -(*note Obsolete Macros::, for a list of the old macros and the -corresponding new names), you can make your `configure.ac' files more -readable and make it easier to use the current Autoconf documentation -if you update them to use the new macro names. - - If given no arguments, `autoupdate' updates `configure.ac', backing -up the original version with the suffix `~' (or the value of the -environment variable `SIMPLE_BACKUP_SUFFIX', if that is set). If you -give `autoupdate' an argument, it reads that file instead of -`configure.ac' and writes the updated file to the standard output. +description of the new scheme. Although the old names still work (*note +Obsolete Macros::, for a list of the old macros and the corresponding +new names), you can make your 'configure.ac' files more readable and +make it easier to use the current Autoconf documentation if you update +them to use the new macro names. + + If given no arguments, 'autoupdate' updates 'configure.ac', backing +up the original version with the suffix '~' (or the value of the +environment variable 'SIMPLE_BACKUP_SUFFIX', if that is set). If you +give 'autoupdate' an argument, it reads that file instead of +'configure.ac' and writes the updated file to the standard output. -`autoupdate' accepts the following options: +'autoupdate' accepts the following options: -`--help' -`-h' +'--help' +'-h' Print a summary of the command line options and exit. -`--version' -`-V' +'--version' +'-V' Print the version number of Autoconf and exit. -`--verbose' -`-v' +'--verbose' +'-v' Report processing steps. -`--debug' -`-d' +'--debug' +'-d' Don't remove the temporary files. -`--autoconf-dir=DIR' -`-A DIR' +'--autoconf-dir=DIR' +'-A DIR' Override the location where the installed Autoconf data files are - looked for. You can also set the `AC_MACRODIR' environment + looked for. You can also set the 'AC_MACRODIR' environment variable to a directory; this option overrides the environment variable. This option is rarely needed and dangerous; it is only used when one plays with different versions of Autoconf simultaneously. -`--localdir=DIR' -`-l DIR' - Look for the package file `aclocal.m4' in directory DIR instead of +'--localdir=DIR' +'-l DIR' + Look for the package file 'aclocal.m4' in directory DIR instead of in the current directory.  @@ -8581,7 +8536,7 @@ description. -- Macro: AC_ALLOCA - `AC_FUNC_ALLOCA' + 'AC_FUNC_ALLOCA' -- Macro: AC_ARG_ARRAY removed because of limited usefulness @@ -8594,27 +8549,27 @@ the canonical system types. *Note Canonicalizing::, for details about the variables this macro sets. - The user is encouraged to use either `AC_CANONICAL_BUILD', or - `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the - needs. Using `AC_CANONICAL_TARGET' is enough to run the two other + The user is encouraged to use either 'AC_CANONICAL_BUILD', or + 'AC_CANONICAL_HOST', or 'AC_CANONICAL_TARGET', depending on the + needs. Using 'AC_CANONICAL_TARGET' is enough to run the two other macros. -- Macro: AC_CHAR_UNSIGNED - `AC_C_CHAR_UNSIGNED' + 'AC_C_CHAR_UNSIGNED' -- Macro: AC_CHECK_TYPE (TYPE, DEFAULT) Autoconf, up to 2.13, used to provide this version of - `AC_CHECK_TYPE', deprecated because of its flaws. Firstly, - although it is a member of the `CHECK' clan, singular sub-family, + 'AC_CHECK_TYPE', deprecated because of its flaws. Firstly, + although it is a member of the 'CHECK' clan, singular sub-family, it does more than just checking. Second, missing types are not - `typedef''d, they are `#define''d, which can lead to incompatible + 'typedef''d, they are '#define''d, which can lead to incompatible code in the case of pointer types. - This use of `AC_CHECK_TYPE' is obsolete and discouraged, see *note + This use of 'AC_CHECK_TYPE' is obsolete and discouraged, see *note Generic Types::, for the description of the current macro. If the type TYPE is not defined, define it to be the C (or C++) - builtin type DEFAULT; e.g., `short' or `unsigned'. + builtin type DEFAULT; e.g., 'short' or 'unsigned'. This macro is equivalent to: @@ -8624,54 +8579,54 @@ does not define.])]) In order to keep backward compatibility, the two versions of - `AC_CHECK_TYPE' are implemented, selected by a simple heuristics: + 'AC_CHECK_TYPE' are implemented, selected by a simple heuristics: 1. If there are three or four arguments, the modern version is used. 2. If the second argument appears to be a C or C++ type, then the - obsolete version is used. This happens if the argument is a - C or C++ _builtin_ type or a C identifier ending in `_t', - optionally followed by one of `[(* ' and then by a string of - zero or more characters taken from the set `[]()* _a-zA-Z0-9'. + obsolete version is used. This happens if the argument is a C + or C++ _builtin_ type or a C identifier ending in '_t', + optionally followed by one of '[(* ' and then by a string of + zero or more characters taken from the set '[]()* _a-zA-Z0-9'. - 3. If the second argument is spelled with the alphabet of valid - C and C++ types, the user is warned and the modern version is + 3. If the second argument is spelled with the alphabet of valid C + and C++ types, the user is warned and the modern version is used. 4. Otherwise, the modern version is used. You are encouraged either to use a valid builtin type, or to use the equivalent modern code (see above), or better yet, to use - `AC_CHECK_TYPES' together with + 'AC_CHECK_TYPES' together with #if !HAVE_LOFF_T typedef loff_t off_t; #endif -- Macro: AC_CHECKING (FEATURE-DESCRIPTION) - Same as `AC_MSG_NOTICE([checking FEATURE-DESCRIPTION...]'. + Same as 'AC_MSG_NOTICE([checking FEATURE-DESCRIPTION...]'. -- Macro: AC_COMPILE_CHECK (ECHO-TEXT, INCLUDES, FUNCTION-BODY, ACTION-IF-FOUND, [ACTION-IF-NOT-FOUND]) - This is an obsolete version of `AC_TRY_LINK' (*note Examining - Libraries::), with the addition that it prints `checking for - ECHO-TEXT' to the standard output first, if ECHO-TEXT is - non-empty. Use `AC_MSG_CHECKING' and `AC_MSG_RESULT' instead to - print messages (*note Printing Messages::). + This is an obsolete version of 'AC_TRY_LINK' (*note Examining + Libraries::), with the addition that it prints 'checking for + ECHO-TEXT' to the standard output first, if ECHO-TEXT is non-empty. + Use 'AC_MSG_CHECKING' and 'AC_MSG_RESULT' instead to print messages + (*note Printing Messages::). -- Macro: AC_CONST - `AC_C_CONST' + 'AC_C_CONST' -- Macro: AC_CROSS_CHECK - Same as `AC_C_CROSS', which is obsolete too, and does nothing - `:-)'. + Same as 'AC_C_CROSS', which is obsolete too, and does nothing + ':-)'. -- Macro: AC_CYGWIN Check for the Cygwin environment in which case the shell variable - `CYGWIN' is set to `yes'. Don't use this macro, the dignified - means to check the nature of the host is using - `AC_CANONICAL_HOST'. As a matter of fact this macro is defined as: + 'CYGWIN' is set to 'yes'. Don't use this macro, the dignified + means to check the nature of the host is using 'AC_CANONICAL_HOST'. + As a matter of fact this macro is defined as: AC_REQUIRE([AC_CANONICAL_HOST])[]dnl case $host_os in @@ -8679,114 +8634,114 @@ * ) CYGWIN=no;; esac - Beware that the variable `CYGWIN' has a very special meaning when + Beware that the variable 'CYGWIN' has a very special meaning when running CygWin32, and should not be changed. That's yet another reason not to use this macro. -- Macro: AC_DECL_YYTEXT - Does nothing, now integrated in `AC_PROG_LEX'. + Does nothing, now integrated in 'AC_PROG_LEX'. -- Macro: AC_DIR_HEADER - Like calling `AC_FUNC_CLOSEDIR_VOID' and`AC_HEADER_DIRENT', but + Like calling 'AC_FUNC_CLOSEDIR_VOID' and'AC_HEADER_DIRENT', but defines a different set of C preprocessor macros to indicate which header file is found: Header Old Symbol New Symbol - `dirent.h' `DIRENT' `HAVE_DIRENT_H' - `sys/ndir.h' `SYSNDIR' `HAVE_SYS_NDIR_H' - `sys/dir.h' `SYSDIR' `HAVE_SYS_DIR_H' - `ndir.h' `NDIR' `HAVE_NDIR_H' + 'dirent.h' 'DIRENT' 'HAVE_DIRENT_H' + 'sys/ndir.h' 'SYSNDIR' 'HAVE_SYS_NDIR_H' + 'sys/dir.h' 'SYSDIR' 'HAVE_SYS_DIR_H' + 'ndir.h' 'NDIR' 'HAVE_NDIR_H' -- Macro: AC_DYNIX_SEQ - If on Dynix/PTX (Sequent UNIX), add `-lseq' to output variable - `LIBS'. This macro used to be defined as + If on Dynix/PTX (Sequent UNIX), add '-lseq' to output variable + 'LIBS'. This macro used to be defined as AC_CHECK_LIB(seq, getmntent, LIBS="-lseq $LIBS") - now it is just `AC_FUNC_GETMNTENT'. + now it is just 'AC_FUNC_GETMNTENT'. -- Macro: AC_EXEEXT - Defined the output variable `EXEEXT' based on the output of the + Defined the output variable 'EXEEXT' based on the output of the compiler, which is now done automatically. Typically set to empty - string if Unix and `.exe' if Win32 or OS/2. + string if Unix and '.exe' if Win32 or OS/2. -- Macro: AC_EMXOS2 - Similar to `AC_CYGWIN' but checks for the EMX environment on OS/2 - and sets `EMXOS2'. + Similar to 'AC_CYGWIN' but checks for the EMX environment on OS/2 + and sets 'EMXOS2'. -- Macro: AC_ERROR - `AC_MSG_ERROR' + 'AC_MSG_ERROR' -- Macro: AC_FIND_X - `AC_PATH_X' + 'AC_PATH_X' -- Macro: AC_FIND_XTRA - `AC_PATH_XTRA' + 'AC_PATH_XTRA' -- Macro: AC_FUNC_CHECK - `AC_CHECK_FUNC' + 'AC_CHECK_FUNC' -- Macro: AC_FUNC_WAIT3 - If `wait3' is found and fills in the contents of its third argument - (a `struct rusage *'), which HP-UX does not do, define - `HAVE_WAIT3'. + If 'wait3' is found and fills in the contents of its third argument + (a 'struct rusage *'), which HP-UX does not do, define + 'HAVE_WAIT3'. - These days portable programs should use `waitpid', not `wait3', as - `wait3' is being removed from the Open Group standards, and will + These days portable programs should use 'waitpid', not 'wait3', as + 'wait3' is being removed from the Open Group standards, and will not appear in the next revision of POSIX. -- Macro: AC_GCC_TRADITIONAL - `AC_PROG_GCC_TRADITIONAL' + 'AC_PROG_GCC_TRADITIONAL' -- Macro: AC_GETGROUPS_T - `AC_TYPE_GETGROUPS' + 'AC_TYPE_GETGROUPS' -- Macro: AC_GETLOADAVG - `AC_FUNC_GETLOADAVG' + 'AC_FUNC_GETLOADAVG' -- Macro: AC_HAVE_FUNCS - `AC_CHECK_FUNCS' + 'AC_CHECK_FUNCS' -- Macro: AC_HAVE_HEADERS - `AC_CHECK_HEADERS' + 'AC_CHECK_HEADERS' -- Macro: AC_HAVE_LIBRARY (LIBRARY, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES]) - This macro is equivalent to calling `AC_CHECK_LIB' with a FUNCTION - argument of `main'. In addition, LIBRARY can be written as any of - `foo', `-lfoo', or `libfoo.a'. In all of those cases, the - compiler is passed `-lfoo'. However, LIBRARY cannot be a shell - variable; it must be a literal name. + This macro is equivalent to calling 'AC_CHECK_LIB' with a FUNCTION + argument of 'main'. In addition, LIBRARY can be written as any of + 'foo', '-lfoo', or 'libfoo.a'. In all of those cases, the compiler + is passed '-lfoo'. However, LIBRARY cannot be a shell variable; it + must be a literal name. -- Macro: AC_HAVE_POUNDBANG - `AC_SYS_INTERPRETER' (different calling convention) + 'AC_SYS_INTERPRETER' (different calling convention) -- Macro: AC_HEADER_CHECK - `AC_CHECK_HEADER' + 'AC_CHECK_HEADER' -- Macro: AC_HEADER_EGREP - `AC_EGREP_HEADER' + 'AC_EGREP_HEADER' -- Macro: AC_INIT (UNIQUE-FILE-IN-SOURCE-DIR) - Formerly `AC_INIT' used to have a single argument, and was + Formerly 'AC_INIT' used to have a single argument, and was equivalent to: AC_INIT AC_CONFIG_SRCDIR(UNIQUE-FILE-IN-SOURCE-DIR) -- Macro: AC_INLINE - `AC_C_INLINE' + 'AC_C_INLINE' -- Macro: AC_INT_16_BITS - If the C type `int' is 16 bits wide, define `INT_16_BITS'. Use - `AC_CHECK_SIZEOF(int)' instead. + If the C type 'int' is 16 bits wide, define 'INT_16_BITS'. Use + 'AC_CHECK_SIZEOF(int)' instead. -- Macro: AC_IRIX_SUN - If on IRIX (Silicon Graphics UNIX), add `-lsun' to output `LIBS'. - If you were using it to get `getmntent', use `AC_FUNC_GETMNTENT' + If on IRIX (Silicon Graphics UNIX), add '-lsun' to output 'LIBS'. + If you were using it to get 'getmntent', use 'AC_FUNC_GETMNTENT' instead. If you used it for the NIS versions of the password and - group functions, use `AC_CHECK_LIB(sun, getpwnam)'. Up to - Autoconf 2.13, it used to be + group functions, use 'AC_CHECK_LIB(sun, getpwnam)'. Up to Autoconf + 2.13, it used to be AC_CHECK_LIB(sun, getmntent, LIBS="-lsun $LIBS") @@ -8796,25 +8751,25 @@ AC_CHECK_LIB(sun, getpwnam) -- Macro: AC_LANG_C - Same as `AC_LANG(C)'. + Same as 'AC_LANG(C)'. -- Macro: AC_LANG_CPLUSPLUS - Same as `AC_LANG(C++)'. + Same as 'AC_LANG(C++)'. -- Macro: AC_LANG_FORTRAN77 - Same as `AC_LANG(Fortran 77)'. + Same as 'AC_LANG(Fortran 77)'. -- Macro: AC_LANG_RESTORE Select the LANGUAGE that is saved on the top of the stack, as set - by `AC_LANG_SAVE', remove it from the stack, and call - `AC_LANG(LANGUAGE)'. + by 'AC_LANG_SAVE', remove it from the stack, and call + 'AC_LANG(LANGUAGE)'. -- Macro: AC_LANG_SAVE - Remember the current language (as set by `AC_LANG') on a stack. - The current language does not change. `AC_LANG_PUSH' is preferred. + Remember the current language (as set by 'AC_LANG') on a stack. + The current language does not change. 'AC_LANG_PUSH' is preferred. -- Macro: AC_LINK_FILES (SOURCE..., DEST...) - This is an obsolete version of `AC_CONFIG_LINKS'. An updated + This is an obsolete version of 'AC_CONFIG_LINKS'. An updated version of: AC_LINK_FILES(config/$machine.h config/$obj_format.h, @@ -8826,66 +8781,66 @@ object.h:config/$obj_format.h) -- Macro: AC_LN_S - `AC_PROG_LN_S' + 'AC_PROG_LN_S' -- Macro: AC_LONG_64_BITS - Define `LONG_64_BITS' if the C type `long int' is 64 bits wide. - Use the generic macro `AC_CHECK_SIZEOF([long int])' instead. + Define 'LONG_64_BITS' if the C type 'long int' is 64 bits wide. + Use the generic macro 'AC_CHECK_SIZEOF([long int])' instead. -- Macro: AC_LONG_DOUBLE - `AC_C_LONG_DOUBLE' + 'AC_C_LONG_DOUBLE' -- Macro: AC_LONG_FILE_NAMES - `AC_SYS_LONG_FILE_NAMES' + 'AC_SYS_LONG_FILE_NAMES' -- Macro: AC_MAJOR_HEADER - `AC_HEADER_MAJOR' + 'AC_HEADER_MAJOR' -- Macro: AC_MEMORY_H - Used to define `NEED_MEMORY_H' if the `mem' functions were defined - in `memory.h'. Today it is equivalent to - `AC_CHECK_HEADERS(memory.h)'. Adjust your code to depend upon - `HAVE_MEMORY_H', not `NEED_MEMORY_H', see *Note Standard Symbols::. + Used to define 'NEED_MEMORY_H' if the 'mem' functions were defined + in 'memory.h'. Today it is equivalent to + 'AC_CHECK_HEADERS(memory.h)'. Adjust your code to depend upon + 'HAVE_MEMORY_H', not 'NEED_MEMORY_H', see *Note Standard Symbols::. -- Macro: AC_MINGW32 - Similar to `AC_CYGWIN' but checks for the MingW32 compiler - environment and sets `MINGW32'. + Similar to 'AC_CYGWIN' but checks for the MingW32 compiler + environment and sets 'MINGW32'. -- Macro: AC_MINUS_C_MINUS_O - `AC_PROG_CC_C_O' + 'AC_PROG_CC_C_O' -- Macro: AC_MMAP - `AC_FUNC_MMAP' + 'AC_FUNC_MMAP' -- Macro: AC_MODE_T - `AC_TYPE_MODE_T' + 'AC_TYPE_MODE_T' -- Macro: AC_OBJEXT - Defined the output variable `OBJEXT' based on the output of the - compiler, after .c files have been excluded. Typically set to `o' - if Unix, `obj' if Win32. Now the compiler checking macros handle + Defined the output variable 'OBJEXT' based on the output of the + compiler, after .c files have been excluded. Typically set to 'o' + if Unix, 'obj' if Win32. Now the compiler checking macros handle this automatically. -- Macro: AC_OBSOLETE (THIS-MACRO-NAME, [SUGGESTION]) - Make `m4' print a message to the standard error output warning that + Make 'm4' print a message to the standard error output warning that THIS-MACRO-NAME is obsolete, and giving the file and line number where it was called. THIS-MACRO-NAME should be the name of the - macro that is calling `AC_OBSOLETE'. If SUGGESTION is given, it - is printed at the end of the warning message; for example, it can - be a suggestion for what to use instead of THIS-MACRO-NAME. + macro that is calling 'AC_OBSOLETE'. If SUGGESTION is given, it is + printed at the end of the warning message; for example, it can be a + suggestion for what to use instead of THIS-MACRO-NAME. For instance AC_OBSOLETE([$0], [; use AC_CHECK_HEADERS(unistd.h) instead])dnl - You are encouraged to use `AU_DEFUN' instead, since it gives better + You are encouraged to use 'AU_DEFUN' instead, since it gives better services to the user. -- Macro: AC_OFF_T - `AC_TYPE_OFF_T' + 'AC_TYPE_OFF_T' -- Macro: AC_OUTPUT ([FILE]..., [EXTRA-CMDS], [INIT-CMDS], [SAVE-DEFS]) - The use of `AC_OUTPUT' with argument is deprecated, this obsoleted + The use of 'AC_OUTPUT' with argument is deprecated, this obsoleted interface is equivalent to: AC_CONFIG_FILES(FILE...) @@ -8894,23 +8849,23 @@ AC_SETUP_DEFS(SAVE-DEFS) AC_OUTPUT - If you specify SAVE-DEFS, autoconf will save the `#define's in a + If you specify SAVE-DEFS, autoconf will save the '#define's in a different form, for use in the files specified in - `AC_CONFIG_HEADERS'. In this case, autoconf substitutes the - C-style `#define's where it finds `@DEFS@'. This runs faster, and - is simpler to maintain than building a file of `#undef's, since - autoconf will automatically generate a `#define' for each - `AC_DEFINE' that you execute in the `configure' script. The value - for SAVE-DEFS should be either `cat', or `sort'; this value is - used to filter the list of `#define's before editing. Sorted - lists are easier to read, but you may wish to see the definitions - in the order that they were processed. + 'AC_CONFIG_HEADERS'. In this case, autoconf substitutes the + C-style '#define's where it finds '@DEFS@'. This runs faster, and + is simpler to maintain than building a file of '#undef's, since + autoconf will automatically generate a '#define' for each + 'AC_DEFINE' that you execute in the 'configure' script. The value + for SAVE-DEFS should be either 'cat', or 'sort'; this value is used + to filter the list of '#define's before editing. Sorted lists are + easier to read, but you may wish to see the definitions in the + order that they were processed. -- Macro: AC_OUTPUT_COMMANDS (EXTRA-CMDS, [INIT-CMDS]) Specify additional shell commands to run at the end of - `config.status', and shell commands to initialize any variables - from `configure'. This macro may be called multiple times. It is - obsolete, replaced by `AC_CONFIG_COMMANDS'. + 'config.status', and shell commands to initialize any variables + from 'configure'. This macro may be called multiple times. It is + obsolete, replaced by 'AC_CONFIG_COMMANDS'. Here is an unrealistic example: @@ -8920,167 +8875,167 @@ AC_OUTPUT_COMMANDS([echo this is another, extra, bit], [echo init bit]) - Aside from the fact that `AC_CONFIG_COMMANDS' requires an + Aside from the fact that 'AC_CONFIG_COMMANDS' requires an additional key, an important difference is that - `AC_OUTPUT_COMMANDS' is quoting its arguments twice, while - `AC_CONFIG_COMMANDS'. This means that `AC_CONFIG_COMMANDS' can + 'AC_OUTPUT_COMMANDS' is quoting its arguments twice, while + 'AC_CONFIG_COMMANDS'. This means that 'AC_CONFIG_COMMANDS' can safely be given macro calls as arguments: AC_CONFIG_COMMANDS(foo, [my_FOO()]) conversely, where one level of quoting was enough for literal - strings with `AC_OUTPUT_COMMANDS', you need two with - `AC_CONFIG_COMMANDS'. The following lines are equivalent: + strings with 'AC_OUTPUT_COMMANDS', you need two with + 'AC_CONFIG_COMMANDS'. The following lines are equivalent: AC_OUTPUT_COMMANDS([echo "Square brackets: []"]) AC_CONFIG_COMMANDS(default, [[echo "Square brackets: []"]]) -- Macro: AC_PID_T - `AC_TYPE_PID_T' + 'AC_TYPE_PID_T' -- Macro: AC_PREFIX - `AC_PREFIX_PROGRAM' + 'AC_PREFIX_PROGRAM' -- Macro: AC_PROGRAMS_CHECK - `AC_CHECK_PROGS' + 'AC_CHECK_PROGS' -- Macro: AC_PROGRAMS_PATH - `AC_PATH_PROGS' + 'AC_PATH_PROGS' -- Macro: AC_PROGRAM_CHECK - `AC_CHECK_PROG' + 'AC_CHECK_PROG' -- Macro: AC_PROGRAM_EGREP - `AC_EGREP_CPP' + 'AC_EGREP_CPP' -- Macro: AC_PROGRAM_PATH - `AC_PATH_PROG' + 'AC_PATH_PROG' -- Macro: AC_REMOTE_TAPE removed because of limited usefulness -- Macro: AC_RESTARTABLE_SYSCALLS - `AC_SYS_RESTARTABLE_SYSCALLS' + 'AC_SYS_RESTARTABLE_SYSCALLS' -- Macro: AC_RETSIGTYPE - `AC_TYPE_SIGNAL' + 'AC_TYPE_SIGNAL' -- Macro: AC_RSH Removed because of limited usefulness. -- Macro: AC_SCO_INTL - If on SCO UNIX, add `-lintl' to output variable `LIBS'. This - macro used to + If on SCO UNIX, add '-lintl' to output variable 'LIBS'. This macro + used to AC_CHECK_LIB(intl, strftime, LIBS="-lintl $LIBS") - now it just calls `AC_FUNC_STRFTIME' instead. + now it just calls 'AC_FUNC_STRFTIME' instead. -- Macro: AC_SETVBUF_REVERSED - `AC_FUNC_SETVBUF_REVERSED' + 'AC_FUNC_SETVBUF_REVERSED' -- Macro: AC_SET_MAKE - `AC_PROG_MAKE_SET' + 'AC_PROG_MAKE_SET' -- Macro: AC_SIZEOF_TYPE - `AC_CHECK_SIZEOF' + 'AC_CHECK_SIZEOF' -- Macro: AC_SIZE_T - `AC_TYPE_SIZE_T' + 'AC_TYPE_SIZE_T' -- Macro: AC_STAT_MACROS_BROKEN - `AC_HEADER_STAT' + 'AC_HEADER_STAT' -- Macro: AC_STDC_HEADERS - `AC_HEADER_STDC' + 'AC_HEADER_STDC' -- Macro: AC_STRCOLL - `AC_FUNC_STRCOLL' + 'AC_FUNC_STRCOLL' -- Macro: AC_ST_BLKSIZE - `AC_STRUCT_ST_BLKSIZE' + 'AC_STRUCT_ST_BLKSIZE' -- Macro: AC_ST_BLOCKS - `AC_STRUCT_ST_BLOCKS' + 'AC_STRUCT_ST_BLOCKS' -- Macro: AC_ST_RDEV - `AC_STRUCT_ST_RDEV' + 'AC_STRUCT_ST_RDEV' -- Macro: AC_SYS_RESTARTABLE_SYSCALLS If the system automatically restarts a system call that is - interrupted by a signal, define `HAVE_RESTARTABLE_SYSCALLS'. This + interrupted by a signal, define 'HAVE_RESTARTABLE_SYSCALLS'. This macro does not check if system calls are restarted in general-it - tests whether a signal handler installed with `signal' (but not - `sigaction') causes system calls to be restarted. It does not test + tests whether a signal handler installed with 'signal' (but not + 'sigaction') causes system calls to be restarted. It does not test if system calls can be restarted when interrupted by signals that have no handler. - These days portable programs should use `sigaction' with - `SA_RESTART' if they want restartable system calls. They should - not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays whether a + These days portable programs should use 'sigaction' with + 'SA_RESTART' if they want restartable system calls. They should + not rely on 'HAVE_RESTARTABLE_SYSCALLS', since nowadays whether a system call is restartable is a dynamic issue, not a configuration-time issue. -- Macro: AC_SYS_SIGLIST_DECLARED - `AC_DECL_SYS_SIGLIST' + 'AC_DECL_SYS_SIGLIST' -- Macro: AC_TEST_CPP - `AC_TRY_CPP' + 'AC_TRY_CPP' -- Macro: AC_TEST_PROGRAM - `AC_TRY_RUN' + 'AC_TRY_RUN' -- Macro: AC_TIMEZONE - `AC_STRUCT_TIMEZONE' + 'AC_STRUCT_TIMEZONE' -- Macro: AC_TIME_WITH_SYS_TIME - `AC_HEADER_TIME' + 'AC_HEADER_TIME' -- Macro: AC_UID_T - `AC_TYPE_UID_T' + 'AC_TYPE_UID_T' -- Macro: AC_UNISTD_H - Same as `AC_CHECK_HEADERS(unistd.h)'. + Same as 'AC_CHECK_HEADERS(unistd.h)'. -- Macro: AC_USG - Define `USG' if the BSD string functions are defined in - `strings.h'. You should no longer depend upon `USG', but on - `HAVE_STRING_H', see *Note Standard Symbols::. + Define 'USG' if the BSD string functions are defined in + 'strings.h'. You should no longer depend upon 'USG', but on + 'HAVE_STRING_H', see *Note Standard Symbols::. -- Macro: AC_UTIME_NULL - `AC_FUNC_UTIME_NULL' + 'AC_FUNC_UTIME_NULL' -- Macro: AC_VALIDATE_CACHED_SYSTEM_TUPLE ([CMD]) If the cache file is inconsistent with the current host, target and - build system types, it used to execute CMD or print a default - error message. + build system types, it used to execute CMD or print a default error + message. This is now handled by default. -- Macro: AC_VERBOSE (RESULT-DESCRIPTION) - `AC_MSG_RESULT'. + 'AC_MSG_RESULT'. -- Macro: AC_VFORK - `AC_FUNC_VFORK' + 'AC_FUNC_VFORK' -- Macro: AC_VPRINTF - `AC_FUNC_VPRINTF' + 'AC_FUNC_VPRINTF' -- Macro: AC_WAIT3 - `AC_FUNC_WAIT3' + 'AC_FUNC_WAIT3' -- Macro: AC_WARN - `AC_MSG_WARN' + 'AC_MSG_WARN' -- Macro: AC_WORDS_BIGENDIAN - `AC_C_BIGENDIAN' + 'AC_C_BIGENDIAN' -- Macro: AC_XENIX_DIR - This macro used to add `-lx' to output variable `LIBS' if on - Xenix. Also, if `dirent.h' is being checked for, added `-ldir' to - `LIBS'. Now it is merely an alias of `AC_HEADER_DIRENT' instead, - plus some code to detect whether running XENIX on which you should - not depend: + This macro used to add '-lx' to output variable 'LIBS' if on Xenix. + Also, if 'dirent.h' is being checked for, added '-ldir' to 'LIBS'. + Now it is merely an alias of 'AC_HEADER_DIRENT' instead, plus some + code to detect whether running XENIX on which you should not + depend: AC_MSG_CHECKING([for Xenix]) AC_EGREP_CPP(yes, @@ -9091,7 +9046,7 @@ [AC_MSG_RESULT([no]); XENIX=]) -- Macro: AC_YYTEXT_POINTER - `AC_DECL_YYTEXT' + 'AC_DECL_YYTEXT'  File: autoconf.info, Node: Autoconf 1, Next: Autoconf 2.13, Prev: Obsolete Macros, Up: Obsolete Constructs @@ -9102,17 +9057,17 @@ Autoconf version 2 is mostly backward compatible with version 1. However, it introduces better ways to do some things, and doesn't support some of the ugly things in version 1. So, depending on how -sophisticated your `configure.ac' files are, you might have to do some +sophisticated your 'configure.ac' files are, you might have to do some manual work in order to upgrade to version 2. This chapter points out some problems to watch for when upgrading. Also, perhaps your -`configure' scripts could benefit from some of the new features in -version 2; the changes are summarized in the file `NEWS' in the -Autoconf distribution. +'configure' scripts could benefit from some of the new features in +version 2; the changes are summarized in the file 'NEWS' in the Autoconf +distribution. * Menu: * Changed File Names:: Files you might rename -* Changed Makefiles:: New things to put in `Makefile.in' +* Changed Makefiles:: New things to put in 'Makefile.in' * Changed Macros:: Macro calls you might replace * Changed Results:: Changes in how to check test results * Changed Macro Writing:: Better ways to write your own macros @@ -9123,17 +9078,17 @@ 15.5.1 Changed File Names ------------------------- -If you have an `aclocal.m4' installed with Autoconf (as opposed to in a +If you have an 'aclocal.m4' installed with Autoconf (as opposed to in a particular package's source directory), you must rename it to -`acsite.m4'. *Note autoconf Invocation::. +'acsite.m4'. *Note autoconf Invocation::. - If you distribute `install.sh' with your package, rename it to -`install-sh' so `make' builtin rules won't inadvertently create a file -called `install' from it. `AC_PROG_INSTALL' looks for the script under + If you distribute 'install.sh' with your package, rename it to +'install-sh' so 'make' builtin rules won't inadvertently create a file +called 'install' from it. 'AC_PROG_INSTALL' looks for the script under both names, but it is best to use the new name. - If you were using `config.h.top', `config.h.bot', or `acconfig.h', -you still can, but you will have less clutter if you use the `AH_' + If you were using 'config.h.top', 'config.h.bot', or 'acconfig.h', +you still can, but you will have less clutter if you use the 'AH_' macros. *Note Autoheader Macros::.  @@ -9142,21 +9097,21 @@ 15.5.2 Changed Makefiles ------------------------ -Add `@CFLAGS@', `@CPPFLAGS@', and `@LDFLAGS@' in your `Makefile.in' +Add '@CFLAGS@', '@CPPFLAGS@', and '@LDFLAGS@' in your 'Makefile.in' files, so they can take advantage of the values of those variables in -the environment when `configure' is run. Doing this isn't necessary, +the environment when 'configure' is run. Doing this isn't necessary, but it's a convenience for users. - Also add `@configure_input@' in a comment to each input file for -`AC_OUTPUT', so that the output files will contain a comment saying -they were produced by `configure'. Automatically selecting the right -comment syntax for all the kinds of files that people call `AC_OUTPUT' -on became too much work. + Also add '@configure_input@' in a comment to each input file for +'AC_OUTPUT', so that the output files will contain a comment saying they +were produced by 'configure'. Automatically selecting the right comment +syntax for all the kinds of files that people call 'AC_OUTPUT' on became +too much work. - Add `config.log' and `config.cache' to the list of files you remove -in `distclean' targets. + Add 'config.log' and 'config.cache' to the list of files you remove +in 'distclean' targets. - If you have the following in `Makefile.in': + If you have the following in 'Makefile.in': prefix = /usr/local exec_prefix = $(prefix) @@ -9166,7 +9121,7 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ -The old behavior of replacing those variables without `@' characters +The old behavior of replacing those variables without '@' characters around them has been removed.  @@ -9178,21 +9133,21 @@ Many of the macros were renamed in Autoconf version 2. You can still use the old names, but the new ones are clearer, and it's easier to find the documentation for them. *Note Obsolete Macros::, for a table -showing the new names for the old macros. Use the `autoupdate' program -to convert your `configure.ac' to using the new macro names. *Note +showing the new names for the old macros. Use the 'autoupdate' program +to convert your 'configure.ac' to using the new macro names. *Note autoupdate Invocation::. Some macros have been superseded by similar ones that do the job better, but are not call-compatible. If you get warnings about calling -obsolete macros while running `autoconf', you may safely ignore them, -but your `configure' script will generally work better if you follow -the advice it prints about what to replace the obsolete macros with. In +obsolete macros while running 'autoconf', you may safely ignore them, +but your 'configure' script will generally work better if you follow the +advice it prints about what to replace the obsolete macros with. In particular, the mechanism for reporting the results of tests has -changed. If you were using `echo' or `AC_VERBOSE' (perhaps via -`AC_COMPILE_CHECK'), your `configure' script's output will look better -if you switch to `AC_MSG_CHECKING' and `AC_MSG_RESULT'. *Note Printing -Messages::. Those macros work best in conjunction with cache -variables. *Note Caching Results::. +changed. If you were using 'echo' or 'AC_VERBOSE' (perhaps via +'AC_COMPILE_CHECK'), your 'configure' script's output will look better +if you switch to 'AC_MSG_CHECKING' and 'AC_MSG_RESULT'. *Note Printing +Messages::. Those macros work best in conjunction with cache variables. +*Note Caching Results::.  File: autoconf.info, Node: Changed Results, Next: Changed Macro Writing, Prev: Changed Macros, Up: Autoconf 1 @@ -9201,15 +9156,14 @@ ---------------------- If you were checking the results of previous tests by examining the -shell variable `DEFS', you need to switch to checking the values of the -cache variables for those tests. `DEFS' no longer exists while -`configure' is running; it is only created when generating output -files. This difference from version 1 is because properly quoting the -contents of that variable turned out to be too cumbersome and -inefficient to do every time `AC_DEFINE' is called. *Note Cache -Variable Names::. +shell variable 'DEFS', you need to switch to checking the values of the +cache variables for those tests. 'DEFS' no longer exists while +'configure' is running; it is only created when generating output files. +This difference from version 1 is because properly quoting the contents +of that variable turned out to be too cumbersome and inefficient to do +every time 'AC_DEFINE' is called. *Note Cache Variable Names::. - For example, here is a `configure.ac' fragment written for Autoconf + For example, here is a 'configure.ac' fragment written for Autoconf version 1: AC_HAVE_FUNCS(syslog) @@ -9240,15 +9194,15 @@ done fi - If you were working around bugs in `AC_DEFINE_UNQUOTED' by adding + If you were working around bugs in 'AC_DEFINE_UNQUOTED' by adding backslashes before quotes, you need to remove them. It now works predictably, and does not treat quotes (except back quotes) specially. *Note Setting Output Variables::. All of the boolean shell variables set by Autoconf macros now use -`yes' for the true value. Most of them use `no' for false, though for +'yes' for the true value. Most of them use 'no' for false, though for backward compatibility some use the empty string instead. If you were -relying on a shell variable being set to something like 1 or `t' for +relying on a shell variable being set to something like 1 or 't' for true, you need to change your tests.  @@ -9257,11 +9211,11 @@ 15.5.5 Changed Macro Writing ---------------------------- -When defining your own macros, you should now use `AC_DEFUN' instead of -`define'. `AC_DEFUN' automatically calls `AC_PROVIDE' and ensures that -macros called via `AC_REQUIRE' do not interrupt other macros, to -prevent nested `checking...' messages on the screen. There's no actual -harm in continuing to use the older way, but it's less convenient and +When defining your own macros, you should now use 'AC_DEFUN' instead of +'define'. 'AC_DEFUN' automatically calls 'AC_PROVIDE' and ensures that +macros called via 'AC_REQUIRE' do not interrupt other macros, to prevent +nested 'checking...' messages on the screen. There's no actual harm in +continuing to use the older way, but it's less convenient and attractive. *Note Macro Definitions::. You probably looked at the macros that came with Autoconf as a guide @@ -9291,12 +9245,12 @@ Autoconf version 2.50 is mostly backward compatible with version 2.13. However, it introduces better ways to do some things, and doesn't support some of the ugly things in version 2.13. So, - depending on how sophisticated your `configure.ac' files are, you + depending on how sophisticated your 'configure.ac' files are, you might have to do some manual work in order to upgrade to version 2.50. This chapter points out some problems to watch for when - upgrading. Also, perhaps your `configure' scripts could benefit + upgrading. Also, perhaps your 'configure' scripts could benefit from some of the new features in version 2.50; the changes are - summarized in the file `NEWS' in the Autoconf distribution. + summarized in the file 'NEWS' in the Autoconf distribution. * Menu: @@ -9331,7 +9285,7 @@ configure: error: cannot find foo.h $ -while Autoconf 2.50 will produce a broken `configure': +while Autoconf 2.50 will produce a broken 'configure': $ autoconf-2.50; ./configure --silent configure: error: cannot find foo.h @@ -9339,7 +9293,7 @@ ./configure: exit: bad non-numeric arg `bailing' $ - The message needs to be quoted, and the `AC_MSG_ERROR' invocation + The message needs to be quoted, and the 'AC_MSG_ERROR' invocation too! AC_INIT @@ -9348,7 +9302,7 @@ AC_OUTPUT Many many (and many more) Autoconf macros were lacking proper -quotation, including no less than... `AC_DEFUN' itself! +quotation, including no less than... 'AC_DEFUN' itself! $ cat configure.in AC_DEFUN([AC_PROG_INSTALL], @@ -9374,16 +9328,16 @@ Because Autoconf has been dormant for years, Automake provided Autoconf-like macros for a while. Autoconf 2.50 now provides better -versions of these macros, integrated in the `AC_' namespace, instead of -`AM_'. But in order to ease the upgrading via `autoupdate', bindings -to such `AM_' macros are provided. +versions of these macros, integrated in the 'AC_' namespace, instead of +'AM_'. But in order to ease the upgrading via 'autoupdate', bindings to +such 'AM_' macros are provided. Unfortunately Automake did not quote the name of these macros! -Therefore, when `m4' find in `aclocal.m4' something like -`AC_DEFUN(AM_TYPE_PTRDIFF_T, ...)', `AM_TYPE_PTRDIFF_T' is expanded, +Therefore, when 'm4' find in 'aclocal.m4' something like +'AC_DEFUN(AM_TYPE_PTRDIFF_T, ...)', 'AM_TYPE_PTRDIFF_T' is expanded, replaced with its Autoconf definition. - Fortunately Autoconf catches pre-`AC_INIT' expansions, and will + Fortunately Autoconf catches pre-'AC_INIT' expansions, and will complain, in its own words: $ cat configure.in @@ -9426,18 +9380,18 @@ * Menu: -* Distributing:: Distributing `configure' scripts +* Distributing:: Distributing 'configure' scripts * Why GNU m4:: Why not use the standard M4? * Bootstrapping:: Autoconf and GNU M4 require each other? -* Why Not Imake:: Why GNU uses `configure' instead of Imake +* Why Not Imake:: Why GNU uses 'configure' instead of Imake  File: autoconf.info, Node: Distributing, Next: Why GNU m4, Prev: Questions, Up: Questions -16.1 Distributing `configure' Scripts +16.1 Distributing 'configure' Scripts ===================================== - What are the restrictions on distributing `configure' + What are the restrictions on distributing 'configure' scripts that Autoconf generates? How does that affect my programs that use them? @@ -9447,13 +9401,12 @@ software authors to distribute their work under terms like those of the GPL, but doing so is not required to use Autoconf. - Of the other files that might be used with `configure', -`config.h.in' is under whatever copyright you use for your -`configure.ac'. `config.sub' and `config.guess' have an exception to -the GPL when they are used with an Autoconf-generated `configure' -script, which permits you to distribute them under the same terms as -the rest of your package. `install-sh' is from the X Consortium and is -not copyrighted. + Of the other files that might be used with 'configure', 'config.h.in' +is under whatever copyright you use for your 'configure.ac'. +'config.sub' and 'config.guess' have an exception to the GPL when they +are used with an Autoconf-generated 'configure' script, which permits +you to distribute them under the same terms as the rest of your package. +'install-sh' is from the X Consortium and is not copyrighted.  File: autoconf.info, Node: Why GNU m4, Next: Bootstrapping, Prev: Distributing, Up: Questions @@ -9490,13 +9443,13 @@ ========================= If Autoconf requires GNU M4 and GNU M4 has an Autoconf - `configure' script, how do I bootstrap? It seems like a chicken + 'configure' script, how do I bootstrap? It seems like a chicken and egg problem! This is a misunderstanding. Although GNU M4 does come with a -`configure' script produced by Autoconf, Autoconf is not required in +'configure' script produced by Autoconf, Autoconf is not required in order to run the script and install GNU M4. Autoconf is only required -if you want to change the M4 `configure' script, which few people have +if you want to change the M4 'configure' script, which few people have to do (mainly its maintainer).  @@ -9505,7 +9458,7 @@ 16.4 Why Not Imake? =================== - Why not use Imake instead of `configure' scripts? + Why not use Imake instead of 'configure' scripts? Several people have written addressing this question, so I include adaptations of their explanations here. @@ -9522,9 +9475,9 @@ GNU tools are not released this way. Each GNU tool has a maintainer; these maintainers are scattered across the world. - Using a common database would be a maintenance nightmare. - Autoconf may appear to be this kind of database, but in fact it is - not. Instead of listing host dependencies, it lists program + Using a common database would be a maintenance nightmare. Autoconf + may appear to be this kind of database, but in fact it is not. + Instead of listing host dependencies, it lists program requirements. If you view the GNU suite as a collection of native tools, then the @@ -9541,11 +9494,11 @@ Here is some further explanation, written by Per Bothner: One of the advantages of Imake is that it easy to generate large - Makefiles using `cpp''s `#include' and macro mechanisms. However, - `cpp' is not programmable: it has limited conditional facilities, - and no looping. And `cpp' cannot inspect its environment. + Makefiles using 'cpp''s '#include' and macro mechanisms. However, + 'cpp' is not programmable: it has limited conditional facilities, + and no looping. And 'cpp' cannot inspect its environment. - All of these problems are solved by using `sh' instead of `cpp'. + All of these problems are solved by using 'sh' instead of 'cpp'. The shell is fully programmable, has macro substitution, can execute (or source) other shell scripts, and can inspect its environment. @@ -9553,26 +9506,26 @@ Paul Eggert elaborates more: With Autoconf, installers need not assume that Imake itself is - already installed and working well. This may not seem like much - of an advantage to people who are accustomed to Imake. But on - many hosts Imake is not installed or the default installation is - not working well, and requiring Imake to install a package hinders - the acceptance of that package on those hosts. For example, the - Imake template and configuration files might not be installed - properly on a host, or the Imake build procedure might wrongly - assume that all source files are in one big directory tree, or the - Imake configuration might assume one compiler whereas the package - or the installer needs to use another, or there might be a version + already installed and working well. This may not seem like much of + an advantage to people who are accustomed to Imake. But on many + hosts Imake is not installed or the default installation is not + working well, and requiring Imake to install a package hinders the + acceptance of that package on those hosts. For example, the Imake + template and configuration files might not be installed properly on + a host, or the Imake build procedure might wrongly assume that all + source files are in one big directory tree, or the Imake + configuration might assume one compiler whereas the package or the + installer needs to use another, or there might be a version mismatch between the Imake expected by the package and the Imake supported by the host. These problems are much rarer with Autoconf, where each package comes with its own independent configuration processor. Also, Imake often suffers from unexpected interactions between - `make' and the installer's C preprocessor. The fundamental problem + 'make' and the installer's C preprocessor. The fundamental problem here is that the C preprocessor was designed to preprocess C - programs, not `Makefile's. This is much less of a problem with - Autoconf, which uses the general-purpose preprocessor `m4', and + programs, not 'Makefile's. This is much less of a problem with + Autoconf, which uses the general-purpose preprocessor 'm4', and where the package's author (rather than the installer) does the preprocessing in a standard way. @@ -9580,21 +9533,20 @@ Imake isn't all that extensible, either. In order to add new features to Imake, you need to provide your own project template, - and duplicate most of the features of the existing one. This - means that for a sophisticated project, using the vendor-provided - Imake templates fails to provide any leverage--since they don't - cover anything that your own project needs (unless it is an X11 - program). + and duplicate most of the features of the existing one. This means + that for a sophisticated project, using the vendor-provided Imake + templates fails to provide any leverage--since they don't cover + anything that your own project needs (unless it is an X11 program). On the other side, though: - The one advantage that Imake has over `configure': `Imakefile's + The one advantage that Imake has over 'configure': 'Imakefile's tend to be much shorter (likewise, less redundant) than - `Makefile.in's. There is a fix to this, however--at least for the - Kerberos V5 tree, we've modified things to call in common - `post.in' and `pre.in' `Makefile' fragments for the entire tree. - This means that a lot of common things don't have to be - duplicated, even though they normally are in `configure' setups. + 'Makefile.in's. There is a fix to this, however--at least for the + Kerberos V5 tree, we've modified things to call in common 'post.in' + and 'pre.in' 'Makefile' fragments for the entire tree. This means + that a lot of common things don't have to be duplicated, even + though they normally are in 'configure' setups.  File: autoconf.info, Node: History, Next: Environment Variable Index, Prev: Questions, Up: Top @@ -9605,12 +9557,12 @@ You may be wondering, Why was Autoconf originally written? How did it get into its present form? (Why does it look like gorilla spit?) If you're not wondering, then this chapter contains no information useful -to you, and you might as well skip it. If you _are_ wondering, then -let there be light... +to you, and you might as well skip it. If you _are_ wondering, then let +there be light... * Menu: -* Genesis:: Prehistory and naming of `configure' +* Genesis:: Prehistory and naming of 'configure' * Exodus:: The plagues of M4 and Perl * Leviticus:: The priestly code of portability arrives * Numbers:: Growth and contributors @@ -9624,21 +9576,21 @@ In June 1991 I was maintaining many of the GNU utilities for the Free Software Foundation. As they were ported to more platforms and more -programs were added, the number of `-D' options that users had to -select in the `Makefile' (around 20) became burdensome. Especially for -me--I had to test each new release on a bunch of different systems. So -I wrote a little shell script to guess some of the correct settings for +programs were added, the number of '-D' options that users had to select +in the 'Makefile' (around 20) became burdensome. Especially for me--I +had to test each new release on a bunch of different systems. So I +wrote a little shell script to guess some of the correct settings for the fileutils package, and released it as part of fileutils 2.0. That -`configure' script worked well enough that the next month I adapted it -(by hand) to create similar `configure' scripts for several other GNU +'configure' script worked well enough that the next month I adapted it +(by hand) to create similar 'configure' scripts for several other GNU utilities packages. Brian Berliner also adapted one of my scripts for his CVS revision control system. Later that summer, I learned that Richard Stallman and Richard Pixley were developing similar scripts to use in the GNU compiler tools; so I -adapted my `configure' scripts to support their evolving interface: -using the file name `Makefile.in' as the templates; adding `+srcdir', -the first option (of many); and creating `config.status' files. +adapted my 'configure' scripts to support their evolving interface: +using the file name 'Makefile.in' as the templates; adding '+srcdir', +the first option (of many); and creating 'config.status' files.  File: autoconf.info, Node: Exodus, Next: Leviticus, Prev: Genesis, Up: History @@ -9649,51 +9601,51 @@ As I got feedback from users, I incorporated many improvements, using Emacs to search and replace, cut and paste, similar changes in each of the scripts. As I adapted more GNU utilities packages to use -`configure' scripts, updating them all by hand became impractical. -Rich Murphey, the maintainer of the GNU graphics utilities, sent me -mail saying that the `configure' scripts were great, and asking if I -had a tool for generating them that I could send him. No, I thought, -but I should! So I started to work out how to generate them. And the -journey from the slavery of hand-written `configure' scripts to the -abundance and ease of Autoconf began. +'configure' scripts, updating them all by hand became impractical. Rich +Murphey, the maintainer of the GNU graphics utilities, sent me mail +saying that the 'configure' scripts were great, and asking if I had a +tool for generating them that I could send him. No, I thought, but I +should! So I started to work out how to generate them. And the journey +from the slavery of hand-written 'configure' scripts to the abundance +and ease of Autoconf began. - Cygnus `configure', which was being developed at around that time, -is table driven; it is meant to deal mainly with a discrete number of + Cygnus 'configure', which was being developed at around that time, is +table driven; it is meant to deal mainly with a discrete number of system types with a small number of mainly unguessable features (such as details of the object file format). The automatic configuration system that Brian Fox had developed for Bash takes a similar approach. For general use, it seems to me a hopeless cause to try to maintain an up-to-date database of which features each variant of each operating system has. It's easier and more reliable to check for most features on -the fly--especially on hybrid systems that people have hacked on -locally or that have patches from vendors installed. +the fly--especially on hybrid systems that people have hacked on locally +or that have patches from vendors installed. I considered using an architecture similar to that of Cygnus -`configure', where there is a single `configure' script that reads -pieces of `configure.in' when run. But I didn't want to have to +'configure', where there is a single 'configure' script that reads +pieces of 'configure.in' when run. But I didn't want to have to distribute all of the feature tests with every package, so I settled on -having a different `configure' made from each `configure.in' by a +having a different 'configure' made from each 'configure.in' by a preprocessor. That approach also offered more control and flexibility. I looked briefly into using the Metaconfig package, by Larry Wall, Harlan Stenn, and Raphael Manfredi, but I decided not to for several -reasons. The `Configure' scripts it produces are interactive, which I +reasons. The 'Configure' scripts it produces are interactive, which I find quite inconvenient; I didn't like the ways it checked for some features (such as library functions); I didn't know that it was still -being maintained, and the `Configure' scripts I had seen didn't work on +being maintained, and the 'Configure' scripts I had seen didn't work on many modern systems (such as System V R4 and NeXT); it wasn't very flexible in what it could do in response to a feature's presence or absence; I found it confusing to learn; and it was too big and complex for my needs (I didn't realize then how much Autoconf would eventually have to grow). - I considered using Perl to generate my style of `configure' scripts, + I considered using Perl to generate my style of 'configure' scripts, but decided that M4 was better suited to the job of simple textual substitutions: it gets in the way less, because output is implicit. Plus, everyone already has it. (Initially I didn't rely on the GNU extensions to M4.) Also, some of my friends at the University of Maryland had recently been putting M4 front ends on several programs, -including `tvtwm', and I was interested in trying out a new language. +including 'tvtwm', and I was interested in trying out a new language.  File: autoconf.info, Node: Leviticus, Next: Numbers, Prev: Exodus, Up: History @@ -9701,29 +9653,28 @@ 17.3 Leviticus ============== -Since my `configure' scripts determine the system's capabilities +Since my 'configure' scripts determine the system's capabilities automatically, with no interactive user intervention, I decided to call the program that generates them Autoconfig. But with a version number tacked on, that name would be too long for old UNIX file systems, so I shortened it to Autoconf. In the fall of 1991 I called together a group of fellow questers -after the Holy Grail of portability (er, that is, alpha testers) to -give me feedback as I encapsulated pieces of my handwritten scripts in -M4 macros and continued to add features and improve the techniques used -in the checks. Prominent among the testers were Franc,ois Pinard, who -came up with the idea of making an `autoconf' shell script to run `m4' -and check for unresolved macro calls; Richard Pixley, who suggested -running the compiler instead of searching the file system to find -include files and symbols, for more accurate results; Karl Berry, who -got Autoconf to configure TeX and added the macro index to the -documentation; and Ian Lance Taylor, who added support for creating a C -header file as an alternative to putting `-D' options in a `Makefile', -so he could use Autoconf for his UUCP package. The alpha testers -cheerfully adjusted their files again and again as the names and -calling conventions of the Autoconf macros changed from release to -release. They all contributed many specific checks, great ideas, and -bug fixes. +after the Holy Grail of portability (er, that is, alpha testers) to give +me feedback as I encapsulated pieces of my handwritten scripts in M4 +macros and continued to add features and improve the techniques used in +the checks. Prominent among the testers were Franc,ois Pinard, who came +up with the idea of making an 'autoconf' shell script to run 'm4' and +check for unresolved macro calls; Richard Pixley, who suggested running +the compiler instead of searching the file system to find include files +and symbols, for more accurate results; Karl Berry, who got Autoconf to +configure TeX and added the macro index to the documentation; and Ian +Lance Taylor, who added support for creating a C header file as an +alternative to putting '-D' options in a 'Makefile', so he could use +Autoconf for his UUCP package. The alpha testers cheerfully adjusted +their files again and again as the names and calling conventions of the +Autoconf macros changed from release to release. They all contributed +many specific checks, great ideas, and bug fixes.  File: autoconf.info, Node: Numbers, Next: Deuteronomy, Prev: Leviticus, Up: History @@ -9736,14 +9687,14 @@ positive the reaction to it was. More people started using it than I could keep track of, including people working on software that wasn't part of the GNU Project (such as TCL, FSP, and Kerberos V5). Autoconf -continued to improve rapidly, as many people using the `configure' +continued to improve rapidly, as many people using the 'configure' scripts reported problems they encountered. Autoconf turned out to be a good torture test for M4 implementations. -UNIX `m4' started to dump core because of the length of the macros that -Autoconf defined, and several bugs showed up in GNU `m4' as well. +UNIX 'm4' started to dump core because of the length of the macros that +Autoconf defined, and several bugs showed up in GNU 'm4' as well. Eventually, we realized that we needed to use some features that only -GNU M4 has. 4.3BSD `m4', in particular, has an impoverished set of +GNU M4 has. 4.3BSD 'm4', in particular, has an impoverished set of builtin macros; the System V version is better, but still doesn't provide everything we need. @@ -9752,13 +9703,13 @@ david zuhn contributed C++ support. Franc,ois Pinard made it diagnose invalid arguments. Jim Blandy bravely coerced it into configuring GNU Emacs, laying the groundwork for several later improvements. Roland -McGrath got it to configure the GNU C Library, wrote the `autoheader' +McGrath got it to configure the GNU C Library, wrote the 'autoheader' script to automate the creation of C header file templates, and added a -`--verbose' option to `configure'. Noah Friedman added the -`--autoconf-dir' option and `AC_MACRODIR' environment variable. (He +'--verbose' option to 'configure'. Noah Friedman added the +'--autoconf-dir' option and 'AC_MACRODIR' environment variable. (He also coined the term "autoconfiscate" to mean "adapt a software package to use Autoconf".) Roland and Noah improved the quoting protection in -`AC_DEFINE' and fixed many bugs, especially when I got sick of dealing +'AC_DEFINE' and fixed many bugs, especially when I got sick of dealing with portability problems from February through June, 1993.  @@ -9771,26 +9722,25 @@ several years of patching by various people had left some residual cruft. In April 1994, while working for Cygnus Support, I began a major revision of Autoconf. I added most of the features of the Cygnus -`configure' that Autoconf had lacked, largely by adapting the relevant -parts of Cygnus `configure' with the help of david zuhn and Ken -Raeburn. These features include support for using `config.sub', -`config.guess', `--host', and `--target'; making links to files; and -running `configure' scripts in subdirectories. Adding these features -enabled Ken to convert GNU `as', and Rob Savoye to convert DejaGNU, to -using Autoconf. +'configure' that Autoconf had lacked, largely by adapting the relevant +parts of Cygnus 'configure' with the help of david zuhn and Ken Raeburn. +These features include support for using 'config.sub', 'config.guess', +'--host', and '--target'; making links to files; and running 'configure' +scripts in subdirectories. Adding these features enabled Ken to convert +GNU 'as', and Rob Savoye to convert DejaGNU, to using Autoconf. I added more features in response to other peoples' requests. Many -people had asked for `configure' scripts to share the results of the +people had asked for 'configure' scripts to share the results of the checks between runs, because (particularly when configuring a large source tree, like Cygnus does) they were frustratingly slow. Mike Haertel suggested adding site-specific initialization scripts. People distributing software that had to unpack on MS-DOS asked for a way to -override the `.in' extension on the file names, which produced file -names like `config.h.in' containing two dots. Jim Avera did an -extensive examination of the problems with quoting in `AC_DEFINE' and -`AC_SUBST'; his insights led to significant improvements. Richard -Stallman asked that compiler output be sent to `config.log' instead of -`/dev/null', to help people debug the Emacs `configure' script. +override the '.in' extension on the file names, which produced file +names like 'config.h.in' containing two dots. Jim Avera did an +extensive examination of the problems with quoting in 'AC_DEFINE' and +'AC_SUBST'; his insights led to significant improvements. Richard +Stallman asked that compiler output be sent to 'config.log' instead of +'/dev/null', to help people debug the Emacs 'configure' script. I made some other changes because of my dissatisfaction with the quality of the program. I made the messages showing results of the @@ -9799,15 +9749,15 @@ added some auxiliary utilities that I had developed to help convert source code packages to use Autoconf. With the help of Franc,ois Pinard, I made the macros not interrupt each others' messages. (That -feature revealed some performance bottlenecks in GNU `m4', which he +feature revealed some performance bottlenecks in GNU 'm4', which he hastily corrected!) I reorganized the documentation around problems people want to solve. And I began a test suite, because experience had shown that Autoconf has a pronounced tendency to regress when we change it. Again, several alpha testers gave invaluable feedback, especially -Franc,ois Pinard, Jim Meyering, Karl Berry, Rob Savoye, Ken Raeburn, -and Mark Eichin. +Franc,ois Pinard, Jim Meyering, Karl Berry, Rob Savoye, Ken Raeburn, and +Mark Eichin. Finally, version 2.0 was ready. And there was much rejoicing. (And I have free time again. I think. Yeah, right.) @@ -9824,14 +9774,14 @@ [index] * Menu: -* AC_MACRODIR <1>: autoupdate Invocation. - (line 42) -* AC_MACRODIR <2>: autoheader Invocation. - (line 62) -* AC_MACRODIR <3>: autoreconf Invocation. +* AC_MACRODIR: autoscan Invocation. (line 54) +* AC_MACRODIR <1>: autoconf Invocation. (line 45) +* AC_MACRODIR <2>: autoreconf Invocation. (line 77) -* AC_MACRODIR <4>: autoconf Invocation. (line 45) -* AC_MACRODIR: autoscan Invocation. (line 56) +* AC_MACRODIR <3>: autoheader Invocation. + (line 62) +* AC_MACRODIR <4>: autoupdate Invocation. + (line 42) * CDPATH: Special Shell Variables. (line 13) * CONFIG_COMMANDS: Obsolete config.status Use. @@ -9866,18 +9816,18 @@ * LC_TIME: Special Shell Variables. (line 59) * NULLCMD: Special Shell Variables. - (line 76) + (line 77) * PATH_SEPARATOR: Special Shell Variables. - (line 87) + (line 88) * RANDOM: Special Shell Variables. - (line 96) + (line 97) * SIMPLE_BACKUP_SUFFIX: autoupdate Invocation. (line 16) * status: Special Shell Variables. - (line 83) + (line 84) +* WARNINGS: autoconf Invocation. (line 65) * WARNINGS <1>: autoheader Invocation. (line 78) -* WARNINGS: autoconf Invocation. (line 65)  File: autoconf.info, Node: Output Variable Index, Next: Preprocessor Symbol Index, Prev: Environment Variable Index, Up: Top @@ -9887,7 +9837,7 @@ This is an alphabetical list of the variables that Autoconf can substitute into files that it creates, typically one or more -`Makefile's. *Note Setting Output Variables::, for more information on +'Makefile's. *Note Setting Output Variables::, for more information on how this is done. [index] @@ -9903,12 +9853,14 @@ * build_cpu: Canonicalizing. (line 26) * build_os: Canonicalizing. (line 26) * build_vendor: Canonicalizing. (line 26) -* CC <1>: UNIX Variants. (line 18) -* CC <2>: System Services. (line 45) * CC: C Compiler. (line 7) -* CFLAGS <1>: C Compiler. (line 7) +* CC <1>: C Compiler. (line 34) +* CC <2>: C Compiler. (line 156) +* CC <3>: System Services. (line 44) +* CC <4>: UNIX Variants. (line 18) * CFLAGS: Preset Output Variables. (line 15) +* CFLAGS <1>: C Compiler. (line 7) * configure_input: Preset Output Variables. (line 22) * CPP: C Compiler. (line 47) @@ -9917,9 +9869,9 @@ * cross_compiling: Specifying Names. (line 26) * CXX: C++ Compiler. (line 7) * CXXCPP: C++ Compiler. (line 31) -* CXXFLAGS <1>: C++ Compiler. (line 7) * CXXFLAGS: Preset Output Variables. (line 43) +* CXXFLAGS <1>: C++ Compiler. (line 7) * datadir: Installation Directory Variables. (line 15) * DEFS: Preset Output Variables. @@ -9932,14 +9884,14 @@ (line 60) * exec_prefix: Installation Directory Variables. (line 19) -* EXEEXT <1>: Obsolete Macros. (line 145) * EXEEXT: Compilers and Preprocessors. (line 6) +* EXEEXT <1>: Obsolete Macros. (line 145) * F77: Fortran 77 Compiler. (line 7) -* FFLAGS <1>: Fortran 77 Compiler. (line 7) * FFLAGS: Preset Output Variables. (line 72) -* FLIBS: Fortran 77 Compiler. (line 39) +* FFLAGS <1>: Fortran 77 Compiler. (line 7) +* FLIBS: Fortran 77 Compiler. (line 38) * GETGROUPS_LIBS: Particular Functions. (line 97) * GETLOADAVG_LIBS: Particular Functions. @@ -9962,20 +9914,26 @@ * LDFLAGS: Preset Output Variables. (line 79) * LEX: Particular Programs. (line 45) -* LEX_OUTPUT_ROOT: Particular Programs. (line 45) * LEXLIB: Particular Programs. (line 45) +* LEX_OUTPUT_ROOT: Particular Programs. (line 45) * libdir: Installation Directory Variables. (line 32) * libexecdir: Installation Directory Variables. (line 35) -* LIBOBJS <1>: Particular Structures. - (line 17) -* LIBOBJS <2>: Generic Functions. (line 44) * LIBOBJS: Particular Functions. (line 103) -* LIBS <1>: Obsolete Macros. (line 408) +* LIBOBJS <1>: Particular Functions. + (line 160) +* LIBOBJS <2>: Particular Functions. + (line 167) +* LIBOBJS <3>: Generic Functions. (line 44) +* LIBOBJS <4>: Generic Functions. (line 84) +* LIBOBJS <5>: Particular Structures. + (line 17) * LIBS: Preset Output Variables. (line 87) +* LIBS <1>: Obsolete Macros. (line 408) +* LIBS <2>: Obsolete Macros. (line 515) * LN_S: Particular Programs. (line 83) * localstatedir: Installation Directory Variables. (line 38) @@ -9983,9 +9941,9 @@ (line 41) * NEED_SETGID: Particular Functions. (line 103) -* OBJEXT <1>: Obsolete Macros. (line 300) * OBJEXT: Compilers and Preprocessors. - (line 11) + (line 10) +* OBJEXT <1>: Obsolete Macros. (line 300) * oldincludedir: Installation Directory Variables. (line 44) * POW_LIB: Particular Functions. @@ -9996,7 +9954,7 @@ * RANLIB: Particular Programs. (line 102) * sbindir: Installation Directory Variables. (line 52) -* SET_MAKE: Output. (line 38) +* SET_MAKE: Output. (line 37) * sharedstatedir: Installation Directory Variables. (line 56) * srcdir: Preset Output Variables. @@ -10004,11 +9962,11 @@ * subdirs: Subdirectories. (line 12) * sysconfdir: Installation Directory Variables. (line 60) -* target: Canonicalizing. (line 47) +* target: Canonicalizing. (line 46) * target_alias: Canonicalizing. (line 9) -* target_cpu: Canonicalizing. (line 47) -* target_os: Canonicalizing. (line 47) -* target_vendor: Canonicalizing. (line 47) +* target_cpu: Canonicalizing. (line 46) +* target_os: Canonicalizing. (line 46) +* target_vendor: Canonicalizing. (line 46) * top_srcdir: Preset Output Variables. (line 97) * X_CFLAGS: System Services. (line 26) @@ -10025,36 +9983,37 @@ This is an alphabetical list of the C preprocessor symbols that the Autoconf macros define. To work with Autoconf, C source code needs to -use these names in `#if' directives. +use these names in '#if' directives. [index] * Menu: -* __CHAR_UNSIGNED__: C Compiler. (line 120) * _ALL_SOURCE: UNIX Variants. (line 13) -* _FILE_OFFSET_BITS: System Services. (line 45) -* _LARGE_FILES: System Services. (line 45) +* _FILE_OFFSET_BITS: System Services. (line 44) * _LARGEFILE_SOURCE: Particular Functions. (line 93) +* _LARGE_FILES: System Services. (line 44) * _MINIX: UNIX Variants. (line 25) * _POSIX_1_SOURCE: UNIX Variants. (line 25) * _POSIX_SOURCE: UNIX Variants. (line 18) +* _POSIX_SOURCE <1>: UNIX Variants. (line 25) * _POSIX_VERSION: Particular Headers. (line 130) +* __CHAR_UNSIGNED__: C Compiler. (line 120) +* CLOSEDIR_VOID: Particular Functions. + (line 58) +* const: C Compiler. (line 73) * C_ALLOCA: Particular Functions. (line 10) * C_GETLOADAVG: Particular Functions. (line 103) -* CLOSEDIR_VOID: Particular Functions. - (line 58) -* const: C Compiler. (line 73) * DGUX: Particular Functions. (line 103) * DIRENT: Obsolete Macros. (line 126) -* F77_DUMMY_MAIN: Fortran 77 Compiler. (line 65) -* F77_FUNC: Fortran 77 Compiler. (line 116) -* F77_FUNC_: Fortran 77 Compiler. (line 116) -* F77_MAIN: Fortran 77 Compiler. (line 102) -* F77_NO_MINUS_C_MINUS_O: Fortran 77 Compiler. (line 29) +* F77_DUMMY_MAIN: Fortran 77 Compiler. (line 64) +* F77_FUNC: Fortran 77 Compiler. (line 115) +* F77_FUNC_: Fortran 77 Compiler. (line 115) +* F77_MAIN: Fortran 77 Compiler. (line 101) +* F77_NO_MINUS_C_MINUS_O: Fortran 77 Compiler. (line 28) * GETGROUPS_T: Particular Types. (line 10) * GETLODAVG_PRIVILEGED: Particular Functions. (line 103) @@ -10076,7 +10035,7 @@ (line 131) * HAVE_HEADER: Generic Headers. (line 43) * HAVE_LONG_DOUBLE: C Compiler. (line 124) -* HAVE_LONG_FILE_NAMES: System Services. (line 60) +* HAVE_LONG_FILE_NAMES: System Services. (line 58) * HAVE_LSTAT_EMPTY_STRING_BUG: Particular Functions. (line 196) * HAVE_MMAP: Particular Functions. @@ -10085,12 +10044,6 @@ * HAVE_OBSTACK: Particular Functions. (line 176) * HAVE_RESTARTABLE_SYSCALLS: Obsolete Macros. (line 446) -* HAVE_ST_BLKSIZE: Particular Structures. - (line 9) -* HAVE_ST_BLOCKS: Particular Structures. - (line 17) -* HAVE_ST_RDEV: Particular Structures. - (line 23) * HAVE_STAT_EMPTY_STRING_BUG: Particular Functions. (line 196) * HAVE_STRCOLL: Particular Functions. @@ -10106,6 +10059,12 @@ (line 17) * HAVE_STRUCT_STAT_ST_RDEV: Particular Structures. (line 23) +* HAVE_ST_BLKSIZE: Particular Structures. + (line 9) +* HAVE_ST_BLOCKS: Particular Structures. + (line 17) +* HAVE_ST_RDEV: Particular Structures. + (line 23) * HAVE_SYS_DIR_H: Particular Headers. (line 10) * HAVE_SYS_NDIR_H: Particular Headers. (line 10) * HAVE_SYS_WAIT_H: Particular Headers. (line 112) @@ -10162,10 +10121,10 @@ * STDC_HEADERS: Particular Headers. (line 57) * SVR4: Particular Functions. (line 103) -* SYS_SIGLIST_DECLARED: Particular Declarations. - (line 9) * SYSDIR: Obsolete Macros. (line 126) * SYSNDIR: Obsolete Macros. (line 126) +* SYS_SIGLIST_DECLARED: Particular Declarations. + (line 9) * TIME_WITH_SYS_TIME: Particular Headers. (line 146) * TM_IN_SYS_TIME: Particular Structures. (line 31) @@ -10189,7 +10148,7 @@ ******************** This is an alphabetical list of the Autoconf macros. To make the list -easier to use, the macros are listed without their preceding `AC_'. +easier to use, the macros are listed without their preceding 'AC_'. [index] * Menu: @@ -10209,24 +10168,16 @@ * AU_DEFUN: Obsoleting Macros. (line 18) * BEFORE: Suggested Ordering. (line 28) * BOTTOM: Autoheader Macros. (line 56) -* C_BIGENDIAN: C Compiler. (line 68) -* C_CHAR_UNSIGNED: C Compiler. (line 120) -* C_CONST: C Compiler. (line 73) -* C_CROSS: Obsolete Macros. (line 26) -* C_INLINE: C Compiler. (line 115) -* C_LONG_DOUBLE: C Compiler. (line 124) -* C_PROTOTYPES: C Compiler. (line 137) -* C_STRINGIZE: C Compiler. (line 130) -* C_VOLATILE: C Compiler. (line 98) -* CACHE_CHECK: Caching Results. (line 30) +* CACHE_CHECK: Caching Results. (line 29) * CACHE_LOAD: Cache Checkpointing. (line 13) * CACHE_SAVE: Cache Checkpointing. (line 17) -* CACHE_VAL: Caching Results. (line 16) +* CACHE_VAL: Caching Results. (line 15) * CANONICAL_BUILD: Canonicalizing. (line 26) * CANONICAL_HOST: Canonicalizing. (line 34) * CANONICAL_SYSTEM: Obsolete Macros. (line 29) -* CANONICAL_TARGET: Canonicalizing. (line 47) +* CANONICAL_TARGET: Canonicalizing. (line 46) * CHAR_UNSIGNED: Obsolete Macros. (line 39) +* CHECKING: Obsolete Macros. (line 89) * CHECK_DECL: Generic Declarations. (line 11) * CHECK_DECLS: Generic Declarations. @@ -10246,10 +10197,9 @@ (line 7) * CHECK_TOOL: Generic Programs. (line 43) * CHECK_TOOLS: Generic Programs. (line 54) -* CHECK_TYPE <1>: Obsolete Macros. (line 42) * CHECK_TYPE: Generic Types. (line 11) +* CHECK_TYPE <1>: Obsolete Macros. (line 42) * CHECK_TYPES: Generic Types. (line 16) -* CHECKING: Obsolete Macros. (line 89) * COMPILE_CHECK: Obsolete Macros. (line 93) * CONFIG_AUX_DIR: Input. (line 29) * CONFIG_COMMANDS: Configuration Commands. @@ -10264,13 +10214,22 @@ * COPYRIGHT: Notices. (line 21) * CROSS_CHECK: Obsolete Macros. (line 103) * CYGWIN: Obsolete Macros. (line 107) +* C_BIGENDIAN: C Compiler. (line 68) +* C_CHAR_UNSIGNED: C Compiler. (line 120) +* C_CONST: C Compiler. (line 73) +* C_CROSS: Obsolete Macros. (line 26) +* C_INLINE: C Compiler. (line 115) +* C_LONG_DOUBLE: C Compiler. (line 124) +* C_PROTOTYPES: C Compiler. (line 137) +* C_STRINGIZE: C Compiler. (line 130) +* C_VOLATILE: C Compiler. (line 98) * DECL_SYS_SIGLIST: Particular Declarations. (line 9) * DECL_YYTEXT: Obsolete Macros. (line 123) * DEFINE: Defining Symbols. (line 29) * DEFINE_UNQUOTED: Defining Symbols. (line 45) -* DEFUN <1>: Obsoleting Macros. (line 18) * DEFUN: Macro Definitions. (line 6) +* DEFUN <1>: Obsoleting Macros. (line 18) * DIAGNOSE: Reporting Messages. (line 11) * DIR_HEADER: Obsolete Macros. (line 126) * DYNIX_SEQ: Obsolete Macros. (line 137) @@ -10282,11 +10241,11 @@ * ENABLE: Package Options. (line 57) * ERROR: Obsolete Macros. (line 154) * EXEEXT: Obsolete Macros. (line 145) -* F77_DUMMY_MAIN: Fortran 77 Compiler. (line 65) -* F77_FUNC: Fortran 77 Compiler. (line 171) -* F77_LIBRARY_LDFLAGS: Fortran 77 Compiler. (line 39) -* F77_MAIN: Fortran 77 Compiler. (line 102) -* F77_WRAPPERS: Fortran 77 Compiler. (line 116) +* F77_DUMMY_MAIN: Fortran 77 Compiler. (line 64) +* F77_FUNC: Fortran 77 Compiler. (line 169) +* F77_LIBRARY_LDFLAGS: Fortran 77 Compiler. (line 38) +* F77_MAIN: Fortran 77 Compiler. (line 101) +* F77_WRAPPERS: Fortran 77 Compiler. (line 115) * FATAL: Reporting Messages. (line 33) * FIND_X: Obsolete Macros. (line 157) * FIND_XTRA: Obsolete Macros. (line 160) @@ -10365,8 +10324,8 @@ * HEADER_TIME: Particular Headers. (line 146) * HEADER_TIOCGWINSZ: Particular Headers. (line 167) * HELP_STRING: Pretty Help Strings. (line 14) -* INIT <1>: Obsolete Macros. (line 207) * INIT: Input. (line 10) +* INIT <1>: Obsolete Macros. (line 207) * INLINE: Obsolete Macros. (line 214) * INT_16_BITS: Obsolete Macros. (line 217) * IRIX_SUN: Obsolete Macros. (line 221) @@ -10394,15 +10353,15 @@ * MMAP: Obsolete Macros. (line 294) * MODE_T: Obsolete Macros. (line 297) * MSG_CHECKING: Printing Messages. (line 23) -* MSG_ERROR: Printing Messages. (line 55) -* MSG_NOTICE: Printing Messages. (line 45) +* MSG_ERROR: Printing Messages. (line 54) +* MSG_NOTICE: Printing Messages. (line 44) * MSG_RESULT: Printing Messages. (line 34) -* MSG_WARN: Printing Messages. (line 65) +* MSG_WARN: Printing Messages. (line 64) * OBJEXT: Obsolete Macros. (line 300) * OBSOLETE: Obsolete Macros. (line 306) * OFF_T: Obsolete Macros. (line 321) +* OUTPUT: Output. (line 12) * OUTPUT <1>: Obsolete Macros. (line 324) -* OUTPUT: Output. (line 13) * OUTPUT_COMMANDS: Obsolete Macros. (line 346) * OUTPUT_COMMANDS_POST: Configuration Commands. (line 39) @@ -10418,6 +10377,11 @@ * PREFIX_DEFAULT: Default Prefix. (line 16) * PREFIX_PROGRAM: Default Prefix. (line 25) * PREREQ: Notices. (line 10) +* PROGRAMS_CHECK: Obsolete Macros. (line 381) +* PROGRAMS_PATH: Obsolete Macros. (line 384) +* PROGRAM_CHECK: Obsolete Macros. (line 387) +* PROGRAM_EGREP: Obsolete Macros. (line 390) +* PROGRAM_PATH: Obsolete Macros. (line 393) * PROG_AWK: Particular Programs. (line 10) * PROG_CC: C Compiler. (line 7) * PROG_CC_C_O: C Compiler. (line 26) @@ -10425,20 +10389,15 @@ * PROG_CPP: C Compiler. (line 47) * PROG_CXX: C++ Compiler. (line 7) * PROG_CXXCPP: C++ Compiler. (line 31) -* PROG_F77_C_O: Fortran 77 Compiler. (line 29) +* PROG_F77_C_O: Fortran 77 Compiler. (line 28) * PROG_FORTRAN: Fortran 77 Compiler. (line 7) -* PROG_GCC_TRADITIONAL: C Compiler. (line 157) +* PROG_GCC_TRADITIONAL: C Compiler. (line 156) * PROG_INSTALL: Particular Programs. (line 16) * PROG_LEX: Particular Programs. (line 45) * PROG_LN_S: Particular Programs. (line 83) -* PROG_MAKE_SET: Output. (line 38) +* PROG_MAKE_SET: Output. (line 37) * PROG_RANLIB: Particular Programs. (line 102) * PROG_YACC: Particular Programs. (line 106) -* PROGRAM_CHECK: Obsolete Macros. (line 387) -* PROGRAM_EGREP: Obsolete Macros. (line 390) -* PROGRAM_PATH: Obsolete Macros. (line 393) -* PROGRAMS_CHECK: Obsolete Macros. (line 381) -* PROGRAMS_PATH: Obsolete Macros. (line 384) * REMOTE_TAPE: Obsolete Macros. (line 396) * REPLACE_FUNCS: Generic Functions. (line 84) * REQUIRE: Prerequisite Macros. (line 17) @@ -10449,15 +10408,12 @@ * RSH: Obsolete Macros. (line 405) * SCO_INTL: Obsolete Macros. (line 408) * SEARCH_LIBS: Libraries. (line 41) -* SET_MAKE: Obsolete Macros. (line 419) * SETVBUF_REVERSED: Obsolete Macros. (line 416) -* SIZE_T: Obsolete Macros. (line 425) +* SET_MAKE: Obsolete Macros. (line 419) * SIZEOF_TYPE: Obsolete Macros. (line 422) -* ST_BLKSIZE: Obsolete Macros. (line 437) -* ST_BLOCKS: Obsolete Macros. (line 440) -* ST_RDEV: Obsolete Macros. (line 443) -* STAT_MACROS_BROKEN <1>: Obsolete Macros. (line 428) +* SIZE_T: Obsolete Macros. (line 425) * STAT_MACROS_BROKEN: Particular Headers. (line 51) +* STAT_MACROS_BROKEN <1>: Obsolete Macros. (line 428) * STDC_HEADERS: Obsolete Macros. (line 431) * STRCOLL: Obsolete Macros. (line 434) * STRUCT_ST_BLKSIZE: Particular Structures. @@ -10470,21 +10426,24 @@ (line 36) * STRUCT_TM: Particular Structures. (line 31) +* ST_BLKSIZE: Obsolete Macros. (line 437) +* ST_BLOCKS: Obsolete Macros. (line 440) +* ST_RDEV: Obsolete Macros. (line 443) * SUBST: Setting Output Variables. (line 13) * SUBST_FILE: Setting Output Variables. (line 23) -* SYS_INTERPRETER: System Services. (line 38) -* SYS_LARGEFILE: System Services. (line 45) -* SYS_LONG_FILE_NAMES: System Services. (line 60) -* SYS_POSIX_TERMIOS: System Services. (line 64) +* SYS_INTERPRETER: System Services. (line 37) +* SYS_LARGEFILE: System Services. (line 44) +* SYS_LONG_FILE_NAMES: System Services. (line 58) +* SYS_POSIX_TERMIOS: System Services. (line 62) * SYS_RESTARTABLE_SYSCALLS: Obsolete Macros. (line 446) * SYS_SIGLIST_DECLARED: Obsolete Macros. (line 461) * TEMPLATE: Autoheader Macros. (line 32) * TEST_CPP: Obsolete Macros. (line 464) * TEST_PROGRAM: Obsolete Macros. (line 467) -* TIME_WITH_SYS_TIME: Obsolete Macros. (line 473) * TIMEZONE: Obsolete Macros. (line 470) +* TIME_WITH_SYS_TIME: Obsolete Macros. (line 473) * TOP: Autoheader Macros. (line 53) * TRY_COMPILE: Examining Syntax. (line 14) * TRY_CPP: Examining Declarations. @@ -10524,12 +10483,13 @@ This is an alphabetical list of the M4, M4sugar, and M4sh macros. To make the list easier to use, the macros are listed without their -preceding `m4_' or `AS_'. +preceding 'm4_' or 'AS_'. [index] * Menu: * defn: Redefined M4 Macros. (line 14) +* defn <1>: Redefined M4 Macros. (line 26) * pattern_allow: Forbidden Patterns. (line 28) * pattern_forbid: Forbidden Patterns. (line 15) * undefine: Redefined M4 Macros. (line 18) @@ -10553,18 +10513,18 @@ * ${VAR:-VALUE}: Shell Substitutions. (line 38) * ${VAR=EXPANDED-VALUE}: Shell Substitutions. (line 71) * ${VAR=LITERAL}: Shell Substitutions. (line 42) -* /usr/xpg4/bin/sh on Solaris: Shellology. (line 44) +* /usr/xpg4/bin/sh on Solaris: Shellology. (line 43) * :: Limitations of Builtins. (line 312) * @%:@: Quadrigraphs. (line 6) * @:>@: Quadrigraphs. (line 6) * @<:@: Quadrigraphs. (line 6) * @S|@: Quadrigraphs. (line 6) -* `COMMANDS`: Shell Substitutions. (line 117) +* 'COMMANDS': Shell Substitutions. (line 117) * acconfig.h: acconfig.h. (line 6) * aclocal.m4: Making configure Scripts. (line 6) -* Ash: Shellology. (line 14) +* Ash: Shellology. (line 13) * autoconf: autoconf Invocation. (line 6) * autoheader: autoheader Invocation. (line 6) @@ -10577,7 +10537,7 @@ * awk: Limitations of Usual Tools. (line 10) * Back trace: autoconf Invocation. (line 93) -* Bash: Shellology. (line 38) +* Bash: Shellology. (line 37) * break: Limitations of Builtins. (line 19) * Cache: Caching Results. (line 6) @@ -10602,10 +10562,10 @@ * Configuration Header: Configuration Headers. (line 6) * Configuration Header Template: Header Templates. (line 6) -* configure <1>: Running configure scripts. - (line 6) * configure: Making configure Scripts. (line 6) +* configure <1>: Running configure scripts. + (line 6) * configure.ac: Making configure Scripts. (line 27) * configure.in: Making configure Scripts. @@ -10618,8 +10578,8 @@ (line 79) * dirname: Limitations of Usual Tools. (line 85) -* dnl <1>: Coding Style. (line 41) -* dnl: Macro Definitions. (line 36) +* dnl: Macro Definitions. (line 35) +* dnl <1>: Coding Style. (line 40) * echo: Limitations of Builtins. (line 42) * egrep: Limitations of Usual Tools. @@ -10631,6 +10591,8 @@ (line 94) * expr: Limitations of Usual Tools. (line 126) +* expr <1>: Limitations of Usual Tools. + (line 151) * expr (|): Limitations of Usual Tools. (line 132) * false: Limitations of Builtins. @@ -10647,10 +10609,10 @@ (line 146) * ifnames: ifnames Invocation. (line 6) * Includes, default: Default Includes. (line 6) -* Instantiation: Output. (line 13) +* Instantiation: Output. (line 12) * Language: Language Choice. (line 6) * Library, checking: Libraries. (line 6) -* Libtool: Libtool. (line 14) +* Libtool: Libtool. (line 13) * Links: Configuration Links. (line 12) * ln: Limitations of Usual Tools. (line 216) @@ -10663,15 +10625,15 @@ (line 228) * obstack: Particular Functions. (line 176) -* POSIX termios headers: System Services. (line 64) +* POSIX termios headers: System Services. (line 62) * Previous Variable: Setting Output Variables. (line 44) * Programs, checking: Alternative Programs. (line 6) * QNX 4.25: Systemology. (line 11) * quadrigraphs: Quadrigraphs. (line 6) -* quotation <1>: M4 Quotation. (line 6) * quotation: Autoconf Language. (line 6) +* quotation <1>: M4 Quotation. (line 6) * Revision: Notices. (line 29) * sed: Limitations of Usual Tools. (line 239) @@ -10684,7 +10646,7 @@ * Structure, checking: Structures. (line 6) * Symbolic links: Limitations of Usual Tools. (line 216) -* termios POSIX headers: System Services. (line 64) +* termios POSIX headers: System Services. (line 62) * test: Limitations of Builtins. (line 191) * touch: Limitations of Usual Tools. @@ -10700,198 +10662,198 @@ (line 44) * Version: Notices. (line 10) * VPATH: Limitations of Make. (line 31) -* Zsh: Shellology. (line 50) +* Zsh: Shellology. (line 49)  Tag Table: -Node: Top1944 -Node: Introduction14206 -Ref: Introduction-Footnote-119051 -Ref: Introduction-Footnote-219132 -Ref: Introduction-Footnote-319232 -Ref: Introduction-Footnote-419346 -Node: The GNU build system19421 -Node: Automake20340 -Node: Libtool22766 -Node: Pointers24193 -Ref: Pointers-Footnote-125506 -Ref: Pointers-Footnote-225565 -Ref: Pointers-Footnote-325624 -Ref: Pointers-Footnote-425681 -Ref: Pointers-Footnote-525822 -Ref: Pointers-Footnote-625896 -Ref: Pointers-Footnote-725968 -Node: Making configure Scripts26043 -Node: Writing configure.ac29075 -Node: Shell Script Compiler30541 -Node: Autoconf Language32842 -Node: configure.ac Layout37474 -Node: autoscan Invocation38878 -Node: ifnames Invocation41629 -Node: autoconf Invocation42829 -Node: autoreconf Invocation49999 -Node: Setup53678 -Node: Notices54883 -Node: Input56518 -Node: Output58566 -Node: Configuration Actions60548 -Node: Configuration Files63450 -Node: Makefile Substitutions64916 -Node: Preset Output Variables66602 -Node: Installation Directory Variables71173 +Node: Top1940 +Node: Introduction14200 +Ref: Introduction-Footnote-119045 +Ref: Introduction-Footnote-219126 +Ref: Introduction-Footnote-319226 +Ref: Introduction-Footnote-419340 +Node: The GNU build system19415 +Node: Automake20334 +Node: Libtool22760 +Node: Pointers24186 +Ref: Pointers-Footnote-125498 +Ref: Pointers-Footnote-225557 +Ref: Pointers-Footnote-325616 +Ref: Pointers-Footnote-425673 +Ref: Pointers-Footnote-525815 +Ref: Pointers-Footnote-625889 +Ref: Pointers-Footnote-725961 +Node: Making configure Scripts26036 +Node: Writing configure.ac29070 +Node: Shell Script Compiler30536 +Node: Autoconf Language32837 +Node: configure.ac Layout37469 +Node: autoscan Invocation38873 +Node: ifnames Invocation41626 +Node: autoconf Invocation42826 +Node: autoreconf Invocation49997 +Node: Setup53676 +Node: Notices54881 +Node: Input56517 +Node: Output58565 +Node: Configuration Actions60547 +Node: Configuration Files63452 +Node: Makefile Substitutions64918 +Node: Preset Output Variables66601 +Node: Installation Directory Variables71172 Node: Build Directories75524 Node: Automatic Remaking77177 Node: Configuration Headers79332 Node: Header Templates82035 Node: autoheader Invocation83313 -Node: Autoheader Macros86777 -Node: Configuration Commands88981 -Node: Configuration Links90667 -Node: Subdirectories92044 +Node: Autoheader Macros86781 +Node: Configuration Commands88984 +Node: Configuration Links90670 +Node: Subdirectories92042 Node: Default Prefix94197 -Node: Existing Tests95593 -Node: Common Behavior97311 -Node: Standard Symbols97973 -Node: Default Includes98574 -Node: Alternative Programs100506 -Node: Particular Programs101192 -Node: Generic Programs106186 -Node: Files110091 -Node: Libraries110986 -Node: Library Functions113846 -Node: Function Portability114469 -Node: Particular Functions115474 -Node: Generic Functions126059 -Node: Header Files130303 -Node: Particular Headers130866 -Node: Generic Headers137832 -Node: Declarations139902 -Node: Particular Declarations140491 -Node: Generic Declarations140914 -Node: Structures143287 -Node: Particular Structures143894 -Node: Generic Structures145616 -Node: Types146860 -Node: Particular Types147380 -Node: Generic Types148550 -Node: Compilers and Preprocessors149923 -Node: Generic Compiler Characteristics150934 -Node: C Compiler151797 -Node: C++ Compiler159144 -Node: Fortran 77 Compiler161387 -Node: System Services169955 -Ref: System Services-Footnote-1173076 -Node: UNIX Variants173167 -Node: Writing Tests174348 -Node: Examining Declarations176280 -Node: Examining Syntax178778 -Node: Examining Libraries180226 -Node: Run Time183243 -Node: Test Programs184224 -Node: Guidelines186490 -Node: Test Functions187689 -Node: Systemology189245 -Ref: Systemology-Footnote-1189872 -Ref: Systemology-Footnote-2189910 -Node: Multiple Cases189978 -Node: Language Choice191235 -Node: Results193266 -Node: Defining Symbols194016 -Node: Setting Output Variables197269 -Node: Caching Results201461 -Node: Cache Variable Names205144 -Node: Cache Files206733 -Node: Cache Checkpointing208762 -Node: Printing Messages210093 -Node: Programming in M4213282 -Node: M4 Quotation213955 -Node: Active Characters214765 -Ref: Active Characters-Footnote-1216143 -Node: One Macro Call216165 -Node: Quotation and Nested Macros217728 -Node: Quadrigraphs220694 -Node: Quotation Rule Of Thumb221622 -Node: Programming in M4sugar224265 -Node: Redefined M4 Macros224773 -Node: Forbidden Patterns225743 -Node: Writing Autoconf Macros227108 -Node: Macro Definitions227909 -Node: Macro Names229717 -Node: Reporting Messages232329 -Node: Dependencies Between Macros233671 -Node: Prerequisite Macros234295 -Node: Suggested Ordering237077 -Node: Obsoleting Macros238596 -Node: Coding Style239720 -Node: Portable Shell246727 -Node: Shellology248813 -Node: Here-Documents251790 -Node: File Descriptors253751 -Node: File System Conventions255759 -Ref: File System Conventions-Footnote-1259879 -Node: Shell Substitutions259953 -Node: Assignments264861 -Node: Special Shell Variables266498 -Node: Limitations of Builtins270539 -Node: Limitations of Usual Tools282863 -Node: Limitations of Make295603 -Node: Manual Configuration296584 -Node: Specifying Names297413 -Ref: Specifying Names-Footnote-1300224 -Node: Canonicalizing300624 -Node: Using System Type303028 -Node: Site Configuration304077 -Node: External Software304909 -Node: Package Options308225 -Node: Pretty Help Strings311093 -Node: Site Details313071 -Node: Transforming Names314306 -Node: Transformation Options315453 -Node: Transformation Examples315957 -Node: Transformation Rules317678 -Node: Site Defaults319514 -Node: Running configure scripts323432 -Node: Basic Installation324449 -Node: Compilers and Options327297 -Node: Multiple Architectures327939 -Node: Installation Names328938 -Node: Optional Features330136 -Node: System Type330920 -Node: Sharing Defaults332447 -Node: Environment Variables333088 -Node: configure Invocation333774 -Node: config.status Invocation334906 -Node: Obsolete Constructs338732 -Node: Obsolete config.status Use339658 -Node: acconfig.h341457 -Node: autoupdate Invocation343472 -Node: Obsolete Macros345434 -Node: Autoconf 1362589 -Node: Changed File Names363655 -Node: Changed Makefiles364430 -Node: Changed Macros365523 -Node: Changed Results366780 -Node: Changed Macro Writing368892 -Node: Autoconf 2.13370167 -Node: Changed Quotation371176 -Node: New Macros373082 -Node: Questions374716 -Node: Distributing375240 -Node: Why GNU m4376313 -Node: Bootstrapping377211 -Node: Why Not Imake377827 -Node: History382536 -Node: Genesis383335 -Node: Exodus384531 -Node: Leviticus387581 -Node: Numbers389115 -Node: Deuteronomy391036 -Node: Environment Variable Index393709 -Node: Output Variable Index397752 -Node: Preprocessor Symbol Index406998 -Node: Autoconf Macro Index417932 -Node: M4 Macro Index441264 -Node: Concept Index441878 +Node: Existing Tests95594 +Node: Common Behavior97312 +Node: Standard Symbols97974 +Node: Default Includes98575 +Node: Alternative Programs100507 +Node: Particular Programs101193 +Node: Generic Programs106227 +Node: Files110136 +Node: Libraries111031 +Node: Library Functions113896 +Node: Function Portability114519 +Node: Particular Functions115524 +Node: Generic Functions126116 +Node: Header Files130361 +Node: Particular Headers130924 +Node: Generic Headers137893 +Node: Declarations139965 +Node: Particular Declarations140554 +Node: Generic Declarations140977 +Node: Structures143350 +Node: Particular Structures143957 +Node: Generic Structures145679 +Node: Types146923 +Node: Particular Types147443 +Node: Generic Types148613 +Node: Compilers and Preprocessors149985 +Node: Generic Compiler Characteristics150996 +Node: C Compiler151859 +Node: C++ Compiler159200 +Node: Fortran 77 Compiler161443 +Node: System Services169940 +Ref: System Services-Footnote-1173056 +Node: UNIX Variants173147 +Node: Writing Tests174329 +Node: Examining Declarations176261 +Node: Examining Syntax178761 +Node: Examining Libraries180209 +Node: Run Time183221 +Node: Test Programs184202 +Node: Guidelines186469 +Node: Test Functions187668 +Node: Systemology189224 +Ref: Systemology-Footnote-1189852 +Ref: Systemology-Footnote-2189890 +Node: Multiple Cases189958 +Node: Language Choice191215 +Node: Results193250 +Node: Defining Symbols194000 +Node: Setting Output Variables197256 +Node: Caching Results201447 +Node: Cache Variable Names205130 +Node: Cache Files206719 +Node: Cache Checkpointing208749 +Node: Printing Messages210080 +Node: Programming in M4213265 +Node: M4 Quotation213938 +Node: Active Characters214748 +Ref: Active Characters-Footnote-1216126 +Node: One Macro Call216148 +Node: Quotation and Nested Macros217710 +Node: Quadrigraphs220676 +Node: Quotation Rule Of Thumb221601 +Node: Programming in M4sugar224244 +Node: Redefined M4 Macros224752 +Node: Forbidden Patterns225722 +Node: Writing Autoconf Macros227087 +Node: Macro Definitions227888 +Node: Macro Names229696 +Node: Reporting Messages232297 +Node: Dependencies Between Macros233643 +Node: Prerequisite Macros234267 +Node: Suggested Ordering237048 +Node: Obsoleting Macros238567 +Node: Coding Style239690 +Node: Portable Shell246696 +Node: Shellology248782 +Node: Here-Documents251761 +Node: File Descriptors253723 +Node: File System Conventions255731 +Ref: File System Conventions-Footnote-1259851 +Node: Shell Substitutions259925 +Node: Assignments264834 +Node: Special Shell Variables266471 +Node: Limitations of Builtins270517 +Node: Limitations of Usual Tools282845 +Node: Limitations of Make295588 +Node: Manual Configuration296569 +Node: Specifying Names297398 +Ref: Specifying Names-Footnote-1300209 +Node: Canonicalizing300609 +Node: Using System Type303013 +Node: Site Configuration304062 +Node: External Software304894 +Node: Package Options308210 +Node: Pretty Help Strings311078 +Node: Site Details313057 +Node: Transforming Names314292 +Node: Transformation Options315440 +Node: Transformation Examples315944 +Node: Transformation Rules317666 +Node: Site Defaults319502 +Node: Running configure scripts323421 +Node: Basic Installation324438 +Node: Compilers and Options327286 +Node: Multiple Architectures327928 +Node: Installation Names328927 +Node: Optional Features330126 +Node: System Type330910 +Node: Sharing Defaults332436 +Node: Environment Variables333078 +Node: configure Invocation333764 +Node: config.status Invocation334896 +Node: Obsolete Constructs338721 +Node: Obsolete config.status Use339647 +Node: acconfig.h341446 +Node: autoupdate Invocation343462 +Node: Obsolete Macros345424 +Node: Autoconf 1362577 +Node: Changed File Names363643 +Node: Changed Makefiles364418 +Node: Changed Macros365511 +Node: Changed Results366767 +Node: Changed Macro Writing368878 +Node: Autoconf 2.13370153 +Node: Changed Quotation371162 +Node: New Macros373069 +Node: Questions374703 +Node: Distributing375227 +Node: Why GNU m4376298 +Node: Bootstrapping377196 +Node: Why Not Imake377812 +Node: History382517 +Node: Genesis383316 +Node: Exodus384512 +Node: Leviticus387563 +Node: Numbers389097 +Node: Deuteronomy391018 +Node: Environment Variable Index393690 +Node: Output Variable Index397733 +Node: Preprocessor Symbol Index407543 +Node: Autoconf Macro Index418550 +Node: M4 Macro Index441882 +Node: Concept Index442569  End Tag Table diff -Nru autoconf-dickey-2.52+20170501/doc/autoconf.texi autoconf-dickey-2.52+20200111/doc/autoconf.texi --- autoconf-dickey-2.52+20170501/doc/autoconf.texi 2001-12-01 17:45:23.000000000 +0000 +++ autoconf-dickey-2.52+20200111/doc/autoconf.texi 2020-01-11 15:11:04.000000000 +0000 @@ -3006,9 +3006,11 @@ @defmac AC_PROG_YACC @maindex PROG_YACC @ovindex YACC -If @code{bison} is found, set output variable @code{YACC} to @samp{bison --y}. Otherwise, if @code{byacc} is found, set @code{YACC} to -@samp{byacc}. Otherwise set @code{YACC} to @samp{yacc}. +If @code{byacc} is found, set @code{YACC} to @samp{byacc}. +Otherwise, if @code{bison} is found, +set output variable @code{YACC} to @samp{bison -y}. +Finally, if neither @code{byacc} or @code{bison} is found, +set @code{YACC} to @samp{yacc}. @end defmac @node Generic Programs, , Particular Programs, Alternative Programs diff -Nru autoconf-dickey-2.52+20170501/doc/stamp-vti autoconf-dickey-2.52+20200111/doc/stamp-vti --- autoconf-dickey-2.52+20170501/doc/stamp-vti 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/doc/stamp-vti 2020-01-11 17:50:20.000000000 +0000 @@ -1,4 +1,4 @@ -@set UPDATED 1 December 2001 -@set UPDATED-MONTH December 2001 -@set EDITION 2.52.20170501 -@set VERSION 2.52.20170501 +@set UPDATED 11 January 2020 +@set UPDATED-MONTH January 2020 +@set EDITION 2.52.20200111 +@set VERSION 2.52.20200111 diff -Nru autoconf-dickey-2.52+20170501/doc/standards.info autoconf-dickey-2.52+20200111/doc/standards.info --- autoconf-dickey-2.52+20170501/doc/standards.info 2010-03-20 15:32:02.000000000 +0000 +++ autoconf-dickey-2.52+20200111/doc/standards.info 2020-01-11 17:50:23.000000000 +0000 @@ -1,4 +1,5 @@ -This is standards.info, produced by makeinfo version 4.13 from standards.texi. +This is standards.info, produced by makeinfo version 6.3 from +standards.texi. START-INFO-DIR-ENTRY * Standards: (standards). GNU coding standards. @@ -12,8 +13,8 @@ preserved on all copies. Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this @@ -42,7 +43,7 @@ * Index::  -File: standards.info, Node: Preface, Next: Legal Issues, Prev: Top, Up: Top +File: standards.info, Node: Preface, Next: Legal Issues, Up: Top 1 About the GNU Coding Standards ******************************** @@ -60,19 +61,19 @@ If you did not obtain this file directly from the GNU project and recently, please check for a newer version. You can ftp the GNU Coding -Standards from any GNU FTP host in the directory `/pub/gnu/standards/'. +Standards from any GNU FTP host in the directory '/pub/gnu/standards/'. The GNU Coding Standards are available there in several different -formats: `standards.text', `standards.info', and `standards.dvi', as +formats: 'standards.text', 'standards.info', and 'standards.dvi', as well as the Texinfo "source" which is divided in two files: -`standards.texi' and `make-stds.texi'. The GNU Coding Standards are +'standards.texi' and 'make-stds.texi'. The GNU Coding Standards are also available on the GNU World Wide Web server: -`http://www.gnu.org/prep/standards_toc.html'. +. Corrections or suggestions for this document should be sent to . If you make a suggestion, please include a suggested new wording for it; our time is limited. We prefer a context -diff to the `standards.texi' or `make-stds.texi' files, but if you -don't have those files, please mail your suggestion anyway. +diff to the 'standards.texi' or 'make-stds.texi' files, but if you don't +have those files, please mail your suggestion anyway.  File: standards.info, Node: Legal Issues, Next: Design Advice, Prev: Preface, Up: Top @@ -80,8 +81,8 @@ 2 Keeping Free Software Free **************************** -This node discusses how you can make sure that GNU software avoids -legal difficulties, and other related issues. +This node discusses how you can make sure that GNU software avoids legal +difficulties, and other related issues. * Menu: @@ -96,13 +97,13 @@ ===================================== Don't in any circumstances refer to Unix source code for or during your -work on GNU! (Or to any other proprietary programs.) +work on GNU! (Or to any other proprietary programs.) If you have a vague recollection of the internals of a Unix program, -this does not absolutely mean you can't write an imitation of it, but -do try to organize the imitation internally along different lines, -because this is likely to make the details of the Unix version -irrelevant and dissimilar to your results. +this does not absolutely mean you can't write an imitation of it, but do +try to organize the imitation internally along different lines, because +this is likely to make the details of the Unix version irrelevant and +dissimilar to your results. For example, Unix utilities were generally optimized to minimize memory use; if you go for speed instead, your program will be very @@ -189,8 +190,8 @@ What is legally required, as regards other people's trademarks, is to avoid using them in ways which a reader might read as naming or labeling -our own programs or activities. For example, since "Objective C" is -(or at least was) a trademark, we made sure to say that we provide a +our own programs or activities. For example, since "Objective C" is (or +at least was) a trademark, we made sure to say that we provide a "compiler for the Objective C language" rather than an "Objective C compiler". The latter is meant to be short for the former, but it does not explicitly state the relationship, so it could be misinterpreted as @@ -203,8 +204,8 @@ 3 General Program Design ************************ -This node discusses some of the issues you should take into account -when designing your program. +This node discusses some of the issues you should take into account when +designing your program. * Menu: @@ -220,7 +221,7 @@ ========================== When you want to use a language that gets compiled and runs at high -speed, the best language to use is C. Using another language is like +speed, the best language to use is C. Using another language is like using a non-standard feature: it will cause trouble for users. Even if GCC supports the other language, users may find it inconvenient to have to install the compiler for that other language in order to build your @@ -242,18 +243,17 @@ installed the other language anyway. * If an application is of interest only to a narrow part of the - community, then the question of which language it is written in - has less effect on other people, so you may as well please - yourself. + community, then the question of which language it is written in has + less effect on other people, so you may as well please yourself. Many programs are designed to be extensible: they include an -interpreter for a language that is higher level than C. Often much of +interpreter for a language that is higher level than C. Often much of the program is written in that language, too. The Emacs editor pioneered this technique. The standard extensibility interpreter for GNU software is GUILE, which implements the language Scheme (an especially clean and simple -dialect of Lisp). `http://www.gnu.org/software/guile/'. We don't +dialect of Lisp). . We don't reject programs written in other "scripting languages" such as Perl and Python, but using GUILE is very important for the overall consistency of the GNU system. @@ -272,26 +272,26 @@ When these standards conflict, it is useful to offer compatibility modes for each of them. - Standard C and POSIX prohibit many kinds of extensions. Feel free -to make the extensions anyway, and include a `--ansi', `--posix', or -`--compatible' option to turn them off. However, if the extension has -a significant chance of breaking any real programs or scripts, then it -is not really upward compatible. So you should try to redesign its + Standard C and POSIX prohibit many kinds of extensions. Feel free to +make the extensions anyway, and include a '--ansi', '--posix', or +'--compatible' option to turn them off. However, if the extension has a +significant chance of breaking any real programs or scripts, then it is +not really upward compatible. So you should try to redesign its interface to make it upward compatible. Many GNU programs suppress extensions that conflict with POSIX if the -environment variable `POSIXLY_CORRECT' is defined (even if it is -defined with a null value). Please make your program recognize this -variable if appropriate. +environment variable 'POSIXLY_CORRECT' is defined (even if it is defined +with a null value). Please make your program recognize this variable if +appropriate. When a feature is used only by users (not by programs or command files), and it is done poorly in Unix, feel free to replace it completely with something totally different and better. (For example, -`vi' is replaced with Emacs.) But it is nice to offer a compatible -feature as well. (There is a free `vi' clone, so we offer it.) +'vi' is replaced with Emacs.) But it is nice to offer a compatible +feature as well. (There is a free 'vi' clone, so we offer it.) - Additional useful features are welcome regardless of whether there -is any precedent for them. + Additional useful features are welcome regardless of whether there is +any precedent for them.  File: standards.info, Node: Using Extensions, Next: Standard C, Prev: Compatibility, Up: Design Advice @@ -303,31 +303,29 @@ extensions over the comparable Unix facilities. Whether to use these extensions in implementing your program is a difficult question. - On the one hand, using the extensions can make a cleaner program. -On the other hand, people will not be able to build the program unless -the other GNU tools are available. This might cause the program to -work on fewer kinds of machines. + On the one hand, using the extensions can make a cleaner program. On +the other hand, people will not be able to build the program unless the +other GNU tools are available. This might cause the program to work on +fewer kinds of machines. With some extensions, it might be easy to provide both alternatives. -For example, you can define functions with a "keyword" `INLINE' and -define that as a macro to expand into either `inline' or nothing, +For example, you can define functions with a "keyword" 'INLINE' and +define that as a macro to expand into either 'inline' or nothing, depending on the compiler. In general, perhaps it is best not to use the extensions if you can -straightforwardly do without them, but to use the extensions if they -are a big improvement. +straightforwardly do without them, but to use the extensions if they are +a big improvement. An exception to this rule are the large, established programs (such -as Emacs) which run on a great variety of systems. Using GNU -extensions in such programs would make many users unhappy, so we don't -do that. +as Emacs) which run on a great variety of systems. Using GNU extensions +in such programs would make many users unhappy, so we don't do that. Another exception is for programs that are used as part of compilation: anything that must be compiled with other compilers in -order to bootstrap the GNU compilation facilities. If these require -the GNU compiler, then no one can compile them without having them -installed already. That would be extremely troublesome in certain -cases. +order to bootstrap the GNU compilation facilities. If these require the +GNU compiler, then no one can compile them without having them installed +already. That would be extremely troublesome in certain cases.  File: standards.info, Node: Standard C, Prev: Using Extensions, Up: Design Advice @@ -369,18 +367,18 @@ And once you have the declaration, you normally lose nothing by writing the function definition in the pre-standard style. - This technique does not work for integer types narrower than `int'. -If you think of an argument as being of a type narrower than `int', -declare it as `int' instead. + This technique does not work for integer types narrower than 'int'. +If you think of an argument as being of a type narrower than 'int', +declare it as 'int' instead. There are a few special cases where this technique is hard to use. For example, if a function argument needs to hold the system type -`dev_t', you run into trouble, because `dev_t' is shorter than `int' on -some machines; but you cannot use `int' instead, because `dev_t' is -wider than `int' on some machines. There is no type you can safely use +'dev_t', you run into trouble, because 'dev_t' is shorter than 'int' on +some machines; but you cannot use 'int' instead, because 'dev_t' is +wider than 'int' on some machines. There is no type you can safely use on all machines in a non-standard definition. The only way to support non-standard C and pass such an argument is to check the width of -`dev_t' using Autoconf and choose the argument type accordingly. This +'dev_t' using Autoconf and choose the argument type accordingly. This may not be worth the trouble. In order to support pre-standard compilers that do not recognize @@ -430,38 +428,38 @@ nonprinting characters _including those with codes above 0177_. The only sensible exceptions would be utilities specifically intended for interface to certain types of terminals or printers that can't handle -those characters. Whenever possible, try to make programs work -properly with sequences of bytes that represent multibyte characters, -using encodings such as UTF-8 and others. +those characters. Whenever possible, try to make programs work properly +with sequences of bytes that represent multibyte characters, using +encodings such as UTF-8 and others. - Check every system call for an error return, unless you know you -wish to ignore errors. Include the system error text (from `perror' or + Check every system call for an error return, unless you know you wish +to ignore errors. Include the system error text (from 'perror' or equivalent) in _every_ error message resulting from a failing system call, as well as the name of the file if any and the name of the utility. Just "cannot open foo.c" or "stat failed" is not sufficient. - Check every call to `malloc' or `realloc' to see if it returned -zero. Check `realloc' even if you are making the block smaller; in a -system that rounds block sizes to a power of 2, `realloc' may get a -different block if you ask for less space. - - In Unix, `realloc' can destroy the storage block if it returns zero. -GNU `realloc' does not have this bug: if it fails, the original block -is unchanged. Feel free to assume the bug is fixed. If you wish to -run your program on Unix, and wish to avoid lossage in this case, you -can use the GNU `malloc'. + Check every call to 'malloc' or 'realloc' to see if it returned zero. +Check 'realloc' even if you are making the block smaller; in a system +that rounds block sizes to a power of 2, 'realloc' may get a different +block if you ask for less space. + + In Unix, 'realloc' can destroy the storage block if it returns zero. +GNU 'realloc' does not have this bug: if it fails, the original block is +unchanged. Feel free to assume the bug is fixed. If you wish to run +your program on Unix, and wish to avoid lossage in this case, you can +use the GNU 'malloc'. - You must expect `free' to alter the contents of the block that was + You must expect 'free' to alter the contents of the block that was freed. Anything you want to fetch from the block, you must fetch before -calling `free'. +calling 'free'. - If `malloc' fails in a noninteractive program, make that a fatal + If 'malloc' fails in a noninteractive program, make that a fatal error. In an interactive program (one that reads commands from the user), it is better to abort the command and return to the command reader loop. This allows the user to kill other processes to free up virtual memory, and then try the command again. - Use `getopt_long' to decode arguments, unless the argument syntax + Use 'getopt_long' to decode arguments, unless the argument syntax makes this unreasonable. When static storage is to be written in during program execution, use @@ -471,19 +469,19 @@ Try to avoid low-level interfaces to obscure Unix data structures (such as file directories, utmp, or the layout of kernel memory), since these are less likely to work compatibly. If you need to find all the -files in a directory, use `readdir' or some other high-level interface. +files in a directory, use 'readdir' or some other high-level interface. These are supported compatibly by GNU. The preferred signal handling facilities are the BSD variant of -`signal', and the POSIX `sigaction' function; the alternative USG -`signal' interface is an inferior design. +'signal', and the POSIX 'sigaction' function; the alternative USG +'signal' interface is an inferior design. Nowadays, using the POSIX signal functions may be the easiest way to -make a program portable. If you use `signal', then on GNU/Linux -systems running GNU libc version 1, you should include `bsd/signal.h' -instead of `signal.h', so as to get BSD behavior. It is up to you -whether to support systems where `signal' has only the USG behavior, or -give up on them. +make a program portable. If you use 'signal', then on GNU/Linux systems +running GNU libc version 1, you should include 'bsd/signal.h' instead of +'signal.h', so as to get BSD behavior. It is up to you whether to +support systems where 'signal' has only the USG behavior, or give up on +them. In error checks that detect "impossible" conditions, just abort. There is usually no point in printing any message. These checks @@ -493,15 +491,15 @@ are easy to examine with the debugger, so there is no point moving them elsewhere. - Do not use a count of errors as the exit status for a program. -_That does not work_, because exit status values are limited to 8 bits -(0 through 255). A single run of the program might have 256 errors; if -you try to return 256 as the exit status, the parent process will see 0 -as the status, and it will appear that the program succeeded. - - If you make temporary files, check the `TMPDIR' environment -variable; if that variable is defined, use the specified directory -instead of `/tmp'. + Do not use a count of errors as the exit status for a program. _That +does not work_, because exit status values are limited to 8 bits (0 +through 255). A single run of the program might have 256 errors; if you +try to return 256 as the exit status, the parent process will see 0 as +the status, and it will appear that the program succeeded. + + If you make temporary files, check the 'TMPDIR' environment variable; +if that variable is defined, use the specified directory instead of +'/tmp'. In addition, be aware that there is a possible security problem when creating temporary files in world-writable directories. In C, you can @@ -509,9 +507,9 @@ fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600); -or by using the `mkstemps' function from libiberty. +or by using the 'mkstemps' function from libiberty. - In bash, use `set -C' to avoid this problem. + In bash, use 'set -C' to avoid this problem.  File: standards.info, Node: Libraries, Next: Errors, Prev: Semantics, Up: Program Behavior @@ -521,7 +519,7 @@ Try to make library functions reentrant. If they need to do dynamic storage allocation, at least try to avoid any nonreentrancy aside from -that of `malloc' itself. +that of 'malloc' itself. Here are certain name conventions for libraries, to avoid name conflicts. @@ -532,14 +530,14 @@ member. This usually means putting each one in a separate source file. An exception can be made when two external symbols are always used -together, so that no reasonable program could use one without the -other; then they can both go in the same file. +together, so that no reasonable program could use one without the other; +then they can both go in the same file. External symbols that are not documented entry points for the user -should have names beginning with `_'. The `_' should be followed by -the chosen name prefix for the library, to prevent collisions with -other libraries. These can go in the same files with user entry points -if you like. +should have names beginning with '_'. The '_' should be followed by the +chosen name prefix for the library, to prevent collisions with other +libraries. These can go in the same files with user entry points if you +like. Static functions and variables can be used as you like and need not fit any naming convention. @@ -561,8 +559,8 @@ Line numbers should start from 1 at the beginning of the file, and column numbers should start from 1 at the beginning of the line. (Both of these conventions are chosen for compatibility.) Calculate column -numbers assuming that space and all ASCII printing characters have -equal width, and assuming tab stops every 8 columns. +numbers assuming that space and all ASCII printing characters have equal +width, and assuming tab stops every 8 columns. Error messages from other noninteractive programs should look like this: @@ -587,8 +585,8 @@ would do best to print error messages using the noninteractive style.) The string MESSAGE should not begin with a capital letter when it -follows a program name and/or file name. Also, it should not end with -a period. +follows a program name and/or file name. Also, it should not end with a +period. Error messages from interactive programs, and other messages such as usage messages, should start with a capital letter. But they should not @@ -621,11 +619,11 @@ behavior. Compatibility requires certain programs to depend on the type of -output device. It would be disastrous if `ls' or `sh' did not do so in +output device. It would be disastrous if 'ls' or 'sh' did not do so in the way all users expect. In some of these cases, we supplement the program with a preferred alternate version that does not depend on the -output device type. For example, we provide a `dir' program much like -`ls' except that its default output format is always multi-column +output device type. For example, we provide a 'dir' program much like +'ls' except that its default output format is always multi-column format.  @@ -657,50 +655,50 @@ ========================================= It is a good idea to follow the POSIX guidelines for the command-line -options of a program. The easiest way to do this is to use `getopt' to -parse them. Note that the GNU version of `getopt' will normally permit -options anywhere among the arguments unless the special argument `--' -is used. This is not what POSIX specifies; it is a GNU extension. +options of a program. The easiest way to do this is to use 'getopt' to +parse them. Note that the GNU version of 'getopt' will normally permit +options anywhere among the arguments unless the special argument '--' is +used. This is not what POSIX specifies; it is a GNU extension. Please define long-named options that are equivalent to the single-letter Unix-style options. We hope to make GNU more user friendly this way. This is easy to do with the GNU function -`getopt_long'. +'getopt_long'. One of the advantages of long-named options is that they can be consistent from program to program. For example, users should be able to expect the "verbose" option of any GNU program which has one, to be -spelled precisely `--verbose'. To achieve this uniformity, look at the +spelled precisely '--verbose'. To achieve this uniformity, look at the table of common long-option names when you choose the option names for your program (*note Option Table::). It is usually a good idea for file names given as ordinary arguments to be input files only; any output files would be specified using -options (preferably `-o' or `--output'). Even if you allow an output +options (preferably '-o' or '--output'). Even if you allow an output file name as an ordinary argument for compatibility, try to provide an option as another way to specify it. This will lead to more consistency among GNU utilities, and fewer idiosyncracies for users to remember. - All programs should support two standard options: `--version' and -`--help'. + All programs should support two standard options: '--version' and +'--help'. -`--version' +'--version' This option should direct the program to print information about - its name, version, origin and legal status, all on standard - output, and then exit successfully. Other options and arguments - should be ignored once this is seen, and the program should not - perform its normal function. + its name, version, origin and legal status, all on standard output, + and then exit successfully. Other options and arguments should be + ignored once this is seen, and the program should not perform its + normal function. The first line is meant to be easy for a program to parse; the - version number proper starts after the last space. In addition, - it contains the canonical name for this program, in this format: + version number proper starts after the last space. In addition, it + contains the canonical name for this program, in this format: GNU Emacs 19.30 The program's name should be a constant string; _don't_ compute it - from `argv[0]'. The idea is to state the standard or canonical + from 'argv[0]'. The idea is to state the standard or canonical name for the program, not its file name. There are other ways to - find out the precise file name where a command is found in `PATH'. + find out the precise file name where a command is found in 'PATH'. If the program is a subsidiary part of a larger package, mention the package name in parentheses, like this: @@ -711,11 +709,11 @@ program's version number, you can mention the package version number just before the close-parenthesis. - If you *need* to mention the version numbers of libraries which - are distributed separately from the package which contains this + If you *need* to mention the version numbers of libraries which are + distributed separately from the package which contains this program, you can do so by printing an additional line of version - info for each library you want to mention. Use the same format - for these lines as for the first line. + info for each library you want to mention. Use the same format for + these lines as for the first line. Please do not mention all of the libraries that the program uses "just for completeness"--that would produce a lot of unhelpful @@ -723,14 +721,14 @@ in practice that they are very important to you in debugging. The following line, after the version number line or lines, should - be a copyright notice. If more than one copyright notice is - called for, put each on a separate line. + be a copyright notice. If more than one copyright notice is called + for, put each on a separate line. Next should follow a brief statement that the program is free software, and that users are free to copy and change it on certain - conditions. If the program is covered by the GNU GPL, say so - here. Also mention that there is no warranty, to the extent - permitted by law. + conditions. If the program is covered by the GNU GPL, say so here. + Also mention that there is no warranty, to the extent permitted by + law. It is ok to finish the output with a list of the major authors of the program, as a way of giving credit. @@ -757,13 +755,13 @@ the program in these notices, if that is inconvenient, since it appeared in the first line. -`--help' +'--help' This option should output brief documentation for how to invoke the - program, on standard output, then exit successfully. Other - options and arguments should be ignored once this is seen, and the - program should not perform its normal function. + program, on standard output, then exit successfully. Other options + and arguments should be ignored once this is seen, and the program + should not perform its normal function. - Near the end of the `--help' option's output there should be a line + Near the end of the '--help' option's output there should be a line that says where to mail bug reports. It should have this format: Report bugs to MAILING-ADDRESS. @@ -777,1086 +775,1086 @@ Here is a table of long options used by GNU programs. It is surely incomplete, but we aim to list all the options that a new program might want to be compatible with. If you use names not already in the table, -please send a list of them, with their -meanings, so we can update the table. +please send a list of them, with their meanings, +so we can update the table. -`after-date' - `-N' in `tar'. +'after-date' + '-N' in 'tar'. -`all' - `-a' in `du', `ls', `nm', `stty', `uname', and `unexpand'. +'all' + '-a' in 'du', 'ls', 'nm', 'stty', 'uname', and 'unexpand'. -`all-text' - `-a' in `diff'. +'all-text' + '-a' in 'diff'. -`almost-all' - `-A' in `ls'. +'almost-all' + '-A' in 'ls'. -`append' - `-a' in `etags', `tee', `time'; `-r' in `tar'. +'append' + '-a' in 'etags', 'tee', 'time'; '-r' in 'tar'. -`archive' - `-a' in `cp'. +'archive' + '-a' in 'cp'. -`archive-name' - `-n' in `shar'. +'archive-name' + '-n' in 'shar'. -`arglength' - `-l' in `m4'. +'arglength' + '-l' in 'm4'. -`ascii' - `-a' in `diff'. +'ascii' + '-a' in 'diff'. -`assign' - `-v' in `gawk'. +'assign' + '-v' in 'gawk'. -`assume-new' - `-W' in Make. +'assume-new' + '-W' in Make. -`assume-old' - `-o' in Make. +'assume-old' + '-o' in Make. -`auto-check' - `-a' in `recode'. +'auto-check' + '-a' in 'recode'. -`auto-pager' - `-a' in `wdiff'. +'auto-pager' + '-a' in 'wdiff'. -`auto-reference' - `-A' in `ptx'. +'auto-reference' + '-A' in 'ptx'. -`avoid-wraps' - `-n' in `wdiff'. +'avoid-wraps' + '-n' in 'wdiff'. -`background' +'background' For server programs, run in the background. -`backward-search' - `-B' in `ctags'. +'backward-search' + '-B' in 'ctags'. -`basename' - `-f' in `shar'. +'basename' + '-f' in 'shar'. -`batch' +'batch' Used in GDB. -`baud' +'baud' Used in GDB. -`before' - `-b' in `tac'. +'before' + '-b' in 'tac'. -`binary' - `-b' in `cpio' and `diff'. +'binary' + '-b' in 'cpio' and 'diff'. -`bits-per-code' - `-b' in `shar'. +'bits-per-code' + '-b' in 'shar'. -`block-size' - Used in `cpio' and `tar'. +'block-size' + Used in 'cpio' and 'tar'. -`blocks' - `-b' in `head' and `tail'. +'blocks' + '-b' in 'head' and 'tail'. -`break-file' - `-b' in `ptx'. +'break-file' + '-b' in 'ptx'. -`brief' +'brief' Used in various programs to make output shorter. -`bytes' - `-c' in `head', `split', and `tail'. +'bytes' + '-c' in 'head', 'split', and 'tail'. -`c++' - `-C' in `etags'. +'c++' + '-C' in 'etags'. -`catenate' - `-A' in `tar'. +'catenate' + '-A' in 'tar'. -`cd' +'cd' Used in various programs to specify the directory to use. -`changes' - `-c' in `chgrp' and `chown'. +'changes' + '-c' in 'chgrp' and 'chown'. -`classify' - `-F' in `ls'. +'classify' + '-F' in 'ls'. -`colons' - `-c' in `recode'. +'colons' + '-c' in 'recode'. -`command' - `-c' in `su'; `-x' in GDB. +'command' + '-c' in 'su'; '-x' in GDB. -`compare' - `-d' in `tar'. +'compare' + '-d' in 'tar'. -`compat' - Used in `gawk'. +'compat' + Used in 'gawk'. -`compress' - `-Z' in `tar' and `shar'. +'compress' + '-Z' in 'tar' and 'shar'. -`concatenate' - `-A' in `tar'. +'concatenate' + '-A' in 'tar'. -`confirmation' - `-w' in `tar'. +'confirmation' + '-w' in 'tar'. -`context' - Used in `diff'. +'context' + Used in 'diff'. -`copyleft' - `-W copyleft' in `gawk'. +'copyleft' + '-W copyleft' in 'gawk'. -`copyright' - `-C' in `ptx', `recode', and `wdiff'; `-W copyright' in `gawk'. +'copyright' + '-C' in 'ptx', 'recode', and 'wdiff'; '-W copyright' in 'gawk'. -`core' +'core' Used in GDB. -`count' - `-q' in `who'. +'count' + '-q' in 'who'. -`count-links' - `-l' in `du'. +'count-links' + '-l' in 'du'. -`create' - Used in `tar' and `cpio'. +'create' + Used in 'tar' and 'cpio'. -`cut-mark' - `-c' in `shar'. +'cut-mark' + '-c' in 'shar'. -`cxref' - `-x' in `ctags'. +'cxref' + '-x' in 'ctags'. -`date' - `-d' in `touch'. +'date' + '-d' in 'touch'. -`debug' - `-d' in Make and `m4'; `-t' in Bison. +'debug' + '-d' in Make and 'm4'; '-t' in Bison. -`define' - `-D' in `m4'. +'define' + '-D' in 'm4'. -`defines' - `-d' in Bison and `ctags'. +'defines' + '-d' in Bison and 'ctags'. -`delete' - `-D' in `tar'. +'delete' + '-D' in 'tar'. -`dereference' - `-L' in `chgrp', `chown', `cpio', `du', `ls', and `tar'. +'dereference' + '-L' in 'chgrp', 'chown', 'cpio', 'du', 'ls', and 'tar'. -`dereference-args' - `-D' in `du'. +'dereference-args' + '-D' in 'du'. -`device' +'device' Specify an I/O device (special file name). -`diacritics' - `-d' in `recode'. +'diacritics' + '-d' in 'recode'. -`dictionary-order' - `-d' in `look'. +'dictionary-order' + '-d' in 'look'. -`diff' - `-d' in `tar'. +'diff' + '-d' in 'tar'. -`digits' - `-n' in `csplit'. +'digits' + '-n' in 'csplit'. -`directory' - Specify the directory to use, in various programs. In `ls', it +'directory' + Specify the directory to use, in various programs. In 'ls', it means to show directories themselves rather than their contents. - In `rm' and `ln', it means to not treat links to directories + In 'rm' and 'ln', it means to not treat links to directories specially. -`discard-all' - `-x' in `strip'. +'discard-all' + '-x' in 'strip'. -`discard-locals' - `-X' in `strip'. +'discard-locals' + '-X' in 'strip'. -`dry-run' - `-n' in Make. +'dry-run' + '-n' in Make. -`ed' - `-e' in `diff'. +'ed' + '-e' in 'diff'. -`elide-empty-files' - `-z' in `csplit'. +'elide-empty-files' + '-z' in 'csplit'. -`end-delete' - `-x' in `wdiff'. +'end-delete' + '-x' in 'wdiff'. -`end-insert' - `-z' in `wdiff'. +'end-insert' + '-z' in 'wdiff'. -`entire-new-file' - `-N' in `diff'. +'entire-new-file' + '-N' in 'diff'. -`environment-overrides' - `-e' in Make. +'environment-overrides' + '-e' in Make. -`eof' - `-e' in `xargs'. +'eof' + '-e' in 'xargs'. -`epoch' +'epoch' Used in GDB. -`error-limit' - Used in `makeinfo'. +'error-limit' + Used in 'makeinfo'. -`error-output' - `-o' in `m4'. +'error-output' + '-o' in 'm4'. -`escape' - `-b' in `ls'. +'escape' + '-b' in 'ls'. -`exclude-from' - `-X' in `tar'. +'exclude-from' + '-X' in 'tar'. -`exec' +'exec' Used in GDB. -`exit' - `-x' in `xargs'. +'exit' + '-x' in 'xargs'. -`exit-0' - `-e' in `unshar'. +'exit-0' + '-e' in 'unshar'. -`expand-tabs' - `-t' in `diff'. +'expand-tabs' + '-t' in 'diff'. -`expression' - `-e' in `sed'. +'expression' + '-e' in 'sed'. -`extern-only' - `-g' in `nm'. +'extern-only' + '-g' in 'nm'. -`extract' - `-i' in `cpio'; `-x' in `tar'. +'extract' + '-i' in 'cpio'; '-x' in 'tar'. -`faces' - `-f' in `finger'. +'faces' + '-f' in 'finger'. -`fast' - `-f' in `su'. +'fast' + '-f' in 'su'. -`fatal-warnings' - `-E' in `m4'. +'fatal-warnings' + '-E' in 'm4'. -`file' - `-f' in `info', `gawk', Make, `mt', and `tar'; `-n' in `sed'; `-r' - in `touch'. +'file' + '-f' in 'info', 'gawk', Make, 'mt', and 'tar'; '-n' in 'sed'; '-r' + in 'touch'. -`field-separator' - `-F' in `gawk'. +'field-separator' + '-F' in 'gawk'. -`file-prefix' - `-b' in Bison. +'file-prefix' + '-b' in Bison. -`file-type' - `-F' in `ls'. +'file-type' + '-F' in 'ls'. -`files-from' - `-T' in `tar'. +'files-from' + '-T' in 'tar'. -`fill-column' - Used in `makeinfo'. +'fill-column' + Used in 'makeinfo'. -`flag-truncation' - `-F' in `ptx'. +'flag-truncation' + '-F' in 'ptx'. -`fixed-output-files' - `-y' in Bison. +'fixed-output-files' + '-y' in Bison. -`follow' - `-f' in `tail'. +'follow' + '-f' in 'tail'. -`footnote-style' - Used in `makeinfo'. +'footnote-style' + Used in 'makeinfo'. -`force' - `-f' in `cp', `ln', `mv', and `rm'. +'force' + '-f' in 'cp', 'ln', 'mv', and 'rm'. -`force-prefix' - `-F' in `shar'. +'force-prefix' + '-F' in 'shar'. -`foreground' +'foreground' For server programs, run in the foreground; in other words, don't do anything special to run the server in the background. -`format' - Used in `ls', `time', and `ptx'. +'format' + Used in 'ls', 'time', and 'ptx'. -`freeze-state' - `-F' in `m4'. +'freeze-state' + '-F' in 'm4'. -`fullname' +'fullname' Used in GDB. -`gap-size' - `-g' in `ptx'. +'gap-size' + '-g' in 'ptx'. -`get' - `-x' in `tar'. +'get' + '-x' in 'tar'. -`graphic' - `-i' in `ul'. +'graphic' + '-i' in 'ul'. -`graphics' - `-g' in `recode'. +'graphics' + '-g' in 'recode'. -`group' - `-g' in `install'. +'group' + '-g' in 'install'. -`gzip' - `-z' in `tar' and `shar'. +'gzip' + '-z' in 'tar' and 'shar'. -`hashsize' - `-H' in `m4'. +'hashsize' + '-H' in 'm4'. -`header' - `-h' in `objdump' and `recode' +'header' + '-h' in 'objdump' and 'recode' -`heading' - `-H' in `who'. +'heading' + '-H' in 'who'. -`help' +'help' Used to ask for brief usage information. -`here-delimiter' - `-d' in `shar'. +'here-delimiter' + '-d' in 'shar'. -`hide-control-chars' - `-q' in `ls'. +'hide-control-chars' + '-q' in 'ls'. -`html' - In `makeinfo', output HTML. +'html' + In 'makeinfo', output HTML. -`idle' - `-u' in `who'. +'idle' + '-u' in 'who'. -`ifdef' - `-D' in `diff'. +'ifdef' + '-D' in 'diff'. -`ignore' - `-I' in `ls'; `-x' in `recode'. +'ignore' + '-I' in 'ls'; '-x' in 'recode'. -`ignore-all-space' - `-w' in `diff'. +'ignore-all-space' + '-w' in 'diff'. -`ignore-backups' - `-B' in `ls'. +'ignore-backups' + '-B' in 'ls'. -`ignore-blank-lines' - `-B' in `diff'. +'ignore-blank-lines' + '-B' in 'diff'. -`ignore-case' - `-f' in `look' and `ptx'; `-i' in `diff' and `wdiff'. +'ignore-case' + '-f' in 'look' and 'ptx'; '-i' in 'diff' and 'wdiff'. -`ignore-errors' - `-i' in Make. +'ignore-errors' + '-i' in Make. -`ignore-file' - `-i' in `ptx'. +'ignore-file' + '-i' in 'ptx'. -`ignore-indentation' - `-I' in `etags'. +'ignore-indentation' + '-I' in 'etags'. -`ignore-init-file' - `-f' in Oleo. +'ignore-init-file' + '-f' in Oleo. -`ignore-interrupts' - `-i' in `tee'. +'ignore-interrupts' + '-i' in 'tee'. -`ignore-matching-lines' - `-I' in `diff'. +'ignore-matching-lines' + '-I' in 'diff'. -`ignore-space-change' - `-b' in `diff'. +'ignore-space-change' + '-b' in 'diff'. -`ignore-zeros' - `-i' in `tar'. +'ignore-zeros' + '-i' in 'tar'. -`include' - `-i' in `etags'; `-I' in `m4'. +'include' + '-i' in 'etags'; '-I' in 'm4'. -`include-dir' - `-I' in Make. +'include-dir' + '-I' in Make. -`incremental' - `-G' in `tar'. +'incremental' + '-G' in 'tar'. -`info' - `-i', `-l', and `-m' in Finger. +'info' + '-i', '-l', and '-m' in Finger. -`init-file' +'init-file' In some programs, specify the name of the file to read as the user's init file. -`initial' - `-i' in `expand'. +'initial' + '-i' in 'expand'. -`initial-tab' - `-T' in `diff'. +'initial-tab' + '-T' in 'diff'. -`inode' - `-i' in `ls'. +'inode' + '-i' in 'ls'. -`interactive' - `-i' in `cp', `ln', `mv', `rm'; `-e' in `m4'; `-p' in `xargs'; - `-w' in `tar'. +'interactive' + '-i' in 'cp', 'ln', 'mv', 'rm'; '-e' in 'm4'; '-p' in 'xargs'; '-w' + in 'tar'. -`intermix-type' - `-p' in `shar'. +'intermix-type' + '-p' in 'shar'. -`iso-8601' - Used in `date' +'iso-8601' + Used in 'date' -`jobs' - `-j' in Make. +'jobs' + '-j' in Make. -`just-print' - `-n' in Make. +'just-print' + '-n' in Make. -`keep-going' - `-k' in Make. +'keep-going' + '-k' in Make. -`keep-files' - `-k' in `csplit'. +'keep-files' + '-k' in 'csplit'. -`kilobytes' - `-k' in `du' and `ls'. +'kilobytes' + '-k' in 'du' and 'ls'. -`language' - `-l' in `etags'. +'language' + '-l' in 'etags'. -`less-mode' - `-l' in `wdiff'. +'less-mode' + '-l' in 'wdiff'. -`level-for-gzip' - `-g' in `shar'. +'level-for-gzip' + '-g' in 'shar'. -`line-bytes' - `-C' in `split'. +'line-bytes' + '-C' in 'split'. -`lines' - Used in `split', `head', and `tail'. +'lines' + Used in 'split', 'head', and 'tail'. -`link' - `-l' in `cpio'. +'link' + '-l' in 'cpio'. -`lint' -`lint-old' - Used in `gawk'. +'lint' +'lint-old' + Used in 'gawk'. -`list' - `-t' in `cpio'; `-l' in `recode'. +'list' + '-t' in 'cpio'; '-l' in 'recode'. -`list' - `-t' in `tar'. +'list' + '-t' in 'tar'. -`literal' - `-N' in `ls'. +'literal' + '-N' in 'ls'. -`load-average' - `-l' in Make. +'load-average' + '-l' in Make. -`login' - Used in `su'. +'login' + Used in 'su'. -`machine' - No listing of which programs already use this; someone should - check to see if any actually do, and tell . +'machine' + No listing of which programs already use this; someone should check + to see if any actually do, and tell . -`macro-name' - `-M' in `ptx'. +'macro-name' + '-M' in 'ptx'. -`mail' - `-m' in `hello' and `uname'. +'mail' + '-m' in 'hello' and 'uname'. -`make-directories' - `-d' in `cpio'. +'make-directories' + '-d' in 'cpio'. -`makefile' - `-f' in Make. +'makefile' + '-f' in Make. -`mapped' +'mapped' Used in GDB. -`max-args' - `-n' in `xargs'. +'max-args' + '-n' in 'xargs'. -`max-chars' - `-n' in `xargs'. +'max-chars' + '-n' in 'xargs'. -`max-lines' - `-l' in `xargs'. +'max-lines' + '-l' in 'xargs'. -`max-load' - `-l' in Make. +'max-load' + '-l' in Make. -`max-procs' - `-P' in `xargs'. +'max-procs' + '-P' in 'xargs'. -`mesg' - `-T' in `who'. +'mesg' + '-T' in 'who'. -`message' - `-T' in `who'. +'message' + '-T' in 'who'. -`minimal' - `-d' in `diff'. +'minimal' + '-d' in 'diff'. -`mixed-uuencode' - `-M' in `shar'. +'mixed-uuencode' + '-M' in 'shar'. -`mode' - `-m' in `install', `mkdir', and `mkfifo'. +'mode' + '-m' in 'install', 'mkdir', and 'mkfifo'. -`modification-time' - `-m' in `tar'. +'modification-time' + '-m' in 'tar'. -`multi-volume' - `-M' in `tar'. +'multi-volume' + '-M' in 'tar'. -`name-prefix' - `-a' in Bison. +'name-prefix' + '-a' in Bison. -`nesting-limit' - `-L' in `m4'. +'nesting-limit' + '-L' in 'm4'. -`net-headers' - `-a' in `shar'. +'net-headers' + '-a' in 'shar'. -`new-file' - `-W' in Make. +'new-file' + '-W' in Make. -`no-builtin-rules' - `-r' in Make. +'no-builtin-rules' + '-r' in Make. -`no-character-count' - `-w' in `shar'. +'no-character-count' + '-w' in 'shar'. -`no-check-existing' - `-x' in `shar'. +'no-check-existing' + '-x' in 'shar'. -`no-common' - `-3' in `wdiff'. +'no-common' + '-3' in 'wdiff'. -`no-create' - `-c' in `touch'. +'no-create' + '-c' in 'touch'. -`no-defines' - `-D' in `etags'. +'no-defines' + '-D' in 'etags'. -`no-deleted' - `-1' in `wdiff'. +'no-deleted' + '-1' in 'wdiff'. -`no-dereference' - `-d' in `cp'. +'no-dereference' + '-d' in 'cp'. -`no-inserted' - `-2' in `wdiff'. +'no-inserted' + '-2' in 'wdiff'. -`no-keep-going' - `-S' in Make. +'no-keep-going' + '-S' in Make. -`no-lines' - `-l' in Bison. +'no-lines' + '-l' in Bison. -`no-piping' - `-P' in `shar'. +'no-piping' + '-P' in 'shar'. -`no-prof' - `-e' in `gprof'. +'no-prof' + '-e' in 'gprof'. -`no-regex' - `-R' in `etags'. +'no-regex' + '-R' in 'etags'. -`no-sort' - `-p' in `nm'. +'no-sort' + '-p' in 'nm'. -`no-split' - Used in `makeinfo'. +'no-split' + Used in 'makeinfo'. -`no-static' - `-a' in `gprof'. +'no-static' + '-a' in 'gprof'. -`no-time' - `-E' in `gprof'. +'no-time' + '-E' in 'gprof'. -`no-timestamp' - `-m' in `shar'. +'no-timestamp' + '-m' in 'shar'. -`no-validate' - Used in `makeinfo'. +'no-validate' + Used in 'makeinfo'. -`no-wait' - Used in `emacsclient'. +'no-wait' + Used in 'emacsclient'. -`no-warn' +'no-warn' Used in various programs to inhibit warnings. -`node' - `-n' in `info'. +'node' + '-n' in 'info'. -`nodename' - `-n' in `uname'. +'nodename' + '-n' in 'uname'. -`nonmatching' - `-f' in `cpio'. +'nonmatching' + '-f' in 'cpio'. -`nstuff' - `-n' in `objdump'. +'nstuff' + '-n' in 'objdump'. -`null' - `-0' in `xargs'. +'null' + '-0' in 'xargs'. -`number' - `-n' in `cat'. +'number' + '-n' in 'cat'. -`number-nonblank' - `-b' in `cat'. +'number-nonblank' + '-b' in 'cat'. -`numeric-sort' - `-n' in `nm'. +'numeric-sort' + '-n' in 'nm'. -`numeric-uid-gid' - `-n' in `cpio' and `ls'. +'numeric-uid-gid' + '-n' in 'cpio' and 'ls'. -`nx' +'nx' Used in GDB. -`old-archive' - `-o' in `tar'. +'old-archive' + '-o' in 'tar'. -`old-file' - `-o' in Make. +'old-file' + '-o' in Make. -`one-file-system' - `-l' in `tar', `cp', and `du'. +'one-file-system' + '-l' in 'tar', 'cp', and 'du'. -`only-file' - `-o' in `ptx'. +'only-file' + '-o' in 'ptx'. -`only-prof' - `-f' in `gprof'. +'only-prof' + '-f' in 'gprof'. -`only-time' - `-F' in `gprof'. +'only-time' + '-F' in 'gprof'. -`options' - `-o' in `getopt', `fdlist', `fdmount', `fdmountd', and `fdumount'. +'options' + '-o' in 'getopt', 'fdlist', 'fdmount', 'fdmountd', and 'fdumount'. -`output' +'output' In various programs, specify the output file name. -`output-prefix' - `-o' in `shar'. +'output-prefix' + '-o' in 'shar'. -`override' - `-o' in `rm'. +'override' + '-o' in 'rm'. -`overwrite' - `-c' in `unshar'. +'overwrite' + '-c' in 'unshar'. -`owner' - `-o' in `install'. +'owner' + '-o' in 'install'. -`paginate' - `-l' in `diff'. +'paginate' + '-l' in 'diff'. -`paragraph-indent' - Used in `makeinfo'. +'paragraph-indent' + Used in 'makeinfo'. -`parents' - `-p' in `mkdir' and `rmdir'. +'parents' + '-p' in 'mkdir' and 'rmdir'. -`pass-all' - `-p' in `ul'. +'pass-all' + '-p' in 'ul'. -`pass-through' - `-p' in `cpio'. +'pass-through' + '-p' in 'cpio'. -`port' - `-P' in `finger'. +'port' + '-P' in 'finger'. -`portability' - `-c' in `cpio' and `tar'. +'portability' + '-c' in 'cpio' and 'tar'. -`posix' - Used in `gawk'. +'posix' + Used in 'gawk'. -`prefix-builtins' - `-P' in `m4'. +'prefix-builtins' + '-P' in 'm4'. -`prefix' - `-f' in `csplit'. +'prefix' + '-f' in 'csplit'. -`preserve' - Used in `tar' and `cp'. +'preserve' + Used in 'tar' and 'cp'. -`preserve-environment' - `-p' in `su'. +'preserve-environment' + '-p' in 'su'. -`preserve-modification-time' - `-m' in `cpio'. +'preserve-modification-time' + '-m' in 'cpio'. -`preserve-order' - `-s' in `tar'. +'preserve-order' + '-s' in 'tar'. -`preserve-permissions' - `-p' in `tar'. +'preserve-permissions' + '-p' in 'tar'. -`print' - `-l' in `diff'. +'print' + '-l' in 'diff'. -`print-chars' - `-L' in `cmp'. +'print-chars' + '-L' in 'cmp'. -`print-data-base' - `-p' in Make. +'print-data-base' + '-p' in Make. -`print-directory' - `-w' in Make. +'print-directory' + '-w' in Make. -`print-file-name' - `-o' in `nm'. +'print-file-name' + '-o' in 'nm'. -`print-symdefs' - `-s' in `nm'. +'print-symdefs' + '-s' in 'nm'. -`printer' - `-p' in `wdiff'. +'printer' + '-p' in 'wdiff'. -`prompt' - `-p' in `ed'. +'prompt' + '-p' in 'ed'. -`proxy' +'proxy' Specify an HTTP proxy. -`query-user' - `-X' in `shar'. +'query-user' + '-X' in 'shar'. -`question' - `-q' in Make. +'question' + '-q' in Make. -`quiet' - Used in many programs to inhibit the usual output. *Note_* every - program accepting `--quiet' should accept `--silent' as a synonym. +'quiet' + Used in many programs to inhibit the usual output. *Note:* every + program accepting '--quiet' should accept '--silent' as a synonym. -`quiet-unshar' - `-Q' in `shar' +'quiet-unshar' + '-Q' in 'shar' -`quote-name' - `-Q' in `ls'. +'quote-name' + '-Q' in 'ls'. -`rcs' - `-n' in `diff'. +'rcs' + '-n' in 'diff'. -`re-interval' - Used in `gawk'. +'re-interval' + Used in 'gawk'. -`read-full-blocks' - `-B' in `tar'. +'read-full-blocks' + '-B' in 'tar'. -`readnow' +'readnow' Used in GDB. -`recon' - `-n' in Make. +'recon' + '-n' in Make. -`record-number' - `-R' in `tar'. +'record-number' + '-R' in 'tar'. -`recursive' - Used in `chgrp', `chown', `cp', `ls', `diff', and `rm'. +'recursive' + Used in 'chgrp', 'chown', 'cp', 'ls', 'diff', and 'rm'. -`reference-limit' - Used in `makeinfo'. +'reference-limit' + Used in 'makeinfo'. -`references' - `-r' in `ptx'. +'references' + '-r' in 'ptx'. -`regex' - `-r' in `tac' and `etags'. +'regex' + '-r' in 'tac' and 'etags'. -`release' - `-r' in `uname'. +'release' + '-r' in 'uname'. -`reload-state' - `-R' in `m4'. +'reload-state' + '-R' in 'm4'. -`relocation' - `-r' in `objdump'. +'relocation' + '-r' in 'objdump'. -`rename' - `-r' in `cpio'. +'rename' + '-r' in 'cpio'. -`replace' - `-i' in `xargs'. +'replace' + '-i' in 'xargs'. -`report-identical-files' - `-s' in `diff'. +'report-identical-files' + '-s' in 'diff'. -`reset-access-time' - `-a' in `cpio'. +'reset-access-time' + '-a' in 'cpio'. -`reverse' - `-r' in `ls' and `nm'. +'reverse' + '-r' in 'ls' and 'nm'. -`reversed-ed' - `-f' in `diff'. +'reversed-ed' + '-f' in 'diff'. -`right-side-defs' - `-R' in `ptx'. +'right-side-defs' + '-R' in 'ptx'. -`same-order' - `-s' in `tar'. +'same-order' + '-s' in 'tar'. -`same-permissions' - `-p' in `tar'. +'same-permissions' + '-p' in 'tar'. -`save' - `-g' in `stty'. +'save' + '-g' in 'stty'. -`se' +'se' Used in GDB. -`sentence-regexp' - `-S' in `ptx'. +'sentence-regexp' + '-S' in 'ptx'. -`separate-dirs' - `-S' in `du'. +'separate-dirs' + '-S' in 'du'. -`separator' - `-s' in `tac'. +'separator' + '-s' in 'tac'. -`sequence' - Used by `recode' to chose files or pipes for sequencing passes. +'sequence' + Used by 'recode' to chose files or pipes for sequencing passes. -`shell' - `-s' in `su'. +'shell' + '-s' in 'su'. -`show-all' - `-A' in `cat'. +'show-all' + '-A' in 'cat'. -`show-c-function' - `-p' in `diff'. +'show-c-function' + '-p' in 'diff'. -`show-ends' - `-E' in `cat'. +'show-ends' + '-E' in 'cat'. -`show-function-line' - `-F' in `diff'. +'show-function-line' + '-F' in 'diff'. -`show-tabs' - `-T' in `cat'. +'show-tabs' + '-T' in 'cat'. -`silent' - Used in many programs to inhibit the usual output. *Note_* every - program accepting `--silent' should accept `--quiet' as a synonym. +'silent' + Used in many programs to inhibit the usual output. *Note:* every + program accepting '--silent' should accept '--quiet' as a synonym. -`size' - `-s' in `ls'. +'size' + '-s' in 'ls'. -`socket' +'socket' Specify a file descriptor for a network server to use for its - socket, instead of opening and binding a new socket. This - provides a way to run, in a nonpriveledged process, a server that - normally needs a reserved port number. + socket, instead of opening and binding a new socket. This provides + a way to run, in a nonpriveledged process, a server that normally + needs a reserved port number. -`sort' - Used in `ls'. +'sort' + Used in 'ls'. -`source' - `-W source' in `gawk'. +'source' + '-W source' in 'gawk'. -`sparse' - `-S' in `tar'. +'sparse' + '-S' in 'tar'. -`speed-large-files' - `-H' in `diff'. +'speed-large-files' + '-H' in 'diff'. -`split-at' - `-E' in `unshar'. +'split-at' + '-E' in 'unshar'. -`split-size-limit' - `-L' in `shar'. +'split-size-limit' + '-L' in 'shar'. -`squeeze-blank' - `-s' in `cat'. +'squeeze-blank' + '-s' in 'cat'. -`start-delete' - `-w' in `wdiff'. +'start-delete' + '-w' in 'wdiff'. -`start-insert' - `-y' in `wdiff'. +'start-insert' + '-y' in 'wdiff'. -`starting-file' - Used in `tar' and `diff' to specify which file within a directory +'starting-file' + Used in 'tar' and 'diff' to specify which file within a directory to start processing with. -`statistics' - `-s' in `wdiff'. +'statistics' + '-s' in 'wdiff'. -`stdin-file-list' - `-S' in `shar'. +'stdin-file-list' + '-S' in 'shar'. -`stop' - `-S' in Make. +'stop' + '-S' in Make. -`strict' - `-s' in `recode'. +'strict' + '-s' in 'recode'. -`strip' - `-s' in `install'. +'strip' + '-s' in 'install'. -`strip-all' - `-s' in `strip'. +'strip-all' + '-s' in 'strip'. -`strip-debug' - `-S' in `strip'. +'strip-debug' + '-S' in 'strip'. -`submitter' - `-s' in `shar'. +'submitter' + '-s' in 'shar'. -`suffix' - `-S' in `cp', `ln', `mv'. +'suffix' + '-S' in 'cp', 'ln', 'mv'. -`suffix-format' - `-b' in `csplit'. +'suffix-format' + '-b' in 'csplit'. -`sum' - `-s' in `gprof'. +'sum' + '-s' in 'gprof'. -`summarize' - `-s' in `du'. +'summarize' + '-s' in 'du'. -`symbolic' - `-s' in `ln'. +'symbolic' + '-s' in 'ln'. -`symbols' - Used in GDB and `objdump'. +'symbols' + Used in GDB and 'objdump'. -`synclines' - `-s' in `m4'. +'synclines' + '-s' in 'm4'. -`sysname' - `-s' in `uname'. +'sysname' + '-s' in 'uname'. -`tabs' - `-t' in `expand' and `unexpand'. +'tabs' + '-t' in 'expand' and 'unexpand'. -`tabsize' - `-T' in `ls'. +'tabsize' + '-T' in 'ls'. -`terminal' - `-T' in `tput' and `ul'. `-t' in `wdiff'. +'terminal' + '-T' in 'tput' and 'ul'. '-t' in 'wdiff'. -`text' - `-a' in `diff'. +'text' + '-a' in 'diff'. -`text-files' - `-T' in `shar'. +'text-files' + '-T' in 'shar'. -`time' - Used in `ls' and `touch'. +'time' + Used in 'ls' and 'touch'. -`timeout' +'timeout' Specify how long to wait before giving up on some operation. -`to-stdout' - `-O' in `tar'. +'to-stdout' + '-O' in 'tar'. -`total' - `-c' in `du'. +'total' + '-c' in 'du'. -`touch' - `-t' in Make, `ranlib', and `recode'. +'touch' + '-t' in Make, 'ranlib', and 'recode'. -`trace' - `-t' in `m4'. +'trace' + '-t' in 'm4'. -`traditional' - `-t' in `hello'; `-W traditional' in `gawk'; `-G' in `ed', `m4', - and `ptx'. +'traditional' + '-t' in 'hello'; '-W traditional' in 'gawk'; '-G' in 'ed', 'm4', + and 'ptx'. -`tty' +'tty' Used in GDB. -`typedefs' - `-t' in `ctags'. +'typedefs' + '-t' in 'ctags'. -`typedefs-and-c++' - `-T' in `ctags'. +'typedefs-and-c++' + '-T' in 'ctags'. -`typeset-mode' - `-t' in `ptx'. +'typeset-mode' + '-t' in 'ptx'. -`uncompress' - `-z' in `tar'. +'uncompress' + '-z' in 'tar'. -`unconditional' - `-u' in `cpio'. +'unconditional' + '-u' in 'cpio'. -`undefine' - `-U' in `m4'. +'undefine' + '-U' in 'm4'. -`undefined-only' - `-u' in `nm'. +'undefined-only' + '-u' in 'nm'. -`update' - `-u' in `cp', `ctags', `mv', `tar'. +'update' + '-u' in 'cp', 'ctags', 'mv', 'tar'. -`usage' - Used in `gawk'; same as `--help'. +'usage' + Used in 'gawk'; same as '--help'. -`uuencode' - `-B' in `shar'. +'uuencode' + '-B' in 'shar'. -`vanilla-operation' - `-V' in `shar'. +'vanilla-operation' + '-V' in 'shar'. -`verbose' +'verbose' Print more information about progress. Many programs support this. -`verify' - `-W' in `tar'. +'verify' + '-W' in 'tar'. -`version' +'version' Print the version number. -`version-control' - `-V' in `cp', `ln', `mv'. +'version-control' + '-V' in 'cp', 'ln', 'mv'. -`vgrind' - `-v' in `ctags'. +'vgrind' + '-v' in 'ctags'. -`volume' - `-V' in `tar'. +'volume' + '-V' in 'tar'. -`what-if' - `-W' in Make. +'what-if' + '-W' in Make. -`whole-size-limit' - `-l' in `shar'. +'whole-size-limit' + '-l' in 'shar'. -`width' - `-w' in `ls' and `ptx'. +'width' + '-w' in 'ls' and 'ptx'. -`word-regexp' - `-W' in `ptx'. +'word-regexp' + '-W' in 'ptx'. -`writable' - `-T' in `who'. +'writable' + '-T' in 'who'. -`zeros' - `-z' in `gprof'. +'zeros' + '-z' in 'gprof'.  File: standards.info, Node: Memory Usage, Next: File Usage, Prev: Option Table, Up: Program Behavior @@ -1870,7 +1868,7 @@ long, it is reasonable to read entire input files into core to operate on them. - However, for programs such as `cat' or `tail', that can usefully + However, for programs such as 'cat' or 'tail', that can usefully operate on very large files, it is important to avoid using a technique that would artificially limit the size of files it can handle. If a program works by lines and could be applied to arbitrary user-supplied @@ -1879,7 +1877,7 @@ are bigger than will fit in core all at once. If your program creates complicated data structures, just make them -in core and give a fatal error if `malloc' returns zero. +in core and give a fatal error if 'malloc' returns zero.  File: standards.info, Node: File Usage, Prev: Memory Usage, Up: Program Behavior @@ -1887,15 +1885,15 @@ 4.9 File Usage ============== -Programs should be prepared to operate when `/usr' and `/etc' are +Programs should be prepared to operate when '/usr' and '/etc' are read-only file systems. Thus, if the program manages log files, lock files, backup files, score files, or any other files which are modified -for internal purposes, these files should not be stored in `/usr' or -`/etc'. +for internal purposes, these files should not be stored in '/usr' or +'/etc'. - There are two exceptions. `/etc' is used to store system + There are two exceptions. '/etc' is used to store system configuration information; it is reasonable for a program to modify -files in `/etc' when its job is to update the system configuration. +files in '/etc' when its job is to update the system configuration. Also, if the user explicitly asks to modify one file in a directory, it is reasonable for the program to store other files in the same directory. @@ -1906,8 +1904,8 @@ 5 Making The Best Use of C ************************** -This node provides advice on how best to use the C language when -writing GNU software. +This node provides advice on how best to use the C language when writing +GNU software. * Menu: @@ -1917,9 +1915,9 @@ * Names:: Naming Variables and Functions * System Portability:: Portability between different operating systems * CPU Portability:: Supporting the range of CPU types -* System Functions:: Portability and ``standard'' library functions +* System Functions:: Portability and "standard" library functions * Internationalization:: Techniques for internationalization -* Mmap:: How you can safely use `mmap'. +* Mmap:: How you can safely use 'mmap'.  File: standards.info, Node: Formatting, Next: Comments, Up: Writing C @@ -1929,9 +1927,9 @@ It is important to put the open-brace that starts the body of a C function in column zero, and avoid putting any other open-brace or -open-parenthesis or open-bracket in column zero. Several tools look -for open-braces in column zero to find the beginnings of C functions. -These tools will not work on code not formatted that way. +open-parenthesis or open-bracket in column zero. Several tools look for +open-braces in column zero to find the beginnings of C functions. These +tools will not work on code not formatted that way. It is also important for function definitions to start the name of the function in column zero. This helps people to search for function @@ -1963,7 +1961,7 @@ ... The rest of this section gives our recommendations for other aspects -of C formatting style, which is also the default style of the `indent' +of C formatting style, which is also the default style of the 'indent' program in version 1.2 and newer. It corresponds to the options -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2 @@ -2047,25 +2045,25 @@ ======================== Every program should start with a comment saying briefly what it is for. -Example: `fmt - filter for simple filling of text'. +Example: 'fmt - filter for simple filling of text'. Please write the comments in a GNU program in English, because -English is the one language that nearly all programmers in all -countries can read. If you do not write English well, please write -comments in English as well as you can, then ask other people to help -rewrite them. If you can't write comments in English, please find -someone to work with you and translate your comments into English. +English is the one language that nearly all programmers in all countries +can read. If you do not write English well, please write comments in +English as well as you can, then ask other people to help rewrite them. +If you can't write comments in English, please find someone to work with +you and translate your comments into English. Please put a comment on each function saying what the function does, what sorts of arguments it gets, and what the possible values of arguments mean and are used for. It is not necessary to duplicate in words the meaning of the C argument declarations, if a C type is being used in its customary fashion. If there is anything nonstandard about -its use (such as an argument of type `char *' which is really the +its use (such as an argument of type 'char *' which is really the address of the second character of a string, not the first), or any possible values that would not work the way one would expect (such as, -that strings containing newlines are not guaranteed to work), be sure -to say so. +that strings containing newlines are not guaranteed to work), be sure to +say so. Also explain the significance of the return value, if there is one. @@ -2094,10 +2092,10 @@ zero means continue them. */ int truncate_lines; - Every `#endif' should have a comment, except in the case of short + Every '#endif' should have a comment, except in the case of short conditionals (just a few lines) that are not nested. The comment should state the condition of the conditional that is ending, _including its -sense_. `#else' should have a comment describing the condition _and +sense_. '#else' should have a comment describing the condition _and sense_ of the code that follows. For example: #ifdef foo @@ -2109,7 +2107,7 @@ ... #endif /* foo */ -but, by contrast, write the comments this way for a `#ifndef': +but, by contrast, write the comments this way for a '#ifndef': #ifndef foo ... @@ -2128,23 +2126,23 @@ Please explicitly declare the types of all objects. For example, you should explicitly declare all arguments to functions, and you should -declare functions to return `int' rather than omitting the `int'. +declare functions to return 'int' rather than omitting the 'int'. - Some programmers like to use the GCC `-Wall' option, and change the + Some programmers like to use the GCC '-Wall' option, and change the code whenever it issues a warning. If you want to do this, then do. -Other programmers prefer not to use `-Wall', because it gives warnings +Other programmers prefer not to use '-Wall', because it gives warnings for valid and legitimate code which they do not want to change. If you -want to do this, then do. The compiler should be your servant, not -your master. +want to do this, then do. The compiler should be your servant, not your +master. Declarations of external functions and functions to appear later in the source file should all go in one place near the beginning of the file (somewhere before the first function definition in the file), or -else should go in a header file. Don't put `extern' declarations inside +else should go in a header file. Don't put 'extern' declarations inside functions. It used to be common practice to use the same local variables (with -names like `tem') over and over for different values within one +names like 'tem') over and over for different values within one function. Instead of doing this, it is better declare a separate local variable for each distinct purpose, and give it a name which is meaningful. This not only makes programs easier to understand, it also @@ -2174,8 +2172,8 @@ (If they are global variables, each should have a comment preceding it anyway.) - When you have an `if'-`else' statement nested in another `if' -statement, always put braces around the `if'-`else'. Thus, never write + When you have an 'if'-'else' statement nested in another 'if' +statement, always put braces around the 'if'-'else'. Thus, never write like this: if (foo) @@ -2194,16 +2192,16 @@ lose (); } - If you have an `if' statement nested inside of an `else' statement, -either write `else if' on one line, like this, + If you have an 'if' statement nested inside of an 'else' statement, +either write 'else if' on one line, like this, if (foo) ... else if (bar) ... -with its `then'-part indented like the preceding `then'-part, or write -the nested `if' within braces like this: +with its 'then'-part indented like the preceding 'then'-part, or write +the nested 'if' within braces like this: if (foo) ... @@ -2217,7 +2215,7 @@ same declaration. Instead, declare the structure tag separately and then use it to declare the variables or typedefs. - Try to avoid assignments inside `if'-conditions. For example, don't + Try to avoid assignments inside 'if'-conditions. For example, don't write this: if ((foo = (char *) malloc (sizeof *foo)) == 0) @@ -2229,8 +2227,8 @@ if (foo == 0) fatal ("virtual memory exhausted"); - Don't make the program ugly to placate `lint'. Please don't insert -any casts to `void'. Zero without a cast is perfectly fine as a null + Don't make the program ugly to placate 'lint'. Please don't insert +any casts to 'void'. Zero without a cast is perfectly fine as a null pointer constant, except when calling a varargs function.  @@ -2254,32 +2252,32 @@ Please use underscores to separate words in a name, so that the Emacs word commands can be useful within them. Stick to lower case; reserve -upper case for macros and `enum' constants, and for name-prefixes that +upper case for macros and 'enum' constants, and for name-prefixes that follow a uniform convention. - For example, you should use names like `ignore_space_change_flag'; -don't use names like `iCantReadThis'. + For example, you should use names like 'ignore_space_change_flag'; +don't use names like 'iCantReadThis'. Variables that indicate whether command-line options have been -specified should be named after the meaning of the option, not after -the option-letter. A comment should state both the exact meaning of -the option and its letter. For example, +specified should be named after the meaning of the option, not after the +option-letter. A comment should state both the exact meaning of the +option and its letter. For example, /* Ignore changes in horizontal whitespace (-b). */ int ignore_space_change_flag; When you want to define names with constant integer values, use -`enum' rather than `#define'. GDB knows about enumeration constants. +'enum' rather than '#define'. GDB knows about enumeration constants. You might want to make sure that none of the file names would -conflict the files were loaded onto an MS-DOS file system which -shortens the names. You can use the program `doschk' to test for this. +conflict the files were loaded onto an MS-DOS file system which shortens +the names. You can use the program 'doschk' to test for this. Some GNU programs were designed to limit themselves to file names of 14 characters or less, to avoid file name conflicts if they are read into older System V systems. Please preserve this feature in the existing GNU programs that have it, but there is no need to do this in -new GNU programs. `doschk' also reports file names longer than 14 +new GNU programs. 'doschk' also reports file names longer than 14 characters.  @@ -2312,7 +2310,7 @@ written. Avoid using the format of semi-internal data bases (e.g., -directories) when there is a higher-level alternative (`readdir'). +directories) when there is a higher-level alternative ('readdir'). As for systems that are not like Unix, such as MSDOS, Windows, the Macintosh, VMS, and MVS, supporting them is often a lot of work. When @@ -2320,13 +2318,13 @@ will be useful on GNU and GNU/Linux, rather than on supporting other incompatible systems. - It is a good idea to define the "feature test macro" `_GNU_SOURCE' -when compiling your C files. When you compile on GNU or GNU/Linux, -this will enable the declarations of GNU library extension functions, -and that will usually give you a compiler error message if you define -the same function names in some other way in your program. (You don't -have to actually _use_ these functions, if you prefer to make the -program more portable to other systems.) + It is a good idea to define the "feature test macro" '_GNU_SOURCE' +when compiling your C files. When you compile on GNU or GNU/Linux, this +will enable the declarations of GNU library extension functions, and +that will usually give you a compiler error message if you define the +same function names in some other way in your program. (You don't have +to actually _use_ these functions, if you prefer to make the program +more portable to other systems.) But whether or not you use these GNU extensions, you should avoid using their names for any other meanings. Doing so would make it hard @@ -2338,15 +2336,14 @@ 5.6 Portability between CPUs ============================ -Even GNU systems will differ because of differences among CPU -types--for example, difference in byte ordering and alignment -requirements. It is absolutely essential to handle these differences. -However, don't make any effort to cater to the possibility that an -`int' will be less than 32 bits. We don't support 16-bit machines in -GNU. +Even GNU systems will differ because of differences among CPU types--for +example, difference in byte ordering and alignment requirements. It is +absolutely essential to handle these differences. However, don't make +any effort to cater to the possibility that an 'int' will be less than +32 bits. We don't support 16-bit machines in GNU. Similarly, don't make any effort to cater to the possibility that -`long' will be smaller than predefined types like `size_t'. For +'long' will be smaller than predefined types like 'size_t'. For example, the following code is ok: printf ("size = %lu\n", (unsigned long) sizeof array); @@ -2357,12 +2354,12 @@ leave it to those who want to port GNU programs to that environment to figure out how to do it. - Predefined file-size types like `off_t' are an exception: they are -longer than `long' on many platforms, so code like the above won't work -with them. One way to print an `off_t' value portably is to print its + Predefined file-size types like 'off_t' are an exception: they are +longer than 'long' on many platforms, so code like the above won't work +with them. One way to print an 'off_t' value portably is to print its digits yourself, one by one. - Don't assume that the address of an `int' object is also the address + Don't assume that the address of an 'int' object is also the address of its least-significant byte. This is false on big-endian machines. Thus, don't make the following mistake: @@ -2372,16 +2369,16 @@ write(file_descriptor, &c, 1); When calling functions, you need not worry about the difference -between pointers of various types, or between pointers and integers. -On most machines, there's no difference anyway. As for the few -machines where there is a difference, all of them support Standard C -prototypes, so you can use prototypes (perhaps conditionalized to be -active only in Standard C) to make the code work on those systems. +between pointers of various types, or between pointers and integers. On +most machines, there's no difference anyway. As for the few machines +where there is a difference, all of them support Standard C prototypes, +so you can use prototypes (perhaps conditionalized to be active only in +Standard C) to make the code work on those systems. In certain cases, it is ok to pass integer and pointer arguments indiscriminately to the same function, and use no prototype on any system. For example, many GNU programs have error-reporting functions -that pass their arguments along to `printf' and friends: +that pass their arguments along to 'printf' and friends: error (s, a1, a2, a3) char *s; @@ -2397,7 +2394,7 @@ functions. If you have decided to use Standard C, then you can instead define -`error' using `stdarg.h', and pass the arguments along to `vfprintf'. +'error' using 'stdarg.h', and pass the arguments along to 'vfprintf'. Avoid casting pointers to integers if you can. Such casts greatly reduce portability, and in most programs they are easy to avoid. In the @@ -2405,8 +2402,8 @@ interpreter which stores type information as well as an address in one word--you'll have to make explicit provisions to handle different word sizes. You will also need to make provision for systems in which the -normal range of addresses you can get from `malloc' starts far away -from zero. +normal range of addresses you can get from 'malloc' starts far away from +zero.  File: standards.info, Node: System Functions, Next: Internationalization, Prev: CPU Portability, Up: Writing C @@ -2414,57 +2411,56 @@ 5.7 Calling System Functions ============================ -C implementations differ substantially. Standard C reduces but does -not eliminate the incompatibilities; meanwhile, many GNU packages still +C implementations differ substantially. Standard C reduces but does not +eliminate the incompatibilities; meanwhile, many GNU packages still support pre-standard compilers because this is not hard to do. This chapter gives recommendations for how to use the more-or-less standard C library functions to avoid unnecessary loss of portability. - * Don't use the return value of `sprintf'. It returns the number of + * Don't use the return value of 'sprintf'. It returns the number of characters written on some systems, but not on all systems. - * Be aware that `vfprintf' is not always available. + * Be aware that 'vfprintf' is not always available. - * `main' should be declared to return type `int'. It should - terminate either by calling `exit' or by returning the integer + * 'main' should be declared to return type 'int'. It should + terminate either by calling 'exit' or by returning the integer status code; make sure it cannot ever return an undefined value. * Don't declare system functions explicitly. Almost any declaration for a system function is wrong on some - system. To minimize conflicts, leave it to the system header - files to declare system functions. If the headers don't declare a + system. To minimize conflicts, leave it to the system header files + to declare system functions. If the headers don't declare a function, let it remain undeclared. While it may seem unclean to use a function without declaring it, in practice this works fine for most system library functions on the systems where this really happens; thus, the disadvantage is - only theoretical. By contrast, actual declarations have - frequently caused actual conflicts. + only theoretical. By contrast, actual declarations have frequently + caused actual conflicts. * If you must declare a system function, don't specify the argument types. Use an old-style declaration, not a Standard C prototype. The more you specify about the function, the more likely a conflict. - * In particular, don't unconditionally declare `malloc' or `realloc'. + * In particular, don't unconditionally declare 'malloc' or 'realloc'. Most GNU programs use those functions just once, in functions - conventionally named `xmalloc' and `xrealloc'. These functions - call `malloc' and `realloc', respectively, and check the results. + conventionally named 'xmalloc' and 'xrealloc'. These functions + call 'malloc' and 'realloc', respectively, and check the results. - Because `xmalloc' and `xrealloc' are defined in your program, you + Because 'xmalloc' and 'xrealloc' are defined in your program, you can declare them in other files without any risk of type conflict. - On most systems, `int' is the same length as a pointer; thus, the - calls to `malloc' and `realloc' work fine. For the few - exceptional systems (mostly 64-bit machines), you can use - *conditionalized* declarations of `malloc' and `realloc'--or put - these declarations in configuration files specific to those - systems. + On most systems, 'int' is the same length as a pointer; thus, the + calls to 'malloc' and 'realloc' work fine. For the few exceptional + systems (mostly 64-bit machines), you can use *conditionalized* + declarations of 'malloc' and 'realloc'--or put these declarations + in configuration files specific to those systems. * The string functions require special treatment. Some Unix systems - have a header file `string.h'; others have `strings.h'. Neither + have a header file 'string.h'; others have 'strings.h'. Neither file name is portable. There are two things you can do: use Autoconf to figure out which file to include, or don't include either file. @@ -2475,8 +2471,8 @@ That causes less of a problem than you might think. The newer standard string functions should be avoided anyway because many - systems still don't support them. The string functions you can - use are these: + systems still don't support them. The string functions you can use + are these: strcpy strncpy strcat strncat strlen strcmp strncmp @@ -2484,30 +2480,30 @@ The copy and concatenate functions work fine without a declaration as long as you don't use their values. Using their values without - a declaration fails on systems where the width of a pointer - differs from the width of `int', and perhaps in other cases. It - is trivial to avoid using their values, so do that. + a declaration fails on systems where the width of a pointer differs + from the width of 'int', and perhaps in other cases. It is trivial + to avoid using their values, so do that. - The compare functions and `strlen' work fine without a declaration + The compare functions and 'strlen' work fine without a declaration on most systems, possibly all the ones that GNU software runs on. You may find it necessary to declare them *conditionally* on a few systems. - The search functions must be declared to return `char *'. Luckily, + The search functions must be declared to return 'char *'. Luckily, there is no variation in the data type they return. But there is variation in their names. Some systems give these functions the - names `index' and `rindex'; other systems use the names `strchr' - and `strrchr'. Some systems support both pairs of names, but + names 'index' and 'rindex'; other systems use the names 'strchr' + and 'strrchr'. Some systems support both pairs of names, but neither pair works on all systems. You should pick a single pair of names and use it throughout your - program. (Nowadays, it is better to choose `strchr' and `strrchr' + program. (Nowadays, it is better to choose 'strchr' and 'strrchr' for new programs, since those are the standard names.) Declare - both of those names as functions returning `char *'. On systems + both of those names as functions returning 'char *'. On systems which don't support those names, define them as macros in terms of the other pair. For example, here is what to put at the beginning - of your file (or in a header) if you want to use the names - `strchr' and `strrchr' throughout: + of your file (or in a header) if you want to use the names 'strchr' + and 'strrchr' throughout: #ifndef HAVE_STRCHR #define strchr index @@ -2519,7 +2515,7 @@ char *strchr (); char *strrchr (); - Here we assume that `HAVE_STRCHR' and `HAVE_STRRCHR' are macros + Here we assume that 'HAVE_STRCHR' and 'HAVE_STRRCHR' are macros defined in systems where the corresponding functions exist. One way to get them properly defined is to use Autoconf. @@ -2535,22 +2531,22 @@ in the program, and let gettext provide the way to translate them into other languages. - Using GNU gettext involves putting a call to the `gettext' macro + Using GNU gettext involves putting a call to the 'gettext' macro around each string that might need translation--like this: printf (gettext ("Processing file `%s'...")); -This permits GNU gettext to replace the string `"Processing file +This permits GNU gettext to replace the string '"Processing file `%s'..."' with a translated version. Once a program uses gettext, please make a point of writing calls to -`gettext' when you add new strings that call for translation. +'gettext' when you add new strings that call for translation. Using GNU gettext in a package involves specifying a "text domain name" for the package. The text domain name is used to separate the translations for this package from the translations for other packages. Normally, the text domain name should be the same as the name of the -package--for example, `fileutils' for the GNU file utilities. +package--for example, 'fileutils' for the GNU file utilities. To enable gettext to work well, avoid writing code that makes assumptions about the structure of words or sentences. When you want @@ -2565,13 +2561,13 @@ nfiles != 1 ? "s" : ""); The problem with that example is that it assumes that plurals are made -by adding `s'. If you apply gettext to the format string, like this, +by adding 's'. If you apply gettext to the format string, like this, printf (gettext ("%d file%s processed"), nfiles, nfiles != 1 ? "s" : ""); the message can use different words, but it will still be forced to use -`s' for the plural. Here is a better way: +'s' for the plural. Here is a better way: printf ((nfiles != 1 ? "%d files processed" : "%d file processed"), @@ -2594,9 +2590,9 @@ printf ("# Implicit rule search has%s been done.\n", f->tried_implicit ? "" : " not"); -Adding `gettext' calls to this code cannot give correct results for all +Adding 'gettext' calls to this code cannot give correct results for all languages, because negation in some languages requires adding words at -more than one place in the sentence. By contrast, adding `gettext' +more than one place in the sentence. By contrast, adding 'gettext' calls does the job straightfowardly if the code starts out like this: printf (f->tried_implicit @@ -2609,18 +2605,18 @@ 5.9 Mmap ======== -Don't assume that `mmap' either works on all files or fails for all +Don't assume that 'mmap' either works on all files or fails for all files. It may work on some files and fail on others. - The proper way to use `mmap' is to try it on the specific file for -which you want to use it--and if `mmap' doesn't work, fall back on -doing the job in another way using `read' and `write'. + The proper way to use 'mmap' is to try it on the specific file for +which you want to use it--and if 'mmap' doesn't work, fall back on doing +the job in another way using 'read' and 'write'. The reason this precaution is needed is that the GNU kernel (the HURD) provides a user-extensible file system, in which there can be many -different kinds of "ordinary files." Many of them support `mmap', but -some do not. It is important to make programs handle all these kinds -of files. +different kinds of "ordinary files." Many of them support 'mmap', but +some do not. It is important to make programs handle all these kinds of +files.  File: standards.info, Node: Documentation, Next: Managing Releases, Prev: Writing C, Up: Top @@ -2659,8 +2655,8 @@ makes it possible to produce a good quality formatted book, using TeX, and to generate an Info file. It is also possible to generate HTML output from Texinfo source. See the Texinfo manual, either the -hardcopy, or the on-line version available through `info' or the Emacs -Info subsystem (`C-h i'). +hardcopy, or the on-line version available through 'info' or the Emacs +Info subsystem ('C-h i'). Nowadays some other formats such as Docbook and Sgmltexi can be converted automatically into Texinfo. It is ok to produce the Texinfo @@ -2688,10 +2684,10 @@ understand. Instead, each manual should cover a coherent _topic_. For example, -instead of a manual for `diff' and a manual for `diff3', we have one -manual for "comparison of files" which covers both of those programs, -as well as `cmp'. By documenting these programs together, we can make -the whole subject clearer. +instead of a manual for 'diff' and a manual for 'diff3', we have one +manual for "comparison of files" which covers both of those programs, as +well as 'cmp'. By documenting these programs together, we can make the +whole subject clearer. The manual which discusses a program should certainly document all of the program's command-line options and all of its commands. It should @@ -2788,17 +2784,17 @@ number for the manual in both of these places. Each program documented in the manual should have a node named -`PROGRAM Invocation' or `Invoking PROGRAM'. This node (together with +'PROGRAM Invocation' or 'Invoking PROGRAM'. This node (together with its subnodes, if any) should describe the program's command line arguments and how to run it (the sort of information people would look -in a man page for). Start with an `@example' containing a template for +in a man page for). Start with an '@example' containing a template for all the options and arguments that the program uses. Alternatively, put a menu item in some menu whose item name fits one of the above patterns. This identifies the node which that item points to as the node for this purpose, regardless of the node's actual name. - The `--usage' feature of the Info reader looks for such a node or + The '--usage' feature of the Info reader looks for such a node or menu item in order to find the relevant text, so it is essential for every Texinfo file to have one. @@ -2817,11 +2813,11 @@ collection. For a single short document, you can use a very permissive non-copyleft license, to avoid taking up space with a long license. - See `http://www.gnu.org/copyleft/fdl-howto.html' for more explanation + See for more explanation of how to employ the GFDL. Note that it is not obligatory to include a copy of the GNU GPL or -GNU LGPL in a manual whose license is neither the GPL nor the LGPL. It +GNU LGPL in a manual whose license is neither the GPL nor the LGPL. It can be a good idea to include the program's license in a large manual; in a short manual, whose size would be increased considerably by including the program's license, it is probably better not to include @@ -2848,7 +2844,7 @@ of these manuals, the on-line versions of the manual should mention at the very start that the printed manual is available and should point at information for getting it--for instance, with a link to the page -`http://www.gnu.org/order/order.html'. This should not be included in +. This should not be included in the printed manual, though, because there it is redundant. It is also useful to explain in the on-line forms of the manual how @@ -2860,15 +2856,15 @@ 6.7 The NEWS File ================= -In addition to its manual, the package should have a file named `NEWS' -which contains a list of user-visible changes worth mentioning. In -each new release, add items to the front of the file and identify the -version they pertain to. Don't discard old items; leave them in the -file after the newer items. This way, a user upgrading from any -previous version can see what is new. +In addition to its manual, the package should have a file named 'NEWS' +which contains a list of user-visible changes worth mentioning. In each +new release, add items to the front of the file and identify the version +they pertain to. Don't discard old items; leave them in the file after +the newer items. This way, a user upgrading from any previous version +can see what is new. - If the `NEWS' file gets very long, move some of the older items into -a file named `ONEWS' and put a note at the end referring the user to + If the 'NEWS' file gets very long, move some of the older items into +a file named 'ONEWS' and put a note at the end referring the user to that file.  @@ -2887,10 +2883,10 @@ * Menu: -* Change Log Concepts:: -* Style of Change Logs:: -* Simple Changes:: -* Conditional Changes:: +* Change Log Concepts:: +* Style of Change Logs:: +* Simple Changes:: +* Conditional Changes:: * Indicating the Part Changed::  @@ -2905,28 +2901,28 @@ tell them what is in it. What they want from a change log is a clear explanation of how the earlier version differed. - The change log file is normally called `ChangeLog' and covers an + The change log file is normally called 'ChangeLog' and covers an entire directory. Each directory can have its own change log, or a directory can use the change log of its parent directory-it's up to you. Another alternative is to record change log information with a -version control system such as RCS or CVS. This can be converted -automatically to a `ChangeLog' file using `rcs2log'; in Emacs, the -command `C-x v a' (`vc-update-change-log') does the job. +version control system such as RCS or CVS. This can be converted +automatically to a 'ChangeLog' file using 'rcs2log'; in Emacs, the +command 'C-x v a' ('vc-update-change-log') does the job. There's no need to describe the full purpose of the changes or how they work together. If you think that a change calls for explanation, you're probably right. Please do explain it--but please put the explanation in comments in the code, where people will see it whenever -they see the code. For example, "New function" is enough for the -change log when you add a function, because there should be a comment -before the function definition to explain what it does. +they see the code. For example, "New function" is enough for the change +log when you add a function, because there should be a comment before +the function definition to explain what it does. However, sometimes it is useful to write one line to describe the overall purpose of a batch of changes. - The easiest way to add an entry to `ChangeLog' is with the Emacs -command `M-x add-change-log-entry'. An entry should have an asterisk, + The easiest way to add an entry to 'ChangeLog' is with the Emacs +command 'M-x add-change-log-entry'. An entry should have an asterisk, the name of the changed file, and then in parentheses the name of the changed functions, variables or whatever, followed by a colon. Then describe the changes you made to that function or variable. @@ -2964,9 +2960,9 @@ they won't find it when they search. For example, some people are tempted to abbreviate groups of function -names by writing `* register.el ({insert,jump-to}-register)'; this is -not a good idea, since searching for `jump-to-register' or -`insert-register' would not find that entry. +names by writing '* register.el ({insert,jump-to}-register)'; this is +not a good idea, since searching for 'jump-to-register' or +'insert-register' would not find that entry. Separate unrelated change log entries with blank lines. When two entries represent parts of the same change, so that they work together, @@ -2974,7 +2970,7 @@ name and the asterisk when successive entries are in the same file. Break long lists of function names by closing continued lines with -`)', rather than `,', and opening the continuation with `(' as in this +')', rather than ',', and opening the continuation with '(' as in this example: * keyboard.c (menu_bar_items, tool_bar_items) @@ -3015,10 +3011,10 @@ 6.8.4 Conditional Changes ------------------------- -C programs often contain compile-time `#if' conditionals. Many changes +C programs often contain compile-time '#if' conditionals. Many changes are conditional; sometimes you add a new definition which is entirely -contained in a conditional. It is very useful to indicate in the -change log the conditions for which the change applies. +contained in a conditional. It is very useful to indicate in the change +log the conditions for which the change applies. Our convention for indicating conditional changes is to use square brackets around the name of the condition. @@ -3029,14 +3025,14 @@ * xterm.c [SOLARIS2]: Include string.h. Here is an entry describing a new definition which is entirely -conditional. This new definition for the macro `FRAME_WINDOW_P' is -used only when `HAVE_X_WINDOWS' is defined: +conditional. This new definition for the macro 'FRAME_WINDOW_P' is used +only when 'HAVE_X_WINDOWS' is defined: * frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined. - Here is an entry for a change within the function `init_display', + Here is an entry for a change within the function 'init_display', whose definition as a whole is unconditional, but the changes themselves -are contained in a `#ifdef HAVE_LIBNCURSES' conditional: +are contained in a '#ifdef HAVE_LIBNCURSES' conditional: * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent. @@ -3053,8 +3049,8 @@ Indicate the part of a function which changed by using angle brackets enclosing an indication of what the changed part does. Here is an entry -for a change in the part of the function `sh-while-getopts' that deals -with `sh' commands: +for a change in the part of the function 'sh-while-getopts' that deals +with 'sh' commands: * progmodes/sh-script.el (sh-while-getopts) : Handle case that user-specified option string is empty. @@ -3078,12 +3074,12 @@ if you have one. For a large program that changes a great deal, updating a man page -may be a substantial burden. If a user offers to donate a man page, -you may find this gift costly to accept. It may be better to refuse -the man page unless the same person agrees to take full responsibility -for maintaining it--so that you can wash your hands of it entirely. If -this volunteer later ceases to do the job, then don't feel obliged to -pick it up yourself; it may be better to withdraw the man page from the +may be a substantial burden. If a user offers to donate a man page, you +may find this gift costly to accept. It may be better to refuse the man +page unless the same person agrees to take full responsibility for +maintaining it--so that you can wash your hands of it entirely. If this +volunteer later ceases to do the job, then don't feel obliged to pick it +up yourself; it may be better to withdraw the man page from the distribution until someone else agrees to update it. When a program changes only a little, you may feel that the @@ -3118,7 +3114,7 @@ ********************* Making a release is more than just bundling up your source files in a -tar file and putting it up for FTP. You should set up your software so +tar file and putting it up for FTP. You should set up your software so that it can be configured to run on a variety of systems. Your Makefile should conform to the GNU standards described below, and your directory layout should also conform to the standards discussed below. Doing so @@ -3137,110 +3133,110 @@ 7.1 How Configuration Should Work ================================= -Each GNU distribution should come with a shell script named -`configure'. This script is given arguments which describe the kind of -machine and system you want to compile the program for. +Each GNU distribution should come with a shell script named 'configure'. +This script is given arguments which describe the kind of machine and +system you want to compile the program for. - The `configure' script must record the configuration options so that + The 'configure' script must record the configuration options so that they affect compilation. One way to do this is to make a link from a standard name such as -`config.h' to the proper configuration file for the chosen system. If +'config.h' to the proper configuration file for the chosen system. If you use this technique, the distribution should _not_ contain a file -named `config.h'. This is so that people won't be able to build the +named 'config.h'. This is so that people won't be able to build the program without configuring it first. - Another thing that `configure' can do is to edit the Makefile. If + Another thing that 'configure' can do is to edit the Makefile. If you do this, the distribution should _not_ contain a file named -`Makefile'. Instead, it should include a file `Makefile.in' which +'Makefile'. Instead, it should include a file 'Makefile.in' which contains the input used for editing. Once again, this is so that people won't be able to build the program without configuring it first. - If `configure' does write the `Makefile', then `Makefile' should -have a target named `Makefile' which causes `configure' to be rerun, -setting up the same configuration that was set up last time. The files -that `configure' reads should be listed as dependencies of `Makefile'. + If 'configure' does write the 'Makefile', then 'Makefile' should have +a target named 'Makefile' which causes 'configure' to be rerun, setting +up the same configuration that was set up last time. The files that +'configure' reads should be listed as dependencies of 'Makefile'. - All the files which are output from the `configure' script should + All the files which are output from the 'configure' script should have comments at the beginning explaining that they were generated -automatically using `configure'. This is so that users won't think of +automatically using 'configure'. This is so that users won't think of trying to edit them by hand. - The `configure' script should write a file named `config.status' + The 'configure' script should write a file named 'config.status' which describes which configuration options were specified when the program was last configured. This file should be a shell script which, if run, will recreate the same configuration. - The `configure' script should accept an option of the form -`--srcdir=DIRNAME' to specify the directory where sources are found (if + The 'configure' script should accept an option of the form +'--srcdir=DIRNAME' to specify the directory where sources are found (if it is not the current directory). This makes it possible to build the program in a separate directory, so that the actual source directory is not modified. - If the user does not specify `--srcdir', then `configure' should -check both `.' and `..' to see if it can find the sources. If it finds + If the user does not specify '--srcdir', then 'configure' should +check both '.' and '..' to see if it can find the sources. If it finds the sources in one of these places, it should use them from there. Otherwise, it should report that it cannot find the sources, and should exit with nonzero status. - Usually the easy way to support `--srcdir' is by editing a -definition of `VPATH' into the Makefile. Some rules may need to refer -explicitly to the specified source directory. To make this possible, -`configure' can add to the Makefile a variable named `srcdir' whose -value is precisely the specified directory. + Usually the easy way to support '--srcdir' is by editing a definition +of 'VPATH' into the Makefile. Some rules may need to refer explicitly +to the specified source directory. To make this possible, 'configure' +can add to the Makefile a variable named 'srcdir' whose value is +precisely the specified directory. - The `configure' script should also take an argument which specifies + The 'configure' script should also take an argument which specifies the type of system to build the program for. This argument should look like this: CPU-COMPANY-SYSTEM - For example, a Sun 3 might be `m68k-sun-sunos4.1'. + For example, a Sun 3 might be 'm68k-sun-sunos4.1'. - The `configure' script needs to be able to decode all plausible -alternatives for how to describe a machine. Thus, `sun3-sunos4.1' -would be a valid alias. For many programs, `vax-dec-ultrix' would be -an alias for `vax-dec-bsd', simply because the differences between -Ultrix and BSD are rarely noticeable, but a few programs might need to -distinguish them. + The 'configure' script needs to be able to decode all plausible +alternatives for how to describe a machine. Thus, 'sun3-sunos4.1' would +be a valid alias. For many programs, 'vax-dec-ultrix' would be an alias +for 'vax-dec-bsd', simply because the differences between Ultrix and BSD +are rarely noticeable, but a few programs might need to distinguish +them. - There is a shell script called `config.sub' that you can use as a + There is a shell script called 'config.sub' that you can use as a subroutine to validate system types and canonicalize aliases. - Other options are permitted to specify in more detail the software -or hardware present on the machine, and include or exclude optional -parts of the package: + Other options are permitted to specify in more detail the software or +hardware present on the machine, and include or exclude optional parts +of the package: -`--enable-FEATURE[=PARAMETER]' +'--enable-FEATURE[=PARAMETER]' Configure the package to build and install an optional user-level facility called FEATURE. This allows users to choose which - optional features to include. Giving an optional PARAMETER of - `no' should omit FEATURE, if it is built by default. + optional features to include. Giving an optional PARAMETER of 'no' + should omit FEATURE, if it is built by default. - No `--enable' option should *ever* cause one feature to replace - another. No `--enable' option should ever substitute one useful + No '--enable' option should *ever* cause one feature to replace + another. No '--enable' option should ever substitute one useful behavior for another useful behavior. The only proper use for - `--enable' is for questions of whether to build part of the program + '--enable' is for questions of whether to build part of the program or exclude it. -`--with-PACKAGE' - The package PACKAGE will be installed, so configure this package - to work with PACKAGE. +'--with-PACKAGE' + The package PACKAGE will be installed, so configure this package to + work with PACKAGE. - Possible values of PACKAGE include `gnu-as' (or `gas'), `gnu-ld', - `gnu-libc', `gdb', `x', and `x-toolkit'. + Possible values of PACKAGE include 'gnu-as' (or 'gas'), 'gnu-ld', + 'gnu-libc', 'gdb', 'x', and 'x-toolkit'. - Do not use a `--with' option to specify the file name to use to - find certain files. That is outside the scope of what `--with' + Do not use a '--with' option to specify the file name to use to + find certain files. That is outside the scope of what '--with' options are for. - All `configure' scripts should accept all of these "detail" options, + All 'configure' scripts should accept all of these "detail" options, whether or not they make any difference to the particular package at hand. In particular, they should accept any option that starts with -`--with-' or `--enable-'. This is so users will be able to configure -an entire GNU source tree at once with a single set of options. +'--with-' or '--enable-'. This is so users will be able to configure an +entire GNU source tree at once with a single set of options. - You will note that the categories `--with-' and `--enable-' are + You will note that the categories '--with-' and '--enable-' are narrow: they *do not* provide a place for any sort of option you might think of. That is deliberate. We want to limit the possible configuration options in GNU software. We do not want GNU programs to @@ -3250,32 +3246,32 @@ cross-compilation. In such a case, the host and target machines for the program may be different. - The `configure' script should normally treat the specified type of + The 'configure' script should normally treat the specified type of system as both the host and the target, thus producing a program which works for the same type of machine that it runs on. To configure a cross-compiler, cross-assembler, or what have you, you should specify a target different from the host, using the configure -option `--target=TARGETTYPE'. The syntax for TARGETTYPE is the same as +option '--target=TARGETTYPE'. The syntax for TARGETTYPE is the same as for the host type. So the command would look like this: ./configure HOSTTYPE --target=TARGETTYPE Programs for which cross-operation is not meaningful need not accept -the `--target' option, because configuring an entire operating system +the '--target' option, because configuring an entire operating system for cross-operation is not a meaningful operation. Bootstrapping a cross-compiler requires compiling it on a machine other than the host it will run on. Compilation packages accept a -configuration option `--build=BUILDTYPE' for specifying the +configuration option '--build=BUILDTYPE' for specifying the configuration on which you will compile them, but the configure script -should normally guess the build machine type (using `config.guess'), so +should normally guess the build machine type (using 'config.guess'), so this option is probably not necessary. The host and target types normally default from the build type, so in bootstrapping a cross-compiler you must specify them both explicitly. Some programs have ways of configuring themselves automatically. If -your program is set up to do this, your `configure' script can simply +your program is set up to do this, your 'configure' script can simply ignore most of its arguments.  @@ -3295,7 +3291,7 @@ * Command Variables:: Variables for Specifying Commands * Directory Variables:: Variables for Installation Directories * Standard Targets:: Standard Targets for Users -* Install Command Categories:: Three categories of commands in the `install' +* Install Command Categories:: Three categories of commands in the 'install' rule: normal, pre-install and post-install.  @@ -3308,14 +3304,14 @@ SHELL = /bin/sh -to avoid trouble on systems where the `SHELL' variable might be +to avoid trouble on systems where the 'SHELL' variable might be inherited from the environment. (This is never a problem with GNU -`make'.) +'make'.) - Different `make' programs have incompatible suffix lists and -implicit rules, and this sometimes creates confusion or misbehavior. So -it is a good idea to set the suffix list explicitly using only the -suffixes you need in the particular Makefile, like this: + Different 'make' programs have incompatible suffix lists and implicit +rules, and this sometimes creates confusion or misbehavior. So it is a +good idea to set the suffix list explicitly using only the suffixes you +need in the particular Makefile, like this: .SUFFIXES: .SUFFIXES: .c .o @@ -3323,29 +3319,28 @@ The first line clears out the suffix list, the second introduces all suffixes which may be subject to implicit rules in this Makefile. - Don't assume that `.' is in the path for command execution. When -you need to run programs that are a part of your package during the -make, please make sure that it uses `./' if the program is built as -part of the make or `$(srcdir)/' if the file is an unchanging part of -the source code. Without one of these prefixes, the current search -path is used. - - The distinction between `./' (the "build directory") and -`$(srcdir)/' (the "source directory") is important because users can -build in a separate directory using the `--srcdir' option to -`configure'. A rule of the form: + Don't assume that '.' is in the path for command execution. When you +need to run programs that are a part of your package during the make, +please make sure that it uses './' if the program is built as part of +the make or '$(srcdir)/' if the file is an unchanging part of the source +code. Without one of these prefixes, the current search path is used. + + The distinction between './' (the "build directory") and '$(srcdir)/' +(the "source directory") is important because users can build in a +separate directory using the '--srcdir' option to 'configure'. A rule +of the form: foo.1 : foo.man sedscript sed -e sedscript foo.man > foo.1 will fail when the build directory is not the source directory, because -`foo.man' and `sedscript' are in the source directory. +'foo.man' and 'sedscript' are in the source directory. - When using GNU `make', relying on `VPATH' to find the source file -will work in the case where there is a single dependency file, since -the `make' automatic variable `$<' will represent the source file -wherever it is. (Many versions of `make' set `$<' only in implicit -rules.) A Makefile target like + When using GNU 'make', relying on 'VPATH' to find the source file +will work in the case where there is a single dependency file, since the +'make' automatic variable '$<' will represent the source file wherever +it is. (Many versions of 'make' set '$<' only in implicit rules.) A +Makefile target like foo.o : bar.c $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o @@ -3355,9 +3350,9 @@ foo.o : bar.c $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@ -in order to allow `VPATH' to work correctly. When the target has -multiple dependencies, using an explicit `$(srcdir)' is the easiest way -to make the rule work well. For example, the target above for `foo.1' +in order to allow 'VPATH' to work correctly. When the target has +multiple dependencies, using an explicit '$(srcdir)' is the easiest way +to make the rule work well. For example, the target above for 'foo.1' is best written as: foo.1 : foo.man sedscript @@ -3376,7 +3371,7 @@ in any way. Try to make the build and installation targets, at least (and all -their subtargets) work correctly with a parallel `make'. +their subtargets) work correctly with a parallel 'make'.  File: standards.info, Node: Utilities in Makefiles, Next: Command Variables, Prev: Makefile Basics, Up: Makefile Conventions @@ -3384,43 +3379,43 @@ 7.2.2 Utilities in Makefiles ---------------------------- -Write the Makefile commands (and any shell scripts, such as -`configure') to run in `sh', not in `csh'. Don't use any special -features of `ksh' or `bash'. +Write the Makefile commands (and any shell scripts, such as 'configure') +to run in 'sh', not in 'csh'. Don't use any special features of 'ksh' +or 'bash'. - The `configure' script and the Makefile rules for building and + The 'configure' script and the Makefile rules for building and installation should not use any utilities directly except these: cat cmp cp diff echo egrep expr false grep install-info ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true - The compression program `gzip' can be used in the `dist' rule. + The compression program 'gzip' can be used in the 'dist' rule. Stick to the generally supported options for these programs. For -example, don't use `mkdir -p', convenient as it may be, because most +example, don't use 'mkdir -p', convenient as it may be, because most systems don't support it. It is a good idea to avoid creating symbolic links in makefiles, since a few systems don't support them. The Makefile rules for building and installation can also use -compilers and related programs, but should do so via `make' variables -so that the user can substitute alternatives. Here are some of the +compilers and related programs, but should do so via 'make' variables so +that the user can substitute alternatives. Here are some of the programs we mean: ar bison cc flex install ld ldconfig lex make makeinfo ranlib texi2dvi yacc - Use the following `make' variables to run those programs: + Use the following 'make' variables to run those programs: $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX) $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC) - When you use `ranlib' or `ldconfig', you should make sure nothing -bad happens if the system does not have the program in question. -Arrange to ignore an error from that command, and print a message before -the command to tell the user that failure of this command does not mean -a problem. (The Autoconf `AC_PROG_RANLIB' macro can help with this.) + When you use 'ranlib' or 'ldconfig', you should make sure nothing bad +happens if the system does not have the program in question. Arrange to +ignore an error from that command, and print a message before the +command to tell the user that failure of this command does not mean a +problem. (The Autoconf 'AC_PROG_RANLIB' macro can help with this.) If you use symbolic links, you should implement a fallback for systems that don't have symbolic links. @@ -3443,55 +3438,54 @@ options, and so on. In particular, you should run most utility programs via variables. -Thus, if you use Bison, have a variable named `BISON' whose default -value is set with `BISON = bison', and refer to it with `$(BISON)' +Thus, if you use Bison, have a variable named 'BISON' whose default +value is set with 'BISON = bison', and refer to it with '$(BISON)' whenever you need to use Bison. - File management utilities such as `ln', `rm', `mv', and so on, need -not be referred to through variables in this way, since users don't -need to replace them with other programs. + File management utilities such as 'ln', 'rm', 'mv', and so on, need +not be referred to through variables in this way, since users don't need +to replace them with other programs. Each program-name variable should come with an options variable that -is used to supply options to the program. Append `FLAGS' to the +is used to supply options to the program. Append 'FLAGS' to the program-name variable name to get the options variable name--for -example, `BISONFLAGS'. (The names `CFLAGS' for the C compiler, -`YFLAGS' for yacc, and `LFLAGS' for lex, are exceptions to this rule, -but we keep them because they are standard.) Use `CPPFLAGS' in any -compilation command that runs the preprocessor, and use `LDFLAGS' in -any compilation command that does linking as well as in any direct use -of `ld'. +example, 'BISONFLAGS'. (The names 'CFLAGS' for the C compiler, 'YFLAGS' +for yacc, and 'LFLAGS' for lex, are exceptions to this rule, but we keep +them because they are standard.) Use 'CPPFLAGS' in any compilation +command that runs the preprocessor, and use 'LDFLAGS' in any compilation +command that does linking as well as in any direct use of 'ld'. If there are C compiler options that _must_ be used for proper -compilation of certain files, do not include them in `CFLAGS'. Users -expect to be able to specify `CFLAGS' freely themselves. Instead, -arrange to pass the necessary options to the C compiler independently -of `CFLAGS', by writing them explicitly in the compilation commands or -by defining an implicit rule, like this: +compilation of certain files, do not include them in 'CFLAGS'. Users +expect to be able to specify 'CFLAGS' freely themselves. Instead, +arrange to pass the necessary options to the C compiler independently of +'CFLAGS', by writing them explicitly in the compilation commands or by +defining an implicit rule, like this: CFLAGS = -g ALL_CFLAGS = -I. $(CFLAGS) .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< - Do include the `-g' option in `CFLAGS', because that is not + Do include the '-g' option in 'CFLAGS', because that is not _required_ for proper compilation. You can consider it a default that is only recommended. If the package is set up so that it is compiled -with GCC by default, then you might as well include `-O' in the default -value of `CFLAGS' as well. +with GCC by default, then you might as well include '-O' in the default +value of 'CFLAGS' as well. - Put `CFLAGS' last in the compilation command, after other variables -containing compiler options, so the user can use `CFLAGS' to override + Put 'CFLAGS' last in the compilation command, after other variables +containing compiler options, so the user can use 'CFLAGS' to override the others. - `CFLAGS' should be used in every invocation of the C compiler, both + 'CFLAGS' should be used in every invocation of the C compiler, both those which do compilation and those which do linking. - Every Makefile should define the variable `INSTALL', which is the + Every Makefile should define the variable 'INSTALL', which is the basic command for installing a file into the system. - Every Makefile should also define the variables `INSTALL_PROGRAM' -and `INSTALL_DATA'. (The default for `INSTALL_PROGRAM' should be -`$(INSTALL)'; the default for `INSTALL_DATA' should be `${INSTALL} -m + Every Makefile should also define the variables 'INSTALL_PROGRAM' and +'INSTALL_DATA'. (The default for 'INSTALL_PROGRAM' should be +'$(INSTALL)'; the default for 'INSTALL_DATA' should be '${INSTALL} -m 644'.) Then it should use those variables as the commands for actual installation, for executables and nonexecutables respectively. Use these variables as follows: @@ -3499,11 +3493,11 @@ $(INSTALL_PROGRAM) foo $(bindir)/foo $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a - Optionally, you may prepend the value of `DESTDIR' to the target + Optionally, you may prepend the value of 'DESTDIR' to the target filename. Doing this allows the installer to create a snapshot of the installation to be copied onto the real target filesystem later. Do not -set the value of `DESTDIR' in your Makefile, and do not include it in -any installed files. With support for `DESTDIR', the above examples +set the value of 'DESTDIR' in your Makefile, and do not include it in +any installed files. With support for 'DESTDIR', the above examples become: $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo @@ -3529,52 +3523,52 @@ installation directories should be subdirectories of one of these two, and nothing should be directly installed into these two directories. -`prefix' +'prefix' A prefix used in constructing the default values of the variables - listed below. The default value of `prefix' should be - `/usr/local'. When building the complete GNU system, the prefix - will be empty and `/usr' will be a symbolic link to `/'. (If you - are using Autoconf, write it as `@prefix@'.) + listed below. The default value of 'prefix' should be + '/usr/local'. When building the complete GNU system, the prefix + will be empty and '/usr' will be a symbolic link to '/'. (If you + are using Autoconf, write it as '@prefix@'.) - Running `make install' with a different value of `prefix' from the + Running 'make install' with a different value of 'prefix' from the one used to build the program should _not_ recompile the program. -`exec_prefix' +'exec_prefix' A prefix used in constructing the default values of some of the - variables listed below. The default value of `exec_prefix' should - be `$(prefix)'. (If you are using Autoconf, write it as - `@exec_prefix@'.) + variables listed below. The default value of 'exec_prefix' should + be '$(prefix)'. (If you are using Autoconf, write it as + '@exec_prefix@'.) - Generally, `$(exec_prefix)' is used for directories that contain + Generally, '$(exec_prefix)' is used for directories that contain machine-specific files (such as executables and subroutine - libraries), while `$(prefix)' is used directly for other + libraries), while '$(prefix)' is used directly for other directories. - Running `make install' with a different value of `exec_prefix' - from the one used to build the program should _not_ recompile the + Running 'make install' with a different value of 'exec_prefix' from + the one used to build the program should _not_ recompile the program. Executable programs are installed in one of the following directories. -`bindir' +'bindir' The directory for installing executable programs that users can - run. This should normally be `/usr/local/bin', but write it as - `$(exec_prefix)/bin'. (If you are using Autoconf, write it as - `@bindir@'.) + run. This should normally be '/usr/local/bin', but write it as + '$(exec_prefix)/bin'. (If you are using Autoconf, write it as + '@bindir@'.) -`sbindir' +'sbindir' The directory for installing executable programs that can be run from the shell, but are only generally useful to system - administrators. This should normally be `/usr/local/sbin', but - write it as `$(exec_prefix)/sbin'. (If you are using Autoconf, - write it as `@sbindir@'.) + administrators. This should normally be '/usr/local/sbin', but + write it as '$(exec_prefix)/sbin'. (If you are using Autoconf, + write it as '@sbindir@'.) -`libexecdir' +'libexecdir' The directory for installing executable programs to be run by other programs rather than by users. This directory should normally be - `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'. - (If you are using Autoconf, write it as `@libexecdir@'.) + '/usr/local/libexec', but write it as '$(exec_prefix)/libexec'. + (If you are using Autoconf, write it as '@libexecdir@'.) Data files used by the program during its execution are divided into categories in two ways. @@ -3595,146 +3589,143 @@ Therefore, here are the variables Makefiles should use to specify directories: -`datadir' +'datadir' The directory for installing read-only architecture independent - data files. This should normally be `/usr/local/share', but write - it as `$(prefix)/share'. (If you are using Autoconf, write it as - `@datadir@'.) As a special exception, see `$(infodir)' and - `$(includedir)' below. + data files. This should normally be '/usr/local/share', but write + it as '$(prefix)/share'. (If you are using Autoconf, write it as + '@datadir@'.) As a special exception, see '$(infodir)' and + '$(includedir)' below. -`sysconfdir' +'sysconfdir' The directory for installing read-only data files that pertain to a single machine-that is to say, files for configuring a host. - Mailer and network configuration files, `/etc/passwd', and so - forth belong here. All the files in this directory should be - ordinary ASCII text files. This directory should normally be - `/usr/local/etc', but write it as `$(prefix)/etc'. (If you are - using Autoconf, write it as `@sysconfdir@'.) + Mailer and network configuration files, '/etc/passwd', and so forth + belong here. All the files in this directory should be ordinary + ASCII text files. This directory should normally be + '/usr/local/etc', but write it as '$(prefix)/etc'. (If you are + using Autoconf, write it as '@sysconfdir@'.) Do not install executables here in this directory (they probably - belong in `$(libexecdir)' or `$(sbindir)'). Also do not install + belong in '$(libexecdir)' or '$(sbindir)'). Also do not install files that are modified in the normal course of their use (programs whose purpose is to change the configuration of the system - excluded). Those probably belong in `$(localstatedir)'. + excluded). Those probably belong in '$(localstatedir)'. -`sharedstatedir' +'sharedstatedir' The directory for installing architecture-independent data files which the programs modify while they run. This should normally be - `/usr/local/com', but write it as `$(prefix)/com'. (If you are - using Autoconf, write it as `@sharedstatedir@'.) + '/usr/local/com', but write it as '$(prefix)/com'. (If you are + using Autoconf, write it as '@sharedstatedir@'.) -`localstatedir' +'localstatedir' The directory for installing data files which the programs modify while they run, and that pertain to one specific machine. Users should never need to modify files in this directory to configure the package's operation; put such configuration information in - separate files that go in `$(datadir)' or `$(sysconfdir)'. - `$(localstatedir)' should normally be `/usr/local/var', but write - it as `$(prefix)/var'. (If you are using Autoconf, write it as - `@localstatedir@'.) + separate files that go in '$(datadir)' or '$(sysconfdir)'. + '$(localstatedir)' should normally be '/usr/local/var', but write + it as '$(prefix)/var'. (If you are using Autoconf, write it as + '@localstatedir@'.) -`libdir' +'libdir' The directory for object files and libraries of object code. Do not install executables here, they probably ought to go in - `$(libexecdir)' instead. The value of `libdir' should normally be - `/usr/local/lib', but write it as `$(exec_prefix)/lib'. (If you - are using Autoconf, write it as `@libdir@'.) + '$(libexecdir)' instead. The value of 'libdir' should normally be + '/usr/local/lib', but write it as '$(exec_prefix)/lib'. (If you + are using Autoconf, write it as '@libdir@'.) -`infodir' +'infodir' The directory for installing the Info files for this package. By - default, it should be `/usr/local/info', but it should be written - as `$(prefix)/info'. (If you are using Autoconf, write it as - `@infodir@'.) + default, it should be '/usr/local/info', but it should be written + as '$(prefix)/info'. (If you are using Autoconf, write it as + '@infodir@'.) -`lispdir' +'lispdir' The directory for installing any Emacs Lisp files in this package. - By default, it should be `/usr/local/share/emacs/site-lisp', but it - should be written as `$(prefix)/share/emacs/site-lisp'. + By default, it should be '/usr/local/share/emacs/site-lisp', but it + should be written as '$(prefix)/share/emacs/site-lisp'. - If you are using Autoconf, write the default as `@lispdir@'. In - order to make `@lispdir@' work, you need the following lines in - your `configure.in' file: + If you are using Autoconf, write the default as '@lispdir@'. In + order to make '@lispdir@' work, you need the following lines in + your 'configure.in' file: lispdir='${datadir}/emacs/site-lisp' AC_SUBST(lispdir) -`includedir' +'includedir' The directory for installing header files to be included by user - programs with the C `#include' preprocessor directive. This - should normally be `/usr/local/include', but write it as - `$(prefix)/include'. (If you are using Autoconf, write it as - `@includedir@'.) + programs with the C '#include' preprocessor directive. This should + normally be '/usr/local/include', but write it as + '$(prefix)/include'. (If you are using Autoconf, write it as + '@includedir@'.) Most compilers other than GCC do not look for header files in - directory `/usr/local/include'. So installing the header files - this way is only useful with GCC. Sometimes this is not a problem + directory '/usr/local/include'. So installing the header files + this way is only useful with GCC. Sometimes this is not a problem because some libraries are only really intended to work with GCC. - But some libraries are intended to work with other compilers. - They should install their header files in two places, one - specified by `includedir' and one specified by `oldincludedir'. - -`oldincludedir' - The directory for installing `#include' header files for use with - compilers other than GCC. This should normally be `/usr/include'. - (If you are using Autoconf, you can write it as `@oldincludedir@'.) + But some libraries are intended to work with other compilers. They + should install their header files in two places, one specified by + 'includedir' and one specified by 'oldincludedir'. + +'oldincludedir' + The directory for installing '#include' header files for use with + compilers other than GCC. This should normally be '/usr/include'. + (If you are using Autoconf, you can write it as '@oldincludedir@'.) The Makefile commands should check whether the value of - `oldincludedir' is empty. If it is, they should not try to use - it; they should cancel the second installation of the header files. + 'oldincludedir' is empty. If it is, they should not try to use it; + they should cancel the second installation of the header files. A package should not replace an existing header in this directory unless the header came from the same package. Thus, if your Foo - package provides a header file `foo.h', then it should install the - header file in the `oldincludedir' directory if either (1) there - is no `foo.h' there or (2) the `foo.h' that exists came from the - Foo package. + package provides a header file 'foo.h', then it should install the + header file in the 'oldincludedir' directory if either (1) there is + no 'foo.h' there or (2) the 'foo.h' that exists came from the Foo + package. - To tell whether `foo.h' came from the Foo package, put a magic - string in the file--part of a comment--and `grep' for that string. + To tell whether 'foo.h' came from the Foo package, put a magic + string in the file--part of a comment--and 'grep' for that string. Unix-style man pages are installed in one of the following: -`mandir' +'mandir' The top-level directory for installing the man pages (if any) for - this package. It will normally be `/usr/local/man', but you should - write it as `$(prefix)/man'. (If you are using Autoconf, write it - as `@mandir@'.) + this package. It will normally be '/usr/local/man', but you should + write it as '$(prefix)/man'. (If you are using Autoconf, write it + as '@mandir@'.) -`man1dir' +'man1dir' The directory for installing section 1 man pages. Write it as - `$(mandir)/man1'. - -`man2dir' + '$(mandir)/man1'. +'man2dir' The directory for installing section 2 man pages. Write it as - `$(mandir)/man2' + '$(mandir)/man2' +'...' -`...' - *Don't make the primary documentation for any GNU software be a - man page. Write a manual in Texinfo instead. Man pages are just - for the sake of people running GNU software on Unix, which is a + *Don't make the primary documentation for any GNU software be a man + page. Write a manual in Texinfo instead. Man pages are just for + the sake of people running GNU software on Unix, which is a secondary application only.* -`manext' +'manext' The file name extension for the installed man page. This should contain a period followed by the appropriate digit; it should - normally be `.1'. + normally be '.1'. -`man1ext' +'man1ext' The file name extension for installed section 1 man pages. - -`man2ext' +'man2ext' The file name extension for installed section 2 man pages. - -`...' - Use these names instead of `manext' if the package needs to - install man pages in more than one section of the manual. +'...' + Use these names instead of 'manext' if the package needs to install + man pages in more than one section of the manual. And finally, you should set the following variable: -`srcdir' +'srcdir' The directory for the sources being compiled. The value of this - variable is normally inserted by the `configure' shell script. - (If you are using Autconf, use `srcdir = @srcdir@'.) + variable is normally inserted by the 'configure' shell script. (If + you are using Autconf, use 'srcdir = @srcdir@'.) For example: @@ -3752,7 +3743,7 @@ If your program installs a large number of files into one of the standard user-specified directories, it might be useful to group them into a subdirectory particular to that program. If you do this, you -should write the `install' rule to create these subdirectories. +should write the 'install' rule to create these subdirectories. Do not expect the user to include the subdirectory name in the value of any of the variables listed above. The idea of having a uniform set @@ -3769,46 +3760,46 @@ All GNU programs should have the following targets in their Makefiles: -`all' +'all' Compile the entire program. This should be the default target. This target need not rebuild any documentation files; Info files should normally be included in the distribution, and DVI files should be made only when explicitly asked for. - By default, the Make rules should compile and link with `-g', so + By default, the Make rules should compile and link with '-g', so that executable programs have debugging symbols. Users who don't mind being helpless can strip the executables later if they wish. -`install' +'install' Compile the program and copy the executables, libraries, and so on to the file names where they should reside for actual use. If there is a simple test to verify that a program is properly installed, this target should run that test. Do not strip executables when installing them. Devil-may-care - users can use the `install-strip' target to do that. + users can use the 'install-strip' target to do that. - If possible, write the `install' target rule so that it does not + If possible, write the 'install' target rule so that it does not modify anything in the directory where the program was built, - provided `make all' has just been done. This is convenient for + provided 'make all' has just been done. This is convenient for building the program under one user name and installing it under another. The commands should create all the directories in which files are to be installed, if they don't already exist. This includes the - directories specified as the values of the variables `prefix' and - `exec_prefix', as well as all subdirectories that are needed. One - way to do this is by means of an `installdirs' target as described + directories specified as the values of the variables 'prefix' and + 'exec_prefix', as well as all subdirectories that are needed. One + way to do this is by means of an 'installdirs' target as described below. - Use `-' before any command for installing a man page, so that - `make' will ignore any errors. This is in case there are systems + Use '-' before any command for installing a man page, so that + 'make' will ignore any errors. This is in case there are systems that don't have the Unix man page documentation system installed. - The way to install Info files is to copy them into `$(infodir)' - with `$(INSTALL_DATA)' (*note Command Variables::), and then run - the `install-info' program if it is present. `install-info' is a - program that edits the Info `dir' file to add or update the menu + The way to install Info files is to copy them into '$(infodir)' + with '$(INSTALL_DATA)' (*note Command Variables::), and then run + the 'install-info' program if it is present. 'install-info' is a + program that edits the Info 'dir' file to add or update the menu entry for the given Info file; it is part of the Texinfo package. Here is a sample rule to install an Info file: @@ -3829,25 +3820,25 @@ $(DESTDIR)$(infodir)/foo.info; \ else true; fi - When writing the `install' target, you must classify all the + When writing the 'install' target, you must classify all the commands into three categories: normal ones, "pre-installation" commands and "post-installation" commands. *Note Install Command Categories::. -`uninstall' - Delete all the installed files--the copies that the `install' +'uninstall' + Delete all the installed files--the copies that the 'install' target creates. This rule should not modify the directories where compilation is done, only the directories where files are installed. - The uninstallation commands are divided into three categories, - just like the installation commands. *Note Install Command + The uninstallation commands are divided into three categories, just + like the installation commands. *Note Install Command Categories::. -`install-strip' - Like `install', but strip the executable files while installing - them. In simple cases, this target can use the `install' target in +'install-strip' + Like 'install', but strip the executable files while installing + them. In simple cases, this target can use the 'install' target in a simple way: install-strip: @@ -3855,91 +3846,92 @@ install But if the package installs scripts as well as real executables, - the `install-strip' target can't just refer to the `install' + the 'install-strip' target can't just refer to the 'install' target; it has to strip the executables but not the scripts. - `install-strip' should not strip the executables in the build + 'install-strip' should not strip the executables in the build directory which are being copied for installation. It should only strip the copies that are installed. - Normally we do not recommend stripping an executable unless you - are sure the program has no bugs. However, it can be reasonable - to install a stripped executable for actual execution while saving - the unstripped executable elsewhere in case there is a bug. + Normally we do not recommend stripping an executable unless you are + sure the program has no bugs. However, it can be reasonable to + install a stripped executable for actual execution while saving the + unstripped executable elsewhere in case there is a bug. + +'clean' -`clean' Delete all files from the current directory that are normally created by building the program. Don't delete the files that record the configuration. Also preserve files that could be made by building, but normally aren't because the distribution comes with them. - Delete `.dvi' files here if they are not part of the distribution. + Delete '.dvi' files here if they are not part of the distribution. -`distclean' +'distclean' Delete all files from the current directory that are created by configuring or building the program. If you have unpacked the source and built the program without creating any other files, - `make distclean' should leave only the files that were in the + 'make distclean' should leave only the files that were in the distribution. -`mostlyclean' - Like `clean', but may refrain from deleting a few files that people - normally don't want to recompile. For example, the `mostlyclean' - target for GCC does not delete `libgcc.a', because recompiling it +'mostlyclean' + Like 'clean', but may refrain from deleting a few files that people + normally don't want to recompile. For example, the 'mostlyclean' + target for GCC does not delete 'libgcc.a', because recompiling it is rarely necessary and takes a lot of time. -`maintainer-clean' +'maintainer-clean' Delete almost everything from the current directory that can be reconstructed with this Makefile. This typically includes - everything deleted by `distclean', plus more: C source files + everything deleted by 'distclean', plus more: C source files produced by Bison, tags tables, Info files, and so on. The reason we say "almost everything" is that running the command - `make maintainer-clean' should not delete `configure' even if - `configure' can be remade using a rule in the Makefile. More - generally, `make maintainer-clean' should not delete anything that - needs to exist in order to run `configure' and then begin to build - the program. This is the only exception; `maintainer-clean' should + 'make maintainer-clean' should not delete 'configure' even if + 'configure' can be remade using a rule in the Makefile. More + generally, 'make maintainer-clean' should not delete anything that + needs to exist in order to run 'configure' and then begin to build + the program. This is the only exception; 'maintainer-clean' should delete everything else that can be rebuilt. - The `maintainer-clean' target is intended to be used by a + The 'maintainer-clean' target is intended to be used by a maintainer of the package, not by ordinary users. You may need - special tools to reconstruct some of the files that `make - maintainer-clean' deletes. Since these files are normally - included in the distribution, we don't take care to make them easy - to reconstruct. If you find you need to unpack the full - distribution again, don't blame us. + special tools to reconstruct some of the files that 'make + maintainer-clean' deletes. Since these files are normally included + in the distribution, we don't take care to make them easy to + reconstruct. If you find you need to unpack the full distribution + again, don't blame us. To help make users aware of this, the commands for the special - `maintainer-clean' target should start with these two: + 'maintainer-clean' target should start with these two: @echo 'This command is intended for maintainers to use; it' @echo 'deletes files that may need special tools to rebuild.' -`TAGS' +'TAGS' Update a tags table for this program. -`info' - Generate any Info files needed. The best way to write the rules - is as follows: +'info' + Generate any Info files needed. The best way to write the rules is + as follows: info: foo.info foo.info: foo.texi chap1.texi chap2.texi $(MAKEINFO) $(srcdir)/foo.texi - You must define the variable `MAKEINFO' in the Makefile. It should - run the `makeinfo' program, which is part of the Texinfo + You must define the variable 'MAKEINFO' in the Makefile. It should + run the 'makeinfo' program, which is part of the Texinfo distribution. Normally a GNU distribution comes with Info files, and that means - the Info files are present in the source directory. Therefore, - the Make rule for an info file should update it in the source + the Info files are present in the source directory. Therefore, the + Make rule for an info file should update it in the source directory. When users build the package, ordinarily Make will not update the Info files because they will already be up to date. -`dvi' +'dvi' Generate DVI files for all Texinfo documentation. For example: dvi: foo.dvi @@ -3947,32 +3939,32 @@ foo.dvi: foo.texi chap1.texi chap2.texi $(TEXI2DVI) $(srcdir)/foo.texi - You must define the variable `TEXI2DVI' in the Makefile. It should - run the program `texi2dvi', which is part of the Texinfo + You must define the variable 'TEXI2DVI' in the Makefile. It should + run the program 'texi2dvi', which is part of the Texinfo distribution.(1) Alternatively, write just the dependencies, and - allow GNU `make' to provide the command. + allow GNU 'make' to provide the command. -`dist' +'dist' Create a distribution tar file for this program. The tar file should be set up so that the file names in the tar file start with a subdirectory name which is the name of the package it is a distribution for. This name can include the version number. For example, the distribution tar file of GCC version 1.40 unpacks - into a subdirectory named `gcc-1.40'. + into a subdirectory named 'gcc-1.40'. The easiest way to do this is to create a subdirectory - appropriately named, use `ln' or `cp' to install the proper files - in it, and then `tar' that subdirectory. + appropriately named, use 'ln' or 'cp' to install the proper files + in it, and then 'tar' that subdirectory. - Compress the tar file with `gzip'. For example, the actual - distribution file for GCC version 1.40 is called `gcc-1.40.tar.gz'. + Compress the tar file with 'gzip'. For example, the actual + distribution file for GCC version 1.40 is called 'gcc-1.40.tar.gz'. - The `dist' target should explicitly depend on all non-source files + The 'dist' target should explicitly depend on all non-source files that are in the distribution, to make sure they are up to date in the distribution. *Note Making Releases: Releases. -`check' +'check' Perform self-tests (if any). The user must build the program before running the tests, but need not install the program; you should write the self-tests so that they work when the program is @@ -3981,15 +3973,15 @@ The following targets are suggested as conventional names, for programs in which they are useful. -`installcheck' +'installcheck' Perform installation tests (if any). The user must build and install the program before running the tests. You should not - assume that `$(bindir)' is in the search path. + assume that '$(bindir)' is in the search path. -`installdirs' - It's useful to add a target named `installdirs' to create the +'installdirs' + It's useful to add a target named 'installdirs' to create the directories where files are installed, and their parent - directories. There is a script called `mkinstalldirs' which is + directories. There is a script called 'mkinstalldirs' which is convenient for this; you can find it in the Texinfo package. You can use a rule like this: @@ -4000,7 +3992,7 @@ $(libdir) $(infodir) \ $(mandir) - or, if you wish to support `DESTDIR', + or, if you wish to support 'DESTDIR', # Make sure all installation directories (e.g. $(bindir)) # actually exist by making them if necessary. @@ -4015,7 +4007,7 @@ ---------- Footnotes ---------- - (1) `texi2dvi' uses TeX to do the real work of formatting. TeX is + (1) 'texi2dvi' uses TeX to do the real work of formatting. TeX is not distributed with Texinfo.  @@ -4024,7 +4016,7 @@ 7.2.6 Install Command Categories -------------------------------- -When writing the `install' target, you must classify all the commands +When writing the 'install' target, you must classify all the commands into three categories: normal ones, "pre-installation" commands and "post-installation" commands. @@ -4041,7 +4033,7 @@ normal commands. The most common use for a post-installation command is to run -`install-info'. This cannot be done with a normal command, since it +'install-info'. This cannot be done with a normal command, since it alters a file (the Info directory) which does not come entirely and solely from the package being installed. It is a post-installation command because it needs to be done after the normal command which @@ -4050,7 +4042,7 @@ Most programs don't need any pre-installation commands, but we have the feature just in case it is needed. - To classify the commands in the `install' rule into these three + To classify the commands in the 'install' rule into these three categories, insert "category lines" among them. A category line specifies the category for the commands that follow. @@ -4068,12 +4060,12 @@ $(POST_INSTALL) # Post-install commands follow. $(NORMAL_INSTALL) # Normal commands follow. - If you don't use a category line at the beginning of the `install' + If you don't use a category line at the beginning of the 'install' rule, all the commands are classified as normal until the first category line. If you don't use any category lines, all the commands are classified as normal. - These are the category lines for `uninstall': + These are the category lines for 'uninstall': $(PRE_UNINSTALL) # Pre-uninstall commands follow. $(POST_UNINSTALL) # Post-uninstall commands follow. @@ -4082,8 +4074,8 @@ Typically, a pre-uninstall command would be used for deleting entries from the Info directory. - If the `install' or `uninstall' target has any dependencies which -act as subroutines of installation, then you should start _each_ + If the 'install' or 'uninstall' target has any dependencies which act +as subroutines of installation, then you should start _each_ dependency's commands with a category line, and start the main target's commands with a category line also. This way, you can ensure that each command is placed in the right category regardless of which of the @@ -4099,9 +4091,9 @@ test touch true uname xargs yes The reason for distinguishing the commands in this way is for the -sake of making binary packages. Typically a binary package contains -all the executables and other files that need to be installed, and has -its own method of installing them--so it does not need to run the normal +sake of making binary packages. Typically a binary package contains all +the executables and other files that need to be installed, and has its +own method of installing them--so it does not need to run the normal installation commands. But installing the binary package does need to execute the pre-installation and post-installation commands. @@ -4115,7 +4107,7 @@ NORMAL_INSTALL=normal-install \ | gawk -f pre-install.awk -where the file `pre-install.awk' could contain this: +where the file 'pre-install.awk' could contain this: $0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ {on = 0} on {print $0} @@ -4130,37 +4122,37 @@ 7.3 Making Releases =================== -Package the distribution of `Foo version 69.96' up in a gzipped tar -file with the name `foo-69.96.tar.gz'. It should unpack into a -subdirectory named `foo-69.96'. +Package the distribution of 'Foo version 69.96' up in a gzipped tar file +with the name 'foo-69.96.tar.gz'. It should unpack into a subdirectory +named 'foo-69.96'. Building and installing the program should never modify any of the -files contained in the distribution. This means that all the files -that form part of the program in any way must be classified into "source +files contained in the distribution. This means that all the files that +form part of the program in any way must be classified into "source files" and "non-source files". Source files are written by humans and never changed automatically; non-source files are produced from source files by programs under the control of the Makefile. - The distribution should contain a file named `README' which gives -the name of the package, and a general description of what it does. It -is also good to explain the purpose of each of the first-level -subdirectories in the package, if there are any. The `README' file + The distribution should contain a file named 'README' which gives the +name of the package, and a general description of what it does. It is +also good to explain the purpose of each of the first-level +subdirectories in the package, if there are any. The 'README' file should either state the version number of the package, or refer to where in the package it can be found. - The `README' file should refer to the file `INSTALL', which should + The 'README' file should refer to the file 'INSTALL', which should contain an explanation of the installation procedure. - The `README' file should also refer to the file which contains the + The 'README' file should also refer to the file which contains the copying conditions. The GNU GPL, if used, should be in a file called -`COPYING'. If the GNU LGPL is used, it should be in a file called -`COPYING.LIB'. +'COPYING'. If the GNU LGPL is used, it should be in a file called +'COPYING.LIB'. Naturally, all the source files must be in the distribution. It is okay to include non-source files in the distribution, provided they are up-to-date and machine-independent, so that building the distribution normally will never modify them. We commonly include non-source files -produced by Bison, `lex', TeX, and `makeinfo'; this helps avoid +produced by Bison, 'lex', TeX, and 'makeinfo'; this helps avoid unnecessary dependencies between our distributions, so that users can install whichever packages they want to install. @@ -4171,7 +4163,7 @@ Make sure that the directory into which the distribution unpacks (as well as any subdirectories) are all world-writable (octal mode 777). -This is so that old versions of `tar' which preserve the ownership and +This is so that old versions of 'tar' which preserve the ownership and permissions of the files from the tar archive will be able to extract all the files even if the user is unprivileged. @@ -4190,15 +4182,15 @@ names for one file in different directories, because certain file systems cannot handle this and that prevents unpacking the distribution. - Try to make sure that all the file names will be unique on MS-DOS. A + Try to make sure that all the file names will be unique on MS-DOS. A name on MS-DOS consists of up to 8 characters, optionally followed by a period and up to three characters. MS-DOS will truncate extra -characters both before and after the period. Thus, `foobarhacker.c' -and `foobarhacker.o' are not ambiguous; they are truncated to -`foobarha.c' and `foobarha.o', which are distinct. +characters both before and after the period. Thus, 'foobarhacker.c' and +'foobarhacker.o' are not ambiguous; they are truncated to 'foobarha.c' +and 'foobarha.o', which are distinct. - Include in your distribution a copy of the `texinfo.tex' you used to -test print any `*.texinfo' or `*.texi' files. + Include in your distribution a copy of the 'texinfo.tex' you used to +test print any '*.texinfo' or '*.texi' files. Likewise, if your program uses small GNU software packages like regex, getopt, obstack, or termcap, include them in the distribution @@ -4217,15 +4209,15 @@ people from using them. But we can and should avoid helping to advertise them to new customers. - Sometimes it is important to mention how to build your package on -top of some non-free operating system or other non-free base package. -In such cases, please mention the name of the non-free package or -system in the briefest possible way. Don't include any references for -where to find more information about the proprietary program. The goal -should be that people already using the proprietary program will get -the advice they need about how to use your free program, while people -who don't already use the proprietary program will not see anything to -encourage them to take an interest in it. + Sometimes it is important to mention how to build your package on top +of some non-free operating system or other non-free base package. In +such cases, please mention the name of the non-free package or system in +the briefest possible way. Don't include any references for where to +find more information about the proprietary program. The goal should be +that people already using the proprietary program will get the advice +they need about how to use your free program, while people who don't +already use the proprietary program will not see anything to encourage +them to take an interest in it. Likewise, a GNU package should not refer the user to any non-free documentation for free software. The need for free documentation to go @@ -4267,7 +4259,7 @@ (line 113) * canonical name of a program: Command-Line Interfaces. (line 41) -* casting pointers to integers: CPU Portability. (line 67) +* casting pointers to integers: CPU Portability. (line 66) * change logs: Change Logs. (line 6) * change logs, conditional changes: Conditional Changes. (line 6) * change logs, style: Style of Change Logs. @@ -4315,7 +4307,7 @@ (line 6) * gtk: Graphical Interfaces. (line 6) -* GUILE: Source Language. (line 38) +* GUILE: Source Language. (line 37) * implicit int: Syntactic Conventions. (line 6) * impossible conditions: Semantics. (line 70) @@ -4383,7 +4375,7 @@ (line 31) * standards for makefiles: Makefile Conventions. (line 6) -* string library functions: System Functions. (line 55) +* string library functions: System Functions. (line 54) * syntactic conventions: Syntactic Conventions. (line 6) * table of long options: Option Table. (line 6) @@ -4398,65 +4390,65 @@  Tag Table: -Node: Top979 -Node: Preface1578 -Node: Legal Issues3180 -Node: Reading Non-Free Code3644 -Node: Contributions5372 -Node: Trademarks7526 -Node: Design Advice8589 -Node: Source Language9096 -Node: Compatibility11108 -Node: Using Extensions12736 -Node: Standard C14312 -Node: Program Behavior16683 -Node: Semantics17602 -Node: Libraries22295 -Node: Errors23540 -Node: User Interfaces25321 -Node: Graphical Interfaces26926 -Node: Command-Line Interfaces27961 -Node: Option Table33451 -Node: Memory Usage48460 -Node: File Usage49485 -Node: Writing C50233 -Node: Formatting51075 -Node: Comments55138 -Node: Syntactic Conventions58440 -Node: Names61852 -Node: System Portability64045 -Node: CPU Portability66430 -Node: System Functions69686 -Node: Internationalization74883 -Node: Mmap78036 -Node: Documentation78746 -Node: GNU Manuals79851 -Node: Doc Strings and Manuals84908 -Node: Manual Structure Details86461 -Node: License for Manuals87879 -Node: Manual Credits88853 -Node: Printed Manuals89246 -Node: NEWS File89932 -Node: Change Logs90610 -Node: Change Log Concepts91364 -Node: Style of Change Logs93228 -Node: Simple Changes95263 -Node: Conditional Changes96507 -Node: Indicating the Part Changed97929 -Node: Man Pages98456 -Node: Reading other Manuals100080 -Node: Managing Releases100871 -Node: Configuration101627 -Node: Makefile Conventions108532 -Node: Makefile Basics109296 -Node: Utilities in Makefiles112470 -Node: Command Variables114615 -Node: Directory Variables118192 -Node: Standard Targets129086 -Ref: Standard Targets-Footnote-1140326 -Node: Install Command Categories140426 -Node: Releases145008 -Node: References149096 -Node: Index150491 +Node: Top978 +Node: Preface1577 +Node: Legal Issues3167 +Node: Reading Non-Free Code3631 +Node: Contributions5358 +Node: Trademarks7512 +Node: Design Advice8575 +Node: Source Language9082 +Node: Compatibility11087 +Node: Using Extensions12715 +Node: Standard C14292 +Node: Program Behavior16663 +Node: Semantics17582 +Node: Libraries22275 +Node: Errors23520 +Node: User Interfaces25301 +Node: Graphical Interfaces26906 +Node: Command-Line Interfaces27941 +Node: Option Table33430 +Node: Memory Usage48439 +Node: File Usage49464 +Node: Writing C50212 +Node: Formatting51052 +Node: Comments55116 +Node: Syntactic Conventions58417 +Node: Names61829 +Node: System Portability64022 +Node: CPU Portability66407 +Node: System Functions69665 +Node: Internationalization74857 +Node: Mmap78010 +Node: Documentation78720 +Node: GNU Manuals79825 +Node: Doc Strings and Manuals84882 +Node: Manual Structure Details86435 +Node: License for Manuals87853 +Node: Manual Credits88826 +Node: Printed Manuals89219 +Node: NEWS File89905 +Node: Change Logs90583 +Node: Change Log Concepts91377 +Node: Style of Change Logs93240 +Node: Simple Changes95275 +Node: Conditional Changes96519 +Node: Indicating the Part Changed97941 +Node: Man Pages98468 +Node: Reading other Manuals100092 +Node: Managing Releases100883 +Node: Configuration101638 +Node: Makefile Conventions108542 +Node: Makefile Basics109306 +Node: Utilities in Makefiles112480 +Node: Command Variables114626 +Node: Directory Variables118203 +Node: Standard Targets129094 +Ref: Standard Targets-Footnote-1140335 +Node: Install Command Categories140436 +Node: Releases145018 +Node: References149105 +Node: Index150501  End Tag Table diff -Nru autoconf-dickey-2.52+20170501/doc/version.texi autoconf-dickey-2.52+20200111/doc/version.texi --- autoconf-dickey-2.52+20170501/doc/version.texi 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/doc/version.texi 2020-01-11 17:50:20.000000000 +0000 @@ -1,4 +1,4 @@ -@set UPDATED 1 December 2001 -@set UPDATED-MONTH December 2001 -@set EDITION 2.52.20170501 -@set VERSION 2.52.20170501 +@set UPDATED 11 January 2020 +@set UPDATED-MONTH January 2020 +@set EDITION 2.52.20200111 +@set VERSION 2.52.20200111 diff -Nru autoconf-dickey-2.52+20170501/INSTALL autoconf-dickey-2.52+20200111/INSTALL --- autoconf-dickey-2.52+20170501/INSTALL 2008-03-25 23:59:07.000000000 +0000 +++ autoconf-dickey-2.52+20200111/INSTALL 2020-01-11 17:56:05.000000000 +0000 @@ -1,141 +1,140 @@ -0.1 Basic Installation -====================== +1 Basic Installation +==================== These are generic installation instructions. - The `configure' shell script attempts to guess correct values for + The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. (Caching is disabled by +default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you +some point 'config.cache' contains results you don't want to keep, you may remove or edit it. - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You only need +'configure.ac' if you want to change it or regenerate 'configure' using +a newer version of 'autoconf'. The simplest way to compile this package is: - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. If you're + using 'csh' on an old version of System V, you might need to type + 'sh ./configure' instead to prevent 'csh' from trying to execute + 'configure' itself. - Running `configure' takes awhile. While running, it prints some + Running 'configure' takes awhile. While running, it prints some messages telling which features it is checking for. - 2. Type `make' to compile the package. + 2. Type 'make' to compile the package. - 3. Optionally, type `make check' to run any self-tests that come with + 3. Optionally, type 'make check' to run any self-tests that come with the package. - 4. Type `make install' to install the programs and any data files and + 4. Type 'make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. -0.2 Compilers and Options -========================= +2 Compilers and Options +======================= Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for +'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. - You can give `configure' initial values for variables by setting -them in the environment. You can do that on the command line like this: + You can give 'configure' initial values for variables by setting them +in the environment. You can do that on the command line like this: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Environment Variables::, for more details. -0.3 Compiling For Multiple Architectures -======================================== +3 Compiling For Multiple Architectures +====================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you must use a version of 'make' that +supports the 'VPATH' variable, such as GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. - If you have to use a `make' that does not support the `VPATH' + If you have to use a 'make' that does not support the 'VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another +one architecture, use 'make distclean' before reconfiguring for another architecture. -0.4 Installation Names -====================== +4 Installation Names +==================== -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. +By default, 'make install' will install the package's files in +'/usr/local/bin', '/usr/local/man', etc. You can specify an +installation prefix other than '/usr/local' by giving 'configure' the +option '--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +give 'configure' the option '--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. Documentation +and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories +options like '--bindir=PATH' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. -0.5 Optional Features -===================== +5 Optional Features +=================== -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the +Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the package recognizes. - For packages that use the X Window System, `configure' can usually + For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. -0.6 Specifying the System Type -============================== +6 Specifying the System Type +============================ -There may be some features `configure' cannot figure out automatically, +There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of host the package will run on. -Usually `configure' can figure that out, but if it prints a message -saying it cannot guess the host type, give it the `--build=TYPE' -option. TYPE can either be a short name for the system type, such as -`sun4', or a canonical name which has the form: +Usually 'configure' can figure that out, but if it prints a message +saying it cannot guess the host type, give it the '--build=TYPE' option. +TYPE can either be a short name for the system type, such as 'sun4', or +a canonical name which has the form: CPU-COMPANY-SYSTEM @@ -144,82 +143,81 @@ OS KERNEL-OS - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the '--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the host platform (i.e., that on which the generated programs will eventually be -run) with `--host=TYPE'. In this case, you should also specify the -build platform with `--build=TYPE', because, in this case, it may not -be possible to guess the build platform (it sometimes involves -compiling and running simple test programs, and this can't be done if -the compiler is a cross compiler). - -0.7 Sharing Defaults -==================== - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. +run) with '--host=TYPE'. In this case, you should also specify the +build platform with '--build=TYPE', because, in this case, it may not be +possible to guess the build platform (it sometimes involves compiling +and running simple test programs, and this can't be done if the compiler +is a cross compiler). + +7 Sharing Defaults +================== + +If you want to set default values for 'configure' scripts to share, you +can create a site shell script called 'config.site' that gives default +values for variables like 'CC', 'cache_file', and 'prefix'. 'configure' +looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. -0.8 Environment Variables -========================= +8 Environment Variables +======================= Variables not defined in a site shell script can be set in the environment passed to configure. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: +them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). -0.9 `configure' Invocation -========================== +9 'configure' Invocation +======================== -`configure' recognizes the following options to control how it operates. +'configure' recognizes the following options to control how it operates. -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' +'--help' +'-h' + Print a summary of the options to 'configure', and exit. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' script, and exit. -`--cache-file=FILE' +'--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to + traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error + suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). -`--srcdir=DIR' +'--srcdir=DIR' Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. + 'configure' can determine that directory automatically. +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff -Nru autoconf-dickey-2.52+20170501/INSTALL.txt autoconf-dickey-2.52+20200111/INSTALL.txt --- autoconf-dickey-2.52+20170501/INSTALL.txt 2008-03-25 23:59:07.000000000 +0000 +++ autoconf-dickey-2.52+20200111/INSTALL.txt 2020-01-11 17:56:05.000000000 +0000 @@ -1,141 +1,140 @@ -0.1 Basic Installation -====================== +1 Basic Installation +==================== These are generic installation instructions. - The `configure' shell script attempts to guess correct values for + The 'configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that +those values to create a 'Makefile' in each directory of the package. +It may also create one or more '.h' files containing system-dependent +definitions. Finally, it creates a shell script 'config.status' that you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). +file 'config.log' containing compiler output (useful mainly for +debugging 'configure'). - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) + It can also use an optional file (typically called 'config.cache' and +enabled with '--cache-file=config.cache' or simply '-C') that saves the +results of its tests to speed up reconfiguring. (Caching is disabled by +default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can +to figure out how 'configure' could check whether to do them, and mail +diffs or instructions to the address given in the 'README' so they can be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you +some point 'config.cache' contains results you don't want to keep, you may remove or edit it. - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. + The file 'configure.ac' (or 'configure.in') is used to create +'configure' by a program called 'autoconf'. You only need +'configure.ac' if you want to change it or regenerate 'configure' using +a newer version of 'autoconf'. The simplest way to compile this package is: - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + 1. 'cd' to the directory containing the package's source code and type + './configure' to configure the package for your system. If you're + using 'csh' on an old version of System V, you might need to type + 'sh ./configure' instead to prevent 'csh' from trying to execute + 'configure' itself. - Running `configure' takes awhile. While running, it prints some + Running 'configure' takes awhile. While running, it prints some messages telling which features it is checking for. - 2. Type `make' to compile the package. + 2. Type 'make' to compile the package. - 3. Optionally, type `make check' to run any self-tests that come with + 3. Optionally, type 'make check' to run any self-tests that come with the package. - 4. Type `make install' to install the programs and any data files and + 4. Type 'make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly + source code directory by typing 'make clean'. To also remove the + files that 'configure' created (so you can compile the package for + a different kind of computer), type 'make distclean'. There is + also a 'make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. -0.2 Compilers and Options -========================= +2 Compilers and Options +======================= Some systems require unusual options for compilation or linking that the -`configure' script does not know about. Run `./configure --help' for +'configure' script does not know about. Run './configure --help' for details on some of the pertinent environment variables. - You can give `configure' initial values for variables by setting -them in the environment. You can do that on the command line like this: + You can give 'configure' initial values for variables by setting them +in the environment. You can do that on the command line like this: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Environment Variables::, for more details. -0.3 Compiling For Multiple Architectures -======================================== +3 Compiling For Multiple Architectures +====================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you must use a version of 'make' that +supports the 'VPATH' variable, such as GNU 'make'. 'cd' to the directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. +the 'configure' script. 'configure' automatically checks for the source +code in the directory that 'configure' is in and in '..'. - If you have to use a `make' that does not support the `VPATH' + If you have to use a 'make' that does not support the 'VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another +one architecture, use 'make distclean' before reconfiguring for another architecture. -0.4 Installation Names -====================== +4 Installation Names +==================== -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. +By default, 'make install' will install the package's files in +'/usr/local/bin', '/usr/local/man', etc. You can specify an +installation prefix other than '/usr/local' by giving 'configure' the +option '--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +give 'configure' the option '--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. Documentation +and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories +options like '--bindir=PATH' to specify different values for particular +kinds of files. Run 'configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. +with an extra prefix or suffix on their names by giving 'configure' the +option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'. -0.5 Optional Features -===================== +5 Optional Features +=================== -Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the +Some packages pay attention to '--enable-FEATURE' options to +'configure', where FEATURE indicates an optional part of the package. +They may also pay attention to '--with-PACKAGE' options, where PACKAGE +is something like 'gnu-as' or 'x' (for the X Window System). The +'README' should mention any '--enable-' and '--with-' options that the package recognizes. - For packages that use the X Window System, `configure' can usually + For packages that use the X Window System, 'configure' can usually find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. +you can use the 'configure' options '--x-includes=DIR' and +'--x-libraries=DIR' to specify their locations. -0.6 Specifying the System Type -============================== +6 Specifying the System Type +============================ -There may be some features `configure' cannot figure out automatically, +There may be some features 'configure' cannot figure out automatically, but needs to determine by the type of host the package will run on. -Usually `configure' can figure that out, but if it prints a message -saying it cannot guess the host type, give it the `--build=TYPE' -option. TYPE can either be a short name for the system type, such as -`sun4', or a canonical name which has the form: +Usually 'configure' can figure that out, but if it prints a message +saying it cannot guess the host type, give it the '--build=TYPE' option. +TYPE can either be a short name for the system type, such as 'sun4', or +a canonical name which has the form: CPU-COMPANY-SYSTEM @@ -144,82 +143,81 @@ OS KERNEL-OS - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't + See the file 'config.sub' for the possible values of each field. If +'config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the '--target=TYPE' option to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the host platform (i.e., that on which the generated programs will eventually be -run) with `--host=TYPE'. In this case, you should also specify the -build platform with `--build=TYPE', because, in this case, it may not -be possible to guess the build platform (it sometimes involves -compiling and running simple test programs, and this can't be done if -the compiler is a cross compiler). - -0.7 Sharing Defaults -==================== - -If you want to set default values for `configure' scripts to share, you -can create a site shell script called `config.site' that gives default -values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. +run) with '--host=TYPE'. In this case, you should also specify the +build platform with '--build=TYPE', because, in this case, it may not be +possible to guess the build platform (it sometimes involves compiling +and running simple test programs, and this can't be done if the compiler +is a cross compiler). + +7 Sharing Defaults +================== + +If you want to set default values for 'configure' scripts to share, you +can create a site shell script called 'config.site' that gives default +values for variables like 'CC', 'cache_file', and 'prefix'. 'configure' +looks for 'PREFIX/share/config.site' if it exists, then +'PREFIX/etc/config.site' if it exists. Or, you can set the +'CONFIG_SITE' environment variable to the location of the site script. +A warning: not all 'configure' scripts look for a site script. -0.8 Environment Variables -========================= +8 Environment Variables +======================= Variables not defined in a site shell script can be set in the environment passed to configure. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: +them in the 'configure' command line, using 'VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc will cause the specified gcc to be used as the C compiler (unless it is overridden in the site shell script). -0.9 `configure' Invocation -========================== +9 'configure' Invocation +======================== -`configure' recognizes the following options to control how it operates. +'configure' recognizes the following options to control how it operates. -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' +'--help' +'-h' + Print a summary of the options to 'configure', and exit. + +'--version' +'-V' + Print the version of Autoconf used to generate the 'configure' script, and exit. -`--cache-file=FILE' +'--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to + traditionally 'config.cache'. FILE defaults to '/dev/null' to disable caching. -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' +'--config-cache' +'-C' + Alias for '--cache-file=config.cache'. + +'--quiet' +'--silent' +'-q' Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error + suppress all normal output, redirect it to '/dev/null' (any error messages will still be shown). -`--srcdir=DIR' +'--srcdir=DIR' Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. + 'configure' can determine that directory automatically. +'configure' also accepts some other, not widely useful, options. Run +'configure --help' for more details. diff -Nru autoconf-dickey-2.52+20170501/m4/m4.m4 autoconf-dickey-2.52+20200111/m4/m4.m4 --- autoconf-dickey-2.52+20170501/m4/m4.m4 2000-05-26 16:59:20.000000000 +0000 +++ autoconf-dickey-2.52+20200111/m4/m4.m4 2020-01-11 18:03:35.000000000 +0000 @@ -3,7 +3,12 @@ # Check for GNU m4, at least 1.3 (supports frozen files). AC_DEFUN([AC_PROG_GNU_M4], [AC_PATH_PROGS(M4, gm4 gnum4 m4, m4) -AC_CACHE_CHECK(whether m4 supports frozen files, ac_cv_prog_gnu_m4, +AC_CACHE_CHECK(version of $M4, ac_cv_m4_version, +[ + ac_cv_m4_version=`$M4 --version | head -n 1 | sed -E -e 's/^.*[[ ]]([[1-9]][[0-9]]*\.)/\1/g' -e 's/[[^0-9.]]*$//' 2>/dev/null` + test -z "$ac_cv_m4_version" && ac_cv_m4_version=unknown +]) +AC_CACHE_CHECK(whether $M4 supports frozen files, ac_cv_prog_gnu_m4, [ac_cv_prog_gnu_m4=no if test x"$M4" != x; then case `$M4 --help < /dev/null 2>&1` in diff -Nru autoconf-dickey-2.52+20170501/man/autoconf.1 autoconf-dickey-2.52+20200111/man/autoconf.1 --- autoconf-dickey-2.52+20170501/man/autoconf.1 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/man/autoconf.1 2020-01-11 17:50:20.000000000 +0000 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. -.TH AUTOCONF "1" "October 2012" "autoconf 2.52.20170501" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH AUTOCONF "1" "January 2020" "autoconf 2.52.20200111" "User Commands" .SH NAME autoconf \- Generate configuration scripts .SH SYNOPSIS .B autoconf -[\fIOPTION\fR] ... [\fITEMPLATE-FILE\fR] +[\fI\,OPTION\/\fR] ... [\fI\,TEMPLATE-FILE\/\fR] .SH DESCRIPTION Generate a configuration script from a TEMPLATE\-FILE if given, or `configure.ac' if present, or else `configure.in'. Output is sent @@ -24,10 +24,10 @@ \fB\-d\fR, \fB\-\-debug\fR don't remove temporary files .TP -\fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR +\fB\-o\fR, \fB\-\-output\fR=\fI\,FILE\/\fR save output in FILE (stdout is the default) .TP -\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR +\fB\-W\fR, \fB\-\-warnings\fR=\fI\,CATEGORY\/\fR report the warnings falling in CATEGORY [syntax] .SS "Warning categories include:" .TP @@ -55,14 +55,14 @@ The environment variable `WARNINGS' is honored. .SS "Library directories:" .TP -\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fIACDIR\fR +\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fI\,ACDIR\/\fR Autoconf's macro files location (rarely needed) .TP -\fB\-l\fR, \fB\-\-localdir\fR=\fIDIR\fR +\fB\-l\fR, \fB\-\-localdir\fR=\fI\,DIR\/\fR location of the `aclocal.m4' file .SS "Tracing:" .TP -\fB\-t\fR, \fB\-\-trace\fR=\fIMACRO\fR +\fB\-t\fR, \fB\-\-trace\fR=\fI\,MACRO\/\fR report the list of calls to MACRO .TP \fB\-i\fR, \fB\-\-initialization\fR diff -Nru autoconf-dickey-2.52+20170501/man/autoheader.1 autoconf-dickey-2.52+20200111/man/autoheader.1 --- autoconf-dickey-2.52+20170501/man/autoheader.1 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/man/autoheader.1 2020-01-11 17:50:20.000000000 +0000 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. -.TH AUTOHEADER "1" "October 2012" "autoheader 2.52.20170501" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH AUTOHEADER "1" "January 2020" "autoheader 2.52.20200111" "User Commands" .SH NAME autoheader \- Create a template header for configure .SH SYNOPSIS .B autoheader -[\fIOPTION\fR] ... [\fITEMPLATE-FILE\fR] +[\fI\,OPTION\/\fR] ... [\fI\,TEMPLATE-FILE\/\fR] .SH DESCRIPTION Create a template file of C `#define' statements for `configure' to use. To this end, scan TEMPLATE\-FILE, or `configure.ac' if present, @@ -22,7 +22,7 @@ \fB\-d\fR, \fB\-\-debug\fR don't remove temporary files .TP -\fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR +\fB\-W\fR, \fB\-\-warnings\fR=\fI\,CATEGORY\/\fR report the warnings falling in CATEGORY .SS "Warning categories include:" .TP @@ -42,10 +42,10 @@ warnings are error .SS "Library directories:" .TP -\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fIACDIR\fR +\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fI\,ACDIR\/\fR Autoconf's macro files location (rarely needed) .TP -\fB\-l\fR, \fB\-\-localdir\fR=\fIDIR\fR +\fB\-l\fR, \fB\-\-localdir\fR=\fI\,DIR\/\fR location of `aclocal.m4' and `acconfig.h' .SH AUTHOR Written by Roland McGrath. diff -Nru autoconf-dickey-2.52+20170501/man/autoreconf.1 autoconf-dickey-2.52+20200111/man/autoreconf.1 --- autoconf-dickey-2.52+20170501/man/autoreconf.1 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/man/autoreconf.1 2020-01-11 17:50:20.000000000 +0000 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. -.TH AUTORECONF "1" "October 2012" "autoreconf 2.52.20170501" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH AUTORECONF "1" "January 2020" "autoreconf 2.52.20200111" "User Commands" .SH NAME autoreconf \- Update generated configuration files .SH SYNOPSIS .B autoreconf -[\fIOPTION\fR] ... [\fITEMPLATE-FILE\fR] +[\fI\,OPTION\/\fR] ... [\fI\,TEMPLATE-FILE\/\fR] .SH DESCRIPTION Run `autoconf' (and `autoheader', `aclocal' and `automake', where appropriate) repeatedly to remake the Autoconf `configure' scripts @@ -40,13 +40,13 @@ other tools. .SS "Library directories:" .TP -\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fIACDIR\fR +\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fI\,ACDIR\/\fR Autoconf's macro files location (rarely needed) .TP -\fB\-l\fR, \fB\-\-localdir\fR=\fIDIR\fR +\fB\-l\fR, \fB\-\-localdir\fR=\fI\,DIR\/\fR location of `aclocal.m4' and `acconfig.h' .TP -\fB\-M\fR, \fB\-\-m4dir\fR=\fIM4DIR\fR +\fB\-M\fR, \fB\-\-m4dir\fR=\fI\,M4DIR\/\fR this package's Autoconf extensions .PP Unless specified, heuristics try to compute `M4DIR' from the `Makefile.am', diff -Nru autoconf-dickey-2.52+20170501/man/autoscan.1 autoconf-dickey-2.52+20200111/man/autoscan.1 --- autoconf-dickey-2.52+20170501/man/autoscan.1 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/man/autoscan.1 2020-01-11 17:50:20.000000000 +0000 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. -.TH AUTOSCAN "1" "October 2012" "autoscan 2.52.20170501" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH AUTOSCAN "1" "January 2020" "autoscan 2.52.20200111" "User Commands" .SH NAME autoscan \- Generate a preliminary configure.in .SH SYNOPSIS .B autoscan -[\fIOPTION\fR] ... [\fISRCDIR\fR] +[\fI\,OPTION\/\fR] ... [\fI\,SRCDIR\/\fR] .SH DESCRIPTION Examine source files in the directory tree rooted at SRCDIR, or the current directory if none is given. Search the source files for @@ -22,10 +22,10 @@ verbosely report processing .SS "Library directories:" .TP -\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fIACDIR\fR +\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fI\,ACDIR\/\fR Autoconf's files location (rarely needed) .TP -\fB\-l\fR, \fB\-\-localdir\fR=\fIDIR\fR +\fB\-l\fR, \fB\-\-localdir\fR=\fI\,DIR\/\fR location of `aclocal.m4' and `acconfig.h' .SH AUTHOR Written by David J. MacKenzie. diff -Nru autoconf-dickey-2.52+20170501/man/autoupdate.1 autoconf-dickey-2.52+20200111/man/autoupdate.1 --- autoconf-dickey-2.52+20170501/man/autoupdate.1 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/man/autoupdate.1 2020-01-11 17:50:20.000000000 +0000 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. -.TH AUTOUPDATE "1" "October 2012" "autoupdate 2.52.20170501" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH AUTOUPDATE "1" "January 2020" "autoupdate 2.52.20200111" "User Commands" .SH NAME autoupdate \- Update a configure.in to a newer Autoconf .SH SYNOPSIS .B autoupdate -[\fIOPTION\fR] ... [\fITEMPLATE-FILE\fR...] +[\fI\,OPTION\/\fR] ... [\fI\,TEMPLATE-FILE\/\fR...] .SH DESCRIPTION Update the TEMPLATE\-FILE... if given, or `configure.ac' if present, or else `configure.in', to the syntax of the current version of @@ -24,10 +24,10 @@ don't remove temporary files .SS "Library directories:" .TP -\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fIACDIR\fR +\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fI\,ACDIR\/\fR Autoconf's macro files location (rarely needed) .TP -\fB\-l\fR, \fB\-\-localdir\fR=\fIDIR\fR +\fB\-l\fR, \fB\-\-localdir\fR=\fI\,DIR\/\fR location of `aclocal.m4' .SS "Environment variables:" .TP @@ -35,7 +35,7 @@ GNU M4 1.4 or above .TP AUTOCONF -autoconf 2.52.20170501 +autoconf 2.52.20200111 .SH AUTHOR Written by David J. MacKenzie and Akim Demaille. .SH "REPORTING BUGS" diff -Nru autoconf-dickey-2.52+20170501/man/ifnames.1 autoconf-dickey-2.52+20200111/man/ifnames.1 --- autoconf-dickey-2.52+20170501/man/ifnames.1 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/man/ifnames.1 2020-01-11 17:50:20.000000000 +0000 @@ -1,10 +1,10 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.2. -.TH IFNAMES "1" "October 2012" "ifnames 2.52.20170501" "User Commands" +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. +.TH IFNAMES "1" "January 2020" "ifnames 2.52.20200111" "User Commands" .SH NAME ifnames \- Extract CPP conditionals from a set of files .SH SYNOPSIS .B ifnames -[\fIOPTION\fR] ... [\fIFILE\fR] ... +[\fI\,OPTION\/\fR] ... [\fI\,FILE\/\fR] ... .SH DESCRIPTION Scan all of the C source FILES (or the standard input, if none are given) and write to the standard output a sorted list of all the diff -Nru autoconf-dickey-2.52+20170501/package/ac252.spec autoconf-dickey-2.52+20200111/package/ac252.spec --- autoconf-dickey-2.52+20170501/package/ac252.spec 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/ac252.spec 2020-01-11 15:08:04.000000000 +0000 @@ -1,15 +1,15 @@ Summary: autoconf-252 - Generate configuration scripts %define AppProgram autoconf %define AppVersion 2.52 -%define AppRelease 20170501 +%define AppRelease 20200111 %define AppSuffix -252 -# $Id: ac252.spec,v 1.21 2017/05/02 01:18:04 tom Exp $ +# $Id: ac252.spec,v 1.28 2020/01/11 15:08:04 tom Exp $ Name: ac252 Version: %{AppVersion} Release: %{AppRelease} License: GPLv2 Group: Applications/Development -URL: ftp://invisible-island.net/%{AppProgram} +URL: ftp://ftp.invisible-island.net/%{AppProgram} Source0: %{AppProgram}-%{AppVersion}-%{AppRelease}.tgz Packager: Thomas E. Dickey @@ -78,6 +78,9 @@ %changelog # each patch should add its ChangeLog entries here +* Sun Aug 19 2018 Thomas E. Dickey +- update ftp-url + * Fri Oct 01 2010 Thomas E. Dickey - adapt rules for installing info file from http://fedoraproject.org/wiki/Packaging/ScriptletSnippets diff -Nru autoconf-dickey-2.52+20170501/package/debian/changelog autoconf-dickey-2.52+20200111/package/debian/changelog --- autoconf-dickey-2.52+20170501/package/debian/changelog 2017-05-02 01:18:04.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/debian/changelog 2020-01-11 15:08:04.000000000 +0000 @@ -1,3 +1,33 @@ +ac252 (20200111) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Sat, 11 Jan 2020 10:08:04 -0500 + +ac252 (20190901) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Sun, 01 Sep 2019 13:24:56 -0400 + +ac252 (20190828) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Wed, 28 Aug 2019 17:02:12 -0400 + +ac252 (20181006) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Fri, 05 Oct 2018 04:27:30 -0400 + +ac252 (20180819) unstable; urgency=low + + * recognize "--runstatedir" + + -- Thomas E. Dickey Sun, 19 Aug 2018 11:43:59 -0400 + ac252 (20170501) unstable; urgency=low * fix "make check" for OSX, also use 'int main(void)', per c89. diff -Nru autoconf-dickey-2.52+20170501/package/debian/compat autoconf-dickey-2.52+20200111/package/debian/compat --- autoconf-dickey-2.52+20170501/package/debian/compat 2010-07-07 23:02:21.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/debian/compat 2019-08-28 22:10:11.000000000 +0000 @@ -1 +1 @@ -5 +9 diff -Nru autoconf-dickey-2.52+20170501/package/debian/control autoconf-dickey-2.52+20200111/package/debian/control --- autoconf-dickey-2.52+20170501/package/debian/control 2010-10-02 17:13:30.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/debian/control 2018-08-19 20:29:29.000000000 +0000 @@ -1,7 +1,7 @@ Source: ac252 Maintainer: Thomas E. Dickey Section: devel -Priority: extra +Priority: optional Standards-Version: 3.8.4 Build-Depends-Indep: texinfo (>= 4.6), m4 (>= 1.4), help2man Build-Depends: debhelper (>= 5) diff -Nru autoconf-dickey-2.52+20170501/package/debian/copyright autoconf-dickey-2.52+20200111/package/debian/copyright --- autoconf-dickey-2.52+20170501/package/debian/copyright 2012-03-03 14:41:46.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/debian/copyright 2018-08-19 17:37:28.000000000 +0000 @@ -45,7 +45,7 @@ shared with many OS's install programs. Files: debian/* -Copyright: 2010,2012 Thomas E. Dickey +Copyright: 2010-2017,2018 Thomas E. Dickey Licence: other-BSD Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, diff -Nru autoconf-dickey-2.52+20170501/package/debian/rules autoconf-dickey-2.52+20200111/package/debian/rules --- autoconf-dickey-2.52+20170501/package/debian/rules 2010-10-02 15:36:31.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/debian/rules 2018-08-19 20:33:46.000000000 +0000 @@ -11,6 +11,9 @@ DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +PACKAGE = ac252 +DSTDIR := $(CURDIR)/debian/$(PACKAGE) + CFLAGS = ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) @@ -22,19 +25,25 @@ INSTALL_PROGRAM += -s endif +CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS) +CFLAGS := $(shell dpkg-buildflags --get CFLAGS) +LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) configure: configure-stamp configure-stamp: dh_testdir - CFLAGS="$(CFLAGS)" ./configure \ + CPPFLAGS="$(CPPFLAGS)" \ + CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" \ + ./configure \ --program-suffix=-252 \ --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ - --datadir=\$${prefix}/share/ac252 + --datadir=\$${prefix}/share/$(PACKAGE) touch configure-stamp @@ -62,7 +71,9 @@ dh_clean -k dh_installdirs - $(MAKE) install DESTDIR=$(CURDIR)/debian/ac252 + $(MAKE) install DESTDIR=$(DSTDIR) + rm -f $(DSTDIR)/usr/share/info/dir* + rm -f $(DSTDIR)/usr/share/info/standard* touch install-stamp diff -Nru autoconf-dickey-2.52+20170501/package/debian/watch autoconf-dickey-2.52+20200111/package/debian/watch --- autoconf-dickey-2.52+20170501/package/debian/watch 2010-09-28 20:36:48.000000000 +0000 +++ autoconf-dickey-2.52+20200111/package/debian/watch 2018-08-19 15:32:32.000000000 +0000 @@ -1,4 +1,4 @@ version=3 -opts=passive ftp://invisible-island.net/autoconf/autoconf-2.52-(\d+)\.tgz \ +opts=passive ftp://ftp.invisible-island.net/autoconf/autoconf-2.52-(\d+)\.tgz \ debian uupdate