# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Thu Mar 21 17:43:57 EET 2002 [metaconfig 3.0 PL70]
+# Generated on Tue Apr 9 18:44:25 EET DST 2002 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
fi
fi
case "$ans" in
- [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;;
+ [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no;
+ if $test -f usethreads.cbu; then
+ $cat >&4 <<EOM
+
+*** However, any setting of the C compiler flags (e.g. for thread support)
+*** has been lost. It may be necessary to pass -Dcc=gcc to Configure
+*** (together with e.g. -Dusethreads).
+
+EOM
+ fi;;
esac
fi
fi
;;
next*) osname=next ;;
nonstop-ux) osname=nonstopux ;;
+ openbsd) osname=openbsd
+ osvers="$3"
+ ;;
POSIX-BC | posix-bc ) osname=posix-bc
osvers="$3"
;;
case "$usethreads" in
$define|true|[yY]*) dflt='y';;
-*) dflt='n';;
+*) # Catch case where user specified ithreads or 5005threads but
+ # forgot -Dusethreads (A.D. 4/2002)
+ case "$useithreads$use5005threads" in
+ *$define*) dflt='y' ;;
+ *) dflt='n';;
+ esac
+ ;;
esac
cat <<EOM
$echo $n ".$c"
$grep fprintf libc.tmp > libc.ptf
xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
-xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
+xrun='eval "<libc.tmp $com >libc.list"; echo "done." >&4'
xxx='[ADTSIW]'
if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\
eval $xscan;\
set versiononly
eval $setvar
+case "$versiononly" in
+"$define") inc_version_list=''
+ inc_version_list_init=0
+ ;;
+esac
+
: figure out how to guarantee perl startup
case "$startperl" in
'')
set alarm d_alarm
eval $inlibc
+: see if POSIX threads are available
+set pthread.h i_pthread
+eval $inhdr
+
: define a fucntion to check prototypes
$cat > protochk <<EOSH
$startsh
prototype="$prototype"
define="$define"
rm=$rm
+usethreads=$usethreads
+i_pthread=$i_pthread
+pthread_h_first=$pthread_h_first
EOSH
$cat >> protochk <<'EOSH'
$define) echo "#include <$2>" >> try.c ;;
literal) echo "$2" >> try.c ;;
esac
+ # Extra magic for the benefit of systems that need pthread.h
+ # to be included early to correctly detect threadsafe functions.
+ # Such functions must guarantee themselves, though, that the usethreads
+ # and i_pthread have been defined, before calling protochk.
+ if test "$usethreads" = "$define" -a "$i_pthread" = "$define" -a "$pthread_h_first" = "$define" -a "$pthread_h_done" = ""; then
+ echo "#include <pthread.h>" >> try.c
+ pthread_h_done=yes
+ fi
shift 2
done
test "$prototype" = "$define" && echo '#define CAN_PROTOTYPE' >> try.c
eval $inlibc
case "$d_ctermid_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdio stdio.h"
+ hdrs="$i_systypes sys/types.h define stdio.h "
case "stdio" in
time)
hdrs="$hdrs $i_systime sys/time.h"
define)
case "$endhostent_r_proto" in
''|0) try='int endhostent_r(struct hostent_data*);'
- ./protochk "extern $try" $hdrs && endhostent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endhostent_r_proto=I_D ;;
esac
case "$endhostent_r_proto" in
''|0) try='void endhostent_r(struct hostent_data*);'
- ./protochk "extern $try" $hdrs && endhostent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endhostent_r_proto=V_D ;;
esac
case "$endhostent_r_proto" in
''|0) d_endhostent_r=undef
define)
case "$endnetent_r_proto" in
''|0) try='int endnetent_r(struct netent_data*);'
- ./protochk "extern $try" $hdrs && endnetent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endnetent_r_proto=I_D ;;
esac
case "$endnetent_r_proto" in
''|0) try='void endnetent_r(struct netent_data*);'
- ./protochk "extern $try" $hdrs && endnetent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endnetent_r_proto=V_D ;;
esac
case "$endnetent_r_proto" in
''|0) d_endnetent_r=undef
define)
case "$endprotoent_r_proto" in
''|0) try='int endprotoent_r(struct protoent_data*);'
- ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endprotoent_r_proto=I_D ;;
esac
case "$endprotoent_r_proto" in
''|0) try='void endprotoent_r(struct protoent_data*);'
- ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endprotoent_r_proto=V_D ;;
esac
case "$endprotoent_r_proto" in
''|0) d_endprotoent_r=undef
define)
case "$endservent_r_proto" in
''|0) try='int endservent_r(struct servent_data*);'
- ./protochk "extern $try" $hdrs && endservent_r_proto=I_S ;;
+ ./protochk "extern $try" $hdrs && endservent_r_proto=I_D ;;
esac
case "$endservent_r_proto" in
''|0) try='void endservent_r(struct servent_data*);'
- ./protochk "extern $try" $hdrs && endservent_r_proto=V_S ;;
+ ./protochk "extern $try" $hdrs && endservent_r_proto=V_D ;;
esac
case "$endservent_r_proto" in
''|0) d_endservent_r=undef
set d_off64_t
eval $setvar
-: see if POSIX threads are available
-set pthread.h i_pthread
-eval $inhdr
-
-
-
-
: how to create joinable pthreads
if test "X$usethreads" = "X$define" -a "X$i_pthread" = "X$define"; then
echo " "
set d_telldirproto telldir $i_systypes sys/types.h $i_dirent dirent.h
eval $hasproto
+: see if time exists
+echo " "
+if test "X$d_time" = X -o X"$timetype" = X; then
+ if set time val -f d_time; eval $csym; $val; then
+ echo 'time() found.' >&4
+ val="$define"
+ rp="What is the type returned by time() on this system?"
+ set time_t timetype long stdio.h sys/types.h
+ eval $typedef_ask
+ else
+ echo 'time() not found, hope that will do.' >&4
+ val="$undef"
+ timetype='int';
+ fi
+ set d_time
+ eval $setvar
+fi
+
: see if this is a sys/times.h system
set sys/times.h i_systimes
eval $inhdr
eval $inlibc
case "$d_tmpnam_r" in
"$define")
- hdrs="$i_systypes sys/types.h define stdio.h $i_stdio stdio.h"
+ hdrs="$i_systypes sys/types.h define stdio.h "
case "stdio" in
time)
hdrs="$hdrs $i_systime sys/time.h"
-: see if time exists
-echo " "
-if test "X$d_time" = X -o X"$timetype" = X; then
- if set time val -f d_time; eval $csym; $val; then
- echo 'time() found.' >&4
- val="$define"
- rp="What is the type returned by time() on this system?"
- set time_t timetype long stdio.h sys/types.h
- eval $typedef_ask
- else
- echo 'time() not found, hope that will do.' >&4
- val="$undef"
- timetype='int';
- fi
- set d_time
- eval $setvar
-fi
-
: see what type uids are declared as in the kernel
echo " "
echo "Looking for the type for user ids returned by getuid()."
# Special case: Add in threads/shared since it is not picked up by the
# recursive find above (and adding in general recursive finding breaks
# SDBM_File/sdbm). A.D. 10/25/2001.
-# Encode::XX need explicit mentions for the same reason.
-# --jhi 2002-03-04
-known_extensions="$known_extensions threads/shared Encode/CN Encode/JP Encode/KR Encode/TW"
+known_extensions="$known_extensions threads/shared"
set X $nonxs_extensions
shift
nonxs_extensions="$*"
: Exclude those that are not xs extensions
case "$dflt" in
'') dflt=none;;
+ *) case " $dflt " in
+ *" Encode "*) # Add the subextensions of Encode
+ cd "$rsrc/ext"
+ for xxx in `ls Encode/*/Makefile.PL|awk -F/ '{print $2}'`; do
+ dflt="$dflt Encode/$xxx"
+ done
+ cd "$tdir"
+ ;;
+ esac
+ ;;
esac
rp="What extensions do you wish to include?"
. ./myread