DESCRIPTION
This module is a extending Config::AutoConf, using a INI-like config
file.
SYNOPSIS
use Config::AutoConf::INI;
#
# Config::AutoConf::INI->new() is an instance of Config::AutoConf
#
Config::AutoConf::INI->new()->check('config.ini');
Config::AutoConf::INI->new()->check();
#
# Shortest form
#
Config::AutoConf::INI->check;
SUBROUTINES/METHODS
check($config_ini)
Performs all checks that are in the INI file $config_ini and that are
responsible for configuring Config::AutoConf or defining autoconf
variables. The following sections are supported, and executed in the
order listed below.
This method can be used using an Config::AutoConf::INI instance, or the
class itself:
my $self = Config::AutoConf::INI->new();
$self->check('config.ini');
$self->write_config_h('somewhere_else.h');
Config::AutoConf::INI->check();
The default value for $config_ini is 'config_autoconf.ini'.
The result value is always an instance of Config::AutoConf::INI
Configuration sections
Includes
This is an interface to Config::AutoConf's push_includes.
[includes]
; Anything on the the left-hand side is used if the right-hand side is a true value.
; Example:
. = 1
/this/path = 0
C:\Windows\Temp = 1
Preprocessor flags
This is an interface to Config::AutoConf's push_preprocess_flags.
[preprocess_flags]
; Anything on the the left-hand side is used if the right-hand side is a true value.
; Example:
-DCPPFLAG0N = 1
-DCPPFLAG0FF = 0
Compiler flags
This is an interface to Config::AutoConf's push_compiler_flags.
[compiler_flags]
; Anything on the the left-hand side is used if the right-hand side is a true value.
; Example:
-DCCFLAG0N = 1
-DCCFLAG0FF = 0
Linker flags
This is an interface to Config::AutoConf's push_link_flags.
[link_flags]
; Anything on the the left-hand side is used if the right-hand side is a true value.
; Example:
--very = 1
--special = 0
Check sections
Config::AutoConf provides bundles that are explicitly supported in a
bundle section, i.e.:
[bundle]
; The bundle check on the left-hand side is done when the right-hand side is a true value.
; The only supported bundles are stdc_headers, default_headers and dirent_headers.
; Example:
stdc_headers = 1
default_headers = 1
dirent_headers = 1
In all the following sections, if the right-hand side is a true value
the check is executed. If the right-hand side does not look like a
number then a variable is explicitly created with that name (e.g.
I_HAVE_STDIO_G). This does not prevent the default variable to be
created (i.e.g HQVE_STDIO_H). The wanted variable name can very well
be equal to the default name.
Files
This is an interface to Config::AutoConf's check_file.
[files]
/etc/passwd = HAVE_ETC_PASSWD
/tmp/this = 0
/tmp/that = HAVE_TMP_THAT
Programs
This is an interface to Config::AutoConf's check_prog.
[progs]
cc = CC_NAME
Headers
This is an interface to Config::AutoConf's check_header.
[headers]
stddef.h = 0
time.h = 1
Please note that all found headers are systematically reinjected in
any further test, in contrary to Config::AutoConf default
behaviour, that is to reuse only STDC headers. =item Declarations
This is an interface to Config::AutoConf's check_decl.
[decls]
read = 1
Functions
This is an interface to Config::AutoConf's check_func.
[funcs]
read = 1
Types
This is an interface to Config::AutoConf's check_type.
[types]
size_t = 1
Types sizeof
This is an interface to Config::AutoConf's check_sizeof_types.
[sizeof_types]
size_t = 1
Types offset
This is an interface to Config::AutoConf's check_alignof_types.
[alignof_types]
struct tm.tm_year = 1
Aggregate members
This is an interface to Config::AutoConf's check_member.
[members]
struct tm.tm_year = 1
Result sections
Outputs
This is an interface to Config::AutoConf's write_config_h.
[outputs]
; Anything on the the left-hand side is produced if the right-hand side is a true value.
; Example:
config_autoconf.h = 1
config.h = 0
EXAMPLE
Here is an example of a .ini file:
[includes]
. = 1
/this/path = 1
[preprocess_flags]
-DFLAG01 = 1
-DFLAG02 = 0
[compiler_flags]
-DFLAG01 = 0
-DFLAG02 = 1
[link_flags]
-lm = 1
-loff = 0
[bundle]
stdc_headers = 1
default_headers = 1
dirent_headers = 1
[files]
/etc/passwd = HAVE_ETC_PASSWD
/tmp/this = HAVE_THIS
/tmp/that = HAVE_THAT
C:\Windows\Temp\foo = HAVE_C_WINDOWS_TEMP_FOO
[progs]
cc = CC_NAME
[headers]
stdio.h = 1
stddef.h = HAVE_STDDEF_H
time.h = 1
[decls]
read = 1
notchecked = 0
[funcs]
read = 1
[types]
size_t = 1
[sizeof_types]
size_t = 1
[alignof_types]
struct tm.tm_year = 1
[members]
struct tm.tm_year = 1
[outputs]
my_config.h = 1
SEE ALSO
Config::AutoConf