From 253687a919e6d27d683ed5f25d04adf06f590fe5 Mon Sep 17 00:00:00 2001 From: "H.Merijn Brand" Date: Wed, 25 May 2005 18:41:52 +0000 Subject: [PATCH] Reordering config_h.SH after metaconfig now semi automated This will save me *a lot* of manual work p4raw-id: //depot/perl@24576 --- Configure | 2 +- Porting/config_h.pl | 56 +++++++++++++++++ config_h.SH | 174 +++++++++++++++++++++++----------------------------- 3 files changed, 134 insertions(+), 98 deletions(-) create mode 100755 Porting/config_h.pl diff --git a/Configure b/Configure index 3e62682..0fac9e9 100755 --- a/Configure +++ b/Configure @@ -20,7 +20,7 @@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # -# Generated on Sun Apr 24 14:17:04 CEST 2005 [metaconfig 3.0 PL70] +# Generated on Wed May 25 21:03:27 CEST 2005 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.org) cat >c1$$ <; + close $ch; + } + +sub ch_index () +{ + %ch = (); + foreach my $ch (0 .. $#ch) { + while ($ch[$ch] =~ m{^/\* ([A-Z]\w+)}gm) { + $ch{$1} = $ch; + } + } + } # ch_index + +my %dep = ( + # This symbol must be defined BEFORE ... + LONGSIZE => [ qw( BYTEORDER ) ], + MULTIARCH => [ qw( BYTEORDER MEM_ALIGNBYTES ) ], + HAS_QUAD => [ qw( I64TYPE ) ], + ); + +my $changed; +do { + $changed = 0; + foreach my $sym (keys %dep) { + ch_index; + foreach my $dep (@{$dep{$sym}}) { + print STDERR "Check if $sym\t($ch{$sym}) precedes $dep\t($ch{$dep})\n"; + $ch{$sym} < $ch{$dep} and next; + my $ch = splice @ch, $ch{$sym}, 1; + splice @ch, $ch{$dep}, 0, $ch; + $changed++; + ch_index; + } + } + } while ($changed); + +open $ch, "> $cSH" or die "Cannot write $cSH: $!\n"; +print $ch @ch; +close $ch; diff --git a/config_h.SH b/config_h.SH index 78f262d..0811510 100644 --- a/config_h.SH +++ b/config_h.SH @@ -728,12 +728,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$i_math I_MATH /**/ -/* LIBM_LIB_VERSION: - * This symbol, if defined, indicates that libm exports _LIB_VERSION - * and that math.h defines the enum to manipulate it. - */ -#$d_libm_lib_version LIBM_LIB_VERSION /**/ - /* I_MEMORY: * This symbol, if defined, indicates to the C program that it should * include . @@ -899,47 +893,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$i_vfork I_VFORK /**/ -/* INTSIZE: - * This symbol contains the value of sizeof(int) so that the C - * preprocessor can make decisions based on it. - */ -/* LONGSIZE: - * This symbol contains the value of sizeof(long) so that the C - * preprocessor can make decisions based on it. - */ -/* SHORTSIZE: - * This symbol contains the value of sizeof(short) so that the C - * preprocessor can make decisions based on it. - */ -#define INTSIZE $intsize /**/ -#define LONGSIZE $longsize /**/ -#define SHORTSIZE $shortsize /**/ - -/* MULTIARCH: - * This symbol, if defined, signifies that the build - * process will produce some binary files that are going to be - * used in a cross-platform environment. This is the case for - * example with the NeXT "fat" binaries that contain executables - * for several CPUs. - */ -#$multiarch MULTIARCH /**/ - -/* HAS_QUAD: - * This symbol, if defined, tells that there's a 64-bit integer type, - * Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one - * of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T. - */ -#$d_quad HAS_QUAD /**/ -#ifdef HAS_QUAD -# define Quad_t $quadtype /**/ -# define Uquad_t $uquadtype /**/ -# define QUADKIND $quadkind /**/ -# define QUAD_IS_INT 1 -# define QUAD_IS_LONG 2 -# define QUAD_IS_LONG_LONG 3 -# define QUAD_IS_INT64_T 4 -#endif - /* HAS_ACCESSX: * This symbol, if defined, indicates that the accessx routine is * available to do extended access checks. @@ -977,6 +930,15 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define OSNAME "$osname" /**/ #define OSVERS "$osvers" /**/ +/* MULTIARCH: + * This symbol, if defined, signifies that the build + * process will produce some binary files that are going to be + * used in a cross-platform environment. This is the case for + * example with the NeXT "fat" binaries that contain executables + * for several CPUs. + */ +#$multiarch MULTIARCH /**/ + /* MEM_ALIGNBYTES: * This symbol contains the number of bytes required to align a * double, or a long double when applicable. Usual values are 2, @@ -988,12 +950,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define MEM_ALIGNBYTES $alignbytes #endif -/* PERL_RELOCATABLE_INC: - * This symbol, if defined, indicates that we'd like to relocate entries - * in @INC at run time based on the location of the perl binary. - */ -#$userelocatableinc PERL_RELOCATABLE_INC /**/ - /* ARCHLIB: * This variable, if defined, holds the name of the directory in * which the user wants to put architecture-dependent public @@ -1041,6 +997,22 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define BIN "$bin" /**/ #define BIN_EXP "$binexp" /**/ +/* INTSIZE: + * This symbol contains the value of sizeof(int) so that the C + * preprocessor can make decisions based on it. + */ +/* LONGSIZE: + * This symbol contains the value of sizeof(long) so that the C + * preprocessor can make decisions based on it. + */ +/* SHORTSIZE: + * This symbol contains the value of sizeof(short) so that the C + * preprocessor can make decisions based on it. + */ +#define INTSIZE $intsize /**/ +#define LONGSIZE $longsize /**/ +#define SHORTSIZE $shortsize /**/ + /* BYTEORDER: * This symbol holds the hexadecimal constant defined in byteorder, * in a UV, i.e. 0x1234 or 0x4321 or 0x12345678, etc... @@ -1910,6 +1882,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_ldbl_dig HAS_LDBL_DIG /* */ +/* LIBM_LIB_VERSION: + * This symbol, if defined, indicates that libm exports _LIB_VERSION + * and that math.h defines the enum to manipulate it. + */ +#$d_libm_lib_version LIBM_LIB_VERSION /**/ + /* HAS_LOCALTIME_R: * This symbol, if defined, indicates that the localtime_r routine * is available to localtime re-entrantly. @@ -2531,18 +2509,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$d_strerror_r HAS_STRERROR_R /**/ #define STRERROR_R_PROTO $strerror_r_proto /**/ -/* HAS_STRLCAT: - * This symbol, if defined, indicates that the strlcat () routine is - * available to do string concatenation. - */ -#$d_strlcat HAS_STRLCAT /**/ - -/* HAS_STRLCPY: - * This symbol, if defined, indicates that the strlcpy () routine is - * available to do string copying. - */ -#$d_strlcpy HAS_STRLCPY /**/ - /* HAS_STRTOLD: * This symbol, if defined, indicates that the strtold routine is * available to convert strings to long doubles. @@ -3167,6 +3133,22 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs" /**/ +/* HAS_QUAD: + * This symbol, if defined, tells that there's a 64-bit integer type, + * Quad_t, and its unsigned counterpar, Uquad_t. QUADKIND will be one + * of QUAD_IS_INT, QUAD_IS_LONG, QUAD_IS_LONG_LONG, or QUAD_IS_INT64_T. + */ +#$d_quad HAS_QUAD /**/ +#ifdef HAS_QUAD +# define Quad_t $quadtype /**/ +# define Uquad_t $uquadtype /**/ +# define QUADKIND $quadkind /**/ +# define QUAD_IS_INT 1 +# define QUAD_IS_LONG 2 +# define QUAD_IS_LONG_LONG 3 +# define QUAD_IS_INT64_T 4 +#endif + /* IVTYPE: * This symbol defines the C type used for Perl's IV. */ @@ -3331,18 +3313,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #define Pid_t $pidtype /* PID type */ -/* INSTALL_PREFIX: - * This symbol contains the "root" of installation tree for this package. - * The program should be prepared to do ~ expansion. - */ -/* INSTALL_PREFIX_EXP: - * This symbol contains the "root" of installation tree for this package - * to be used in programs that are not prepared to deal with ~ expansion - * at run-time. - */ -#define INSTALL_PREFIX "$installprefix" /**/ -#define INSTALL_PREFIX_EXP "$installprefixexp" /**/ - /* PRIVLIB: * This symbol contains the name of the private library for this package. * The library is private in the sense that it needn't be in anyone's @@ -3488,14 +3458,6 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #define SITELIB_EXP "$sitelibexp" /**/ #define SITELIB_STEM "$sitelib_stem" /**/ -/* USE_SITECUSTOMIZE: - * This symbol, if defined, indicates that sitecustomize should - * be used. - */ -#ifndef USE_SITECUSTOMIZE -#$usesitecustomize USE_SITECUSTOMIZE /**/ -#endif - /* Size_t_size: * This symbol holds the size of a Size_t in bytes. */ @@ -3639,6 +3601,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un #$useperlio USE_PERLIO /**/ #endif +/* PERL_RELOCATABLE_INC: + * This symbol, if defined, indicates that we'd like to relocate entries + * in @INC at run time based on the location of the perl binary. + */ +#define PERL_RELOCATABLE_INC "$userelocatableinc" /**/ + /* USE_SOCKS: * This symbol, if defined, indicates that Perl should * be built to use socks. @@ -3730,36 +3698,30 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un /* HASATTRIBUTE_FORMAT: * Can we handle GCC attribute for checking printf-style formats */ -#$d_attribute_format HASATTRIBUTE_FORMAT /**/ - /* HASATTRIBUTE_MALLOC: * Can we handle GCC attribute for malloc-style functions. */ -#$d_attribute_malloc HASATTRIBUTE_MALLOC /**/ - /* HASATTRIBUTE_NONNULL: * Can we handle GCC attribute for nonnull function parms. */ -#$d_attribute_nonnull HASATTRIBUTE_NONNULL /**/ - /* HASATTRIBUTE_NORETURN: * Can we handle GCC attribute for functions that do not return */ -#$d_attribute_noreturn HASATTRIBUTE_NORETURN /**/ - /* HASATTRIBUTE_PURE: * Can we handle GCC attribute for pure functions */ -#$d_attribute_pure HASATTRIBUTE_PURE /**/ - /* HASATTRIBUTE_UNUSED: * Can we handle GCC attribute for unused variables and arguments */ -#$d_attribute_unused HASATTRIBUTE_UNUSED /**/ - /* HASATTRIBUTE_WARN_UNUSED_RESULT: * Can we handle GCC attribute for warning on unused results */ +#$d_attribute_format HASATTRIBUTE_FORMAT /**/ +#$d_attribute_noreturn HASATTRIBUTE_NORETURN /**/ +#$d_attribute_malloc HASATTRIBUTE_MALLOC /**/ +#$d_attribute_nonnull HASATTRIBUTE_NONNULL /**/ +#$d_attribute_pure HASATTRIBUTE_PURE /**/ +#$d_attribute_unused HASATTRIBUTE_UNUSED /**/ #$d_attribute_warn_unused_result HASATTRIBUTE_WARN_UNUSED_RESULT /**/ /* HAS_CRYPT: @@ -3963,6 +3925,12 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_sigprocmask HAS_SIGPROCMASK /**/ +/* USE_SITECUSTOMIZE: + * This symbol, if defined, indicates that sitecustomize should + * be used. + */ +#$usesitecustomize USE_SITECUSTOMIZE /**/ + /* HAS_SOCKATMARK: * This symbol, if defined, indicates that the sockatmark routine is * available to test whether a socket is at the out-of-band mark. @@ -3999,6 +3967,18 @@ sed <$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un */ #$d_strftime HAS_STRFTIME /**/ +/* HAS_STRLCAT: + * This symbol, if defined, indicates that the strlcat () routine is + * available to do string concatenation. + */ +#$d_strlcat HAS_STRLCAT /**/ + +/* HAS_STRLCPY: + * This symbol, if defined, indicates that the strlcpy () routine is + * available to do string copying. + */ +#$d_strlcpy HAS_STRLCPY /**/ + /* HAS_SYSCALL_PROTO: * This symbol, if defined, indicates that the system provides * a prototype for the syscall() function. Otherwise, it is up -- 2.7.4