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 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.

When using autoscan to create a configure.ac, you should manually examine configure.scan before renaming it to configure.ac; it probably needs 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 (see Configuration Header Files). You might also have to change or add some #if directives to your program in order to make it work with Autoconf (see Using ifnames to List Conditionals, 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 contains 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, one or more blanks, and the Autoconf macro to output if that symbol is encountered. Lines starting with ‘#’ are comments.

autoscan accepts the following options:

--help
-h

Print a summary of the command line options and exit.

--version
-V

Print the version number of Autoconf and exit.

--verbose
-v

Print the names of the files it examines and the potentially interesting symbols it finds in them. This output can be voluminous.

--debug
-d

Don’t remove temporary files.

--include=dir
-I dir

Append dir to the include path. Multiple invocations accumulate.

--prepend-include=dir
-B dir

Prepend dir to the include path. Multiple invocations accumulate.