# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Fri Jun 15 04:00:58 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=''
d_telldir=''
d_readlink=''
d_readv=''
-d_realpath=''
d_recvmsg=''
d_rename=''
d_rmdir=''
inclwanted=''
groupstype=''
+libnames=''
: change the next line if compiling for Xenix/286 on Xenix/386
xlibpth='/usr/lib/386 /lib/386'
: Possible local library directories to search.
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
case "$usecrosscompile" in
$define|true|[yY]*)
+ $echo "Cross-compiling..."
croak=''
case "$cc" in
*-*-gcc) # A cross-compiling gcc, probably.
- targetarch=`echo $cc|sed 's/-gcc$//'`
+ targetarch=`$echo $cc|$sed 's/-gcc$//'`
ar=$targetarch-ar
# leave out ld, choosing it is more complex
nm=$targetarch-nm
ranlib=$targetarch-ranlib
+ $echo 'extern int foo;' > try.c
+ 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
+ for i in $*; do
+ 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
+ fi
+ $rm -f try.c
;;
esac
case "$targetarch" in
- '') echo "Cross-compiling: you should define targetarch." >&4; croak=y ;;
- esac
- case "$usrinc" in
- '') echo "Cross-compiling: you should define usrinc." >&4; croak=y ;;
+ '') echo "Targetarch not defined." >&4; croak=y ;;
+ *) echo "Using targetarch $targetarch." >&4 ;;
esac
case "$incpth" in
- '') echo "Cross-compiling: you should define incpth." >&4; croak=y ;;
+ '') echo "Incpth not defined." >&4; croak=y ;;
+ *) echo "Using incpth '$incpth'." >&4 ;;
esac
case "$libpth" in
- '') echo "Cross-compiling: you should define libpth." >&4; croak=y ;;
+ '') echo "Libpth not defined." >&4; croak=y ;;
+ *) echo "Using libpth '$libpth'." >&4 ;;
esac
- case "$targethost" in
- '') echo "Cross-compiling: targethost not defined." >&4; croak=y ;;
+ case "$usrinc" in
+ '') for i in $incpth; do
+ if $test -f $i/errno.h -a -f $i/stdio.h -a -f $i/time.h; then
+ usrinc=$i
+ echo "Guessing usrinc $usrinc." >&4
+ break
+ fi
+ done
+ case "$usrinc" in
+ '') echo "Usrinc not defined." >&4; croak=y ;;
+ esac
+ ;;
+ *) echo "Using usrinc $usrinc." >&4 ;;
esac
- case "$targetdir" in
- '') echo "Cross compiling: targetdir not defined." >&4; croak=y ;;
+ case "$targethost" in
+ '') echo "Targethost not defined." >&4; croak=y ;;
+ *) echo "Using targethost $targethost." >&4
esac
- locincpth=''
- loclibpth=''
+ locincpth=' '
+ loclibpth=' '
case "$croak" in
- y) exit 1 ;;
+ y) echo "Cannot continue, aborting." >&4; exit 1 ;;
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`
+ *) pwd=`$test -f ../Configure & cd ..; pwd`
run=$pwd/Cross/run
+ targetmkdir=$pwd/Cross/mkdir
to=$pwd/Cross/to
from=$pwd/Cross/from
;;
run=$run-$targetrun
to=$to-$targetto
from=$from-$targetfrom
+ case "$targetdir" in
+ '') targetdir=/tmp
+ echo "Guessing targetdir $targetdir." >&4
+ ;;
+ esac
case "$targetuser" in
- '') targetuser=root ;;
+ '') targetuser=root
+ echo "Guessing targetuser $targetuser." >&4
+ ;;
esac
case "$targetfrom" in
scp) q=-q ;;
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 "Cross-compiling: unknown targetrun '$targetrun'" >&4
+ *) echo "Unknown targetmkdir '$targetmkdir'" >&4
exit 1
;;
esac
#!/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 "Cross-compiling: unknown targetto '$targetto'" >&4
+ *) echo "Unknown targetto '$targetto'" >&4
exit 1
;;
esac
#!/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
EOF
;;
- *) echo "Cross-compiling: unknown targetfrom '$targetfrom'" >&4
+ *) echo "Unknown targetfrom '$targetfrom'" >&4
exit 1
;;
esac
- if test ! -f $run; then
- echo "Cross-compiling: target 'run' script '$run' not found." >&4
+ 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 "Cross-compiling: target 'to' script '$to' not found." >&4
+ 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 "Cross-compiling: target 'from' script '$from' not found." >&4
+ 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
+ if $test ! -f $run -o ! -f $to -o ! -f $from; then
exit 1
fi
cat >&4 <<EOF
-Cross-compiling: Using
- $run-ssh
- $to-ssh
- $from-ssh
+Using '$run' for remote execution,
+and '$from' and '$to'
+for remote file transfer.
EOF
;;
*) run=''
esac
;;
esac
-libnames='';
case "$libs" in
'') ;;
*) for thislib in $libs; do
Gconvert((DOUBLETYPE)123.456, 8, 0, buf);
checkit("123.456", buf);
+ /* Testing of 1e+129 in bigintpm.t must not get extra '.' here. */
+ Gconvert((DOUBLETYPE)1e30, 8, 0, buf);
+ if (strlen(buf) > 5)
+ checkit("1e+030", buf); /* for Microsoft */
+ else
+ checkit("1e+30", buf);
+
exit(0);
}
EOP
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
set readv d_readv
eval $inlibc
-: see if realpath exists
-set realpath d_realpath
-eval $inlibc
-
: see if recvmsg exists
set recvmsg d_recvmsg
eval $inlibc
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
set try -DTRY_FPUTC
if eval $compile; then
$run ./try 2>/dev/null
- $rm -f try.out
+ code="$?"
$from try.out
- if $test ! -s try.out -a "X$?" = X42; then
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPUTC
fi
fi
set try -DTRY_FPRINTF
if eval $compile; then
$run ./try 2>/dev/null
- $rm -f try.out
+ code="$?"
$from try.out
- if $test ! -s try.out -a "X$?" = X42; then
+ if $test ! -s try.out -a "X$code" = X42; then
output=-DTRY_FPRINTF
fi
fi
if eval $compile; then
$run ./try 2>/dev/null
code="$?"
- $rm -f try.out
$from try.out
if $test -s try.out -a "X$code" = X42; then
fflushNULL="`$cat 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
- if $test -s try.out -a "X$?" = X42; then
+ code=$?
+ $from try.out
+ if $test -s try.out -a "X$code" = X42; then
fflushall="`$cat try.out`"
fi
fi
$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'
d_readdir='$d_readdir'
d_readlink='$d_readlink'
d_readv='$d_readv'
-d_realpath='$d_realpath'
d_recvmsg='$d_recvmsg'
d_rename='$d_rename'
d_rewinddir='$d_rewinddir'
echo " "
exec 1>&4
+pwd=`pwd`
. ./UU/extract
+cd $pwd
if $contains '^depend:' [Mm]akefile >/dev/null 2>&1; then
dflt=y