# This file was generated by Autom4te Thu Nov 25 00:39:59 GMT 2004.
# It contains the lists of macros which have been traced.
# It can be safely removed.

@request = (
             bless( [
                      '0',
                      1,
                      [
                        '/usr/share/autoconf'
                      ],
                      [
                        '/usr/share/autoconf/autoconf/autoconf.m4f',
                        'aclocal.m4',
                        'configure.ac'
                      ],
                      {
                        'm4_pattern_forbid' => 1,
                        'AC_CONFIG_LIBOBJ_DIR' => 1,
                        'AC_C_VOLATILE' => 1,
                        'AC_TYPE_OFF_T' => 1,
                        'AC_FUNC_CLOSEDIR_VOID' => 1,
                        'AC_REPLACE_FNMATCH' => 1,
                        'AC_PROG_LIBTOOL' => 1,
                        'AC_FUNC_STAT' => 1,
                        'AC_FUNC_WAIT3' => 1,
                        'AC_HEADER_TIME' => 1,
                        'AC_FUNC_LSTAT' => 1,
                        'AC_STRUCT_TM' => 1,
                        'AM_AUTOMAKE_VERSION' => 1,
                        'AC_FUNC_GETMNTENT' => 1,
                        'AC_TYPE_MODE_T' => 1,
                        'AC_FUNC_STRTOD' => 1,
                        'AC_CHECK_HEADERS' => 1,
                        'AC_FUNC_STRNLEN' => 1,
                        'm4_sinclude' => 1,
                        'AC_PROG_CXX' => 1,
                        'AC_PATH_X' => 1,
                        'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
                        'AC_PROG_AWK' => 1,
                        '_m4_warn' => 1,
                        'AC_HEADER_STDC' => 1,
                        'AC_HEADER_MAJOR' => 1,
                        'AC_FUNC_ERROR_AT_LINE' => 1,
                        'AC_PROG_GCC_TRADITIONAL' => 1,
                        'AC_LIBSOURCE' => 1,
                        'AC_FUNC_MBRTOWC' => 1,
                        'AC_STRUCT_ST_BLOCKS' => 1,
                        'AC_TYPE_SIGNAL' => 1,
                        'AC_TYPE_UID_T' => 1,
                        'AC_PROG_MAKE_SET' => 1,
                        'AC_CONFIG_AUX_DIR' => 1,
                        'm4_pattern_allow' => 1,
                        'sinclude' => 1,
                        'AC_DEFINE_TRACE_LITERAL' => 1,
                        'AC_FUNC_STRERROR_R' => 1,
                        'AC_PROG_CC' => 1,
                        'AC_DECL_SYS_SIGLIST' => 1,
                        'AC_FUNC_FORK' => 1,
                        'AC_FUNC_STRCOLL' => 1,
                        'AC_FUNC_VPRINTF' => 1,
                        'AC_PROG_YACC' => 1,
                        'AC_INIT' => 1,
                        'AC_STRUCT_TIMEZONE' => 1,
                        'AC_FUNC_CHOWN' => 1,
                        'AC_SUBST' => 1,
                        'AC_FUNC_ALLOCA' => 1,
                        'AC_CANONICAL_HOST' => 1,
                        'AC_FUNC_GETPGRP' => 1,
                        'AC_PROG_RANLIB' => 1,
                        'AM_INIT_AUTOMAKE' => 1,
                        'AC_FUNC_SETPGRP' => 1,
                        'AC_CONFIG_SUBDIRS' => 1,
                        'AC_FUNC_MMAP' => 1,
                        'AC_FUNC_REALLOC' => 1,
                        'AC_TYPE_SIZE_T' => 1,
                        'AC_CONFIG_LINKS' => 1,
                        'AC_CHECK_TYPES' => 1,
                        'AC_CHECK_MEMBERS' => 1,
                        'AM_MAINTAINER_MODE' => 1,
                        'AC_FUNC_UTIME_NULL' => 1,
                        'AC_FUNC_SELECT_ARGTYPES' => 1,
                        'AC_HEADER_STAT' => 1,
                        'AC_FUNC_STRFTIME' => 1,
                        'AC_PROG_CPP' => 1,
                        'AC_C_INLINE' => 1,
                        'AC_PROG_LEX' => 1,
                        'AC_C_CONST' => 1,
                        'AC_TYPE_PID_T' => 1,
                        'AC_CONFIG_FILES' => 1,
                        'include' => 1,
                        'AC_FUNC_SETVBUF_REVERSED' => 1,
                        'AC_PROG_INSTALL' => 1,
                        'AM_GNU_GETTEXT' => 1,
                        'AC_CHECK_LIB' => 1,
                        'AC_FUNC_OBSTACK' => 1,
                        'AC_FUNC_MALLOC' => 1,
                        'AC_FUNC_GETGROUPS' => 1,
                        'AC_FUNC_GETLOADAVG' => 1,
                        'AH_OUTPUT' => 1,
                        'AC_FUNC_FSEEKO' => 1,
                        'AM_PROG_CC_C_O' => 1,
                        'AC_FUNC_MKTIME' => 1,
                        'AC_CANONICAL_SYSTEM' => 1,
                        'AM_CONDITIONAL' => 1,
                        'AC_CONFIG_HEADERS' => 1,
                        'AC_HEADER_SYS_WAIT' => 1,
                        'AC_PROG_LN_S' => 1,
                        'AC_FUNC_MEMCMP' => 1,
                        'm4_include' => 1,
                        'AC_HEADER_DIRENT' => 1,
                        'AC_CHECK_FUNCS' => 1
                      }
                    ], 'Autom4te::Request' )
           );

