1
1
This is autoconf.info, produced by makeinfo version 4.13 from
4
This manual (4 November 2009) is for GNU Autoconf (version 2.65), a
4
This manual (21 July 2010) is for GNU Autoconf (version 2.67), a
5
5
package for creating scripts to configure source code packages using
6
6
templates and an M4 macro package.
8
8
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
9
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
9
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
12
12
Permission is granted to copy, distribute and/or modify this
55
This manual (4 November 2009) is for GNU Autoconf (version 2.65), a
55
This manual (21 July 2010) is for GNU Autoconf (version 2.67), a
56
56
package for creating scripts to configure source code packages using
57
57
templates and an M4 macro package.
59
59
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
60
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
60
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
63
63
Permission is granted to copy, distribute and/or modify this
913
928
When calling macros that take arguments, there must not be any white
914
space between the macro name and the open parenthesis. Arguments should
915
be enclosed within the M4 quote characters `[' and `]', and be
916
separated by commas. Any leading blanks or newlines in arguments are
917
ignored, unless they are quoted. You should always quote an argument
918
that might contain a macro name, comma, parenthesis, or a leading blank
919
or newline. This rule applies recursively for every macro call,
920
including macros called from other macros.
929
space between the macro name and the open parenthesis.
931
AC_INIT ([oops], [1.0]) # incorrect
932
AC_INIT([hello], [1.0]) # good
934
Arguments should be enclosed within the quote characters `[' and
935
`]', and be separated by commas. Any leading blanks or newlines in
936
arguments are ignored, unless they are quoted. You should always quote
937
an argument that might contain a macro name, comma, parenthesis, or a
938
leading blank or newline. This rule applies recursively for every macro
939
call, including macros called from other macros. For more details on
940
quoting rules, see *note Programming in M4::.
924
944
AC_CHECK_HEADER([stdio.h],
925
945
[AC_DEFINE([HAVE_STDIO_H], [1],
926
946
[Define to 1 if you have <stdio.h>.])],
927
[AC_MSG_ERROR([Sorry, can't do anything for you])])
947
[AC_MSG_ERROR([sorry, can't do anything for you])])
929
949
is quoted properly. You may safely simplify its quotation to:
931
951
AC_CHECK_HEADER([stdio.h],
932
952
[AC_DEFINE([HAVE_STDIO_H], 1,
933
953
[Define to 1 if you have <stdio.h>.])],
934
[AC_MSG_ERROR([Sorry, can't do anything for you])])
954
[AC_MSG_ERROR([sorry, can't do anything for you])])
936
956
because `1' cannot contain a macro call. Here, the argument of
937
957
`AC_MSG_ERROR' must be quoted; otherwise, its comma would be
1515
1535
and underscores are changed to `-'. If provided, URL should be
1516
1536
the home page for the package.
1518
It is preferable that the arguments of `AC_INIT' be static, i.e.,
1519
there should not be any shell computation, but they can be
1538
The arguments of `AC_INIT' must be static, i.e., there should not
1539
be any shell computation, quotes, or newlines, but they can be
1540
computed by M4. This is because the package information strings
1541
are expanded at M4 time into several contexts, and must give the
1542
same text at shell time whether used in single-quoted strings,
1543
double-quoted strings, quoted here-documents, or unquoted
1544
here-documents. It is permissible to use `m4_esyscmd' or
1545
`m4_esyscmd_s' for computing a version string that changes with
1546
every commit to a version control system (in fact, Autoconf does
1547
just that, for all builds of the development tree made between
1522
1550
The following M4 macros (e.g., `AC_PACKAGE_NAME'), output variables
1523
1551
(e.g., `PACKAGE_NAME'), and preprocessor symbols (e.g.,
1971
1999
to test for C features.
1973
2001
If a compiler option affects only the behavior of the preprocessor
1974
(e.g., `-D NAME'), it should be put into `CPPFLAGS' instead. If
1975
it affects only the linker (e.g., `-L DIRECTORY'), it should be
1976
put into `LDFLAGS' instead. If it affects only the compiler
1977
proper, `CFLAGS' is the natural home for it. If an option affects
2002
(e.g., `-DNAME'), it should be put into `CPPFLAGS' instead. If it
2003
affects only the linker (e.g., `-LDIRECTORY'), it should be put
2004
into `LDFLAGS' instead. If it affects only the compiler proper,
2005
`CFLAGS' is the natural home for it. If an option affects
1978
2006
multiple phases of the compiler, though, matters get tricky. One
1979
2007
approach to put such options directly into `CC', e.g., `CC='gcc
1980
2008
-m64''. Another is to put them into both `CPPFLAGS' and
3620
3648
`AC_LINK_IFELSE([AC_LANG_CALL([], [FUNCTION])])' first with no
3621
3649
libraries, then for each library listed in SEARCH-LIBS.
3623
Add `-lLIBRARY' to `LIBS' for the first library found to contain
3624
FUNCTION, and run ACTION-IF-FOUND. If the function is not found,
3625
run ACTION-IF-NOT-FOUND.
3651
Prepend `-lLIBRARY' to `LIBS' for the first library found to
3652
contain FUNCTION, and run ACTION-IF-FOUND. If the function is not
3653
found, run ACTION-IF-NOT-FOUND.
3627
3655
If linking with LIBRARY results in unresolved symbols that would
3628
3656
be resolved by linking with additional libraries, give those
4955
4983
This macro actually tests whether SYMBOL is defined as a macro or
4956
4984
can be used as an r-value, not whether it is really declared,
4957
4985
because it is much safer to avoid introducing extra declarations
4958
when they are not needed.
4986
when they are not needed. In order to facilitate use of C++ and
4987
overloaded function declarations, it is possible to specify
4988
function argument types in parentheses for types which can be
4991
AC_CHECK_DECL([basename(char *)])
4960
4993
This macro caches its result in the `ac_cv_have_decl_SYMBOL'
4961
4994
variable, with characters not suitable for a variable name mapped
5597
5632
If using the GNU C compiler, set shell variable `GCC' to `yes'.
5598
5633
If output variable `CFLAGS' was not already set, set it to `-g
5599
5634
-O2' for the GNU C compiler (`-O2' on systems where GCC does not
5600
accept `-g'), or `-g' for other compilers.
5635
accept `-g'), or `-g' for other compilers. If your package does
5636
not like this default, then it is acceptable to insert the line `:
5637
${CFLAGS=""}' after `AC_INIT' and before `AC_PROG_CC' to select an
5638
empty default instead.
5602
5640
Many Autoconf macros use a compiler, and thus call
5603
5641
`AC_REQUIRE([AC_PROG_CC])' to ensure that the compiler has been
6042
6084
programs that can (or must) compile under the newer Fortran standards,
6043
6085
and have output variables like `FC', `FCFLAGS', and `FCLIBS'.
6045
Except for two new macros `AC_FC_SRCEXT' and `AC_FC_FREEFORM' (see
6046
below), the `FC' and `F77' macros behave almost identically, and so
6047
they are documented together in this section.
6087
Except for the macros `AC_FC_SRCEXT', `AC_FC_FREEFORM',
6088
`AC_FC_FIXEDFORM', and `AC_FC_LINE_LENGTH' (see below), the `FC' and
6089
`F77' macros behave almost identically, and so they are documented
6090
together in this section.
6049
6092
-- Macro: AC_PROG_F77 ([COMPILER-SEARCH-LIST])
6050
6093
Determine a Fortran 77 compiler to use. If `F77' is not already
6320
6366
extension, since many compilers interpret this extension as
6321
6367
indicating fixed-format source unless an additional flag is
6322
6368
supplied. If you specify a different extension with
6323
`AC_FC_SRCEXT', such as `.f90' or `.f95', then `AC_FC_FREEFORM'
6324
ordinarily succeeds without modifying `FCFLAGS'.
6369
`AC_FC_SRCEXT', such as `.f90', then `AC_FC_FREEFORM' ordinarily
6370
succeeds without modifying `FCFLAGS'. For extensions which the
6371
compiler does not know about, the flag set by the `AC_FC_SRCEXT'
6372
macro might let the compiler assume Fortran 77 by default, however.
6326
6374
If `AC_FC_FREEFORM' succeeds in compiling free-form source, it
6327
6375
calls ACTION-IF-SUCCESS (defaults to nothing). If it fails, it
6328
6376
calls ACTION-IF-FAILURE (defaults to exiting with an error
6379
-- Macro: AC_FC_FIXEDFORM ([ACTION-IF-SUCCESS], [ACTION-IF-FAILURE])
6380
The `AC_FC_FIXEDFORM' tries to ensure that the Fortran compiler
6381
(`$FC') allows the old fixed-format source code (as opposed to
6382
free-format style). If necessary, it may add some additional
6385
This macro is needed for some compilers alias names like `xlf95'
6386
which assume free-form source code by default, and in case you
6387
want to use fixed-form source with an extension like `.f90' which
6388
many compilers interpret as free-form by default. If you specify
6389
a different extension with `AC_FC_SRCEXT', such as `.f', then
6390
`AC_FC_FIXEDFORM' ordinarily succeeds without modifying `FCFLAGS'.
6392
If `AC_FC_FIXEDFORM' succeeds in compiling fixed-form source, it
6393
calls ACTION-IF-SUCCESS (defaults to nothing). If it fails, it
6394
calls ACTION-IF-FAILURE (defaults to exiting with an error
6397
-- Macro: AC_FC_LINE_LENGTH ([LENGTH], [ACTION-IF-SUCCESS],
6398
[ACTION-IF-FAILURE])
6399
The `AC_FC_LINE_LENGTH' macro tries to ensure that the Fortran
6400
compiler (`$FC') accepts long source code lines. The LENGTH
6401
argument may be given as 80, 132, or unlimited, and defaults to
6402
132. Note that line lengths above 254 columns are not portable,
6403
and some compilers do not accept more than 132 columns at least
6404
for fixed format source. If necessary, it may add some additional
6407
If `AC_FC_LINE_LENGTH' succeeds in compiling fixed-form source, it
6408
calls ACTION-IF-SUCCESS (defaults to nothing). If it fails, it
6409
calls ACTION-IF-FAILURE (defaults to exiting with an error
6332
6413
File: autoconf.info, Node: System Services, Next: Posix Variants, Prev: Compilers and Preprocessors, Up: Existing Tests
6824
6905
For instance executing (observe the double quotation!):
6826
AC_INIT([Hello], [1.0], [bug-hello@example.org])
6907
AC_INIT([Hello], [1.0], [bug-hello@example.org], [],
6908
[http://www.example.org/])
6827
6909
AC_DEFINE([HELLO_WORLD], ["Hello, World\n"],
6828
6910
[Greetings string.])
6830
6912
AC_LANG_CONFTEST(
6831
6913
[AC_LANG_SOURCE([[const char hw[] = "Hello, World\n";]])])
6832
gcc -E -dD -o - conftest.c
6914
gcc -E -dD conftest.c
6916
on a system with `gcc' installed, results in:
6837
6919
# 1 "conftest.c"
6859
AC_INIT([Hello], [1.0], [bug-hello@example.org])
6942
AC_INIT([Hello], [1.0], [bug-hello@example.org], [],
6943
[http://www.example.org/])
6860
6944
AC_DEFINE([HELLO_WORLD], ["Hello, World\n"],
6861
6945
[Greetings string.])
6862
6946
AC_LANG_CONFTEST(
6863
6947
[AC_LANG_PROGRAM([[const char hw[] = "Hello, World\n";]],
6864
6948
[[fputs (hw, stdout);]])])
6865
gcc -E -dD -o - conftest.c
6949
gcc -E -dD conftest.c
6951
on a system with `gcc' installed, results in:
6870
6954
# 1 "conftest.c"
7905
7995
To fully understand where proper quotation is important, you first need
7906
7996
to know what the special characters are in Autoconf: `#' introduces a
7907
7997
comment inside which no macro expansion is performed, `,' separates
7908
arguments, `[' and `]' are the quotes themselves, `(' and `)' (which M4
7909
tries to match by pairs), and finally `$' inside a macro definition.
7998
arguments, `[' and `]' are the quotes themselves(1), `(' and `)' (which
7999
M4 tries to match by pairs), and finally `$' inside a macro definition.
7911
8001
In order to understand the delicate case of macro calls, we first
7912
8002
have to present some obvious failures. Below they are "obvious-ified",
8973
9066
primitive, `m4_divert' behaves like:
8974
9067
m4_divert_pop()m4_divert_push([DIVERSION])
8975
9068
*Note Diversion support::, for more details about the use of the
9069
diversion stack. In particular, this implies that DIVERSION
9070
should be a named diversion rather than a raw number. But be
9071
aware that it is seldom necessary to explicitly change the
9072
diversion stack, and that when done incorrectly, it can lead to
9073
syntactically invalid scripts.
8978
9075
-- Macro: m4_dumpdef (NAME...)
8979
9076
-- Macro: m4_dumpdefs (NAME...)
9115
9214
8.3.3 Diversion support
9116
9215
-----------------------
9118
M4sugar makes heavy use of diversions, because it is often the case that
9119
text that must appear early in the output is not discovered until late
9120
in the input. Additionally, some of the topological sorting algorithms
9121
used in resolving macro dependencies use diversions. However, most
9122
macros should not need to change diversions directly, but rather rely on
9123
higher-level M4sugar macros to manage diversions transparently.
9217
M4sugar makes heavy use of diversions under the hood, because it is
9218
often the case that text that must appear early in the output is not
9219
discovered until late in the input. Additionally, some of the
9220
topological sorting algorithms used in resolving macro dependencies use
9221
diversions. However, most macros should not need to change diversions
9222
directly, but rather rely on higher-level M4sugar macros to manage
9223
diversions transparently. If you change diversions improperly, you
9224
risk generating a syntactically invalid script, because an incorrect
9225
diversion will violate assumptions made by many macros about whether
9226
prerequisite text has been previously output. In short, if you
9227
manually change the diversion, you should not expect any macros
9228
provided by the Autoconf package to work until you have restored the
9229
diversion stack back to its original state.
9125
9231
In the rare case that it is necessary to write a macro that
9126
9232
explicitly outputs text to a different diversion, it is important to be
9149
9255
To make diversion management easier, M4sugar uses the concept of
9150
9256
named diversions. Rather than using diversion numbers directly, it is
9151
nicer to associate a name with each diversion; the diversion number
9257
nicer to associate a name with each diversion. The diversion number
9152
9258
associated with a particular diversion name is an implementation
9153
detail, so you should only use diversion names. In general, you should
9154
not output text to a named diversion until after calling the
9155
appropriate initialization routine for your language (`m4_init',
9156
`AS_INIT', `AT_INIT', ...), although there are some exceptions
9259
detail, and a syntax warning is issued if a diversion number is used
9260
instead of a name. In general, you should not output text to a named
9261
diversion until after calling the appropriate initialization routine
9262
for your language (`m4_init', `AS_INIT', `AT_INIT', ...), although
9263
there are some exceptions documented below.
9159
9265
M4sugar defines two named diversions.
9200
9306
can be used to set up state that is required across all tests.
9201
9307
This diversion will work even before `AT_INIT'.
9203
For now, the named diversions of Autoconf and Autoheader, and the
9204
remaining diversions of Autotest, are not documented. In other words,
9205
intentionally outputting text into an undocumented diversion is subject
9206
to breakage in a future release of Autoconf.
9309
Autoconf inherits diversions from M4sh, and adds the following named
9310
diversions which developers can utilize.
9312
This diversion contains shell variable assignments to set defaults
9313
that must be in place before arguments are parsed. This diversion
9314
is placed early enough in `configure' that it is unsafe to expand
9315
any autoconf macros into this diversion.
9318
If `AC_PRESERVE_HELP_ORDER' was used, then text placed in this
9319
diversion will be included as part of a quoted here-doc providing
9320
all of the `--help' output of `configure' related to options
9321
created by `AC_ARG_WITH' and `AC_ARG_ENABLE'.
9324
This diversion occurs after all command line options have been
9325
parsed, but prior to the main body of the `configure' script. This
9326
diversion is the last chance to insert shell code such as variable
9327
assignments or shell function declarations that will used by the
9328
expansion of other macros.
9330
For now, the remaining named diversions of Autoconf, Autoheader, and
9331
Autotest are not documented. In other words, intentionally outputting
9332
text into an undocumented diversion is subject to breakage in a future
9333
release of Autoconf.
9208
9335
-- Macro: m4_cleardivert (DIVERSION...)
9209
9336
Permanently discard any text that has been diverted into DIVERSION.
9231
9358
m4_divert_push([DIVERSION])CONTENT
9232
9359
m4_divert_pop([DIVERSION])dnl
9361
One use of `m4_divert_text' is to develop two related macros, where
9362
macro `MY_A' does the work, but adjusts what work is performed
9363
based on whether the optional macro `MY_B' has also been expanded.
9364
Of course, it is possible to use `AC_BEFORE' within `MY_A' to
9365
require that `MY_B' occurs first, if it occurs at all. But this
9366
imposes an ordering restriction on the user; it would be nicer if
9367
macros `MY_A' and `MY_B' can be invoked in either order. The trick
9368
is to let `MY_B' leave a breadcrumb in an early diversion, which
9369
`MY_A' can then use to determine whether `MY_B' has been expanded.
9373
if test -n "$b_was_used"; then
9377
[AC_REQUIRE([MY_A])dnl
9378
m4_divert_text([INIT_PREPARE], [b_was_used=true])])
9234
9381
-- Macro: m4_init
9235
9382
Initialize the M4sugar environment, setting up the default named
9236
9383
diversion to be `KILL'.
10489
10637
M4sh provides portable alternatives for some common shell constructs
10490
10638
that unfortunately are not portable in practice.
10640
-- Macro: AS_BOX (TEXT, [CHAR = `-'])
10641
Expand into shell code that will output TEXT surrounded by a box
10642
with CHAR in the top and bottom border. TEXT should not contain a
10643
newline, but may contain shell expansions valid for unquoted
10644
here-documents. CHAR defaults to `-', but can be any character
10645
except `/', `'', `"', `\', `&', or ``'. This is useful for
10646
outputting a comment box into log files to separate distinct
10647
phases of script operation.
10492
10649
-- Macro: AS_CASE (WORD, [PATTERN1], [IF-MATCHED1], ..., [DEFAULT])
10493
10650
Expand into a shell `case' statement, where WORD is matched
10494
10651
against one or more patterns. IF-MATCHED is run if the
10610
10767
echo "[#]define AS_TR_CPP([HAVE_$type]) 1"
10612
10769
-- Macro: AS_TR_SH (EXPRESSION)
10613
Transform EXPRESSION into a valid shell variable name. For
10770
Transform EXPRESSION into shell code that generates a valid shell
10771
variable name. The result is literal when possible at m4 time,
10772
but must be used with `eval' if EXPRESSION causes shell
10773
indirections. For example:
10616
10775
# This outputs "Have it!".
10617
10776
header="sys/some file.h"
10618
AS_TR_SH([HAVE_$header])=yes
10777
eval AS_TR_SH([HAVE_$header])=yes
10619
10778
if test "x$HAVE_sys_some_file_h" = xyes; then echo "Have it!"; fi
10621
10780
-- Macro: AS_SET_CATFILE (VAR, DIR, FILE)
10622
Set the shell variable VAR to DIR/FILE, but optimizing the common
10623
cases (DIR or FILE is `.', FILE is absolute, etc.).
10781
Set the polymorphic shell variable VAR to DIR/FILE, but optimizing
10782
the common cases (DIR or FILE is `.', FILE is absolute, etc.).
10625
10784
-- Macro: AS_UNSET (VAR)
10626
10785
Unsets the shell variable VAR, working around bugs in older shells
10653
10812
undefined if expansion of an indirect variable does not result in a
10654
10813
literal variable name.
10656
-- Macro: AS_LITERAL_IF (EXPRESSION, [IF-LITERAL], [IF-NOT])
10815
-- Macro: AS_LITERAL_IF (EXPRESSION, [IF-LITERAL], [IF-NOT],
10816
[IF-SIMPLE-REF = `IF-NOT'])
10817
-- Macro: AS_LITERAL_WORD_IF (EXPRESSION, [IF-LITERAL], [IF-NOT],
10818
[IF-SIMPLE-REF = `IF-NOT'])
10657
10819
If the expansion of EXPRESSION is definitely a shell literal,
10658
10820
expand IF-LITERAL. If the expansion of EXPRESSION looks like it
10659
10821
might contain shell indirections (such as `$var' or ``expr`'),
10660
then IF-NOT is expanded. In order to reduce the time spent
10661
deciding whether an expression is literal, the implementation is
10662
somewhat conservative (for example, `'[$]'' is a single-quoted
10663
shell literal, but causes IF-NOT to be expanded). While this
10664
macro is often used for recognizing shell variable names, it can
10665
also be used in other contexts.
10822
then IF-NOT is expanded. Sometimes, it is possible to output
10823
optimized code if EXPRESSION consists only of shell variable
10824
expansions (such as `${var}'), in which case IF-SIMPLE-REF can be
10825
provided; but defaulting to IF-NOT should always be safe.
10826
`AS_LITERAL_WORD_IF' only expands IF-LITERAL if EXPRESSION looks
10827
like a single shell word, containing no whitespace; while
10828
`AS_LITERAL_IF' allows whitespace in EXPRESSION.
10830
In order to reduce the time spent recognizing whether an
10831
EXPRESSION qualifies as a literal or a simple indirection, the
10832
implementation is somewhat conservative: EXPRESSION must be a
10833
single shell word (possibly after stripping whitespace),
10834
consisting only of bytes that would have the same meaning whether
10835
unquoted or enclosed in double quotes (for example, `a.b' results
10836
in IF-LITERAL, even though it is not a valid shell variable name;
10837
while both `'a'' and `[$]' result in IF-NOT, because they behave
10838
differently than `"'a'"' and `"[$]"'). This macro can be used in
10839
contexts for recognizing portable file names (such as in the
10840
implementation of `AC_LIBSOURCE'), or coupled with some
10841
transliterations for forming valid variable names (such as in the
10842
implementation of `AS_TR_SH', which uses an additional
10843
`m4_translit' to convert `.' to `_').
10845
This example shows how to read the contents of the shell variable
10846
`bar', exercising all three arguments to `AS_LITERAL_IF'. It
10847
results in a script that will output the line `hello' three times.
10667
10849
AC_DEFUN([MY_ACTION],
10668
10850
[AS_LITERAL_IF([$1],
10670
[AS_VAR_COPY([tmp], [$1])
10852
[AS_VAR_COPY([tmp], [$1])
10854
[eval 'echo "$'"$1"\"])])
10857
MY_ACTION([`echo bar`])
10673
10860
-- Macro: AS_VAR_APPEND (VAR, TEXT)
10674
10861
Emit shell code to append the shell expansion of TEXT to the end
11903
12081
was expanded before in a conditional path, and the condition turned out
11904
12082
to be false at runtime, and we end up not executing the macro at all.
12084
Be careful with the use of `<<-' to unindent here-documents. The
12085
behavior is only portable for stripping leading <TAB>s, and things can
12086
silently break if an overzealous editor converts to using leading
12087
spaces (not all shells are nice enough to warn about unterminated
12090
$ printf 'cat <<-x\n\t1\n\t 2\n\tx\n' | bash && echo done
12094
$ printf 'cat <<-x\n 1\n 2\n x\n' | bash-3.2 && echo done
11907
12101
File: autoconf.info, Node: File Descriptors, Next: File System Conventions, Prev: Here-Documents, Up: Portable Shell
11947
12141
/zorglub` 2>/dev/null' expect the error message to escape, while `: `cd
11948
12142
/zorglub 2>/dev/null`' works properly.
12144
On the other hand, some shells, such as Solaris or FreeBSD
12145
`/bin/sh', warn about missing programs before performing redirections.
12146
Therefore, to silently check whether a program exists, it is necessary
12147
to perform redirections on a subshell:
12149
$ /bin/sh -c 'nosuch 2>/dev/null'
12151
$ /bin/sh -c '(nosuch) 2>/dev/null'
12152
$ bash -c 'nosuch 2>/dev/null'
12154
FreeBSD 6.2 sh may mix the trace output lines from the statements in
11950
12157
It is worth noting that Zsh (but not Ash nor Bash) makes it possible
11951
12158
in assignments though: `foo=`cd /zorglub` 2>/dev/null'.
12220
12432
and in fact it is even _more_ portable: in the first case of the first
12221
12433
attempt, the computation of `top_srcdir' is not portable, since not all
12222
shells properly understand `"`..."..."...`"'. Worse yet, not all
12223
shells understand `"`...\"...\"...`"' the same way. There is just no
12224
portable way to use double-quoted strings inside double-quoted
12225
back-quoted expressions (pfew!).
12434
shells properly understand `"`..."..."...`"', for example Solaris 10
12437
$ foo="`echo " bar" | sed 's, ,,'`"
12438
ksh: : cannot execute
12439
ksh: bar | sed 's, ,,': cannot execute
12441
Posix does not specify behavior for this sequence. On the other hand,
12442
behavior for `"`...\"...\"...`"' is specified by Posix, but in
12443
practice, not all shells understand it the same way: pdksh 5.2.14
12444
prints spurious quotes when in Posix mode:
12446
$ echo "`echo \"hello\"`"
12449
$ echo "`echo \"hello\"`"
12452
There is just no portable way to use double-quoted strings inside
12453
double-quoted back-quoted expressions (pfew!).
12228
12456
One of the most famous shell-portability issues is related to
12747
12975
note that traditional shells, but also bash-2.04, fail to adhere
12748
12976
to this and join with a space anyway.
12978
M4sh guarantees that `IFS' will have the default value at the
12979
beginning of a script, and many macros within autoconf rely on this
12980
setting. It is okay to use blocks of shell code that temporarily
12981
change the value of `IFS' in order to split on another character,
12982
but remember to restore it before expanding further macros.
12984
Unsetting `IFS' instead of resetting it to the default sequence is
12985
not suggested, since code that tries to save and restore the
12986
variable's value will incorrectly reset it to an empty value, thus
12987
disabling field splitting:
12990
# default separators used for field splitting
12996
# no field splitting performed
13454
13702
performs word splitting on `${1+"$@"}'; see *note Shell
13455
13703
Substitutions::, item `$@', for more.
13705
In Solaris `/bin/sh', when the list of arguments of a `for' loop
13706
starts with _unquoted_ tokens looking like variable assignments,
13707
the loop is not executed on those tokens:
13709
$ /bin/sh -c 'for v in a=b c=d x e=f; do echo $v; done'
13713
Thankfully, quoting the assignment-like tokens, or starting the
13714
list with other tokens (including unquoted variable expansion that
13715
results in an assignment-like result), avoids the problem, so it
13716
is easy to work around:
13718
$ /bin/sh -c 'for v in "a=b"; do echo $v; done'
13720
$ /bin/sh -c 'x=a=b; for v in $x c=d; do echo $v; done'
13458
13725
Using `!' is not portable. Instead of:
13626
13893
test -n "$foo" && exit 1
13895
test -n "$foo" && exit 1
13630
does not print `two'. One workaround is to use `if test -n
13631
"$foo"; then exit 1; fi' rather than `test -n "$foo" && exit 1'.
13632
Another possibility is to warn BSD users not to use `sh -e'.
13899
does not print `three'. One workaround is to change the last
13900
instance of `test -n "$foo" && exit 1' to be `if test -n "$foo";
13901
then exit 1; fi' instead. Another possibility is to warn BSD
13902
users not to use `sh -e'.
13634
13904
When `set -e' is in effect, a failed command substitution in
13635
13905
Solaris `/bin/sh' cannot be ignored, even with `||'.
13637
$ /bin/sh -c 'set -d; foo=`false` || echo foo; echo bar'
13638
$ bash -c 'set -d; foo=`false` || echo foo; echo bar'
13907
$ /bin/sh -c 'set -e; foo=`false` || echo foo; echo bar'
13908
$ bash -c 'set -e; foo=`false` || echo foo; echo bar'
13912
Moreover, a command substitution, successful or not, causes this
13913
shell to exit from a failing outer command even in presence of an
13916
$ bash -c 'set -e; false `true` && echo notreached; echo ok'
13918
$ sh -c 'set -e; false `true` && echo notreached; echo ok'
13642
13921
Portable scripts should not use `set -e' if `trap' is used to
13643
13922
install an exit handler. This is because Tru64/OSF 5.1 `sh'
13644
13923
sometimes enters the trap handler with the exit status of the
14665
14950
or `#', so you should use semicolon only with simple scripts that
14666
14951
do not use these verbs.
14668
Commands inside { } brackets are further restricted. Posix says
14669
that they cannot be preceded by addresses, `!', or `;', and that
14670
each command must be followed immediately by a newline, without any
14671
intervening blanks or semicolons. The closing bracket must be
14672
alone on a line, other than white space preceding or following it.
14953
Posix up to the 2008 revision requires the argument of the `-e'
14954
option to be a syntactically complete script. GNU `sed' allows to
14955
pass multiple script fragments, each as argument of a separate
14956
`-e' option, that are then combined, with newlines between the
14957
fragments, and a future Posix revision may allow this as well.
14958
This approach is not portable with script fragments ending in
14959
backslash; for example, the `sed' programs on Solaris 10, HP-UX
14960
11, and AIX don't allow splitting in this case:
14962
$ echo a | sed -n -e 'i\
14965
$ echo a | sed -n -e 'i\' -e 0
14966
Unrecognized command: 0
14968
In practice, however, this technique of joining fragments through
14969
`-e' works for multiple `sed' functions within `{' and `}', even
14970
if that is not specified by Posix:
14972
$ echo a | sed -n -e '/a/{' -e s/a/b/ -e p -e '}'
14975
Commands inside { } brackets are further restricted. Posix 2008
14976
says that they cannot be preceded by addresses, `!', or `;', and
14977
that each command must be followed immediately by a newline,
14978
without any intervening blanks or semicolons. The closing bracket
14979
must be alone on a line, other than white space preceding or
14980
following it. However, a future version of Posix may standardize
14981
the use of addresses within brackets.
14674
14983
Contrary to yet another urban legend, you may portably use `&' in
14675
14984
the replacement part of the `s' command to mean "what was
14823
15132
Not all versions of `tr' handle all backslash character escapes.
14824
15133
For example, Solaris 10 `/usr/ucb/tr' falls over, even though
14825
Solaris contains more modern `tr' in other locations. Therefore,
14826
it is more portable to use octal escapes, even though this ties
14827
the result to ASCII, when using `tr' to delete newlines or
15134
Solaris contains more modern `tr' in other locations. Using octal
15135
escapes is more portable for carriage returns, since `\015' is the
15136
same for both ASCII and EBCDIC, and since use of literal carriage
15137
returns in scripts causes a number of other problems. But for
15138
other characters, like newline, using octal escapes ties the
15139
operation to ASCII, so it is better to use literal characters.
14830
15141
$ { echo moon; echo light; } | /usr/ucb/tr -d '\n' ; echo
14844
15158
$ echo "Hazy Fantazy" | LC_ALL=C /usr/xpg4/bin/tr a-z A-Z
15161
When providing two arguments, be sure the second string is at
15162
least as long as the first.
15164
$ echo abc | /usr/xpg4/bin/tr bc d
15166
$ echo abc | coreutils/tr bc d
14847
15169
Posix requires `tr' to operate on binary files. But at least
14848
Solaris `/usr/ucb/tr' and `/usr/bin/tr' still fail to handle `\0'
14849
as the octal escape for `NUL'; these programs always discard all
14850
`NUL' bytes from the input. On Solaris, when using `tr' to
15170
Solaris `/usr/ucb/tr' and `/usr/bin/tr' silently discard `NUL' in
15171
the input prior to doing any translation. When using `tr' to
14851
15172
process a binary file that may contain `NUL' bytes, it is
14852
15173
necessary to use `/usr/xpg4/bin/tr' instead, or `/usr/xpg6/bin/tr'
14853
15174
if that is available.
14855
$ printf 'a\0b\n' | /usr/ucb/tr '\0' '~' | wc -c
14857
$ printf 'a\0b\n' | /usr/xpg4/bin/tr '\0' '~' | wc -c
14859
$ printf 'a\0b\n' | /usr/ucb/tr x x | wc -c
14861
$ printf 'a\0b\n' | /usr/xpg4/bin/tr x x | wc -c
15176
$ printf 'a\0b' | /usr/ucb/tr x x | od -An -tx1
15178
$ printf 'a\0b' | /usr/bin/tr x x | od -An -tx1
15180
$ printf 'a\0b' | /usr/xpg4/bin/tr x x | od -An -tx1
15183
Solaris `/usr/ucb/tr' additionally fails to handle `\0' as the
15184
octal escape for `NUL'.
15186
$ printf 'abc' | /usr/ucb/tr 'bc' '\0d' | od -An -tx1
15188
$ printf 'abc' | /usr/bin/tr 'bc' '\0d' | od -An -tx1
15190
$ printf 'abc' | /usr/xpg4/bin/tr 'bc' '\0d' | od -An -tx1
15079
You need to foresee all macros that a user might want to override if
15082
Makefiles generated by `automake' expand `$(AM_MAKEFLAGS)' on the
15083
command line of submakes, which can be used for propagated overrides
15409
Another way to propagate a variable to submakes in a portable way is
15410
to expand an extra variable in every invocation of `$(MAKE)' within
15416
$(MAKE) $(SUBMAKEFLAGS) two
15420
Users must be aware that this technique is in use to take advantage
15421
of it, e.g. with `make foo=bar SUBMAKEFLAGS='foo=bar'', but it allows
15422
any macro to be overridden. Makefiles generated by `automake' use this
15423
technique, expanding `$(AM_MAKEFLAGS)' on the command lines of submakes
15084
15424
(*note Automake: (automake)Subdirectories.).
15250
File: autoconf.info, Node: obj/ and Make, Next: make -k Status, Prev: Comments in Make Rules, Up: Portable Make
15252
12.12 The `obj/' Subdirectory and Make
15589
As a workaround, you can use the `:' no-op command with a string
15590
argument that gets ignored:
15596
File: autoconf.info, Node: Newlines in Make Rules, Next: obj/ and Make, Prev: Comments in Make Rules, Up: Portable Make
15598
12.12 Newlines in Make Rules
15599
============================
15601
In shell scripts, newlines can be used inside string literals. But in
15602
the shell statements of `Makefile' rules, this is not possible: A
15603
newline not preceded by a backslash is a separator between shell
15604
statements. Whereas a newline that is preceded by a backslash becomes
15605
part of the shell statement according to POSIX, but gets replaced,
15606
together with the backslash that precedes it, by a space in GNU `make'
15607
3.80 and older. So, how can a newline be used in a string literal?
15609
The trick is to set up a shell variable that contains a newline:
15611
nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"
15613
For example, in order to create a multiline `sed' expression that
15614
inserts a blank line after every line of a file, this code can be used:
15616
nlinit=`echo 'nl="'; echo '"'`; eval "$$nlinit"; \
15617
sed -e "s/\$$/\\$${nl}/" < input > output
15620
File: autoconf.info, Node: obj/ and Make, Next: make -k Status, Prev: Newlines in Make Rules, Up: Portable Make
15622
12.13 The `obj/' Subdirectory and Make
15253
15623
======================================
15255
15625
Never name one of your subdirectories `obj/' if you don't like
17089
17460
site- and system-wide initialization files.
17091
17462
If the environment variable `CONFIG_SITE' is set, `configure' uses
17092
its value as the name of a shell script to read. Otherwise, it reads
17093
the shell script `PREFIX/share/config.site' if it exists, then
17094
`PREFIX/etc/config.site' if it exists. Thus, settings in
17095
machine-specific files override those in machine-independent ones in
17463
its value as the name of a shell script to read; it is recommended that
17464
this be an absolute file name. Otherwise, it reads the shell script
17465
`PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site'
17466
if it exists. Thus, settings in machine-specific files override those
17467
in machine-independent ones in case of conflict.
17098
17469
Site files can be arbitrary shell scripts, but only certain kinds of
17099
17470
code are really appropriate to be in them. Because `configure' reads
19401
19772
The COPYRIGHT-NOTICE shows up in both the head of `testsuite' and
19402
19773
in `testsuite --version'.
19775
-- Macro: AT_ARG_OPTION (OPTIONS, HELP-TEXT, [ACTION-IF-GIVEN],
19776
[ACTION-IF-NOT-GIVEN])
19777
Accept options from the space-separated list OPTIONS, a list that
19778
has leading dashes removed from the options. Long options will be
19779
prefixed with `--', single-character options with `-'. The first
19780
word in this list is the primary OPTION, any others are assumed to
19781
be short-hand aliases. The variable associated with it is
19782
`at_arg_OPTION', with any dashes in OPTION replaced with
19785
If the user passes `--OPTION' to the `testsuite', the variable
19786
will be set to `:'. If the user does not pass the option, or
19787
passes `--no-OPTION', then the variable will be set to `false'.
19789
ACTION-IF-GIVEN is run each time the option is encountered; here,
19790
the variable `at_optarg' will be set to `:' or `false' as
19791
appropriate. `at_optarg' is actually just a copy of
19794
ACTION-IF-NOT-GIVEN will be run once after option parsing is
19795
complete and if no option from OPTIONS was used.
19797
HELP-TEXT is added to the end of the list of options shown in
19798
`testsuite --help' (*note AS_HELP_STRING::).
19800
It it recommended that you use a package-specific prefix to OPTIONS
19801
names in order to avoid clashes with future Autotest built-in
19804
-- Macro: AT_ARG_OPTION_ARG (OPTIONS, HELP-TEXT, [ACTION-IF-GIVEN],
19805
[ACTION-IF-NOT-GIVEN])
19806
Accept options with arguments from the space-separated list
19807
OPTIONS, a list that has leading dashes removed from the options.
19808
Long options will be prefixed with `--', single-character options
19809
with `-'. The first word in this list is the primary OPTION, any
19810
others are assumed to be short-hand aliases. The variable
19811
associated with it is `at_arg_OPTION', with any dashes in OPTION
19812
replaced with underscores.
19814
If the user passes `--OPTION=ARG' or `--OPTION ARG' to the
19815
`testsuite', the variable will be set to `ARG'.
19817
ACTION-IF-GIVEN is run each time the option is encountered; here,
19818
the variable `at_optarg' will be set to `ARG'. `at_optarg' is
19819
actually just a copy of `at_arg_OPTION'.
19821
ACTION-IF-NOT-GIVEN will be run once after option parsing is
19822
complete and if no option from OPTIONS was used.
19824
HELP-TEXT is added to the end of the list of options shown in
19825
`testsuite --help' (*note AS_HELP_STRING::).
19827
It it recommended that you use a package-specific prefix to OPTIONS
19828
names in order to avoid clashes with future Autotest built-in
19831
-- Macro: AT_COLOR_TESTS
19832
Enable colored test results by default when the output is
19833
connected to a terminal.
19404
19835
-- Macro: AT_TESTED (EXECUTABLES)
19405
19836
Log the file name and answer to `--version' of each program in
19406
19837
space-separated list EXECUTABLES. Several invocations register
19407
19838
new executables, in other words, don't fear registering one program
19408
19839
several times.
19410
Autotest test suites rely on `PATH' to find the tested program.
19411
This avoids the need to generate absolute names of the various tools,
19412
and makes it possible to test installed programs. Therefore, knowing
19413
which programs are being exercised is crucial to understanding problems
19414
in the test suite itself, or its occasional misuses. It is a good idea
19415
to also subscribe foreign programs you depend upon, to avoid
19416
incompatible diagnostics.
19841
Autotest test suites rely on `PATH' to find the tested program.
19842
This avoids the need to generate absolute names of the various
19843
tools, and makes it possible to test installed programs.
19844
Therefore, knowing which programs are being exercised is crucial
19845
to understanding problems in the test suite itself, or its
19846
occasional misuses. It is a good idea to also subscribe foreign
19847
programs you depend upon, to avoid incompatible diagnostics.
19419
19850
-- Macro: AT_BANNER (TEST-CATEGORY-NAME)
19746
20178
Force more verbosity in the detailed output of what is being done.
19747
20179
This is the default for debugging scripts.
20182
`--color[=never|auto|always]'
20183
Enable colored test results. Without an argument, or with
20184
`always', test results will be colored. With `never', color mode
20185
is turned off. Otherwise, if either the macro `AT_COLOR_TESTS' is
20186
used by the testsuite author, or the argument `auto' is given,
20187
then test results are colored if standard output is connected to a
19751
Do not remove the files after a test group was performed --but
19752
they are still removed _before_, therefore using this option is
19753
sane when running several test groups. Create debugging scripts.
19754
Do not overwrite the top-level log (in order to preserve
19755
supposedly existing full log file). This is the default for
19756
debugging scripts, but it can also be useful to debug the
20192
Do not remove the files after a test group was performed--but they
20193
are still removed _before_, therefore using this option is sane
20194
when running several test groups. Create debugging scripts. Do
20195
not overwrite the top-level log (in order to preserve a supposedly
20196
existing full log file). This is the default for debugging
20197
scripts, but it can also be useful to debug the testsuite itself.
20200
Add to the selection all test groups that failed or passed
20201
unexpectedly during the last non-debugging test run.
19761
20205
Trigger shell tracing of the test groups.
20207
Besides these options accepted by every Autotest testsuite, the
20208
testsuite author might have added package-specific options via the
20209
`AT_ARG_OPTION' and `AT_ARG_OPTION_ARG' macros (*note Writing
20210
Testsuites::); refer to `testsuite --help' and the package
20211
documentation for details.
19764
20214
File: autoconf.info, Node: Making testsuite Scripts, Prev: testsuite Invocation, Up: Using Autotest
19809
20259
echo '# Signature of the current package.' && \
19810
20260
echo 'm4_define([AT_PACKAGE_NAME],' && \
19811
echo ' [@PACKAGE_NAME@])' && \
20261
echo ' [$(PACKAGE_NAME)])' && \
19812
20262
echo 'm4_define([AT_PACKAGE_TARNAME],' && \
19813
echo ' [@PACKAGE_TARNAME@])' && \
20263
echo ' [$(PACKAGE_TARNAME)])' && \
19814
20264
echo 'm4_define([AT_PACKAGE_VERSION],' && \
19815
echo ' [@PACKAGE_VERSION@])' && \
20265
echo ' [$(PACKAGE_VERSION)])' && \
19816
20266
echo 'm4_define([AT_PACKAGE_STRING],' && \
19817
echo ' [@PACKAGE_STRING@])' && \
20267
echo ' [$(PACKAGE_STRING)])' && \
19818
20268
echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \
19819
echo ' [@PACKAGE_BUGREPORT@])'; \
20269
echo ' [$(PACKAGE_BUGREPORT)])'; \
19820
20270
echo 'm4_define([AT_PACKAGE_URL],' && \
19821
echo ' [@PACKAGE_URL@])'; \
20271
echo ' [$(PACKAGE_URL)])'; \
19822
20272
} >'$(srcdir)/package.m4'
19824
20274
EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) atlocal.in
20436
20893
precise semantics of undocumented variables are often
20437
20894
internal details, subject to change.
20896
* Alternatively, `configure' may produce invalid results because of
20897
uncaught programming errors, in your package or in an upstream
20898
library package. For example, when `AC_CHECK_LIB' fails to find a
20899
library with a specified function, always check `config.log'. This
20900
will reveal the exact error that produced the failing result: the
20901
library linked by `AC_CHECK_LIB' probably has a fatal bug.
20439
20903
Conversely, as macro author, you can make it easier for users of your
21209
21673
* CONFIG_SITE: Site Defaults. (line 10)
21210
21674
* CONFIG_STATUS: config.status Invocation.
21212
* CPP: C Compiler. (line 110)
21676
* CPP: C Compiler. (line 113)
21213
21677
* CPPFLAGS: Preset Output Variables.
21215
21679
* CXX: C++ Compiler. (line 7)
21216
* CXXCPP: C++ Compiler. (line 31)
21217
* CXXFLAGS <1>: Preset Output Variables.
21680
* CXXCPP: C++ Compiler. (line 35)
21681
* CXXFLAGS <1>: C++ Compiler. (line 7)
21682
* CXXFLAGS: Preset Output Variables.
21219
* CXXFLAGS: C++ Compiler. (line 7)
21220
21684
* CYGWIN: Obsolete Macros. (line 124)
21221
21685
* DUALCASE: Special Shell Variables.
21227
21691
* ERLC: Erlang Compiler and Interpreter.
21229
* ERLCFLAGS <1>: Preset Output Variables.
21693
* ERLCFLAGS <1>: Erlang Compiler and Interpreter.
21695
* ERLCFLAGS: Preset Output Variables.
21231
* ERLCFLAGS: Erlang Compiler and Interpreter.
21233
* F77: Fortran Compiler. (line 18)
21234
* FC: Fortran Compiler. (line 39)
21235
* FCFLAGS <1>: Preset Output Variables.
21697
* F77: Fortran Compiler. (line 19)
21698
* FC: Fortran Compiler. (line 40)
21699
* FCFLAGS <1>: Fortran Compiler. (line 40)
21700
* FCFLAGS: Preset Output Variables.
21237
* FCFLAGS: Fortran Compiler. (line 39)
21238
* FFLAGS <1>: Fortran Compiler. (line 18)
21702
* FFLAGS <1>: Fortran Compiler. (line 19)
21239
21703
* FFLAGS: Preset Output Variables.
21241
21705
* FPATH: Special Shell Variables.
21245
21709
* IFS: Special Shell Variables.
21247
21711
* LANG: Special Shell Variables.
21249
21713
* LANGUAGE: Special Shell Variables.
21251
21715
* LC_ADDRESS: Special Shell Variables.
21253
* LC_ALL <1>: Initialization Macros.
21717
* LC_ALL <1>: Special Shell Variables.
21719
* LC_ALL: Initialization Macros.
21255
* LC_ALL: Special Shell Variables.
21257
21721
* LC_COLLATE: Special Shell Variables.
21259
21723
* LC_CTYPE: Special Shell Variables.
21261
21725
* LC_IDENTIFICATION: Special Shell Variables.
21263
21727
* LC_MEASUREMENT: Special Shell Variables.
21265
21729
* LC_MESSAGES: Special Shell Variables.
21267
21731
* LC_MONETARY: Special Shell Variables.
21269
21733
* LC_NAME: Special Shell Variables.
21271
21735
* LC_NUMERIC: Special Shell Variables.
21273
21737
* LC_PAPER: Special Shell Variables.
21275
21739
* LC_TELEPHONE: Special Shell Variables.
21277
21741
* LC_TIME: Special Shell Variables.
21279
21743
* LDFLAGS: Preset Output Variables.
21281
21745
* LIBS: Preset Output Variables.
21283
* LINENO <1>: Initialization Macros.
21747
* LINENO <1>: Special Shell Variables.
21749
* LINENO: Initialization Macros.
21285
* LINENO: Special Shell Variables.
21287
21751
* M4: autom4te Invocation. (line 10)
21288
21752
* MAIL: Special Shell Variables.
21290
21754
* MAILPATH: Special Shell Variables.
21292
21756
* NULLCMD: Special Shell Variables.
21294
21758
* OBJC: Objective C Compiler.
21296
21760
* OBJCFLAGS <1>: Objective C Compiler.
21316
21780
* PS4: Special Shell Variables.
21318
21782
* PWD: Special Shell Variables.
21320
21784
* RANDOM: Special Shell Variables.
21322
21786
* SHELL: Initialization Macros.
21324
21788
* SIMPLE_BACKUP_SUFFIX: autoupdate Invocation.
21326
21790
* status: Special Shell Variables.
21328
* WARNINGS <1>: autoconf Invocation. (line 62)
21329
* WARNINGS <2>: autom4te Invocation. (line 58)
21330
* WARNINGS <3>: autoheader Invocation.
21792
* WARNINGS <1>: autom4te Invocation. (line 58)
21793
* WARNINGS <2>: autoheader Invocation.
21332
* WARNINGS: autoreconf Invocation.
21795
* WARNINGS <3>: autoreconf Invocation.
21797
* WARNINGS: autoconf Invocation. (line 62)
21334
21798
* XMKMF: System Services. (line 10)
21335
21799
* YACC: Particular Programs. (line 197)
21336
21800
* YFLAGS: Particular Programs. (line 197)
21369
21833
* build_vendor: Canonicalizing. (line 26)
21370
21834
* builddir: Preset Output Variables.
21372
* CC <1>: C Compiler. (line 61)
21373
* CC <2>: System Services. (line 49)
21374
* CC: C Compiler. (line 358)
21836
* CC <1>: System Services. (line 49)
21837
* CC: C Compiler. (line 61)
21375
21838
* CFLAGS <1>: C Compiler. (line 61)
21376
21839
* CFLAGS: Preset Output Variables.
21378
21841
* configure_input: Preset Output Variables.
21380
* CPP: C Compiler. (line 123)
21843
* CPP: C Compiler. (line 113)
21381
21844
* CPPFLAGS: Preset Output Variables.
21383
21846
* cross_compiling: Runtime. (line 58)
21384
21847
* CXX: C++ Compiler. (line 7)
21385
* CXXCPP: C++ Compiler. (line 31)
21848
* CXXCPP: C++ Compiler. (line 35)
21386
21849
* CXXFLAGS <1>: C++ Compiler. (line 7)
21387
21850
* CXXFLAGS: Preset Output Variables.
21405
21868
* EGREP: Particular Programs. (line 26)
21406
21869
* ERL <1>: Running the Compiler.
21408
* ERL <2>: Erlang Compiler and Interpreter.
21410
* ERL: Language Choice. (line 40)
21871
* ERL <2>: Language Choice. (line 40)
21872
* ERL: Erlang Compiler and Interpreter.
21411
21874
* ERLANG_ERTS_VER: Erlang Libraries. (line 12)
21412
* ERLANG_INSTALL_LIB_DIR <1>: Installation Directory Variables.
21875
* ERLANG_INSTALL_LIB_DIR <1>: Erlang Libraries. (line 86)
21876
* ERLANG_INSTALL_LIB_DIR: Installation Directory Variables.
21414
* ERLANG_INSTALL_LIB_DIR: Erlang Libraries. (line 86)
21415
* ERLANG_INSTALL_LIB_DIR_LIBRARY <1>: Installation Directory Variables.
21878
* ERLANG_INSTALL_LIB_DIR_LIBRARY <1>: Erlang Libraries. (line 93)
21879
* ERLANG_INSTALL_LIB_DIR_LIBRARY: Installation Directory Variables.
21417
* ERLANG_INSTALL_LIB_DIR_LIBRARY: Erlang Libraries. (line 94)
21418
21881
* ERLANG_LIB_DIR: Erlang Libraries. (line 28)
21419
21882
* ERLANG_LIB_DIR_LIBRARY: Erlang Libraries. (line 36)
21420
21883
* ERLANG_LIB_VER_LIBRARY: Erlang Libraries. (line 36)
21421
21884
* ERLANG_ROOT_DIR: Erlang Libraries. (line 22)
21422
* ERLC <1>: Erlang Compiler and Interpreter.
21424
* ERLC: Language Choice. (line 40)
21425
* ERLCFLAGS <1>: Erlang Compiler and Interpreter.
21427
* ERLCFLAGS <2>: Preset Output Variables.
21885
* ERLC <1>: Language Choice. (line 40)
21886
* ERLC: Erlang Compiler and Interpreter.
21888
* ERLCFLAGS <1>: Language Choice. (line 40)
21889
* ERLCFLAGS <2>: Erlang Compiler and Interpreter.
21891
* ERLCFLAGS: Preset Output Variables.
21429
* ERLCFLAGS: Language Choice. (line 40)
21430
21893
* exec_prefix: Installation Directory Variables.
21432
21895
* EXEEXT <1>: Obsolete Macros. (line 178)
21433
21896
* EXEEXT: Compilers and Preprocessors.
21435
* F77: Fortran Compiler. (line 18)
21436
* FC: Fortran Compiler. (line 39)
21437
* FCFLAGS <1>: Preset Output Variables.
21898
* F77: Fortran Compiler. (line 19)
21899
* FC: Fortran Compiler. (line 40)
21900
* FCFLAGS <1>: Fortran Compiler. (line 40)
21901
* FCFLAGS: Preset Output Variables.
21439
* FCFLAGS: Fortran Compiler. (line 39)
21440
* FCLIBS: Fortran Compiler. (line 79)
21441
* FFLAGS <1>: Preset Output Variables.
21903
* FCLIBS: Fortran Compiler. (line 80)
21904
* FFLAGS <1>: Fortran Compiler. (line 19)
21905
* FFLAGS: Preset Output Variables.
21443
* FFLAGS: Fortran Compiler. (line 18)
21444
21907
* FGREP: Particular Programs. (line 33)
21445
* FLIBS: Fortran Compiler. (line 79)
21908
* FLIBS: Fortran Compiler. (line 80)
21446
21909
* GETGROUPS_LIBS: Particular Functions.
21448
21911
* GETLOADAVG_LIBS: Particular Functions.
21477
21940
* LIBOBJDIR: AC_LIBOBJ vs LIBOBJS.
21479
* LIBOBJS <1>: Generic Functions. (line 56)
21480
* LIBOBJS <2>: Particular Functions.
21942
* LIBOBJS <1>: Particular Structures.
21944
* LIBOBJS <2>: Generic Functions. (line 56)
21945
* LIBOBJS: Particular Functions.
21482
* LIBOBJS <3>: Particular Structures.
21484
* LIBOBJS <4>: Particular Functions.
21486
* LIBOBJS: Generic Functions. (line 117)
21487
* LIBS <1>: Preset Output Variables.
21947
* LIBS <1>: Obsolete Macros. (line 295)
21948
* LIBS: Preset Output Variables.
21489
* LIBS: Obsolete Macros. (line 295)
21490
21950
* LN_S: Particular Programs. (line 165)
21491
21951
* localedir: Installation Directory Variables.