summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
authorH.Merijn Brand <h.m.brand@xs4all.nl>2006-05-22 17:37:33 +0000
committerH.Merijn Brand <h.m.brand@xs4all.nl>2006-05-22 17:37:33 +0000
commita2d23ec243cb32ad5ac90ab8101b59ec7d77e541 (patch)
treecd0e2ebae72a41417448c9abfc37d2e3ec346b7c /Configure
parent4c0d88fa74047e2136ab0d51a21a0f536d0d1bcb (diff)
downloadperl-a2d23ec243cb32ad5ac90ab8101b59ec7d77e541.tar.gz
Re-generation after backports of
#28188 Only ask about MAD for 5.9.0 and greater. Otherwise silently #28189 A Configure probe for C99 variadic macros, based on code from #28202 Take advantage of the bug that binexp ignores the Configure #28263 Oops. Fix bad #! lines when not using userelocatableinc One small cleanup fix added. Some small re-ordering. Some whitespace. p4raw-id: //depot/perl@28283
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure304
1 files changed, 155 insertions, 149 deletions
diff --git a/Configure b/Configure
index 831ef123fd..8fee5eb68f 100755
--- a/Configure
+++ b/Configure
@@ -26,7 +26,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Mon Apr 17 14:14:39 CEST 2006 [metaconfig 3.0 PL70]
+# Generated on Mon May 22 19:21:39 CEST 2006 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
@@ -359,6 +359,7 @@ d_bcopy=''
d_builtin_choose_expr=''
d_builtin_expect=''
d_bzero=''
+d_c99_variadic_macros=''
d_casti32=''
castflags=''
d_castneg=''
@@ -383,7 +384,6 @@ d_ctermid_r=''
ctime_r_proto=''
d_ctime_r=''
d_cuserid=''
-d_c99_variadic_macros=''
d_dbl_dig=''
d_dbminitproto=''
d_difftime=''
@@ -3385,8 +3385,13 @@ EOM
$cat <<EOM
You may give one or more space-separated answers, or "none" if appropriate.
-A well-behaved OS will have no hints, so answering "none" or just "Policy"
-is a good thing. DO NOT give a wrong version or a wrong OS.
+If you have a handcrafted Policy.sh file or a Policy.sh file generated by a
+previous run of Configure, you may specify it as well as or instead of
+OS-specific hints. If hints are provided for your OS, you should use them:
+although Perl can probably be built without hints on many platforms, using
+hints often improve performance and may enable features that Configure can't
+set up on its own. If there are no hints that match your OS, specify "none";
+DO NOT give a wrong version or a wrong OS.
EOM
@@ -6047,7 +6052,7 @@ fi
prefixvar=bin
: XXX Bug? -- ignores Configure -Dinstallprefix setting.
: XXX If this is fixed, also fix the "start perl" hunk below, which relies on
-: this via initialinstalllocation
+: this via initialinstalllocation
. ./setprefixvar
case "$userelocatableinc" in
@@ -8570,8 +8575,8 @@ esac
: figure out how to guarantee perl startup
: XXX Note that this currently takes advantage of the bug that binexp ignores
-: the Configure -Dinstallprefix setting, which in turn means that under
-: relocatable @INC, initialinstalllocation is what binexp started as.
+: the Configure -Dinstallprefix setting, which in turn means that under
+: relocatable @INC, initialinstalllocation is what binexp started as.
case "$startperl" in
'')
case "$sharpbang" in
@@ -8581,12 +8586,12 @@ case "$startperl" in
I can use the #! construct to start perl on your system. This will
make startup of perl scripts faster, but may cause problems if you
want to share those scripts and perl is not in a standard place
-($initialinstalllocation/perl) on all your platforms. The alternative is to force
-a shell by starting the script with a single ':' character.
+($initialinstalllocation/perl) on all your platforms. The alternative
+is to force a shell by starting the script with a single ':' character.
EOH
case "$versiononly" in
- "$define") dflt="$initialinstalllocation/perl$version";;
+ "$define") dflt="$initialinstalllocation/perl$version";;
*) dflt="$initialinstalllocation/perl";;
esac
rp='What shall I put after the #! to start up perl ("none" to not use #!)?'
@@ -10301,6 +10306,145 @@ $rm -f try.* try core core.try.*
set bzero d_bzero
eval $inlibc
+: see if stdarg is available
+echo " "
+if $test `./findhdr stdarg.h`; then
+ echo "<stdarg.h> found." >&4
+ valstd="$define"
+else
+ echo "<stdarg.h> NOT found." >&4
+ valstd="$undef"
+fi
+
+: see if varags is available
+echo " "
+if $test `./findhdr varargs.h`; then
+ echo "<varargs.h> found." >&4
+else
+ echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
+fi
+
+: set up the varargs testing programs
+$cat > varargs.c <<EOP
+#ifdef I_STDARG
+#include <stdarg.h>
+#endif
+#ifdef I_VARARGS
+#include <varargs.h>
+#endif
+
+#ifdef I_STDARG
+int f(char *p, ...)
+#else
+int f(va_alist)
+va_dcl
+#endif
+{
+ va_list ap;
+#ifndef I_STDARG
+ char *p;
+#endif
+#ifdef I_STDARG
+ va_start(ap,p);
+#else
+ va_start(ap);
+ p = va_arg(ap, char *);
+#endif
+ va_end(ap);
+}
+EOP
+$cat > varargs <<EOP
+$startsh
+if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
+ echo "true"
+else
+ echo "false"
+fi
+$rm -f varargs$_o
+EOP
+chmod +x varargs
+
+: now check which varargs header should be included
+echo " "
+i_varhdr=''
+case "$valstd" in
+"$define")
+ if `./varargs I_STDARG`; then
+ val='stdarg.h'
+ elif `./varargs I_VARARGS`; then
+ val='varargs.h'
+ fi
+ ;;
+*)
+ if `./varargs I_VARARGS`; then
+ val='varargs.h'
+ fi
+ ;;
+esac
+case "$val" in
+'')
+echo "I could not find the definition for va_dcl... You have problems..." >&4
+ val="$undef"; set i_stdarg; eval $setvar
+ val="$undef"; set i_varargs; eval $setvar
+ ;;
+*)
+ set i_varhdr
+ eval $setvar
+ case "$i_varhdr" in
+ stdarg.h)
+ val="$define"; set i_stdarg; eval $setvar
+ val="$undef"; set i_varargs; eval $setvar
+ ;;
+ varargs.h)
+ val="$undef"; set i_stdarg; eval $setvar
+ val="$define"; set i_varargs; eval $setvar
+ ;;
+ esac
+ echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
+esac
+$rm -f varargs*
+
+: see if the Compiler supports C99 variadic macros
+case "$i_stdarg$i_stdlib" in
+ "$define$define")
+ echo "You have <stdarg.h> and <stdlib.h>, so checking for C99 variadic macros." >&4
+ $cat >try.c <<EOCP
+#include <stdio.h>
+#include <stdarg.h>
+
+#define foo(buffer, format, ...) sprintf(buffer, format, __VA_ARGS__)
+
+int main() {
+ char buf[20];
+ foo(buf, "%d %g %.*s", 123, 456.0, (int)3, "789fail");
+ puts(buf);
+ return 0;
+}
+EOCP
+ set try
+ if eval $compile && $run ./try 2>&1 >/dev/null; then
+ case "`$run ./try`" in
+ "123 456 789")
+ echo "You have C99 variadic macros." >&4
+ d_c99_variadic_macros="$define"
+ ;;
+ *)
+ echo "You don't have functional C99 variadic macros." >&4
+ d_c99_variadic_macros="$undef"
+ ;;
+ esac
+ else
+ echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4
+ d_c99_variadic_macros="$undef"
+ fi
+ $rm -f try.* try core core.try.*
+ ;;
+ *)
+ echo "You don't have <stdarg.h> and <stdlib.h>, so not checking for C99 variadic macros." >&4
+ d_c99_variadic_macros="$undef"
+ ;;
+esac
+
: see if signal is declared as pointer to function returning int or void
echo " "
xxx=`./findhdr signal.h`
@@ -19008,104 +19152,6 @@ rp="What is the type used for file modes for system calls (e.g. fchmod())?"
set mode_t modetype int stdio.h sys/types.h
eval $typedef_ask
-: see if stdarg is available
-echo " "
-if $test `./findhdr stdarg.h`; then
- echo "<stdarg.h> found." >&4
- valstd="$define"
-else
- echo "<stdarg.h> NOT found." >&4
- valstd="$undef"
-fi
-
-: see if varags is available
-echo " "
-if $test `./findhdr varargs.h`; then
- echo "<varargs.h> found." >&4
-else
- echo "<varargs.h> NOT found, but that's ok (I hope)." >&4
-fi
-
-: set up the varargs testing programs
-$cat > varargs.c <<EOP
-#ifdef I_STDARG
-#include <stdarg.h>
-#endif
-#ifdef I_VARARGS
-#include <varargs.h>
-#endif
-
-#ifdef I_STDARG
-int f(char *p, ...)
-#else
-int f(va_alist)
-va_dcl
-#endif
-{
- va_list ap;
-#ifndef I_STDARG
- char *p;
-#endif
-#ifdef I_STDARG
- va_start(ap,p);
-#else
- va_start(ap);
- p = va_arg(ap, char *);
-#endif
- va_end(ap);
-}
-EOP
-$cat > varargs <<EOP
-$startsh
-if $cc -c $ccflags -D\$1 varargs.c >/dev/null 2>&1; then
- echo "true"
-else
- echo "false"
-fi
-$rm -f varargs$_o
-EOP
-chmod +x varargs
-
-: now check which varargs header should be included
-echo " "
-i_varhdr=''
-case "$valstd" in
-"$define")
- if `./varargs I_STDARG`; then
- val='stdarg.h'
- elif `./varargs I_VARARGS`; then
- val='varargs.h'
- fi
- ;;
-*)
- if `./varargs I_VARARGS`; then
- val='varargs.h'
- fi
- ;;
-esac
-case "$val" in
-'')
-echo "I could not find the definition for va_dcl... You have problems..." >&4
- val="$undef"; set i_stdarg; eval $setvar
- val="$undef"; set i_varargs; eval $setvar
- ;;
-*)
- set i_varhdr
- eval $setvar
- case "$i_varhdr" in
- stdarg.h)
- val="$define"; set i_stdarg; eval $setvar
- val="$undef"; set i_varargs; eval $setvar
- ;;
- varargs.h)
- val="$undef"; set i_stdarg; eval $setvar
- val="$define"; set i_varargs; eval $setvar
- ;;
- esac
- echo "We'll include <$i_varhdr> to get va_dcl definition." >&4;;
-esac
-$rm -f varargs*
-
: see if we need va_copy
echo " "
case "$i_stdarg" in
@@ -19170,46 +19216,6 @@ EOCP
;;
esac
-: see if the Compiler supports C99 variadic macros
-case "$i_stdarg$i_stdlib" in
- "$define$define")
- echo "You have <stdarg.h> and <stdlib.h>, so checking for C99 variadic macros." >&4
- $cat >try.c <<EOCP
-#include <stdio.h>
-#include <stdarg.h>
-
-#define foo(buffer, format, ...) sprintf(buffer, format, __VA_ARGS__)
-
-int main() {
- char buf[20];
- foo(buf, "%d %g %.*s", 123, 456.0, (int)3, "789fail");
- puts(buf);
- return 0;
-}
-EOCP
- set try
- if eval $compile && $run ./try 2>&1 >/dev/null; then
- case "`$run ./try`" in
- "123 456 789")
- echo "You have C99 variadic macros." >&4
- d_c99_variadic_macros="$define"
- ;;
- *)
- echo "You don't have functional C99 variadic macros." >&4
- d_c99_variadic_macros="$undef"
- ;;
- esac
- else
- echo "I couldn't compile and run the test program, so I assume that you don't have functional C99 variadic macros." >&4
- d_c99_variadic_macros="$undef"
- fi
- ;;
- *)
- echo "You don't have <stdarg.h> and <stdlib.h>, so not checking for C99 variadic macros." >&4
- d_c99_variadic_macros="$undef"
- ;;
-esac
-
: see what type is used for size_t
rp="What is the type used for the length parameter for string functions?"
set size_t sizetype 'unsigned int' stdio.h sys/types.h
@@ -21304,6 +21310,7 @@ d_bsdsetpgrp='$d_bsdsetpgrp'
d_builtin_choose_expr='$d_builtin_choose_expr'
d_builtin_expect='$d_builtin_expect'
d_bzero='$d_bzero'
+d_c99_variadic_macros='$d_c99_variadic_macros'
d_casti32='$d_casti32'
d_castneg='$d_castneg'
d_charvspr='$d_charvspr'
@@ -21322,7 +21329,6 @@ d_csh='$d_csh'
d_ctermid_r='$d_ctermid_r'
d_ctime_r='$d_ctime_r'
d_cuserid='$d_cuserid'
-d_c99_variadic_macros='$d_c99_variadic_macros'
d_dbl_dig='$d_dbl_dig'
d_dbminitproto='$d_dbminitproto'
d_difftime='$d_difftime'