+case "$CONFIG_SH" in
+'') CONFIG_SH=config.sh ;;
+esac
+case "$CONFIG_H" in
+'') CONFIG_H=config.h ;;
+esac
case $CONFIG in
'')
- if test -f config.sh; then TOP=.;
- elif test -f ../config.sh; then TOP=..;
- elif test -f ../../config.sh; then TOP=../..;
- elif test -f ../../../config.sh; then TOP=../../..;
- elif test -f ../../../../config.sh; then TOP=../../../..;
+ if test -f $CONFIG_SH; then TOP=.;
+ elif test -f ../$CONFIG_SH; then TOP=..;
+ elif test -f ../../$CONFIG_SH; then TOP=../..;
+ elif test -f ../../../$CONFIG_SH; then TOP=../../..;
+ elif test -f ../../../../$CONFIG_SH; then TOP=../../../..;
else
- echo "Can't find config.sh."; exit 1
+ echo "Can't find $CONFIG_SH."; exit 1
fi
- . $TOP/config.sh
+ . $TOP/$CONFIG_SH
;;
esac
case "$0" in
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
esac
-echo "Extracting config.h (with variable substitutions)"
-sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
+echo "Extracting $CONFIG_H (with variable substitutions)"
+sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-def!#undef!'
/*
* This file was produced by running the config_h.SH script, which
- * gets its values from config.sh, which is generally produced by
+ * gets its values from $CONFIG_SH, which is generally produced by
* running Configure.
*
* Feel free to modify any of this as the need arises. Note, however,
* that running config_h.SH again will wipe out any changes you've made.
- * For a more permanent change edit config.sh and rerun config_h.SH.
+ * For a more permanent change edit $CONFIG_SH and rerun config_h.SH.
*
* \$Id: Config_h.U,v 3.0.1.5 1997/02/28 14:57:43 ram Exp $
*/
*/
#$d_fgetpos HAS_FGETPOS /**/
-/* FLEXFILENAMES:
- * This symbol, if defined, indicates that the system supports filenames
- * longer than 14 characters.
- */
-#$d_flexfnam FLEXFILENAMES /**/
-
/* HAS_FLOCK:
* This symbol, if defined, indicates that the flock routine is
* available to do file locking.
/* MEM_ALIGNBYTES:
* This symbol contains the number of bytes required to align a
- * double. Usual values are 2, 4 and 8. The default is eight,
- * for safety.
+ * double, or a long double when applicable. Usual values are 2,
+ * 4 and 8. The default is eight, for safety.
*/
#if defined(CROSSCOMPILE) || defined(MULTIARCH)
# define MEM_ALIGNBYTES 8
#define BIN_EXP "$binexp" /**/
/* PERL_BINCOMPAT_5005:
- * This symbol, if defined, indicates that Perl 5.006 should be
+ * This symbol, if defined, indicates that this version of Perl should be
* binary-compatible with Perl 5.005. This is impossible for builds
* that use features like threads and multiplicity it is always $undef
* for those versions.
* This macro surrounds its token with double quotes.
*/
#if $cpp_stuff == 1
-#define CAT2(a,b)a/**/b
-#define STRINGIFY(a)"a"
+#define CAT2(a,b) a/**/b
+#define STRINGIFY(a) "a"
/* If you can get stringification with catify, tell me how! */
#endif
#if $cpp_stuff == 42
-#define CAT2(a,b)a ## b
-#define StGiFy(a)# a
-#define STRINGIFY(a)StGiFy(a)
+#define PeRl_CaTiFy(a, b) a ## b
+#define PeRl_StGiFy(a) #a
+/* the additional level of indirection enables these macros to be
+ * used as arguments to other macros. See K&R 2nd ed., page 231. */
+#define CAT2(a,b) PeRl_CaTiFy(a,b)
+#define StGiFy(a) PeRl_StGiFy(a)
+#define STRINGIFY(a) PeRl_StGiFy(a)
#endif
#if $cpp_stuff != 1 && $cpp_stuff != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+# include "Bletch: How does this C preprocessor catenate tokens?"
#endif
/* CPPSTDIN:
*/
#$d_endsent HAS_ENDSERVENT /**/
-/* HAS_ENDSPENT:
- * This symbol, if defined, indicates that the endspent system call is
- * available to finalize the scan of SysV shadow password entries.
- */
-#$d_endspent HAS_ENDSPENT /**/
-
/* HAS_FD_SET:
* This symbol, when defined, indicates presence of the fd_set typedef
* in <sys/types.h>
*/
#$d_fd_set HAS_FD_SET /**/
+/* FLEXFILENAMES:
+ * This symbol, if defined, indicates that the system supports filenames
+ * longer than 14 characters.
+ */
+#$d_flexfnam FLEXFILENAMES /**/
+
+/* HAS_FPOS64_T:
+ * This symbol will be defined if the C compiler supports fpos64_t.
+ */
+#$d_fpos64_t HAS_FPOS64_T /**/
+
+/* HAS_FREXPL:
+ * This symbol, if defined, indicates that the frexpl routine is
+ * available to break a long double floating-point number into
+ * a normalized fraction and an integral power of 2.
+ */
+#$d_frexpl HAS_FREXPL /**/
+
/* HAS_STRUCT_FS_DATA:
* This symbol, if defined, indicates that the struct fs_data
* to do statfs() is supported.
* available to stat filesystems by file descriptors.
*/
#$d_fstatfs HAS_FSTATFS /**/
+
/* HAS_FTELLO:
* This symbol, if defined, indicates that the ftello routine is
* available to ftell beyond 32 bits (useful for ILP32 hosts).
*/
#$d_getcwd HAS_GETCWD /**/
+/* HAS_GETESPWNAM:
+ * This symbol, if defined, indicates that the getespwnam system call is
+ * available to retrieve enchanced (shadow) password entries by name.
+ */
+#$d_getespwnam HAS_GETESPWNAM /**/
+
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+#$d_getfsstat HAS_GETFSSTAT /**/
+
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
* available for sequential access of the group database.
*/
#$d_getprotoprotos HAS_GETPROTO_PROTOS /**/
+/* HAS_GETPRPWNAM:
+ * This symbol, if defined, indicates that the getprpwnam system call is
+ * available to retrieve protected (shadow) password entries by name.
+ */
+#$d_getprpwnam HAS_GETPRPWNAM /**/
+
/* HAS_GETPWENT:
* This symbol, if defined, indicates that the getpwent routine is
* available for sequential access of the passwd database.
*/
#$d_getservprotos HAS_GETSERV_PROTOS /**/
-/* HAS_GETSPENT:
- * This symbol, if defined, indicates that the getspent system call is
- * available to retrieve SysV shadow password entries sequentially.
- */
-#$d_getspent HAS_GETSPENT /**/
-
/* HAS_GETSPNAM:
* This symbol, if defined, indicates that the getspnam system call is
* available to retrieve SysV shadow password entries by name.
* Usually the <inttypes.h> needs to be included, but sometimes
* <sys/types.h> is enough.
*/
-#$d_int64t HAS_INT64_T /**/
+#$d_int64_t HAS_INT64_T /**/
/* HAS_ISASCII:
* This manifest constant lets the C program know that isascii
*/
#$d_isascii HAS_ISASCII /**/
+/* HAS_ISNAN:
+ * This symbol, if defined, indicates that the isnan routine is
+ * available to check whether a double is a NaN.
+ */
+#$d_isnan HAS_ISNAN /**/
+
+/* HAS_ISNANL:
+ * This symbol, if defined, indicates that the isnanl routine is
+ * available to check whether a long double is a NaN.
+ */
+#$d_isnanl HAS_ISNANL /**/
+
/* HAS_LCHOWN:
* This symbol, if defined, indicates that the lchown routine is
* available to operate on a symbolic link (instead of following the
#define LONGLONGSIZE $longlongsize /**/
#endif
+/* HAS_LSEEK_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the lseek() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern off_t lseek(int, off_t, int);
+ */
+#$d_lseekproto HAS_LSEEK_PROTO /**/
+
+/* HAS_MADVISE:
+ * This symbol, if defined, indicates that the madvise system call is
+ * available to map a file into memory.
+ */
+#$d_madvise HAS_MADVISE /**/
+
/* HAS_MEMCHR:
* This symbol, if defined, indicates that the memchr routine is available
* to locate characters within a C string.
*/
#$d_mkstemps HAS_MKSTEMPS /**/
+/* HAS_MMAP:
+ * This symbol, if defined, indicates that the mmap system call is
+ * available to map a file into memory.
+ */
/* Mmap_t:
* This symbol holds the return type of the mmap() system call
* (and simultaneously the type of the first argument).
* Usually set to 'void *' or 'cadd_t'.
*/
+#$d_mmap HAS_MMAP /**/
#define Mmap_t $mmaptype /**/
+/* HAS_MODFL:
+ * This symbol, if defined, indicates that the modfl routine is
+ * available to split a long double x into a fractional part f and
+ * an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+#$d_modfl HAS_MODFL /**/
+
/* HAS_MPROTECT:
* This symbol, if defined, indicates that the mprotect system call is
* available to modify the access protection of a memory mapped file.
*/
#$d_msg HAS_MSG /**/
+/* HAS_OFF64_T:
+ * This symbol will be defined if the C compiler supports off64_t.
+ */
+#$d_off64_t HAS_OFF64_T /**/
+
/* HAS_OPEN3:
* This manifest constant lets the C program know that the three
* argument form of open(2) is available.
*/
#$d_setpent HAS_SETPROTOENT /**/
+/* HAS_SETPROCTITLE:
+ * This symbol, if defined, indicates that the setproctitle routine is
+ * available to set process title.
+ */
+#$d_setproctitle HAS_SETPROCTITLE /**/
+
/* HAS_SETPWENT:
* This symbol, if defined, indicates that the setpwent routine is
* available for initializing sequential access of the passwd database.
*/
#$d_setsent HAS_SETSERVENT /**/
-/* HAS_SETSPENT:
- * This symbol, if defined, indicates that the setspent system call is
- * available to initialize the scan of SysV shadow password entries.
- */
-#$d_setspent HAS_SETSPENT /**/
-
/* HAS_SETVBUF:
* This symbol, if defined, indicates that the setvbuf routine is
* available to change buffering on an open stdio stream.
*/
#define Gid_t_f $gidformat /**/
+/* Gid_t_sign:
+ * This symbol holds the signedess of a Gid_t.
+ * 1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign $gidsign /* GID sign */
+
/* Gid_t_size:
* This symbol holds the size of a Gid_t in bytes.
*/
* This symbol holds the return type of getgid() and the type of
* argument to setrgid() and related functions. Typically,
* it is the type of group ids in the kernel. It can be int, ushort,
- * uid_t, etc... It may be necessary to include <sys/types.h> to get
+ * gid_t, etc... It may be necessary to include <sys/types.h> to get
* any typedef'ed information.
*/
#define Gid_t $gidtype /* Type for getgid(), etc... */
/* Groups_t:
* This symbol holds the type used for the second argument to
- * getgroups() and setgropus(). Usually, this is the same as
+ * getgroups() and setgroups(). Usually, this is the same as
* gidtype (gid_t) , but sometimes it isn't.
- * It can be int, ushort, uid_t, etc...
+ * It can be int, ushort, gid_t, etc...
* It may be necessary to include <sys/types.h> to get any
* typedef'ed information. This is only required if you have
- * getgroups() or setgropus()..
+ * getgroups() or setgroups()..
*/
#if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
#define Groups_t $groupstype /* Type for 2nd arg to [sg]etgroups() */
*/
#$i_iconv I_ICONV /**/
+/* I_IEEEFP:
+ * This symbol, if defined, indicates that <ieeefp.h> exists and
+ * should be included.
+ */
+#$i_ieeefp I_IEEEFP /**/
+
/* I_INTTYPES:
* This symbol, if defined, indicates to the C program that it should
* include <inttypes.h>.
*/
#$i_poll I_POLL /**/
+/* I_PROT:
+ * This symbol, if defined, indicates that <prot.h> exists and
+ * should be included.
+ */
+#$i_prot I_PROT /**/
+
/* I_PTHREAD:
* This symbol, if defined, indicates to the C program that it should
* include <pthread.h>.
*/
#$i_socks I_SOCKS /**/
+/* I_SUNMATH:
+ * This symbol, if defined, indicates that <sunmath.h> exists and
+ * should be included.
+ */
+#$i_sunmath I_SUNMATH /**/
+
/* I_SYSLOG:
* This symbol, if defined, indicates that <syslog.h> exists and
* should be included.
*/
#$i_syslog I_SYSLOG /**/
+/* I_SYSMODE:
+ * This symbol, if defined, indicates that <sys/mode.h> exists and
+ * should be included.
+ */
+#$i_sysmode I_SYSMODE /**/
+
/* I_SYS_MOUNT:
* This symbol, if defined, indicates that <sys/mount.h> exists and
* should be included.
*/
#$i_sysuio I_SYSUIO /**/
+/* I_SYSUTSNAME:
+ * This symbol, if defined, indicates that <sys/utsname.h> exists and
+ * should be included.
+ */
+#$i_sysutsname I_SYSUTSNAME /**/
+
/* I_SYS_VFS:
* This symbol, if defined, indicates that <sys/vfs.h> exists and
* should be included.
*/
#$installusrbinperl INSTALL_USR_BIN_PERL /**/
-/* HAS_OFF64_T:
- * This symbol will be defined if the C compiler supports off64_t.
- */
-/* HAS_FPOS64_T:
- * This symbol will be defined if the C compiler supports fpos64_t.
- */
-#$d_off64_t HAS_OFF64_T /**/
-#$d_fpos64_t HAS_FPOS64_T /**/
-
/* PERL_PRIfldbl:
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for output.
#define Netdb_name_t $netdb_name_type /**/
#define Netdb_net_t $netdb_net_type /**/
+/* PERL_OTHERLIBDIRS:
+ * This variable contains a colon-separated set of paths for the perl
+ * binary to search for additional library files or modules.
+ * These directories will be tacked to the end of @INC.
+ * Perl will automatically search below each path for version-
+ * and architecture-specific directories. See PERL_INC_VERSION_LIST
+ * for more details.
+ */
+#$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs" /**/
+
/* IVTYPE:
* This symbol defines the C type used for Perl's IV.
*/
/* U64SIZE:
* This symbol contains the sizeof(U64).
*/
+/* NVSIZE:
+ * This symbol contains the sizeof(NV).
+ */
/* NV_PRESERVES_UV:
* This symbol, if defined, indicates that a variable of type NVTYPE
- * can preserve all the bit of a variable of type UVSIZE.
+ * can preserve all the bits of a variable of type UVTYPE.
+ */
+/* NV_PRESERVES_UV_BITS:
+ * This symbol contains the number of bits a variable of type NVTYPE
+ * can preserve of a variable of type UVTYPE.
*/
#define IVTYPE $ivtype /**/
#define UVTYPE $uvtype /**/
#define I64SIZE $i64size /**/
#define U64SIZE $u64size /**/
#endif
+#define NVSIZE $nvsize /**/
#$d_nv_preserves_uv NV_PRESERVES_UV
+#define NV_PRESERVES_UV_BITS $d_nv_preserves_uv_bits
/* IVdf:
* This symbol defines the format string used for printing a Perl IV
* This symbol contains the ~name expanded version of SITELIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
+/* SITELIB_STEM:
+ * This define is SITELIB_EXP with any trailing version-specific component
+ * removed. The elements in inc_version_list (inc_version_list.U) can
+ * be tacked onto this variable to generate a list of directories to search.
+ */
#define SITELIB "$sitelib" /**/
#define SITELIB_EXP "$sitelibexp" /**/
+#define SITELIB_STEM "$sitelib_stem" /**/
+
+/* Size_t_size:
+ * This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size $sizesize /* */
/* Size_t:
* This symbol holds the type used to declare length parameters
*/
#define Size_t $sizetype /* length paramater for string functions */
+/* Sock_size_t:
+ * This symbol holds the type used for the size argument of
+ * various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t $socksizetype /**/
+
/* SSize_t:
* This symbol holds the type used by functions that return
* a count of bytes or an error condition. It must be a signed type.
*/
#define Uid_t_f $uidformat /**/
+/* Uid_t_sign:
+ * This symbol holds the signedess of a Uid_t.
+ * 1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign $uidsign /* UID sign */
+
/* Uid_t_size:
* This symbol holds the size of a Uid_t in bytes.
*/
*/
#define Uid_t $uidtype /* UID type */
-/* USE_64_BITS:
+/* USE_64_BIT_INT:
* This symbol, if defined, indicates that 64-bit integers should
* be used when available. If not defined, the native integers
- * will be used (be they 32 or 64 bits).
+ * will be employed (be they 32 or 64 bits). The minimal possible
+ * 64-bitness is used, just enough to get 64-bit integers into Perl.
+ * This may mean using for example "long longs", while your memory
+ * may still be limited to 2 gigabytes.
*/
-#ifndef USE_64_BITS
-#$use64bits USE_64_BITS /**/
+/* USE_64_BIT_ALL:
+ * This symbol, if defined, indicates that 64-bit integers should
+ * be used when available. If not defined, the native integers
+ * will be used (be they 32 or 64 bits). The maximal possible
+ * 64-bitness is employed: LP64 or ILP64, meaning that you will
+ * be able to use more than 2 gigabytes of memory. This mode is
+ * even more binary incompatible than USE_64_BIT_INT. You may not
+ * be able to run the resulting executable in a 32-bit CPU at all or
+ * you may need at least to reboot your OS to 64-bit mode.
+ */
+#ifndef USE_64_BIT_INT
+#$use64bitint USE_64_BIT_INT /**/
+#endif
+
+#ifndef USE_64_BIT_ALL
+#$use64bitall USE_64_BIT_ALL /**/
#endif
/* USE_LARGE_FILES:
* This symbol, if defined, indicates that large file support
- * should be used when available. The USE_64_BITS symbol will
- * also be turned on if necessary.
+ * should be used when available.
*/
#ifndef USE_LARGE_FILES
#$uselargefiles USE_LARGE_FILES /**/
#endif
#$d_oldpthreads OLD_PTHREADS_API /**/
+/* PERL_VENDORARCH:
+ * If defined, this symbol contains the name of a private library.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world.
+ * It may have a ~ on the front.
+ * The standard distribution will put nothing in this directory.
+ * Vendors who distribute perl may wish to place their own
+ * architecture-dependent modules and extensions in this directory with
+ * MakeMaker Makefile.PL INSTALLDIRS=vendor
+ * or equivalent. See INSTALL for details.
+ */
+/* PERL_VENDORARCH_EXP:
+ * This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ * in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#$d_vendorarch PERL_VENDORARCH "$vendorarch" /**/
+#$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp" /**/
+
/* PERL_VENDORLIB_EXP:
* This symbol contains the ~name expanded version of VENDORLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
+/* PERL_VENDORLIB_STEM:
+ * This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ * removed. The elements in inc_version_list (inc_version_list.U) can
+ * be tacked onto this variable to generate a list of directories to search.
+ */
#$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp" /**/
+#$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem" /**/
/* VOIDFLAGS:
* This symbol indicates how much support of the void type is given by this
#define PERL_XS_APIVERSION "$xs_apiversion"
#define PERL_PM_APIVERSION "$pm_apiversion"
-/* I_SYSMODE:
- * This symbol, if defined, indicates that <sys/mode.h> exists and
- * should be included.
+/* PRINTF_EXP_DIGITS:
+ * This symbol's value is either 2 or 3, corresponding to the
+ * number of exponent digits produced by the system's sprintf %[FGfg]
+ * formats when the modulus of the exponent is 99 or less.
*/
-#$i_sysmode I_SYSMODE /**/
+#define PRINTF_EXP_DIGITS $d_printf_exp_digits
-/* I_SYS_UTSNAME:
- * This symbol, if defined, indicates that <sys/utsname.h> exists and
+/* I_LIBUTIL:
+ * This symbol, if defined, indicates that <libutil.h> exists and
* should be included.
*/
-#$i_sysutsname I_SYS_UTSNAME /**/
+#$i_libutil I_LIBUTIL /**/
#endif
!GROK!THIS!