PATH=`cmd /c "echo %PATH%" | tr '\\\\' / `
OS2_SHELL=`cmd /c "echo %OS2_SHELL%" | tr '\\\\' / | tr '[A-Z]' '[a-z]'`
fi
+if test -d c:/. -a -n "$DJDIR"; then
+ p_=\;
+fi
: Proper PATH setting
paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
fpostype=''
gidtype=''
groupstype=''
+d_sched_yield=''
+d_pthread_yield=''
h_fcntl=''
h_sysfile=''
db_hashtype=''
i_neterrno=''
i_niin=''
i_sysin=''
+d_pthreads_created_joinable=''
d_pwage=''
d_pwchange=''
d_pwclass=''
osf1|mls+) case "$5" in
alpha)
osname=dec_osf
- osvers=`echo "$3" | sed 's/^[vt]//'`
+ osvers=`echo "$3" | sed 's/^[xvt]//'`
;;
hp*) osname=hp_osf1 ;;
mips) osname=mips_osf1 ;;
set X $myuname
osname=os2
osvers="$5"
+ if test -n "$DJDIR"; then
+ osname=dos
+ osvers=djgpp
+ fi
fi
fi
rp='What is your architecture name'
. ./myread
case "$usethreads" in
-$define) archname="$ans-thread"
- echo "usethreads selected... architecture name is now $archname." >&4
+$define) echo "Threads selected." >&4
+ case "$ans" in
+ *-thread) echo "...and architecture name already ends in -thread." >&4
+ archname="$ans"
+ ;;
+ *) archname="$ans-thread"
+ echo "...setting architecture name to $archname." >&4
+ ;;
+ esac
;;
*) archname="$ans" ;;
esac
*) eval "$var=$val";;
esac'
-$cat <<EOM
-
-Perl 5.004 can be compiled for binary compatibility with 5.003.
-If you decide to do so, you will be able to continue using any
-extensions that were compiled for Perl 5.003. However, binary
-compatibility forces Perl to expose some of its internal symbols
-in the same way that 5.003 did. So you may have symbol conflicts
-if you embed a binary-compatible Perl in other programs.
-
-EOM
-case "$d_bincompat3" in
-"$undef") dflt=n ;;
-*) dflt=y ;;
-esac
-rp='Binary compatibility with Perl 5.003?'
-. ./myread
-case "$ans" in
-y*) val="$define" ;;
-*) val="$undef" ;;
-esac
-set d_bincompat3
-eval $setvar
-case "$d_bincompat3" in
-"$define") bincompat3=y ;;
-*) bincompat3=n ;;
-esac
+: bincompat3 is no more even possible starting with 5.005
+d_bincompat3=$undef
: make some quick guesses about what we are up against
echo " "
cat <<EOM
-Previous version of $package used the standard IO mechanisms as defined in
-<stdio.h>. Versions 5.003_02 and later of perl allow alternate IO
+Previous version of $package used the standard IO mechanisms as defined
+in <stdio.h>. Versions 5.003_02 and later of perl allow alternate IO
mechanisms via a "PerlIO" abstraction, but the stdio mechanism is still
-the default and is the only supported mechanism. This abstraction
-layer can use AT&T's sfio (if you already have sfio installed) or
-fall back on standard IO. This PerlIO abstraction layer is
-experimental and may cause problems with some extension modules.
+the default. This abstraction layer can use AT&T's sfio (if you already
+have sfio installed) or regular stdio. Using PerlIO with sfio may cause
+problems with some extension modules. Using PerlIO with stdio is safe,
+but it is slower than plain stdio and therefore is not the default.
If this doesn't make any sense to you, just accept the default 'n'.
EOM
set gethostbyaddr d_gethbadd
eval $inlibc
-: see if getnetbyaddr exists
-set getnetbyaddr d_getnbadd
-eval $inlibc
-
: see if gethostent exists
set gethostent d_gethent
eval $inlibc
set getlogin d_getlogin
eval $inlibc
+: see if getnetbyaddr exists
+set getnetbyaddr d_getnbadd
+eval $inlibc
+
: see if getpgid exists
set getpgid d_getpgid
eval $inlibc
case "$i_db" in
$define)
- : Check db version. We can not use version 2.
+ : Check db version.
echo " "
echo "Checking Berkeley DB version ..." >&4
$cat >try.c <<EOCP
#include <db.h>
main()
{
-#ifdef DB_VERSION_MAJOR /* DB version >= 2: not yet. */
- printf("You have Berkeley DB Version %d.%d\n",
- DB_VERSION_MAJOR, DB_VERSION_MINOR);
- printf("Perl currently only supports up to version 1.86.\n");
- exit(2);
+#ifdef DB_VERSION_MAJOR /* DB version >= 2 */
+ int Major, Minor, Patch ;
+ (void)db_version(&Major, &Minor, &Patch) ;
+ printf("You have Berkeley DB Version 2 or greater\n");
+
+ printf("db.h is from Berkeley DB Version %d.%d.%d\n",
+ DB_VERSION_MAJOR, DB_VERSION_MINOR, DB_VERSION_PATCH);
+ printf("libdb is from Berkeley DB Version %d.%d.%d\n",
+ Major, Minor, Patch) ;
+
+ /* check that db.h & libdb are compatible */
+ if (DB_VERSION_MAJOR != Major || DB_VERSION_MINOR != Minor || DB_VERSION_PATCH != Patch) {
+ printf("db.h and libdb are incompatible\n") ;
+ exit(3);
+ }
+
+ printf("db.h and libdb are compatible\n") ;
+ /* needs to be >= 2.05 */
+ if (DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR == 0 && DB_VERSION_PATCH < 5) {
+ printf("but Perl needs Berkeley DB 2.0.5 or greater\n") ;
+ exit(2);
+ }
+
+ exit(0);
#else
#if defined(_DB_H_) && defined(BTREEMAGIC) && defined(HASHMAGIC)
+ printf("You have Berkeley DB Version 1\n");
exit(0); /* DB version < 2: the coast is clear. */
#else
exit(1); /* <db.h> not Berkeley DB? */
}
EOCP
if $cc $optimize $ccflags $ldflags -o try try.c $libs && ./try; then
- echo 'Looks OK. (Perl supports up to version 1.86).' >&4
+ echo 'Looks OK.' >&4
else
echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
i_db=$undef
#endif
#include <sys/types.h>
#include <db.h>
+
+#ifndef DB_VERSION_MAJOR
u_int32_t hash_cb (ptr, size)
const void *ptr;
size_t size;
{
info.hash = hash_cb;
}
+#endif
EOCP
if $cc $ccflags -c try.c >try.out 2>&1 ; then
if $contains warning try.out >>/dev/null 2>&1 ; then
#endif
#include <sys/types.h>
#include <db.h>
+
+#ifndef DB_VERSION_MAJOR
size_t prefix_cb (key1, key2)
const DBT *key1;
const DBT *key2;
{
info.prefix = prefix_cb;
}
+#endif
EOCP
if $cc $ccflags -c try.c >try.out 2>&1 ; then
if $contains warning try.out >>/dev/null 2>&1 ; then
if $cc $ccflags -c -DGethbadd_addr_t="$xxx" -DGethbadd_alen_t="$yyy" try.c >/dev/null 2>&1 ; then
gethbadd_addr_type="$xxx"
gethbadd_alen_type="$yyy"
- echo "Your system uses $xxx for the 1st argument to gethostbyaddr." >&4
- echo "and the the 2nd argument to gethostbyaddr is $yyy." >&4
+ $cat >&4 <<EOM
+Your system uses $xxx for the 1st argument to gethostbyaddr.
+and the 2nd argument to gethostbyaddr is $yyy.
+EOM
break
fi
done
gethbadd_addr_type="$ans"
# Remove the "const" if needed.
- gethbadd_addr_type=`echo $gethbadd_addr_type | sed 's/^const //'`
+ gethbadd_addr_type=`echo "$gethbadd_addr_type" | sed 's/^const //'`
rp='What is the type for the 2nd argument to gethostbyaddr ?'
dflt="Size_t"
gethbadd_alen_type="$ans"
fi
$rm -f try.[co]
+ else
+ $cat >&4 <<EOM
+Your system uses $gethbadd_addr_type for the 1st argument to gethostbyaddr.
+and the 2nd argument to gethostbyaddr is $gethbadd_alen_type.
+EOM
fi
;;
*) gethbadd_addr_type='void *'
: getnetbyaddr.
case "$d_getnbadd" in
$define)
- if test "X$getnbadd_addr_type" = X -o "X$getnbadd_alen_type" = X; then
+ if test "X$getnbadd_net_type" = X; then
$cat <<EOM
Checking to see what type of arguments are expected by getnetbyaddr().
getnbadd_net_type="$ans"
fi
$rm -f try.[co]
+ else
+ echo "Your system uses $getnbadd_net_type for the 1st argument to getnetbyaddr." >&4
fi
;;
*) getnbadd_net_type='long'
set i_gdbm
eval $setvar
+: test whether pthreads are created in joinable -- aka undetached -- state
+if test "X$usethreads" != X; then
+ if test "X$d_pthreads_created_joinable" = X; then
+ echo >&4 "Checking whether pthreads are created joinable."
+ $cat >try.c <<EOCP
+#include <pthread.h>
+#include <stdio.h>
+int main() {
+ pthread_attr_t attr;
+ int detachstate;
+ printf("%s\n",
+ pthread_attr_init(&attr) == 0 &&
+ pthread_attr_getdetachstate(&attr, &detachstate) == 0 &&
+ detachstate == PTHREAD_CREATE_DETACHED ?
+ "detached" : "joinable");
+ exit(0);
+}
+EOCP
+ if $cc $ccflags $ldflags -o try try.c $libs >/dev/null 2>&1; then
+ yyy=`./try`
+ case "$yyy" in
+ detached)
+ echo "Nope, they aren't."
+ ;;
+ *)
+ echo "Yup, they are."
+ ;;
+ esac
+ else
+ echo "(I can't execute the test program--assuming they are.)"
+ yyy=joinable
+ fi
+ case "$yyy" in
+ detached)
+ val="$undef"
+ ;;
+ *)
+ val="$define"
+ ;;
+ esac
+ set d_pthreads_created_joinable
+ eval $setvar
+ $rm -f try try.*
+ fi
+else
+ d_pthreads_created_joinable="$undef"
+fi
+
+: see whether the various POSIXish _yields exist within given cccmd
+$cat >try.c <<EOP
+#include <pthread.h>
+main() {
+ YIELD();
+ exit(0);
+}
+EOP
+: see if pthread_yield exists within given cccmd,
+: if we do not usethreads this may well end up undef.
+if $cc $ccflags -DYIELD=pthread_yield $ldflags -o try try.c $libs > /dev/null 2>&1; then
+ val="$define"
+ echo 'pthread_yield() found.' >&4
+else
+ val="$undef"
+ echo 'pthread_yield() NOT found.' >&4
+fi
+set d_pthread_yield
+eval $setvar
+
+: see if sched_yield exists within given cccmd,
+: if we do not usethreads this may well end up undef.
+if $cc $ccflags -DYIELD=sched_yield $ldflags -o try try.c $libs > /dev/null 2>&1; then
+ val="$define"
+ echo 'sched_yield() found.' >&4
+else
+ val="$undef"
+ echo 'sched_yield() NOT found.' >&4
+fi
+set d_sched_yield
+eval $setvar
+
+: common to both the pthread_yield and sched_yield tests
+rm -f try try.*
+
echo " "
echo "Looking for extensions..." >&4
cd ../ext
avail_ext=''
for xxx in $known_extensions ; do
case "$xxx" in
- DB_File) case "$i_db" in
+ DB_File|db_file) case "$i_db" in
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- GDBM_File) case "$i_gdbm" in
+ GDBM_File|gdbm_fil) case "$i_gdbm" in
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- NDBM_File) case "$i_ndbm" in
+ NDBM_File|ndbm_fil) case "$i_ndbm" in
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- ODBM_File) case "${i_dbm}${i_rpcsvcdbm}" in
+ ODBM_File|odbm_fil) case "${i_dbm}${i_rpcsvcdbm}" in
*"${define}"*) avail_ext="$avail_ext $xxx" ;;
esac
;;
- POSIX) case "$useposix" in
+ POSIX|posix) case "$useposix" in
true|define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
- Opcode) case "$useopcode" in
+ Opcode|opcode) case "$useopcode" in
true|define|y) avail_ext="$avail_ext $xxx" ;;
esac
;;
- Socket) case "$d_socket" in
+ Socket|socket) case "$d_socket" in
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
- Thread) case "$usethreads" in
+ Thread|thread) case "$usethreads" in
$define) avail_ext="$avail_ext $xxx" ;;
esac
;;
d_pipe='$d_pipe'
d_poll='$d_poll'
d_portable='$d_portable'
+d_pthread_yield='$d_pthread_yield'
+d_pthreads_created_joinable='$d_pthreads_created_joinable'
d_pwage='$d_pwage'
d_pwchange='$d_pwchange'
d_pwclass='$d_pwclass'
d_safebcpy='$d_safebcpy'
d_safemcpy='$d_safemcpy'
d_sanemcmp='$d_sanemcmp'
+d_sched_yield='$d_sched_yield'
d_seekdir='$d_seekdir'
d_select='$d_select'
d_sem='$d_sem'