The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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