# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Wed Jun 20 08:47:08 EET DST 2001 [metaconfig 3.0 PL70]
+# Generated on Sun Jun 24 18:18:07 EET DST 2001 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
d_endpent=''
d_endpwent=''
d_endsent=''
+d_fchdir=''
d_fchmod=''
d_fchown=''
d_fcntl=''
config_argc=$#
EOSH
argn=1
+args_exp=''
+args_sep=''
for arg in "$@"; do
cat >>cmdline.opt <<EOSH
config_arg$argn='$arg'
EOSH
+ # Extreme backslashitis: replace each ' by '"'"'
+ cat <<EOC | sed -e "s/'/'"'"'"'"'"'"'/g" > cmdl.opt
+$arg
+EOC
+ arg_exp=`cat cmdl.opt`
+ args_exp="$args_exp$args_sep'$arg_exp'"
argn=`expr $argn + 1`
+ args_sep=' '
done
+# args_exp is good for restarting self: eval "set X $args_exp"; shift; $0 "$@"
+# used by ./hints/os2.sh
+rm -f cmdl.opt
: produce awk script to parse command line options
cat >options.awk <<'EOF'
loclist="
awk
cat
+chmod
comm
cp
echo
nm=$targetarch-nm
ranlib=$targetarch-ranlib
$echo 'extern int foo;' > try.c
- set X `$cc -v -E perl.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
+ set X `$cc -v -E try.c 2>&1 | $awk '/^#include </,/^End of search /'|$grep '/include'`
shift
if $test $# -gt 0; then
incpth="$incpth $*"
- incpth="$echo $incpth|$sed 's/^ //'"
- echo "Guessing incpth $incpth" >&4
+ incpth="`$echo $incpth|$sed 's/^ //'`"
+ echo "Guessing incpth '$incpth'." >&4
for i in $*; do
- j=`$echo $i|$sed 's,/include$,/lib,'`
+ j="`$echo $i|$sed 's,/include$,/lib,'`"
if $test -d $j; then
libpth="$libpth $j"
fi
done
- libpth="$echo $libpth|$sed 's/^ //'"
- echo "Guessing libpth $libpth." >&4
+ libpth="`$echo $libpth|$sed 's/^ //'`"
+ echo "Guessing libpth '$libpth'." >&4
fi
$rm -f try.c
;;
esac
case "$incpth" in
'') echo "Incpth not defined." >&4; croak=y ;;
- *) echo "Using incpth $incpth." >&4 ;;
+ *) echo "Using incpth '$incpth'." >&4 ;;
esac
case "$libpth" in
'') echo "Libpth not defined." >&4; croak=y ;;
- *) echo "Using libpth $libpth." >&4 ;;
+ *) echo "Using libpth '$libpth'." >&4 ;;
esac
case "$usrinc" in
'') for i in $incpth; do
esac
case "$src" in
/*) run=$src/Cross/run
+ targetmkdir=$src/Cross/mkdir
to=$src/Cross/to
from=$src/Cross/from
;;
*) pwd=`$test -f ../Configure & cd ..; pwd`
run=$pwd/Cross/run
+ targetmkdir=$pwd/Cross/mkdir
to=$pwd/Cross/to
from=$pwd/Cross/from
;;
ssh|rsh)
cat >$run <<EOF
#!/bin/sh
+case "\$1" in
+-cwd)
+ shift
+ cwd=\$1
+ shift
+ ;;
+esac
+case "\$cwd" in
+'') cwd=$targetdir ;;
+esac
exe=\$1
shift
-$to \$exe
-$targetrun -l $targetuser $targethost "cd $targetdir && ./\$exe \$@"
+if $test ! -f \$exe.xok; then
+ $to \$exe
+ $touch \$exe.xok
+fi
+$targetrun -l $targetuser $targethost "cd \$cwd && ./\$exe \$@"
EOF
;;
*) echo "Unknown targetrun '$targetrun'" >&4
exit 1
;;
esac
+ case "$targetmkdir" in
+ */Cross/mkdir)
+ cat >$targetmkdir <<EOF
+#!/bin/sh
+$targetrun -l $targetuser $targethost "mkdir -p \$@"
+EOF
+ $chmod a+rx $targetmkdir
+ ;;
+ *) echo "Unknown targetmkdir '$targetmkdir'" >&4
+ exit 1
+ ;;
+ esac
case "$targetto" in
scp|rcp)
cat >$to <<EOF
#!/bin/sh
for f in \$@
do
- $targetto $q \$f $targetuser@$targethost:$targetdir/. || exit 1
+ case "\$f" in
+ /*)
+ $targetmkdir \`dirname \$f\`
+ $targetto $q \$f $targetuser@$targethost:\$f || exit 1
+ ;;
+ *)
+ $targetmkdir $targetdir/\`dirname \$f\`
+ $targetto $q \$f $targetuser@$targethost:$targetdir/\$f || exit 1
+ ;;
+ esac
done
exit 0
EOF
;;
cp) cat >$to <<EOF
#!/bin/sh
-cp \$@ $targetdir/.
+for f in \$@
+do
+ case "\$f" in
+ /*)
+ $mkdir -p $targetdir/\`dirname \$f\`
+ $cp \$f $targetdir/\$f || exit 1
+ ;;
+ *)
+ $targetmkdir $targetdir/\`dirname \$f\`
+ $cp \$f $targetdir/\$f || exit 1
+ ;;
+ esac
+done
+exit 0
EOF
;;
*) echo "Unknown targetto '$targetto'" >&4
#!/bin/sh
for f in \$@
do
+ $rm -f \$f
$targetfrom $q $targetuser@$targethost:$targetdir/\$f . || exit 1
done
exit 0
#!/bin/sh
for f in \$@
do
+ $rm -f \$f
cp $targetdir/\$f . || exit 1
done
exit 0
if $test ! -f $run; then
echo "Target 'run' script '$run' not found." >&4
else
- chmod a+rx $run
+ $chmod a+rx $run
fi
if $test ! -f $to; then
echo "Target 'to' script '$to' not found." >&4
else
- chmod a+rx $to
+ $chmod a+rx $to
fi
if $test ! -f $from; then
echo "Target 'from' script '$from' not found." >&4
else
- chmod a+rx $from
+ $chmod a+rx $from
fi
if $test ! -f $run -o ! -f $to -o ! -f $from; then
exit 1
fi
cat >&4 <<EOF
-Using '$run' for remote execution, and '$from' and '$to'
+Using '$run' for remote execution,
+and '$from' and '$to'
for remote file transfer.
EOF
;;
esac
$rm -f try try.* .out core head.c mtry
+: see if fchdir exists
+set fchdir d_fchdir
+eval $inlibc
+
: see if fchmod exists
set fchmod d_fchmod
eval $inlibc
d_modfl="$undef"
fi
case "$osname:$gccversion" in
- aix:) $ccflags="saveccflags" ;; # restore
+ aix:) $ccflags="$saveccflags" ;; # restore
esac
;;
esac
eval $setvar
: can bcopy handle overlapping blocks?
+echo " "
val="$undef"
-case "$d_bcopy" in
-"$define")
- echo " "
- echo "Checking to see if your bcopy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
+case "$d_memmove" in
+"$define") echo "I'll use memmove() instead of bcopy() for overlapping copies." ;;
+*) case "$d_bcopy" in
+ "$define")
+ echo "Checking to see if bcopy() can do overlapping copies..." >&4
+ $cat >try.c <<EOCP
#$i_memory I_MEMORY
#$i_stdlib I_STDLIB
#$i_string I_STRING
int off;
int align;
+/* Copy "abcde..." string to char abc[] so that gcc doesn't
+ try to store the string in read-only memory. */
bcopy("abcdefghijklmnopqrstuvwxyz0123456789", abc, 36);
for (align = 7; align >= 0; align--) {
exit(0);
}
EOCP
- set try
- if eval $compile_ok; then
- if $run ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
+ set try
+ if eval $compile_ok; then
+ if ./try 2>/dev/null; then
+ echo "Yes, it can."
+ val="$define"
+ else
+ echo "It can't, sorry."
+ fi
else
- echo "It can't, sorry."
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
+ echo "(I can't compile the test program, so we'll assume not...)"
fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
- fi
+ ;;
+ esac
+ $rm -f try.* try core
;;
esac
-$rm -f try.* try core
set d_safebcpy
eval $setvar
: can memcpy handle overlapping blocks?
+echo " "
val="$undef"
-case "$d_memcpy" in
-"$define")
- echo " "
- echo "Checking to see if your memcpy() can do overlapping copies..." >&4
- $cat >try.c <<EOCP
+case "$d_memmove" in
+"$define") echo "I'll use memmove() instead of memcpy() for overlapping copies." ;;
+*) case "$d_memcpy" in
+ "$define")
+ echo "Checking to see if memcpy() can do overlapping copies..." >&4
+ $cat >try.c <<EOCP
#$i_memory I_MEMORY
#$i_stdlib I_STDLIB
#$i_string I_STRING
exit(0);
}
EOCP
- set try
- if eval $compile_ok; then
- if $run ./try 2>/dev/null; then
- echo "Yes, it can."
- val="$define"
+ set try
+ if eval $compile_ok; then
+ if ./try 2>/dev/null; then
+ echo "Yes, it can."
+ val="$define"
+ else
+ echo "It can't, sorry."
+ fi
else
- echo "It can't, sorry."
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
+ echo "(I can't compile the test program, so we'll assume not...)"
fi
- else
- echo "(I can't compile the test program, so we'll assume not...)"
- case "$d_memmove" in
- "$define") echo "But that's Ok since you have memmove()." ;;
- esac
- fi
+ ;;
+ esac
+ $rm -f try.* try core
;;
esac
-$rm -f try.* try core
set d_safemcpy
eval $setvar
case "$d_sfio" in
$define) ;;
*) : Remove sfio from list of libraries to use
- set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
- shift
- libs="$*"
- echo "libs = $libs" >&4
+ case "$libs" in
+ *-lsfio*)
+ echo "Removing unneeded -lsfio from library list" >&4
+ set `echo X $libs | $sed -e 's/-lsfio / /' -e 's/-lsfio$//'`
+ shift
+ libs="$*"
+ echo "libs = $libs" >&4
+ ;;
+ esac
;;
esac
output=''
set try -DTRY_FPUTC
if eval $compile; then
- $rm -f try.out
$run ./try 2>/dev/null
code="$?"
$from try.out
'')
set try -DTRY_FPRINTF
if eval $compile; then
- $rm -f try.out
$run ./try 2>/dev/null
code="$?"
$from try.out
case "$fflushNULL" in
'') set try -DTRY_FFLUSH_NULL $output
if eval $compile; then
- $rm -f try.out
$run ./try 2>/dev/null
code="$?"
$from try.out
$cat >&4 <<EOM
(Now testing the other method--but note that this also may fail.)
EOM
- $rm -f try.out
$run ./try 2>/dev/null
code=$?
$from try.out
$test "$silent" || sleep 1
fi
fi
-$rm -f ccsym* Cppsym.*
: see if this is a termio system
val="$undef"
case "$i_ndbm" in
$define)
case "$osname-$use64bitint" in
- hpux-define)
+ cygwin-*|hpux-define)
case "$libs" in
*-lndbm*) avail_ext="$avail_ext $xxx" ;;
esac
case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*)
case "$osname-$use64bitint" in
- hpux-define)
+ cygwin-*|hpux-define)
case "$libs" in
*-ldbm*) avail_ext="$avail_ext $xxx" ;;
esac
d_endsent='$d_endsent'
d_eofnblk='$d_eofnblk'
d_eunice='$d_eunice'
+d_fchdir='$d_fchdir'
d_fchmod='$d_fchmod'
d_fchown='$d_fchown'
d_fcntl='$d_fcntl'