1996-02-13 08:29:09 -08:00
|
|
|
#! /bin/sh
|
|
|
|
|
1999-12-09 10:53:52 -08:00
|
|
|
#########################################################################
|
|
|
|
# #
|
|
|
|
# Objective Caml #
|
|
|
|
# #
|
|
|
|
# Xavier Leroy, projet Cristal, INRIA Rocquencourt #
|
|
|
|
# #
|
|
|
|
# Copyright 1999 Institut National de Recherche en Informatique et #
|
|
|
|
# en Automatique. All rights reserved. This file is distributed #
|
2001-12-07 05:41:02 -08:00
|
|
|
# under the terms of the GNU Library General Public License, with #
|
|
|
|
# the special exception on linking described in file LICENSE. #
|
1999-12-09 10:53:52 -08:00
|
|
|
# #
|
|
|
|
#########################################################################
|
1996-02-13 08:29:09 -08:00
|
|
|
|
1996-02-25 06:45:47 -08:00
|
|
|
# $Id$
|
1996-02-13 08:29:09 -08:00
|
|
|
|
2001-07-14 09:54:17 -07:00
|
|
|
configure_options="$*"
|
1999-03-10 01:51:16 -08:00
|
|
|
prefix=/usr/local
|
|
|
|
bindir=''
|
|
|
|
libdir=''
|
|
|
|
mandir=''
|
1996-02-13 08:29:09 -08:00
|
|
|
manext=1
|
|
|
|
host_type=unknown
|
2000-12-12 02:26:02 -08:00
|
|
|
ccoption=''
|
2007-10-30 05:37:16 -07:00
|
|
|
asoption=''
|
|
|
|
asppoption=''
|
1996-02-13 08:29:09 -08:00
|
|
|
cclibs=''
|
2000-10-27 08:18:24 -07:00
|
|
|
curseslibs=''
|
1998-03-13 11:59:11 -08:00
|
|
|
mathlib='-lm'
|
2001-08-28 07:47:48 -07:00
|
|
|
dllib=''
|
1996-06-19 02:43:01 -07:00
|
|
|
x11_include_dir=''
|
|
|
|
x11_lib_dir=''
|
2001-10-04 01:39:49 -07:00
|
|
|
tk_wanted=yes
|
2003-09-12 00:36:15 -07:00
|
|
|
pthread_wanted=yes
|
1999-11-30 08:07:38 -08:00
|
|
|
tk_defs=''
|
|
|
|
tk_libs=''
|
2002-05-28 20:51:53 -07:00
|
|
|
tk_x11=yes
|
2002-11-15 08:36:39 -08:00
|
|
|
dl_defs=''
|
1999-11-30 08:07:38 -08:00
|
|
|
verbose=no
|
2000-10-27 08:18:24 -07:00
|
|
|
withcurses=yes
|
2001-08-28 07:47:48 -07:00
|
|
|
withsharedlibs=yes
|
2004-05-17 10:10:00 -07:00
|
|
|
gcc_warnings="-Wall"
|
2006-08-18 07:52:19 -07:00
|
|
|
partialld="ld -r"
|
1999-12-09 10:53:52 -08:00
|
|
|
|
2001-12-07 06:23:01 -08:00
|
|
|
# Try to turn internationalization off, can cause config.guess to malfunction!
|
|
|
|
unset LANG
|
2006-04-16 16:28:22 -07:00
|
|
|
unset LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
|
2001-12-07 06:23:01 -08:00
|
|
|
|
2003-08-20 08:10:58 -07:00
|
|
|
# Turn off some MacOS X debugging stuff, same reason
|
|
|
|
unset RC_TRACE_ARCHIVES RC_TRACE_DYLIBS RC_TRACE_PREBINDING_DISABLED
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Parse command-line arguments
|
|
|
|
|
|
|
|
while : ; do
|
|
|
|
case "$1" in
|
|
|
|
"") break;;
|
1999-03-10 01:51:16 -08:00
|
|
|
-prefix|--prefix)
|
|
|
|
prefix=$2; shift;;
|
1997-10-24 08:49:12 -07:00
|
|
|
-bindir|--bindir)
|
|
|
|
bindir=$2; shift;;
|
|
|
|
-libdir|--libdir)
|
|
|
|
libdir=$2; shift;;
|
|
|
|
-mandir|--mandir)
|
2002-04-24 02:26:32 -07:00
|
|
|
case "$2" in
|
|
|
|
*/man[1-9ln])
|
|
|
|
mandir=`echo $2 | sed -e 's|^\(.*\)/man.$|\1|'`
|
|
|
|
manext=`echo $2 | sed -e 's/^.*\(.\)$/\1/'`;;
|
|
|
|
*)
|
|
|
|
mandir=$2
|
|
|
|
manext=1;;
|
|
|
|
esac
|
1997-10-24 08:49:12 -07:00
|
|
|
shift;;
|
|
|
|
-host*|--host*)
|
|
|
|
host_type=$2; shift;;
|
|
|
|
-cc*)
|
2000-12-12 02:26:02 -08:00
|
|
|
ccoption="$2"; shift;;
|
2007-10-30 05:37:16 -07:00
|
|
|
-as)
|
|
|
|
asoption="$2"; shift;;
|
|
|
|
-aspp)
|
|
|
|
asppoption="$2"; shift;;
|
1997-10-24 08:49:12 -07:00
|
|
|
-lib*)
|
2000-10-27 08:18:24 -07:00
|
|
|
cclibs="$2 $cclibs"; shift;;
|
2001-08-28 07:47:48 -07:00
|
|
|
-no-curses)
|
|
|
|
withcurses=no;;
|
|
|
|
-no-shared-libs)
|
|
|
|
withsharedlibs=no;;
|
1997-10-24 08:49:12 -07:00
|
|
|
-x11include*|--x11include*)
|
|
|
|
x11_include_dir=$2; shift;;
|
|
|
|
-x11lib*|--x11lib*)
|
|
|
|
x11_lib_dir=$2; shift;;
|
1997-11-10 10:20:48 -08:00
|
|
|
-with-pthread*|--with-pthread*)
|
2003-07-17 01:38:28 -07:00
|
|
|
;; # Ignored for backward compatibility
|
2003-09-12 00:36:15 -07:00
|
|
|
-no-pthread*|--no-pthread*)
|
|
|
|
pthread_wanted=no;;
|
2002-05-28 20:51:53 -07:00
|
|
|
-no-tk|--no-tk)
|
2001-10-04 01:39:49 -07:00
|
|
|
tk_wanted=no;;
|
2010-01-20 08:26:46 -08:00
|
|
|
-partialld|--partialld)
|
|
|
|
partialld="$2"; shift;;
|
1999-11-30 08:07:38 -08:00
|
|
|
-tkdefs*|--tkdefs*)
|
|
|
|
tk_defs=$2; shift;;
|
|
|
|
-tklibs*|--tklibs*)
|
|
|
|
tk_libs=$2; shift;;
|
2002-05-28 20:51:53 -07:00
|
|
|
-tk-no-x11|--tk-no-x11)
|
2002-07-23 07:12:03 -07:00
|
|
|
tk_x11=no;;
|
2002-11-15 08:36:39 -08:00
|
|
|
-dldefs*|--dldefs*)
|
|
|
|
dl_defs="$2"; shift;;
|
|
|
|
-dllibs*|--dllibs*)
|
|
|
|
dllib="$2"; shift;;
|
1999-11-30 08:07:38 -08:00
|
|
|
-verbose|--verbose)
|
2000-01-07 07:50:42 -08:00
|
|
|
verbose=yes;;
|
1996-02-13 08:29:09 -08:00
|
|
|
*) echo "Unknown option \"$1\"." 1>&2; exit 2;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
1997-10-24 08:49:12 -07:00
|
|
|
# Sanity checks
|
|
|
|
|
1999-03-10 01:51:16 -08:00
|
|
|
case "$prefix" in
|
|
|
|
/*) ;;
|
|
|
|
*) echo "The -prefix directory must be absolute." 1>&2; exit 2;;
|
|
|
|
esac
|
1997-10-24 08:49:12 -07:00
|
|
|
case "$bindir" in
|
|
|
|
/*) ;;
|
1999-03-10 01:51:16 -08:00
|
|
|
"") ;;
|
1997-10-24 08:49:12 -07:00
|
|
|
*) echo "The -bindir directory must be absolute." 1>&2; exit 2;;
|
|
|
|
esac
|
|
|
|
case "$libdir" in
|
|
|
|
/*) ;;
|
1999-03-10 01:51:16 -08:00
|
|
|
"") ;;
|
1997-10-24 08:49:12 -07:00
|
|
|
*) echo "The -libdir directory must be absolute." 1>&2; exit 2;;
|
|
|
|
esac
|
|
|
|
case "$mandir" in
|
|
|
|
/*) ;;
|
1999-03-10 01:51:16 -08:00
|
|
|
"") ;;
|
1997-10-24 08:49:12 -07:00
|
|
|
*) echo "The -mandir directory must be absolute." 1>&2; exit 2;;
|
|
|
|
esac
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Generate the files
|
|
|
|
|
|
|
|
cd config/auto-aux
|
|
|
|
rm -f s.h m.h Makefile
|
|
|
|
touch s.h m.h Makefile
|
|
|
|
|
2001-02-21 19:37:29 -08:00
|
|
|
# Write options to Makefile
|
|
|
|
|
|
|
|
echo "# generated by ./configure $configure_options" >> Makefile
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Where to install
|
|
|
|
|
1999-03-10 01:51:16 -08:00
|
|
|
echo "PREFIX=$prefix" >> Makefile
|
|
|
|
case "$bindir" in
|
|
|
|
"") echo 'BINDIR=$(PREFIX)/bin' >> Makefile
|
|
|
|
bindir="$prefix/bin";;
|
|
|
|
*) echo "BINDIR=$bindir" >> Makefile;;
|
|
|
|
esac
|
|
|
|
case "$libdir" in
|
|
|
|
"") echo 'LIBDIR=$(PREFIX)/lib/ocaml' >> Makefile
|
|
|
|
libdir="$prefix/lib/ocaml";;
|
|
|
|
*) echo "LIBDIR=$libdir" >> Makefile;;
|
|
|
|
esac
|
2002-06-27 04:36:02 -07:00
|
|
|
echo 'STUBLIBDIR=$(LIBDIR)/stublibs' >> Makefile
|
1999-03-10 01:51:16 -08:00
|
|
|
case "$mandir" in
|
2002-04-24 02:26:32 -07:00
|
|
|
"") echo 'MANDIR=$(PREFIX)/man' >> Makefile
|
|
|
|
mandir="$prefix/man";;
|
1999-03-10 01:51:16 -08:00
|
|
|
*) echo "MANDIR=$mandir" >> Makefile;;
|
|
|
|
esac
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "MANEXT=$manext" >> Makefile
|
|
|
|
|
|
|
|
# Determine the system type
|
|
|
|
|
1996-02-25 06:45:47 -08:00
|
|
|
if test "$host_type" = "unknown"; then
|
2001-06-25 07:40:07 -07:00
|
|
|
if host_type=`../gnu/config.guess`; then :; else
|
1996-02-25 06:45:47 -08:00
|
|
|
echo "Cannot guess host type"
|
|
|
|
echo "You must specify one with the -host option"
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
fi
|
2001-06-25 07:40:07 -07:00
|
|
|
if host=`../gnu/config.sub $host_type`; then :; else
|
1996-02-25 06:45:47 -08:00
|
|
|
echo "Please specify the correct host type with the -host option"
|
|
|
|
exit 2
|
|
|
|
fi
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "Configuring for a $host ..."
|
|
|
|
|
|
|
|
# Do we have gcc?
|
|
|
|
|
2000-12-12 02:26:02 -08:00
|
|
|
if test -z "$ccoption"; then
|
1996-02-13 08:29:09 -08:00
|
|
|
if sh ./searchpath gcc; then
|
|
|
|
echo "gcc found"
|
|
|
|
cc=gcc
|
|
|
|
else
|
|
|
|
cc=cc
|
|
|
|
fi
|
2000-12-12 02:26:02 -08:00
|
|
|
else
|
|
|
|
cc="$ccoption"
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
1997-03-21 02:44:35 -08:00
|
|
|
# Check for buggy versions of GCC
|
|
|
|
|
2002-03-11 02:12:43 -08:00
|
|
|
buggycc="no"
|
|
|
|
|
1997-08-22 01:52:38 -07:00
|
|
|
case "$host,$cc" in
|
|
|
|
i[3456]86-*-*,gcc*)
|
1997-03-21 02:44:35 -08:00
|
|
|
case `$cc --version` in
|
1997-08-22 01:52:38 -07:00
|
|
|
2.7.2.1) cat <<'EOF'
|
|
|
|
|
|
|
|
WARNING: you are using gcc version 2.7.2.1 on an Intel x86 processor.
|
|
|
|
This version of gcc is known to generate incorrect code for the
|
|
|
|
Objective Caml runtime system on some Intel x86 machines. (The symptom
|
|
|
|
is a crash of boot/ocamlc when compiling stdlib/pervasives.mli.)
|
|
|
|
In particular, the version of gcc 2.7.2.1 that comes with
|
|
|
|
Linux RedHat 4.x / Intel is affected by this problem.
|
|
|
|
Other Linux distributions might also be affected.
|
|
|
|
If you are using one of these configurations, you are strongly advised
|
2002-03-11 02:12:43 -08:00
|
|
|
to use another version of gcc, such as 2.95, which are
|
1997-08-22 01:52:38 -07:00
|
|
|
known to work well with Objective Caml.
|
|
|
|
|
|
|
|
Press <enter> to proceed or <interrupt> to stop.
|
|
|
|
EOF
|
1997-03-21 02:44:35 -08:00
|
|
|
read reply;;
|
2002-03-11 02:12:43 -08:00
|
|
|
2.96*) cat <<'EOF'
|
|
|
|
|
|
|
|
WARNING: you are using gcc version 2.96 on an Intel x86 processor.
|
|
|
|
Certain patched versions of gcc 2.96 are known to generate incorrect
|
|
|
|
code for the Objective Caml runtime system. (The symptom is a segmentation
|
2002-05-25 01:33:26 -07:00
|
|
|
violation on boot/ocamlc.) Those incorrectly patched versions can be found
|
2002-03-11 02:12:43 -08:00
|
|
|
in RedHat 7.2 and Mandrake 8.0 and 8.1; other Linux distributions
|
|
|
|
might also be affected. (See bug #57760 on bugzilla.redhat.com)
|
|
|
|
|
2003-07-22 00:41:31 -07:00
|
|
|
Auto-configuration will now select gcc compiler flags that work around
|
|
|
|
the problem. Still, if you observe segmentation faults while running
|
|
|
|
ocamlc or ocamlopt, you are advised to try another version of gcc,
|
|
|
|
such as 2.95.3 or 3.2.
|
2002-03-11 02:12:43 -08:00
|
|
|
|
|
|
|
EOF
|
|
|
|
buggycc="gcc.2.96";;
|
2002-11-15 08:36:39 -08:00
|
|
|
|
|
|
|
esac;;
|
1997-03-21 02:44:35 -08:00
|
|
|
esac
|
|
|
|
|
1997-03-11 01:25:23 -08:00
|
|
|
# Configure the bytecode compiler
|
1996-02-13 08:29:09 -08:00
|
|
|
|
1997-03-11 01:25:23 -08:00
|
|
|
bytecc="$cc"
|
2007-11-15 05:21:15 -08:00
|
|
|
mkexe="\$(BYTECC)"
|
1997-03-11 01:25:23 -08:00
|
|
|
bytecccompopts=""
|
|
|
|
bytecclinkopts=""
|
2007-11-06 07:16:56 -08:00
|
|
|
dllccompopts=""
|
2000-08-10 07:41:24 -07:00
|
|
|
ostype="Unix"
|
2000-08-10 02:58:08 -07:00
|
|
|
exe=""
|
2007-11-15 05:21:15 -08:00
|
|
|
iflexdir=""
|
1996-02-13 08:29:09 -08:00
|
|
|
|
1997-03-11 01:25:23 -08:00
|
|
|
case "$bytecc,$host" in
|
1997-05-13 07:02:58 -07:00
|
|
|
cc,*-*-nextstep*)
|
1997-03-11 01:25:23 -08:00
|
|
|
# GNU C extensions disabled, but __GNUC__ still defined!
|
1999-12-09 10:53:52 -08:00
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings -U__GNUC__ -posix"
|
1997-03-11 01:25:23 -08:00
|
|
|
bytecclinkopts="-posix";;
|
2001-12-04 02:54:14 -08:00
|
|
|
*,*-*-rhapsody*)
|
1998-03-13 11:59:11 -08:00
|
|
|
# Almost the same as NeXTStep
|
1999-12-09 10:53:52 -08:00
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings -DSHRINKED_GNUC"
|
1998-03-13 11:59:11 -08:00
|
|
|
mathlib="";;
|
2001-12-04 02:54:14 -08:00
|
|
|
*,*-*-darwin*)
|
2002-01-18 07:13:26 -08:00
|
|
|
bytecccompopts="-fno-defer-pop -no-cpp-precomp $gcc_warnings"
|
2006-06-29 02:45:10 -07:00
|
|
|
mathlib=""
|
2006-08-18 07:52:19 -07:00
|
|
|
# Tell gcc that we can use 32-bit code addresses for threaded code
|
2008-12-03 10:09:09 -08:00
|
|
|
# unless we are compiled for a shared library (-fPIC option)
|
|
|
|
echo "#ifndef __PIC__" >> m.h
|
|
|
|
echo "# define ARCH_CODE32" >> m.h
|
|
|
|
echo "#endif" >> m.h;;
|
1999-05-18 11:46:17 -07:00
|
|
|
*,*-*-beos*)
|
1999-12-09 10:53:52 -08:00
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings"
|
1999-05-18 11:46:17 -07:00
|
|
|
# No -lm library
|
|
|
|
mathlib="";;
|
2001-07-02 04:35:04 -07:00
|
|
|
gcc,alpha*-*-osf*)
|
1999-12-09 10:53:52 -08:00
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings"
|
2000-07-27 04:12:54 -07:00
|
|
|
if cc="$bytecc" sh ./hasgot -mieee; then
|
|
|
|
bytecccompopts="-mieee $bytecccompopts";
|
|
|
|
fi
|
2000-03-10 06:30:16 -08:00
|
|
|
# Put code and static data in lower 4GB
|
|
|
|
bytecclinkopts="-Wl,-T,12000000 -Wl,-D,14000000"
|
|
|
|
# Tell gcc that we can use 32-bit code addresses for threaded code
|
|
|
|
echo "#define ARCH_CODE32" >> m.h;;
|
2001-07-02 04:35:04 -07:00
|
|
|
cc,alpha*-*-osf*)
|
2000-07-27 04:03:20 -07:00
|
|
|
bytecccompopts="-std1 -ieee";;
|
2001-11-23 06:55:25 -08:00
|
|
|
gcc,alpha*-*-linux*)
|
|
|
|
if cc="$bytecc" sh ./hasgot -mieee; then
|
|
|
|
bytecccompopts="-mieee $bytecccompopts";
|
|
|
|
fi;;
|
1997-03-21 02:44:35 -08:00
|
|
|
cc,mips-*-irix6*)
|
1999-03-09 02:02:40 -08:00
|
|
|
# Add -n32 flag to ensure compatibility with native-code compiler
|
|
|
|
bytecccompopts="-n32"
|
1997-03-11 01:25:23 -08:00
|
|
|
# Turn off warning "unused library"
|
1999-03-09 02:02:40 -08:00
|
|
|
bytecclinkopts="-n32 -Wl,-woff,84";;
|
1997-03-21 02:44:35 -08:00
|
|
|
cc*,mips-*-irix6*)
|
1997-12-02 05:04:03 -08:00
|
|
|
# (For those who want to force "cc -64")
|
1997-03-11 01:25:23 -08:00
|
|
|
# Turn off warning "unused library"
|
|
|
|
bytecclinkopts="-Wl,-woff,84";;
|
2001-06-25 07:40:07 -07:00
|
|
|
*,alpha*-*-unicos*)
|
1998-06-23 09:47:02 -07:00
|
|
|
# For the Cray T3E
|
|
|
|
bytecccompopts="-DUMK";;
|
2004-08-20 10:04:35 -07:00
|
|
|
gcc*,powerpc-*-aix*)
|
2000-03-17 08:45:18 -08:00
|
|
|
# Avoid name-space pollution by requiring Unix98-conformant includes
|
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings -D_XOPEN_SOURCE=500";;
|
2004-08-20 10:04:35 -07:00
|
|
|
*,powerpc-*-aix*)
|
2000-03-17 08:45:18 -08:00
|
|
|
bytecccompopts="-D_XOPEN_SOURCE=500";;
|
2000-08-10 02:58:08 -07:00
|
|
|
gcc*,*-*-cygwin*)
|
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings -U_WIN32"
|
2007-11-06 07:16:56 -08:00
|
|
|
dllccompopts="-D_WIN32 -DCAML_DLL"
|
2010-01-20 08:26:46 -08:00
|
|
|
if test $withsharedlibs = yes; then
|
|
|
|
flexlink="flexlink -chain cygwin -merge-manifest"
|
|
|
|
flexdir=`$flexlink -where | dos2unix`
|
|
|
|
if test -z "$flexdir"; then
|
|
|
|
echo "flexlink not found: native shared libraries won't be available"
|
|
|
|
withsharedlibs=no
|
|
|
|
else
|
|
|
|
iflexdir="-I\"$flexdir\""
|
|
|
|
mkexe="$flexlink -exe"
|
|
|
|
fi
|
2009-05-20 04:52:42 -07:00
|
|
|
fi
|
2000-08-10 02:58:08 -07:00
|
|
|
exe=".exe"
|
|
|
|
ostype="Cygwin";;
|
2003-06-30 01:28:48 -07:00
|
|
|
gcc*,x86_64-*-linux*)
|
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings"
|
|
|
|
# Tell gcc that we can use 32-bit code addresses for threaded code
|
2006-01-04 08:55:50 -08:00
|
|
|
# unless we are compiled for a shared library (-fPIC option)
|
|
|
|
echo "#ifndef __PIC__" >> m.h
|
|
|
|
echo "# define ARCH_CODE32" >> m.h
|
|
|
|
echo "#endif" >> m.h;;
|
2000-03-17 08:45:18 -08:00
|
|
|
gcc*)
|
|
|
|
bytecccompopts="-fno-defer-pop $gcc_warnings";;
|
1997-03-11 01:25:23 -08:00
|
|
|
esac
|
|
|
|
|
|
|
|
# Configure compiler to use in further tests
|
|
|
|
|
2001-08-03 05:35:49 -07:00
|
|
|
cc="$bytecc -O $bytecclinkopts"
|
1999-11-30 08:07:38 -08:00
|
|
|
export cc cclibs verbose
|
1996-02-13 08:29:09 -08:00
|
|
|
|
1997-09-02 05:55:01 -07:00
|
|
|
# Check C compiler
|
|
|
|
|
|
|
|
sh ./runtest ansi.c
|
|
|
|
case $? in
|
|
|
|
0) echo "The C compiler is ANSI-compliant.";;
|
|
|
|
1) echo "The C compiler $cc is not ANSI-compliant."
|
|
|
|
echo "You need an ANSI C compiler to build Objective Caml."
|
|
|
|
exit 2;;
|
1999-05-18 11:46:17 -07:00
|
|
|
*) echo "Unable to compile the test program."
|
1997-09-02 05:55:01 -07:00
|
|
|
echo "Make sure the C compiler $cc is properly installed."
|
|
|
|
exit 2;;
|
|
|
|
esac
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Check the sizes of data types
|
|
|
|
|
|
|
|
echo "Checking the sizes of integers and pointers..."
|
1997-04-11 07:27:45 -07:00
|
|
|
set `sh ./runtest sizes.c`
|
1998-06-23 06:39:54 -07:00
|
|
|
case "$2,$3" in
|
|
|
|
4,4) echo "OK, this is a regular 32 bit architecture."
|
2006-05-31 01:16:34 -07:00
|
|
|
echo "#undef ARCH_SIXTYFOUR" >> m.h
|
|
|
|
arch64=false;;
|
1998-06-23 06:39:54 -07:00
|
|
|
*,8) echo "Wow! A 64 bit architecture!"
|
2006-05-31 01:16:34 -07:00
|
|
|
echo "#define ARCH_SIXTYFOUR" >> m.h
|
|
|
|
arch64=true;;
|
1998-06-23 06:39:54 -07:00
|
|
|
*,*) echo "This architecture seems to be neither 32 bits nor 64 bits."
|
|
|
|
echo "Objective Caml won't run on this architecture."
|
|
|
|
exit 2;;
|
|
|
|
*) echo "Unable to compile the test program."
|
|
|
|
echo "Make sure the C compiler $cc is properly installed."
|
|
|
|
exit 2;;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
1998-06-23 06:39:54 -07:00
|
|
|
if test $1 != 4 && test $2 != 4 && test $4 != 4; then
|
|
|
|
echo "Sorry, we can't find a 32-bit integer type"
|
|
|
|
echo "(sizeof(short) = $4, sizeof(int) = $1, sizeof(long) = $2)"
|
|
|
|
echo "Objective Caml won't run on this architecture."
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "#define SIZEOF_INT $1" >> m.h
|
|
|
|
echo "#define SIZEOF_LONG $2" >> m.h
|
2005-09-22 07:21:50 -07:00
|
|
|
echo "#define SIZEOF_PTR $3" >> m.h
|
1998-06-23 06:39:54 -07:00
|
|
|
echo "#define SIZEOF_SHORT $4" >> m.h
|
1996-02-13 08:29:09 -08:00
|
|
|
|
2000-02-14 05:23:00 -08:00
|
|
|
if test $2 = 8; then
|
2000-02-11 07:47:09 -08:00
|
|
|
echo "#define ARCH_INT64_TYPE long" >> m.h
|
|
|
|
echo "#define ARCH_UINT64_TYPE unsigned long" >> m.h
|
|
|
|
echo '#define ARCH_INT64_PRINTF_FORMAT "l"' >> m.h
|
2002-05-25 01:33:26 -07:00
|
|
|
int64_native=true
|
2000-02-11 07:47:09 -08:00
|
|
|
else
|
2000-02-11 04:03:31 -08:00
|
|
|
sh ./runtest longlong.c
|
|
|
|
case $? in
|
2001-07-14 09:54:17 -07:00
|
|
|
0) echo "64-bit \"long long\" integer type found (printf with \"%ll\")."
|
2000-02-11 07:47:09 -08:00
|
|
|
echo "#define ARCH_INT64_TYPE long long" >> m.h
|
|
|
|
echo "#define ARCH_UINT64_TYPE unsigned long long" >> m.h
|
2000-03-10 09:36:31 -08:00
|
|
|
echo '#define ARCH_INT64_PRINTF_FORMAT "ll"' >> m.h
|
2002-05-25 01:33:26 -07:00
|
|
|
int64_native=true;;
|
2001-07-14 09:54:17 -07:00
|
|
|
1) echo "64-bit \"long long\" integer type found (printf with \"%q\")."
|
2001-03-07 07:34:00 -08:00
|
|
|
echo "#define ARCH_INT64_TYPE long long" >> m.h
|
|
|
|
echo "#define ARCH_UINT64_TYPE unsigned long long" >> m.h
|
|
|
|
echo '#define ARCH_INT64_PRINTF_FORMAT "q"' >> m.h
|
2002-05-25 01:33:26 -07:00
|
|
|
int64_native=true;;
|
|
|
|
2) echo "64-bit \"long long\" integer type found (but no printf)."
|
|
|
|
echo "#define ARCH_INT64_TYPE long long" >> m.h
|
|
|
|
echo "#define ARCH_UINT64_TYPE unsigned long long" >> m.h
|
|
|
|
echo '#undef ARCH_INT64_PRINTF_FORMAT' >> m.h
|
|
|
|
int64_native=true;;
|
|
|
|
*) echo "No suitable 64-bit integer type found, will use software emulation."
|
|
|
|
echo "#undef ARCH_INT64_TYPE" >> m.h
|
|
|
|
echo "#undef ARCH_UINT64_TYPE" >> m.h
|
|
|
|
echo '#undef ARCH_INT64_PRINTF_FORMAT' >> m.h
|
|
|
|
int64_native=false;;
|
2000-02-11 04:03:31 -08:00
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2005-09-24 02:19:09 -07:00
|
|
|
if test $3 = 8 && test $int64_native = false; then
|
|
|
|
echo "This architecture has 64-bit pointers but no 64-bit integer type."
|
|
|
|
echo "Objective Caml won't run on this architecture."
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Determine endianness
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
sh ./runtest endian.c
|
1996-02-13 08:29:09 -08:00
|
|
|
case $? in
|
|
|
|
0) echo "This is a big-endian architecture."
|
1996-07-01 05:43:28 -07:00
|
|
|
echo "#define ARCH_BIG_ENDIAN" >> m.h;;
|
1996-02-13 08:29:09 -08:00
|
|
|
1) echo "This is a little-endian architecture."
|
1996-07-01 05:43:28 -07:00
|
|
|
echo "#undef ARCH_BIG_ENDIAN" >> m.h;;
|
1996-02-13 08:29:09 -08:00
|
|
|
2) echo "This architecture seems to be neither big endian nor little endian."
|
1996-04-30 07:53:58 -07:00
|
|
|
echo "Objective Caml won't run on this architecture."
|
1996-02-13 08:29:09 -08:00
|
|
|
exit 2;;
|
|
|
|
*) echo "Something went wrong during endianness determination."
|
|
|
|
echo "You'll have to figure out endianness yourself"
|
1996-07-01 05:43:28 -07:00
|
|
|
echo "(option ARCH_BIG_ENDIAN in m.h).";;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
|
|
|
|
|
|
|
# Determine alignment constraints
|
|
|
|
|
2003-03-10 09:04:00 -08:00
|
|
|
case "$host" in
|
2006-01-04 08:55:50 -08:00
|
|
|
sparc*-*-*|hppa*-*-*)
|
2003-03-10 09:04:00 -08:00
|
|
|
# On Sparc V9 with certain versions of gcc, determination of double
|
2003-10-21 06:17:06 -07:00
|
|
|
# alignment is not reliable (PR#1521), hence force it.
|
|
|
|
# Same goes for hppa.
|
2004-06-12 07:50:52 -07:00
|
|
|
# But there's a knack (PR#2572):
|
2006-04-16 16:28:22 -07:00
|
|
|
# if we're in 64-bit mode (sizeof(long) == 8),
|
2004-06-12 07:50:52 -07:00
|
|
|
# we must not doubleword-align floats...
|
|
|
|
if test $2 = 8; then
|
|
|
|
echo "Doubles can be word-aligned."
|
|
|
|
echo "#undef ARCH_ALIGN_DOUBLE" >> m.h
|
|
|
|
else
|
|
|
|
echo "Doubles must be doubleword-aligned."
|
|
|
|
echo "#define ARCH_ALIGN_DOUBLE" >> m.h
|
|
|
|
fi;;
|
2003-03-10 09:04:00 -08:00
|
|
|
*)
|
|
|
|
sh ./runtest dblalign.c
|
|
|
|
case $? in
|
|
|
|
0) echo "Doubles can be word-aligned."
|
|
|
|
echo "#undef ARCH_ALIGN_DOUBLE" >> m.h;;
|
|
|
|
1) echo "Doubles must be doubleword-aligned."
|
|
|
|
echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
|
|
|
|
*) echo "Something went wrong during alignment determination for doubles."
|
|
|
|
echo "I'm going to assume this architecture has alignment constraints over doubles."
|
|
|
|
echo "That's a safe bet: Objective Caml will work even if"
|
|
|
|
echo "this architecture has actually no alignment constraints."
|
|
|
|
echo "#define ARCH_ALIGN_DOUBLE" >> m.h;;
|
|
|
|
esac;;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
|
|
|
|
2002-05-25 01:33:26 -07:00
|
|
|
if $int64_native; then
|
2004-05-16 02:09:23 -07:00
|
|
|
case "$host" in
|
2006-01-04 08:55:50 -08:00
|
|
|
sparc*-*-*|hppa*-*-*)
|
2004-06-12 07:50:52 -07:00
|
|
|
if test $2 = 8; then
|
|
|
|
echo "64-bit integers can be word-aligned."
|
|
|
|
echo "#undef ARCH_ALIGN_INT64" >> m.h
|
|
|
|
else
|
|
|
|
echo "64-bit integers must be doubleword-aligned."
|
|
|
|
echo "#define ARCH_ALIGN_INT64" >> m.h
|
|
|
|
fi;;
|
2004-05-16 02:09:23 -07:00
|
|
|
*)
|
|
|
|
sh ./runtest int64align.c
|
|
|
|
case $? in
|
|
|
|
0) echo "64-bit integers can be word-aligned."
|
|
|
|
echo "#undef ARCH_ALIGN_INT64" >> m.h;;
|
|
|
|
1) echo "64-bit integers must be doubleword-aligned."
|
|
|
|
echo "#define ARCH_ALIGN_INT64" >> m.h;;
|
|
|
|
*) echo "Something went wrong during alignment determination for 64-bit integers."
|
|
|
|
echo "I'm going to assume this architecture has alignment constraints."
|
|
|
|
echo "That's a safe bet: Objective Caml will work even if"
|
|
|
|
echo "this architecture has actually no alignment constraints."
|
|
|
|
echo "#define ARCH_ALIGN_INT64" >> m.h;;
|
|
|
|
esac
|
2000-03-10 09:36:31 -08:00
|
|
|
esac
|
2002-05-25 01:33:26 -07:00
|
|
|
else
|
|
|
|
echo "#undef ARCH_ALIGN_INT64" >> m.h
|
2000-03-10 09:36:31 -08:00
|
|
|
fi
|
|
|
|
|
2001-11-27 02:17:36 -08:00
|
|
|
# Check semantics of division and modulus
|
|
|
|
|
|
|
|
sh ./runtest divmod.c
|
|
|
|
case $? in
|
|
|
|
0) echo "Native division and modulus have round-towards-zero semantics, will use them."
|
|
|
|
echo "#undef NONSTANDARD_DIV_MOD" >> m.h;;
|
|
|
|
1) echo "Native division and modulus do not have round-towards-zero semantics, will use software emulation."
|
|
|
|
echo "#define NONSTANDARD_DIV_MOD" >> m.h;;
|
|
|
|
*) echo "Something went wrong while checking native division and modulus, please report it."
|
|
|
|
echo "#define NONSTANDARD_DIV_MOD" >> m.h;;
|
|
|
|
esac
|
|
|
|
|
2001-08-28 07:47:48 -07:00
|
|
|
# Shared library support
|
|
|
|
|
|
|
|
shared_libraries_supported=false
|
2002-11-15 08:36:39 -08:00
|
|
|
dl_needs_underscore=false
|
2001-08-28 07:47:48 -07:00
|
|
|
sharedcccompopts=''
|
|
|
|
mksharedlib=''
|
|
|
|
byteccrpath=''
|
2001-10-30 01:32:32 -08:00
|
|
|
mksharedlibrpath=''
|
2007-11-06 07:16:56 -08:00
|
|
|
natdynlinkopts=""
|
|
|
|
cmxs="cmxa"
|
2001-08-28 07:47:48 -07:00
|
|
|
|
|
|
|
if test $withsharedlibs = "yes"; then
|
|
|
|
case "$host" in
|
2007-11-06 07:16:56 -08:00
|
|
|
*-*-cygwin*)
|
2007-11-07 02:26:53 -08:00
|
|
|
cmxs="cmxs"
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$flexlink"
|
2007-11-15 07:18:28 -08:00
|
|
|
mkmaindll="$flexlink -maindll"
|
2007-11-06 07:16:56 -08:00
|
|
|
shared_libraries_supported=true;;
|
2007-10-08 07:19:34 -07:00
|
|
|
*-*-linux-gnu|*-*-linux|*-*-freebsd[3-9]*|*-*-openbsd*|*-*-netbsd*|*-*-gnu*)
|
2007-11-07 02:26:53 -08:00
|
|
|
cmxs="cmxs"
|
2001-08-28 07:47:48 -07:00
|
|
|
sharedcccompopts="-fPIC"
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$bytecc -shared"
|
2001-08-28 07:47:48 -07:00
|
|
|
bytecclinkopts="$bytecclinkopts -Wl,-E"
|
|
|
|
byteccrpath="-Wl,-rpath,"
|
2001-10-30 01:32:32 -08:00
|
|
|
mksharedlibrpath="-Wl,-rpath,"
|
2007-11-06 07:16:56 -08:00
|
|
|
natdynlinkopts="-Wl,-E"
|
2001-08-28 07:47:48 -07:00
|
|
|
shared_libraries_supported=true;;
|
|
|
|
alpha*-*-osf*)
|
|
|
|
case "$bytecc" in
|
2004-04-18 01:59:03 -07:00
|
|
|
gcc*)
|
|
|
|
sharedcccompopts="-fPIC"
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$bytecc -shared"
|
2004-04-18 01:59:03 -07:00
|
|
|
byteccrpath="-Wl,-rpath,"
|
|
|
|
mksharedlibrpath="-Wl,-rpath,"
|
|
|
|
shared_libraries_supported=true;;
|
|
|
|
cc*)
|
|
|
|
sharedcccompopts=""
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="ld -shared -expect_unresolved '*'"
|
2004-04-18 01:59:03 -07:00
|
|
|
byteccrpath="-Wl,-rpath,"
|
|
|
|
mksharedlibrpath="-rpath "
|
|
|
|
shared_libraries_supported=true;;
|
|
|
|
esac;;
|
2001-09-05 03:44:19 -07:00
|
|
|
*-*-solaris2*)
|
2001-08-28 07:47:48 -07:00
|
|
|
case "$bytecc" in
|
|
|
|
gcc*)
|
|
|
|
sharedcccompopts="-fPIC"
|
2001-10-25 04:31:12 -07:00
|
|
|
if sh ./solaris-ld; then
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$bytecc -shared"
|
2001-12-20 16:26:38 -08:00
|
|
|
byteccrpath="-R"
|
2001-10-30 01:32:32 -08:00
|
|
|
mksharedlibrpath="-R"
|
2001-09-05 03:44:19 -07:00
|
|
|
else
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$bytecc -shared"
|
2001-10-25 04:31:12 -07:00
|
|
|
bytecclinkopts="$bytecclinkopts -Wl,-E"
|
2008-04-15 23:50:31 -07:00
|
|
|
natdynlinkopts="-Wl,-E"
|
2001-10-25 04:31:12 -07:00
|
|
|
byteccrpath="-Wl,-rpath,"
|
2001-12-20 16:26:38 -08:00
|
|
|
mksharedlibrpath="-Wl,-rpath,"
|
2001-10-25 04:31:12 -07:00
|
|
|
fi
|
2002-07-23 07:12:03 -07:00
|
|
|
shared_libraries_supported=true;;
|
2001-08-28 07:47:48 -07:00
|
|
|
*)
|
|
|
|
sharedcccompopts="-KPIC"
|
2001-12-20 16:26:38 -08:00
|
|
|
byteccrpath="-R"
|
|
|
|
mksharedlibrpath="-R"
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="/usr/ccs/bin/ld -G"
|
2002-07-23 07:12:03 -07:00
|
|
|
shared_libraries_supported=true;;
|
2001-08-28 07:47:48 -07:00
|
|
|
esac;;
|
2002-05-25 01:33:26 -07:00
|
|
|
mips*-*-irix[56]*)
|
2001-08-28 07:47:48 -07:00
|
|
|
case "$bytecc" in
|
|
|
|
cc*) sharedcccompopts="";;
|
|
|
|
gcc*) sharedcccompopts="-fPIC";;
|
|
|
|
esac
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="ld -shared -rdata_shared"
|
2001-08-28 07:47:48 -07:00
|
|
|
byteccrpath="-Wl,-rpath,"
|
2001-10-30 01:32:32 -08:00
|
|
|
mksharedlibrpath="-rpath "
|
2001-08-28 07:47:48 -07:00
|
|
|
shared_libraries_supported=true;;
|
2010-03-25 07:51:49 -07:00
|
|
|
i[3456]86-*-darwin[4-9]*)
|
2008-12-03 10:09:09 -08:00
|
|
|
mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress -read_only_relocs suppress"
|
2007-11-12 09:26:00 -08:00
|
|
|
bytecccompopts="$dl_defs $bytecccompopts"
|
|
|
|
dl_needs_underscore=false
|
|
|
|
shared_libraries_supported=true;;
|
2006-08-30 02:40:56 -07:00
|
|
|
*-apple-darwin*)
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$bytecc -bundle -flat_namespace -undefined suppress"
|
2003-01-09 04:01:51 -08:00
|
|
|
bytecccompopts="$dl_defs $bytecccompopts"
|
2007-11-12 09:26:00 -08:00
|
|
|
dl_needs_underscore=false
|
2003-01-09 04:01:51 -08:00
|
|
|
shared_libraries_supported=true;;
|
2007-11-10 04:29:28 -08:00
|
|
|
m88k-*-openbsd*)
|
|
|
|
shared_libraries_supported=false;;
|
|
|
|
vax-*-openbsd*)
|
|
|
|
shared_libraries_supported=false;;
|
|
|
|
*-*-openbsd*)
|
|
|
|
sharedcccompopts="-fPIC"
|
2007-11-15 05:21:15 -08:00
|
|
|
mksharedlib="$bytecc -shared"
|
2007-11-10 04:29:28 -08:00
|
|
|
bytecclinkopts="$bytecclinkopts -Wl,-E"
|
2008-04-15 23:50:31 -07:00
|
|
|
natdynlinkopts="-Wl,-E"
|
2007-11-10 04:29:28 -08:00
|
|
|
byteccrpath="-Wl,-rpath,"
|
|
|
|
mksharedlibrpath="-Wl,-rpath,"
|
|
|
|
shared_libraries_supported=true;;
|
2001-08-28 07:47:48 -07:00
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2007-11-15 07:18:28 -08:00
|
|
|
if test -z "$mkmaindll"; then
|
|
|
|
mkmaindll=$mksharedlib
|
|
|
|
fi
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Configure the native-code compiler
|
|
|
|
|
|
|
|
arch=none
|
|
|
|
model=default
|
|
|
|
system=unknown
|
|
|
|
|
|
|
|
case "$host" in
|
2001-07-02 04:35:04 -07:00
|
|
|
alpha*-*-osf*) arch=alpha; system=digital;;
|
|
|
|
alpha*-*-linux*) arch=alpha; system=linux;;
|
2006-04-16 16:28:22 -07:00
|
|
|
alpha*-*-gnu*) arch=alpha; system=gnu;;
|
2001-07-02 04:35:04 -07:00
|
|
|
alpha*-*-freebsd*) arch=alpha; system=freebsd;;
|
|
|
|
alpha*-*-netbsd*) arch=alpha; system=netbsd;;
|
|
|
|
alpha*-*-openbsd*) arch=alpha; system=openbsd;;
|
2003-01-03 08:02:12 -08:00
|
|
|
sparc*-*-sunos4.*) arch=sparc; system=sunos;;
|
|
|
|
sparc*-*-solaris2.*) arch=sparc; system=solaris;;
|
|
|
|
sparc*-*-*bsd*) arch=sparc; system=bsd;;
|
|
|
|
sparc*-*-linux*) arch=sparc; system=linux;;
|
2006-04-16 16:28:22 -07:00
|
|
|
sparc*-*-gnu*) arch=sparc; system=gnu;;
|
1999-10-14 06:34:17 -07:00
|
|
|
i[3456]86-*-linux*) arch=i386; system=linux_`sh ./runtest elf.c`;;
|
|
|
|
i[3456]86-*-*bsd*) arch=i386; system=bsd_`sh ./runtest elf.c`;;
|
1996-02-13 08:29:09 -08:00
|
|
|
i[3456]86-*-nextstep*) arch=i386; system=nextstep;;
|
2009-05-20 04:52:42 -07:00
|
|
|
i[3456]86-*-solaris*) if $arch64; then
|
|
|
|
arch=amd64; system=solaris
|
|
|
|
else
|
|
|
|
arch=i386; system=solaris
|
|
|
|
fi;;
|
1999-05-18 11:46:17 -07:00
|
|
|
i[3456]86-*-beos*) arch=i386; system=beos;;
|
2000-08-10 02:58:08 -07:00
|
|
|
i[3456]86-*-cygwin*) arch=i386; system=cygwin;;
|
2008-12-03 10:09:09 -08:00
|
|
|
i[3456]86-*-darwin*) if $arch64; then
|
|
|
|
arch=amd64; system=macosx
|
|
|
|
else
|
|
|
|
arch=i386; system=macosx
|
|
|
|
fi;;
|
2006-04-16 16:28:22 -07:00
|
|
|
i[3456]86-*-gnu*) arch=i386; system=gnu;;
|
1997-03-21 02:44:35 -08:00
|
|
|
mips-*-irix6*) arch=mips; system=irix;;
|
1996-06-23 02:27:14 -07:00
|
|
|
hppa1.1-*-hpux*) arch=hppa; system=hpux;;
|
2003-08-20 04:54:24 -07:00
|
|
|
hppa2.0*-*-hpux*) arch=hppa; system=hpux;;
|
2006-04-16 16:28:22 -07:00
|
|
|
hppa*-*-linux*) arch=hppa; system=linux;;
|
|
|
|
hppa*-*-gnu*) arch=hppa; system=gnu;;
|
2008-01-11 08:13:18 -08:00
|
|
|
powerpc*-*-linux*) arch=power; model=ppc; system=elf;;
|
2006-09-20 10:44:05 -07:00
|
|
|
powerpc-*-netbsd*) arch=power; model=ppc; system=elf;;
|
1998-03-13 11:59:11 -08:00
|
|
|
powerpc-*-rhapsody*) arch=power; model=ppc; system=rhapsody;;
|
2006-05-31 01:16:34 -07:00
|
|
|
powerpc-*-darwin*) arch=power; system=rhapsody
|
|
|
|
if $arch64; then model=ppc64; else model=ppc; fi;;
|
2001-06-25 07:40:07 -07:00
|
|
|
arm*-*-linux*) arch=arm; system=linux;;
|
2006-04-16 16:28:22 -07:00
|
|
|
arm*-*-gnu*) arch=arm; system=gnu;;
|
2000-06-30 09:37:42 -07:00
|
|
|
ia64-*-linux*) arch=ia64; system=linux;;
|
2006-04-16 16:28:22 -07:00
|
|
|
ia64-*-gnu*) arch=ia64; system=gnu;;
|
2004-02-02 14:05:37 -08:00
|
|
|
ia64-*-freebsd*) arch=ia64; system=freebsd;;
|
2003-06-30 01:28:48 -07:00
|
|
|
x86_64-*-linux*) arch=amd64; system=linux;;
|
2006-04-16 16:28:22 -07:00
|
|
|
x86_64-*-gnu*) arch=amd64; system=gnu;;
|
2004-05-16 02:09:23 -07:00
|
|
|
x86_64-*-freebsd*) arch=amd64; system=freebsd;;
|
2005-11-08 06:00:23 -08:00
|
|
|
x86_64-*-netbsd*) arch=amd64; system=netbsd;;
|
2004-07-13 05:19:15 -07:00
|
|
|
x86_64-*-openbsd*) arch=amd64; system=openbsd;;
|
2008-12-03 10:09:09 -08:00
|
|
|
x86_64-*-darwin9.5) arch=amd64; system=macosx;;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
|
|
|
|
2008-01-11 08:13:18 -08:00
|
|
|
# Some platforms exist both in 32-bit and 64-bit variants, not distinguished
|
|
|
|
# by $host. Turn off native code compilation on platforms where 64-bit mode
|
|
|
|
# is not supported. (PR#4441)
|
|
|
|
|
|
|
|
if $arch64; then
|
|
|
|
case "$arch,$model" in
|
|
|
|
sparc,default|mips,default|hppa,default|power,ppc)
|
|
|
|
arch=none; model=default; system=unknown;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
|
2000-12-12 02:26:02 -08:00
|
|
|
if test -z "$ccoption"; then
|
|
|
|
case "$arch,$system,$cc" in
|
|
|
|
alpha,digital,gcc*) nativecc=cc;;
|
|
|
|
mips,*,gcc*) nativecc=cc;;
|
|
|
|
*) nativecc="$bytecc";;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
nativecc="$ccoption"
|
|
|
|
fi
|
1996-02-13 08:29:09 -08:00
|
|
|
|
1997-02-03 06:41:42 -08:00
|
|
|
nativecccompopts=''
|
|
|
|
nativecclinkopts=''
|
2001-08-28 07:47:48 -07:00
|
|
|
nativeccrpath="$byteccrpath"
|
1997-02-03 06:41:42 -08:00
|
|
|
|
2000-02-10 00:42:47 -08:00
|
|
|
case "$arch,$nativecc,$system,$host_type" in
|
|
|
|
alpha,cc*,digital,*) nativecccompopts=-std1;;
|
|
|
|
mips,cc*,irix,*) nativecccompopts=-n32
|
|
|
|
nativecclinkopts="-n32 -Wl,-woff,84";;
|
|
|
|
*,*,nextstep,*) nativecccompopts="$gcc_warnings -U__GNUC__ -posix"
|
|
|
|
nativecclinkopts="-posix";;
|
2004-07-13 05:19:15 -07:00
|
|
|
*,*,rhapsody,*darwin[1-5].*)
|
|
|
|
nativecccompopts="$gcc_warnings -DSHRINKED_GNUC";;
|
2006-08-18 07:52:19 -07:00
|
|
|
*,*,rhapsody,*) nativecccompopts="$gcc_warnings -DDARWIN_VERSION_6 $dl_defs"
|
|
|
|
if $arch64; then partialld="ld -r -arch ppc64"; fi;;
|
2000-08-10 02:58:08 -07:00
|
|
|
*,gcc*,cygwin,*) nativecccompopts="$gcc_warnings -U_WIN32";;
|
2008-12-03 10:09:09 -08:00
|
|
|
amd64,gcc*,macosx,*) partialld="ld -r -arch x86_64";;
|
2009-05-20 04:52:42 -07:00
|
|
|
amd64,gcc*,solaris,*) partialld="ld -r -m elf_x86_64";;
|
2000-02-10 00:42:47 -08:00
|
|
|
*,gcc*,*,*) nativecccompopts="$gcc_warnings";;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
|
|
|
|
1998-08-06 07:25:24 -07:00
|
|
|
asppprofflags='-DPROFILING'
|
1996-09-18 06:24:56 -07:00
|
|
|
|
|
|
|
case "$arch,$model,$system" in
|
2007-10-30 05:37:16 -07:00
|
|
|
alpha,*,digital) as='as -O2 -nocpp'
|
|
|
|
aspp='as -O2'
|
1998-08-06 07:25:24 -07:00
|
|
|
asppprofflags='-pg -DPROFILING';;
|
2007-10-30 05:37:16 -07:00
|
|
|
alpha,*,*) as='as'
|
|
|
|
aspp='gcc -c';;
|
2008-12-03 10:09:09 -08:00
|
|
|
amd64,*,macosx) as='as -arch x86_64'
|
|
|
|
aspp='gcc -arch x86_64 -c';;
|
2009-05-20 04:52:42 -07:00
|
|
|
amd64,*,solaris) as='as --64'
|
|
|
|
aspp='gcc -m64 -c';;
|
2007-10-30 05:37:16 -07:00
|
|
|
amd64,*,*) as='as'
|
|
|
|
aspp='gcc -c';;
|
|
|
|
arm,*,*) as='as';
|
|
|
|
aspp='gcc -c';;
|
|
|
|
hppa,*,*) as='as';
|
|
|
|
aspp='gcc -traditional -c';;
|
|
|
|
i386,*,solaris) as='as'
|
|
|
|
aspp='/usr/ccs/bin/as -P';;
|
|
|
|
i386,*,*) as='as'
|
|
|
|
aspp='gcc -c';;
|
|
|
|
ia64,*,*) as='as -xexplicit'
|
|
|
|
aspp='gcc -c -Wa,-xexplicit';;
|
|
|
|
mips,*,irix) as='as -n32 -O2 -nocpp -g0'
|
2007-10-30 05:45:04 -07:00
|
|
|
aspp='as -n32 -O2';;
|
2007-10-30 05:37:16 -07:00
|
|
|
power,*,elf) as='as -u -m ppc'
|
|
|
|
aspp='gcc -c';;
|
|
|
|
power,*,bsd) as='as'
|
|
|
|
aspp='gcc -c';;
|
2007-10-30 05:45:04 -07:00
|
|
|
power,*,rhapsody) as="as -arch $model"
|
|
|
|
aspp="$bytecc -c";;
|
2007-10-30 05:37:16 -07:00
|
|
|
sparc,*,solaris) as='as'
|
|
|
|
case "$cc" in
|
|
|
|
gcc*) aspp='gcc -c';;
|
|
|
|
*) aspp='as -P';;
|
1999-10-14 08:23:30 -07:00
|
|
|
esac;;
|
2007-10-30 05:37:16 -07:00
|
|
|
sparc,*,*) as='as'
|
|
|
|
aspp='gcc -c';;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
|
|
|
|
2007-10-30 05:37:16 -07:00
|
|
|
if test -n "$asoption"; then as="$asoption"; fi
|
|
|
|
if test -n "$asppoption"; then aspp="$asppoption"; fi
|
|
|
|
|
2002-12-02 04:31:19 -08:00
|
|
|
cc_profile='-pg'
|
1998-11-06 07:39:18 -08:00
|
|
|
case "$arch,$model,$system" in
|
|
|
|
alpha,*,digital) profiling='prof';;
|
|
|
|
i386,*,linux_elf) profiling='prof';;
|
2006-04-16 16:28:22 -07:00
|
|
|
i386,*,gnu) profiling='prof';;
|
2000-02-29 08:15:40 -08:00
|
|
|
i386,*,bsd_elf) profiling='prof';;
|
2008-12-03 10:09:09 -08:00
|
|
|
amd64,*,macosx) profiling='prof';;
|
2006-10-16 01:40:42 -07:00
|
|
|
i386,*,macosx) profiling='prof';;
|
2002-12-02 04:31:19 -08:00
|
|
|
sparc,*,solaris)
|
|
|
|
profiling='prof'
|
|
|
|
case "$nativecc" in gcc*) ;; *) cc_profile='-xpg';; esac;;
|
2004-05-18 01:49:29 -07:00
|
|
|
amd64,*,linux) profiling='prof';;
|
2006-04-16 16:28:22 -07:00
|
|
|
amd64,*,gnu) profiling='prof';;
|
1998-11-06 07:39:18 -08:00
|
|
|
*) profiling='noprof';;
|
|
|
|
esac
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Where is ranlib?
|
|
|
|
|
|
|
|
if sh ./searchpath ranlib; then
|
|
|
|
echo "ranlib found"
|
|
|
|
echo "RANLIB=ranlib" >> Makefile
|
1996-11-07 02:54:28 -08:00
|
|
|
echo "RANLIBCMD=ranlib" >> Makefile
|
1996-02-13 08:29:09 -08:00
|
|
|
else
|
|
|
|
echo "ranlib not used"
|
1996-11-07 02:54:28 -08:00
|
|
|
echo "RANLIB=ar rs" >> Makefile
|
|
|
|
echo "RANLIBCMD=" >> Makefile
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Do #! scripts work?
|
|
|
|
|
2003-07-16 07:22:26 -07:00
|
|
|
if (SHELL=/bin/sh; export SHELL; (./sharpbang || ./sharpbang2) >/dev/null); then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "#! appears to work in shell scripts"
|
1997-08-22 01:52:38 -07:00
|
|
|
case "$host" in
|
1998-10-29 07:54:13 -08:00
|
|
|
*-*-sunos*|*-*-unicos*)
|
|
|
|
echo "We won't use it, though, because under SunOS and Unicos it breaks"
|
1998-04-14 07:48:34 -07:00
|
|
|
echo "on pathnames longer than 30 characters"
|
|
|
|
echo "SHARPBANGSCRIPTS=false" >> Makefile;;
|
2000-08-10 02:58:08 -07:00
|
|
|
*-*-cygwin*)
|
|
|
|
echo "We won't use it, though, because of conflicts with .exe extension"
|
|
|
|
echo "under Cygwin"
|
|
|
|
echo "SHARPBANGSCRIPTS=false" >> Makefile;;
|
|
|
|
*)
|
|
|
|
echo "SHARPBANGSCRIPTS=true" >> Makefile;;
|
1997-08-22 01:52:38 -07:00
|
|
|
esac
|
1996-02-13 08:29:09 -08:00
|
|
|
else
|
|
|
|
echo "No support for #! in shell scripts"
|
|
|
|
echo "SHARPBANGSCRIPTS=false" >> Makefile
|
|
|
|
fi
|
|
|
|
|
2000-08-10 02:58:08 -07:00
|
|
|
# Write the OS type (Unix or Cygwin)
|
1996-10-06 09:36:37 -07:00
|
|
|
|
2000-08-10 02:58:08 -07:00
|
|
|
echo "#define OCAML_OS_TYPE \"$ostype\"" >> s.h
|
2001-08-28 07:47:48 -07:00
|
|
|
echo "#define OCAML_STDLIB_DIR \"$libdir\"" >> s.h
|
1996-10-06 09:36:37 -07:00
|
|
|
|
2002-03-15 06:38:37 -08:00
|
|
|
# Use 64-bit file offset if possible
|
|
|
|
|
|
|
|
bytecccompopts="$bytecccompopts -D_FILE_OFFSET_BITS=64"
|
|
|
|
nativecccompopts="$nativecccompopts -D_FILE_OFFSET_BITS=64"
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Check the semantics of signal handlers
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot sigaction sigprocmask; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "POSIX signal handling found."
|
1999-11-16 01:49:12 -08:00
|
|
|
echo "#define POSIX_SIGNALS" >> s.h
|
1996-02-13 08:29:09 -08:00
|
|
|
else
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./runtest signals.c; then
|
1996-02-21 02:49:46 -08:00
|
|
|
echo "Signals have the BSD semantics."
|
|
|
|
echo "#define BSD_SIGNALS" >> s.h
|
|
|
|
else
|
|
|
|
echo "Signals have the System V semantics."
|
|
|
|
fi
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot sigsetmask; then
|
1996-02-21 02:49:46 -08:00
|
|
|
echo "sigsetmask() found"
|
|
|
|
echo "#define HAS_SIGSETMASK" >> s.h
|
|
|
|
fi
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
2009-04-01 09:08:37 -07:00
|
|
|
# For the Pervasives module
|
|
|
|
|
|
|
|
if sh ./trycompile expm1.c $mathlib; then
|
|
|
|
echo "expm1() and log1p() found."
|
|
|
|
echo "#define HAS_EXPM1_LOG1P" >> s.h
|
|
|
|
fi
|
|
|
|
|
|
|
|
# For the Sys module
|
1996-02-13 08:29:09 -08:00
|
|
|
|
2006-01-04 08:55:50 -08:00
|
|
|
if sh ./hasgot getrusage; then
|
|
|
|
echo "getrusage() found."
|
|
|
|
echo "#define HAS_GETRUSAGE" >> s.h
|
|
|
|
fi
|
|
|
|
|
1998-02-24 02:43:14 -08:00
|
|
|
if sh ./hasgot times; then
|
|
|
|
echo "times() found."
|
|
|
|
echo "#define HAS_TIMES" >> s.h
|
|
|
|
fi
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# For the terminfo module
|
|
|
|
|
2000-10-27 08:18:24 -07:00
|
|
|
if test "$withcurses" = "yes"; then
|
2001-07-02 05:10:31 -07:00
|
|
|
for libs in "" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do
|
2000-10-27 08:18:24 -07:00
|
|
|
if sh ./hasgot $libs tgetent tgetstr tgetnum tputs; then
|
|
|
|
echo "termcap functions found (with libraries '$libs')"
|
|
|
|
echo "#define HAS_TERMCAP" >> s.h
|
|
|
|
curseslibs="${libs}"
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|
1996-02-13 08:29:09 -08:00
|
|
|
|
1996-04-01 07:22:44 -08:00
|
|
|
# Configuration for the libraries
|
|
|
|
|
2000-02-25 05:43:57 -08:00
|
|
|
otherlibraries="unix str num dynlink bigarray"
|
1996-04-01 07:22:44 -08:00
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# For the Unix library
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
has_sockets=no
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot socket socketpair bind listen accept connect; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "You have BSD sockets."
|
|
|
|
echo "#define HAS_SOCKETS" >> s.h
|
1997-02-23 08:29:36 -08:00
|
|
|
has_sockets=yes
|
1997-04-11 07:27:45 -07:00
|
|
|
elif sh ./hasgot -lnsl -lsocket socket socketpair bind listen accept connect; then
|
1997-07-30 05:23:13 -07:00
|
|
|
echo "You have BSD sockets (with libraries '-lnsl -lsocket')"
|
1996-02-13 08:29:09 -08:00
|
|
|
cclibs="$cclibs -lnsl -lsocket"
|
|
|
|
echo "#define HAS_SOCKETS" >> s.h
|
1997-02-23 08:29:36 -08:00
|
|
|
has_sockets=yes
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
1999-12-17 04:42:16 -08:00
|
|
|
if sh ./hasgot -i sys/socket.h -t socklen_t; then
|
|
|
|
echo "socklen_t is defined in <sys/socket.h>"
|
|
|
|
echo "#define HAS_SOCKLEN_T" >> s.h
|
|
|
|
fi
|
|
|
|
|
2001-06-19 03:01:57 -07:00
|
|
|
if sh ./hasgot inet_aton; then
|
|
|
|
echo "inet_aton() found."
|
|
|
|
echo "#define HAS_INET_ATON" >> s.h
|
|
|
|
fi
|
|
|
|
|
2004-04-09 08:25:19 -07:00
|
|
|
if sh ./hasgot -i sys/types.h -i sys/socket.h -i netinet/in.h \
|
|
|
|
-t 'struct sockaddr_in6' \
|
2004-04-09 06:25:23 -07:00
|
|
|
&& sh ./hasgot getaddrinfo getnameinfo inet_pton inet_ntop; then
|
|
|
|
echo "IPv6 is supported."
|
|
|
|
echo "#define HAS_IPV6" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot -i unistd.h; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "unistd.h found."
|
|
|
|
echo "#define HAS_UNISTD" >> s.h
|
|
|
|
fi
|
|
|
|
|
2002-03-02 01:16:39 -08:00
|
|
|
if sh ./hasgot -i sys/types.h -t off_t; then
|
|
|
|
echo "off_t is defined in <sys/types.h>"
|
|
|
|
echo "#define HAS_OFF_T" >> s.h
|
|
|
|
fi
|
|
|
|
|
2000-02-29 08:15:40 -08:00
|
|
|
if sh ./hasgot -i sys/types.h -i dirent.h; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "dirent.h found."
|
|
|
|
echo "#define HAS_DIRENT" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot rewinddir; then
|
1996-06-25 02:27:34 -07:00
|
|
|
echo "rewinddir() found."
|
|
|
|
echo "#define HAS_REWINDDIR" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot lockf; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "lockf() found."
|
|
|
|
echo "#define HAS_LOCKF" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot mkfifo; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "mkfifo() found."
|
|
|
|
echo "#define HAS_MKFIFO" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot getcwd; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "getcwd() found."
|
|
|
|
echo "#define HAS_GETCWD" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot getwd; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "getwd() found."
|
|
|
|
echo "#define HAS_GETWD" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot getpriority setpriority; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "getpriority() found."
|
|
|
|
echo "#define HAS_GETPRIORITY" >> s.h
|
|
|
|
fi
|
|
|
|
|
2000-02-29 08:15:40 -08:00
|
|
|
if sh ./hasgot -i sys/types.h -i utime.h && sh ./hasgot utime; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "utime() found."
|
|
|
|
echo "#define HAS_UTIME" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot utimes; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "utimes() found."
|
|
|
|
echo "#define HAS_UTIMES" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot dup2; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "dup2() found."
|
|
|
|
echo "#define HAS_DUP2" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot fchmod fchown; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "fchmod() found."
|
|
|
|
echo "#define HAS_FCHMOD" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot truncate ftruncate; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "truncate() found."
|
|
|
|
echo "#define HAS_TRUNCATE" >> s.h
|
|
|
|
fi
|
|
|
|
|
2000-08-08 05:37:53 -07:00
|
|
|
select_include=''
|
|
|
|
if sh ./hasgot -i sys/types.h -i sys/select.h; then
|
|
|
|
echo "sys/select.h found."
|
|
|
|
echo "#define HAS_SYS_SELECT_H" >> s.h
|
|
|
|
select_include='-i sys/select.h'
|
|
|
|
fi
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
has_select=no
|
2000-08-08 05:37:53 -07:00
|
|
|
if sh ./hasgot select && \
|
|
|
|
sh ./hasgot -i sys/types.h $select_include -t fd_set ; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "select() found."
|
|
|
|
echo "#define HAS_SELECT" >> s.h
|
1996-04-03 02:01:15 -08:00
|
|
|
has_select=yes
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot symlink readlink lstat; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "symlink() found."
|
|
|
|
echo "#define HAS_SYMLINK" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
has_wait=no
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot waitpid; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "waitpid() found."
|
|
|
|
echo "#define HAS_WAITPID" >> s.h
|
1996-06-25 02:27:34 -07:00
|
|
|
has_wait=yes
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot wait4; then
|
1996-06-25 02:27:34 -07:00
|
|
|
echo "wait4() found."
|
|
|
|
echo "#define HAS_WAIT4" >> s.h
|
|
|
|
has_wait=yes
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
2000-02-29 08:15:40 -08:00
|
|
|
if sh ./hasgot -i limits.h && sh ./runtest getgroups.c; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "getgroups() found."
|
|
|
|
echo "#define HAS_GETGROUPS" >> s.h
|
|
|
|
fi
|
|
|
|
|
2009-04-01 09:50:10 -07:00
|
|
|
if sh ./hasgot -i limits.h -i grp.h && sh ./runtest setgroups.c; then
|
|
|
|
echo "setgroups() found."
|
|
|
|
echo "#define HAS_SETGROUPS" >> s.h
|
|
|
|
fi
|
|
|
|
|
|
|
|
if sh ./hasgot -i limits.h -i grp.h && sh ./runtest initgroups.c; then
|
|
|
|
echo "initgroups() found."
|
|
|
|
echo "#define HAS_INITGROUPS" >> s.h
|
|
|
|
fi
|
|
|
|
|
2000-04-05 11:30:22 -07:00
|
|
|
if sh ./hasgot -i termios.h &&
|
1997-04-11 07:27:45 -07:00
|
|
|
sh ./hasgot tcgetattr tcsetattr tcsendbreak tcflush tcflow; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "POSIX termios found."
|
|
|
|
echo "#define HAS_TERMIOS" >> s.h
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Async I/O under OSF1 3.x are so buggy that the test program hangs...
|
|
|
|
testasyncio=true
|
|
|
|
if test -f /usr/bin/uname; then
|
1997-02-01 09:40:41 -08:00
|
|
|
case "`/usr/bin/uname -s -r`" in
|
1996-02-13 08:29:09 -08:00
|
|
|
"OSF1 V3."*) testasyncio=false;;
|
|
|
|
esac
|
|
|
|
fi
|
1997-04-11 07:27:45 -07:00
|
|
|
if $testasyncio && sh ./runtest async_io.c; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "Asynchronous I/O are supported."
|
|
|
|
echo "#define HAS_ASYNC_IO" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
has_setitimer=no
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot setitimer; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "setitimer() found."
|
|
|
|
echo "#define HAS_SETITIMER" >> s.h
|
1996-04-03 02:01:15 -08:00
|
|
|
has_setitimer="yes"
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot gethostname; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "gethostname() found."
|
|
|
|
echo "#define HAS_GETHOSTNAME" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot -i sys/utsname.h && sh ./hasgot uname; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "uname() found."
|
|
|
|
echo "#define HAS_UNAME" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
has_gettimeofday=no
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot gettimeofday; then
|
1996-02-13 08:29:09 -08:00
|
|
|
echo "gettimeofday() found."
|
|
|
|
echo "#define HAS_GETTIMEOFDAY" >> s.h
|
1996-04-03 02:01:15 -08:00
|
|
|
has_gettimeofday="yes"
|
1996-02-13 08:29:09 -08:00
|
|
|
fi
|
|
|
|
|
1997-04-11 07:27:45 -07:00
|
|
|
if sh ./hasgot mktime; then
|
1996-06-24 09:35:58 -07:00
|
|
|
echo "mktime() found."
|
|
|
|
echo "#define HAS_MKTIME" >> s.h
|
|
|
|
fi
|
|
|
|
|
2000-08-10 02:58:08 -07:00
|
|
|
case "$host" in
|
|
|
|
*-*-cygwin*) ;; # setsid emulation under Cygwin breaks the debugger
|
|
|
|
*) if sh ./hasgot setsid; then
|
|
|
|
echo "setsid() found."
|
|
|
|
echo "#define HAS_SETSID" >> s.h
|
|
|
|
fi;;
|
|
|
|
esac
|
1997-02-14 08:29:10 -08:00
|
|
|
|
1998-04-30 06:38:50 -07:00
|
|
|
if sh ./hasgot putenv; then
|
|
|
|
echo "putenv() found."
|
|
|
|
echo "#define HAS_PUTENV" >> s.h
|
|
|
|
fi
|
|
|
|
|
1999-05-15 08:05:54 -07:00
|
|
|
if sh ./hasgot -i locale.h && sh ./hasgot setlocale; then
|
|
|
|
echo "setlocale() and <locale.h> found."
|
|
|
|
echo "#define HAS_LOCALE" >> s.h
|
|
|
|
fi
|
|
|
|
|
2007-11-12 09:26:00 -08:00
|
|
|
|
|
|
|
if sh ./hasgot $dllib dlopen; then
|
1999-11-30 08:07:38 -08:00
|
|
|
echo "dlopen() found."
|
2003-01-09 00:42:13 -08:00
|
|
|
elif sh ./hasgot $dllib -ldl dlopen; then
|
|
|
|
echo "dlopen() found in -ldl."
|
2002-11-15 08:36:39 -08:00
|
|
|
dllib="$dllib -ldl"
|
2003-01-09 04:01:51 -08:00
|
|
|
else
|
2007-02-07 02:31:36 -08:00
|
|
|
shared_libraries_supported=false
|
2003-01-09 04:01:51 -08:00
|
|
|
fi
|
|
|
|
|
|
|
|
if $shared_libraries_supported; then
|
|
|
|
echo "Dynamic loading of shared libraries is supported."
|
|
|
|
echo "#define SUPPORT_DYNAMIC_LINKING" >> s.h
|
|
|
|
if $dl_needs_underscore; then
|
|
|
|
echo '#define DL_NEEDS_UNDERSCORE' >>s.h
|
|
|
|
fi
|
1999-11-30 08:07:38 -08:00
|
|
|
fi
|
|
|
|
|
2000-02-29 08:15:40 -08:00
|
|
|
if sh ./hasgot -i sys/types.h -i sys/mman.h && sh ./hasgot mmap munmap; then
|
2000-02-25 05:43:57 -08:00
|
|
|
echo "mmap() found."
|
|
|
|
echo "#define HAS_MMAP" >> s.h
|
|
|
|
fi
|
|
|
|
|
2002-05-04 02:58:01 -07:00
|
|
|
nargs=none
|
2002-05-06 01:29:52 -07:00
|
|
|
for i in 5 6; do
|
2002-05-04 02:58:01 -07:00
|
|
|
if sh ./trycompile -DNUM_ARGS=${i} gethostbyname.c; then nargs=$i; break; fi
|
|
|
|
done
|
|
|
|
if test $nargs != "none"; then
|
|
|
|
echo "gethostbyname_r() found (with ${nargs} arguments)."
|
|
|
|
echo "#define HAS_GETHOSTBYNAME_R $nargs" >> s.h
|
|
|
|
fi
|
|
|
|
|
|
|
|
nargs=none
|
2002-05-06 01:29:52 -07:00
|
|
|
for i in 7 8; do
|
2002-05-04 02:58:01 -07:00
|
|
|
if sh ./trycompile -DNUM_ARGS=${i} gethostbyaddr.c; then nargs=$i; break; fi
|
|
|
|
done
|
|
|
|
if test $nargs != "none"; then
|
|
|
|
echo "gethostbyaddr_r() found (with ${nargs} arguments)."
|
|
|
|
echo "#define HAS_GETHOSTBYADDR_R $nargs" >> s.h
|
|
|
|
fi
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
# Determine if the debugger is supported
|
|
|
|
|
|
|
|
if test "$has_sockets" = "yes"; then
|
|
|
|
echo "Replay debugger supported."
|
|
|
|
debugger="ocamldebugger"
|
|
|
|
else
|
|
|
|
echo "No replay debugger (missing system calls)"
|
|
|
|
debugger=""
|
|
|
|
fi
|
|
|
|
|
2002-06-30 17:12:19 -07:00
|
|
|
|
2001-08-08 01:30:26 -07:00
|
|
|
# Determine if system stack overflows can be detected
|
|
|
|
|
2003-05-23 02:15:34 -07:00
|
|
|
case "$arch,$system" in
|
2008-12-03 10:09:09 -08:00
|
|
|
i386,linux_elf|amd64,linux|power,rhapsody|amd64,macosx|i386,macosx|amd64,macosx)
|
2003-09-25 01:17:13 -07:00
|
|
|
echo "System stack overflow can be detected."
|
|
|
|
echo "#define HAS_STACK_OVERFLOW_DETECTION" >> s.h;;
|
2003-05-02 05:48:55 -07:00
|
|
|
*)
|
2003-07-23 00:57:17 -07:00
|
|
|
echo "Cannot detect system stack overflow.";;
|
2003-05-02 05:48:55 -07:00
|
|
|
esac
|
|
|
|
|
2009-03-16 07:36:51 -07:00
|
|
|
# Determine the target architecture for the "num" library
|
2008-12-03 10:09:09 -08:00
|
|
|
|
|
|
|
case "$arch" in
|
|
|
|
alpha) bng_arch=alpha; bng_asm_level=1;;
|
|
|
|
i386) bng_arch=ia32
|
|
|
|
if sh ./trycompile ia32sse2.c
|
|
|
|
then bng_asm_level=2
|
|
|
|
else bng_asm_level=1
|
|
|
|
fi;;
|
|
|
|
mips) bng_arch=mips; bng_asm_level=1;;
|
|
|
|
power) bng_arch=ppc; bng_asm_level=1;;
|
|
|
|
amd64) bng_arch=amd64; bng_asm_level=1;;
|
|
|
|
*) bng_arch=generic; bng_asm_level=0;;
|
1996-02-13 08:29:09 -08:00
|
|
|
esac
|
|
|
|
|
2003-10-24 02:18:01 -07:00
|
|
|
echo "BNG_ARCH=$bng_arch" >> Makefile
|
|
|
|
echo "BNG_ASM_LEVEL=$bng_asm_level" >> Makefile
|
1996-02-13 08:29:09 -08:00
|
|
|
|
2003-07-17 01:38:28 -07:00
|
|
|
# Determine if the POSIX threads library is supported
|
1996-04-03 02:01:15 -08:00
|
|
|
|
2005-05-09 06:39:17 -07:00
|
|
|
systhread_support=false
|
|
|
|
|
2003-09-12 00:36:15 -07:00
|
|
|
if test "$pthread_wanted" = "yes"; then
|
2000-03-09 01:08:58 -08:00
|
|
|
case "$host" in
|
2007-10-08 07:19:34 -07:00
|
|
|
*-*-solaris*) pthread_link="-lpthread -lposix4"
|
|
|
|
pthread_caml_link="-cclib -lpthread -cclib -lposix4";;
|
|
|
|
*-*-freebsd*) pthread_link="-pthread"
|
|
|
|
pthread_caml_link="-cclib -pthread";;
|
|
|
|
*-*-openbsd*) pthread_link="-pthread"
|
|
|
|
pthread_caml_link="-cclib -pthread";;
|
|
|
|
*) pthread_link="-lpthread"
|
|
|
|
pthread_caml_link="-cclib -lpthread";;
|
2000-03-09 01:08:58 -08:00
|
|
|
esac
|
2004-07-13 05:19:15 -07:00
|
|
|
if ./hasgot -i pthread.h $pthread_link pthread_self; then
|
|
|
|
echo "POSIX threads library supported."
|
2005-05-09 06:39:17 -07:00
|
|
|
systhread_support=true
|
2004-07-13 05:19:15 -07:00
|
|
|
otherlibraries="$otherlibraries systhreads"
|
|
|
|
bytecccompopts="$bytecccompopts -D_REENTRANT"
|
|
|
|
nativecccompopts="$nativecccompopts -D_REENTRANT"
|
|
|
|
case "$host" in
|
|
|
|
*-*-freebsd*)
|
|
|
|
bytecccompopts="$bytecccompopts -D_THREAD_SAFE"
|
|
|
|
nativecccompopts="$nativecccompopts -D_THREAD_SAFE";;
|
|
|
|
*-*-openbsd*)
|
|
|
|
bytecccompopts="$bytecccompopts -pthread"
|
|
|
|
asppflags="$asppflags -pthread"
|
|
|
|
nativecccompopts="$nativecccompopts -pthread";;
|
|
|
|
esac
|
|
|
|
echo "Options for linking with POSIX threads: $pthread_link"
|
|
|
|
if sh ./hasgot $pthread_link sigwait; then
|
|
|
|
echo "sigwait() found"
|
|
|
|
echo "#define HAS_SIGWAIT" >> s.h
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "POSIX threads not found."
|
|
|
|
pthread_link=""
|
2003-07-29 08:35:12 -07:00
|
|
|
fi
|
2007-02-07 02:31:36 -08:00
|
|
|
else
|
|
|
|
pthread_link=""
|
2003-09-12 00:36:15 -07:00
|
|
|
fi
|
2007-10-08 07:19:34 -07:00
|
|
|
echo "PTHREAD_LINK=$pthread_caml_link" >> Makefile
|
2003-07-17 01:38:28 -07:00
|
|
|
|
|
|
|
# Determine if the bytecode thread library is supported
|
|
|
|
|
|
|
|
if test "$has_select" = "yes" \
|
1996-04-03 02:01:15 -08:00
|
|
|
&& test "$has_setitimer" = "yes" \
|
1996-06-25 02:27:34 -07:00
|
|
|
&& test "$has_gettimeofday" = "yes" \
|
|
|
|
&& test "$has_wait" = "yes"; then
|
2003-07-17 01:38:28 -07:00
|
|
|
echo "Bytecode threads library supported."
|
1996-04-03 02:01:15 -08:00
|
|
|
otherlibraries="$otherlibraries threads"
|
|
|
|
else
|
2003-07-17 01:38:28 -07:00
|
|
|
echo "Bytecode threads library not supported (missing system calls)"
|
1996-04-03 02:01:15 -08:00
|
|
|
fi
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Determine the location of X include files and libraries
|
|
|
|
|
|
|
|
x11_include="not found"
|
1996-04-02 00:40:00 -08:00
|
|
|
x11_link="not found"
|
1996-02-13 08:29:09 -08:00
|
|
|
|
2001-10-30 05:40:42 -08:00
|
|
|
for dir in \
|
|
|
|
$x11_include_dir \
|
|
|
|
\
|
2009-07-20 04:51:50 -07:00
|
|
|
/usr/X11R7/include \
|
|
|
|
/usr/include/X11R7 \
|
|
|
|
/usr/local/X11R7/include \
|
|
|
|
/usr/local/include/X11R7 \
|
|
|
|
/opt/X11R7/include \
|
|
|
|
\
|
2001-10-30 05:40:42 -08:00
|
|
|
/usr/X11R6/include \
|
|
|
|
/usr/include/X11R6 \
|
|
|
|
/usr/local/X11R6/include \
|
|
|
|
/usr/local/include/X11R6 \
|
|
|
|
/opt/X11R6/include \
|
|
|
|
\
|
|
|
|
/usr/X11/include \
|
|
|
|
/usr/include/X11 \
|
|
|
|
/usr/local/X11/include \
|
|
|
|
/usr/local/include/X11 \
|
|
|
|
/opt/X11/include \
|
|
|
|
\
|
|
|
|
/usr/X11R5/include \
|
|
|
|
/usr/include/X11R5 \
|
|
|
|
/usr/local/X11R5/include \
|
|
|
|
/usr/local/include/X11R5 \
|
|
|
|
/usr/local/x11r5/include \
|
|
|
|
/opt/X11R5/include \
|
|
|
|
\
|
|
|
|
/usr/X11R4/include \
|
|
|
|
/usr/include/X11R4 \
|
|
|
|
/usr/local/X11R4/include \
|
|
|
|
/usr/local/include/X11R4 \
|
|
|
|
\
|
|
|
|
/usr/X386/include \
|
|
|
|
/usr/x386/include \
|
|
|
|
/usr/XFree86/include/X11 \
|
|
|
|
\
|
|
|
|
/usr/include \
|
|
|
|
/usr/local/include \
|
|
|
|
/usr/unsupported/include \
|
|
|
|
/usr/athena/include \
|
|
|
|
/usr/lpp/Xamples/include \
|
|
|
|
\
|
|
|
|
/usr/openwin/include \
|
|
|
|
/usr/openwin/share/include \
|
|
|
|
; \
|
1996-04-01 07:22:44 -08:00
|
|
|
do
|
|
|
|
if test -f $dir/X11/X.h; then
|
1997-03-21 06:23:00 -08:00
|
|
|
x11_include=$dir
|
1996-02-13 08:29:09 -08:00
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2001-10-30 05:40:42 -08:00
|
|
|
if test "$x11_include" = "not found"; then
|
|
|
|
x11_try_lib_dir=''
|
|
|
|
else
|
|
|
|
x11_try_lib_dir=`echo $x11_include | sed -e 's|include|lib|'`
|
|
|
|
fi
|
|
|
|
|
|
|
|
for dir in \
|
|
|
|
$x11_lib_dir \
|
|
|
|
$x11_try_lib_dir \
|
|
|
|
\
|
2005-04-17 01:22:59 -07:00
|
|
|
/usr/X11R6/lib64 \
|
2001-10-30 05:40:42 -08:00
|
|
|
/usr/X11R6/lib \
|
|
|
|
/usr/lib/X11R6 \
|
|
|
|
/usr/local/X11R6/lib \
|
|
|
|
/usr/local/lib/X11R6 \
|
|
|
|
/opt/X11R6/lib \
|
|
|
|
\
|
|
|
|
/usr/X11/lib \
|
|
|
|
/usr/lib/X11 \
|
|
|
|
/usr/local/X11/lib \
|
|
|
|
/usr/local/lib/X11 \
|
|
|
|
/opt/X11/lib \
|
|
|
|
\
|
|
|
|
/usr/X11R5/lib \
|
|
|
|
/usr/lib/X11R5 \
|
|
|
|
/usr/local/X11R5/lib \
|
|
|
|
/usr/local/lib/X11R5 \
|
|
|
|
/usr/local/x11r5/lib \
|
|
|
|
/opt/X11R5/lib \
|
|
|
|
\
|
|
|
|
/usr/X11R4/lib \
|
|
|
|
/usr/lib/X11R4 \
|
|
|
|
/usr/local/X11R4/lib \
|
|
|
|
/usr/local/lib/X11R4 \
|
|
|
|
\
|
|
|
|
/usr/X386/lib \
|
|
|
|
/usr/x386/lib \
|
|
|
|
/usr/XFree86/lib/X11 \
|
|
|
|
\
|
2008-01-11 08:13:18 -08:00
|
|
|
/usr/lib64 \
|
2001-10-30 05:40:42 -08:00
|
|
|
/usr/lib \
|
|
|
|
/usr/local/lib \
|
|
|
|
/usr/unsupported/lib \
|
|
|
|
/usr/athena/lib \
|
|
|
|
/usr/lpp/Xamples/lib \
|
2002-07-23 07:12:03 -07:00
|
|
|
/lib/usr/lib/X11 \
|
2001-10-30 05:40:42 -08:00
|
|
|
\
|
|
|
|
/usr/openwin/lib \
|
|
|
|
/usr/openwin/share/lib \
|
|
|
|
; \
|
1996-04-01 07:22:44 -08:00
|
|
|
do
|
|
|
|
if test -f $dir/libX11.a || \
|
|
|
|
test -f $dir/libX11.so || \
|
2003-08-29 08:22:49 -07:00
|
|
|
test -f $dir/libX11.dll.a || \
|
2007-11-21 08:47:53 -08:00
|
|
|
test -f $dir/libX11.dylib || \
|
1996-04-01 07:22:44 -08:00
|
|
|
test -f $dir/libX11.sa; then
|
1999-11-30 08:07:38 -08:00
|
|
|
if test $dir = /usr/lib; then
|
2001-08-28 07:47:48 -07:00
|
|
|
x11_link="-lX11"
|
1999-11-30 08:07:38 -08:00
|
|
|
else
|
|
|
|
x11_libs="-L$dir"
|
2008-10-06 06:31:47 -07:00
|
|
|
case "$host" in
|
|
|
|
*-*-*bsd*) x11_link="-R$dir -L$dir -lX11";;
|
|
|
|
*) x11_link="-L$dir -lX11";;
|
|
|
|
esac
|
1999-11-30 08:07:38 -08:00
|
|
|
fi
|
1996-02-13 08:29:09 -08:00
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
|
1996-04-02 00:40:00 -08:00
|
|
|
if test "$x11_include" = "not found" || test "$x11_link" = "not found"
|
1996-02-13 08:29:09 -08:00
|
|
|
then
|
1996-06-25 02:27:34 -07:00
|
|
|
echo "X11 not found, the \"graph\" library will not be supported."
|
2000-08-10 02:58:08 -07:00
|
|
|
x11_include=""
|
1996-04-01 07:22:44 -08:00
|
|
|
else
|
1997-03-21 06:23:00 -08:00
|
|
|
echo "Location of X11 include files: $x11_include/X11"
|
1996-04-02 00:40:00 -08:00
|
|
|
echo "Options for linking with X11: $x11_link"
|
1996-04-01 07:22:44 -08:00
|
|
|
otherlibraries="$otherlibraries graph"
|
1997-03-21 06:23:00 -08:00
|
|
|
if test "$x11_include" = "/usr/include"; then
|
|
|
|
x11_include=""
|
|
|
|
else
|
|
|
|
x11_include="-I$x11_include"
|
|
|
|
fi
|
1996-04-01 07:22:44 -08:00
|
|
|
fi
|
2007-02-07 02:31:36 -08:00
|
|
|
echo "X11_INCLUDES=$x11_include" >> Makefile
|
|
|
|
echo "X11_LINK=$x11_link" >> Makefile
|
1996-04-01 07:22:44 -08:00
|
|
|
|
1996-06-12 06:53:43 -07:00
|
|
|
# See if we can compile the dbm library
|
|
|
|
|
2000-03-25 10:54:03 -08:00
|
|
|
dbm_include="not found"
|
2000-06-05 06:28:14 -07:00
|
|
|
dbm_link="not found"
|
2003-07-08 06:50:31 -07:00
|
|
|
use_gdbm_ndbm=no
|
|
|
|
|
2001-10-30 05:40:42 -08:00
|
|
|
for dir in /usr/include /usr/include/db1 /usr/include/gdbm; do
|
2000-03-25 10:54:03 -08:00
|
|
|
if test -f $dir/ndbm.h; then
|
|
|
|
dbm_include=$dir
|
2000-06-05 06:28:14 -07:00
|
|
|
if sh ./hasgot dbm_open; then
|
|
|
|
dbm_link=""
|
|
|
|
elif sh ./hasgot -lndbm dbm_open; then
|
2001-08-28 07:47:48 -07:00
|
|
|
dbm_link="-lndbm"
|
2001-03-30 04:21:13 -08:00
|
|
|
elif sh ./hasgot -ldb1 dbm_open; then
|
2001-08-28 07:47:48 -07:00
|
|
|
dbm_link="-ldb1"
|
2001-10-30 05:40:42 -08:00
|
|
|
elif sh ./hasgot -lgdbm dbm_open; then
|
|
|
|
dbm_link="-lgdbm"
|
2003-08-29 08:22:49 -07:00
|
|
|
elif sh ./hasgot -lgdbm_compat -lgdbm dbm_open; then
|
2006-04-16 16:28:22 -07:00
|
|
|
dbm_link="-lgdbm_compat -lgdbm"
|
2000-06-05 06:28:14 -07:00
|
|
|
fi
|
2000-03-25 10:54:03 -08:00
|
|
|
break
|
|
|
|
fi
|
2003-07-08 06:50:31 -07:00
|
|
|
if test -f $dir/gdbm-ndbm.h; then
|
|
|
|
dbm_include=$dir
|
|
|
|
use_gdbm_ndbm=yes
|
|
|
|
if sh ./hasgot -lgdbm_compat -lgdbm dbm_open; then
|
|
|
|
dbm_link="-lgdbm_compat -lgdbm"
|
|
|
|
fi
|
2006-04-16 16:28:22 -07:00
|
|
|
break
|
2003-07-08 06:50:31 -07:00
|
|
|
fi
|
2000-03-25 10:54:03 -08:00
|
|
|
done
|
2003-07-08 06:50:31 -07:00
|
|
|
if test "$dbm_include" = "not found" || test "$dbm_link" = "not found"; then
|
1996-06-25 02:27:34 -07:00
|
|
|
echo "NDBM not found, the \"dbm\" library will not be supported."
|
2000-03-25 10:54:03 -08:00
|
|
|
else
|
|
|
|
echo "NDBM found (in $dbm_include)"
|
|
|
|
if test "$dbm_include" = "/usr/include"; then
|
|
|
|
dbm_include=""
|
|
|
|
else
|
|
|
|
dbm_include="-I$dbm_include"
|
|
|
|
fi
|
2003-07-08 06:50:31 -07:00
|
|
|
if test "$use_gdbm_ndbm" = "yes"; then
|
|
|
|
echo "#define DBM_USES_GDBM_NDBM" >> s.h
|
|
|
|
fi
|
2000-03-25 10:54:03 -08:00
|
|
|
otherlibraries="$otherlibraries dbm"
|
1996-06-12 06:53:43 -07:00
|
|
|
fi
|
2007-02-07 02:31:36 -08:00
|
|
|
echo "DBM_INCLUDES=$dbm_include" >> Makefile
|
|
|
|
echo "DBM_LINK=$dbm_link" >> Makefile
|
1996-06-12 06:53:43 -07:00
|
|
|
|
1999-11-30 08:07:38 -08:00
|
|
|
# Look for tcl/tk
|
|
|
|
|
|
|
|
echo "Configuring LablTk..."
|
2001-09-06 01:52:32 -07:00
|
|
|
|
2001-10-04 01:39:49 -07:00
|
|
|
if test $tk_wanted = no; then
|
|
|
|
has_tk=false
|
2002-05-28 20:51:53 -07:00
|
|
|
elif test $tk_x11 = no; then
|
2001-09-06 01:52:32 -07:00
|
|
|
has_tk=true
|
|
|
|
elif test "$x11_include" = "not found" || test "$x11_link" = "not found"; then
|
1999-11-30 08:07:38 -08:00
|
|
|
echo "X11 not found."
|
|
|
|
has_tk=false
|
|
|
|
else
|
2001-09-06 01:52:32 -07:00
|
|
|
tk_x11_include="$x11_include"
|
|
|
|
tk_x11_libs="$x11_libs -lX11"
|
1999-11-30 08:07:38 -08:00
|
|
|
has_tk=true
|
2001-09-06 01:52:32 -07:00
|
|
|
fi
|
|
|
|
|
|
|
|
if test $has_tk = true; then
|
1999-11-30 08:07:38 -08:00
|
|
|
tcl_version=''
|
2001-09-06 01:52:32 -07:00
|
|
|
tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c`
|
2004-08-26 19:46:09 -07:00
|
|
|
for tk_incs in \
|
|
|
|
"-I/usr/local/include" \
|
2008-07-01 02:55:52 -07:00
|
|
|
"-I/usr/include" \
|
|
|
|
"-I/usr/local/include/tcl8.5 -I/usr/local/include/tk8.5" \
|
|
|
|
"-I/usr/include/tcl8.5 -I/usr/include/tk8.5" \
|
2004-08-26 19:46:09 -07:00
|
|
|
"-I/usr/local/include/tcl8.4 -I/usr/local/include/tk8.4" \
|
|
|
|
"-I/usr/include/tcl8.4 -I/usr/include/tk8.4" \
|
|
|
|
"-I/usr/local/include/tcl8.3 -I/usr/local/include/tk8.3" \
|
|
|
|
"-I/usr/include/tcl8.3 -I/usr/include/tk8.3" \
|
|
|
|
"-I/usr/local/include/tcl8.2 -I/usr/local/include/tk8.2" \
|
|
|
|
"-I/usr/include/tcl8.2 -I/usr/include/tk8.2" \
|
2005-11-08 06:00:23 -08:00
|
|
|
"-I/sw/include" \
|
|
|
|
"-I/usr/pkg/include"
|
2004-08-26 19:46:09 -07:00
|
|
|
do if test -z "$tcl_version"; then
|
|
|
|
tk_defs="$tk_incs"
|
2001-09-06 01:52:32 -07:00
|
|
|
tcl_version=`sh ./runtest $tk_defs $tk_x11_include tclversion.c`
|
2004-08-26 19:46:09 -07:00
|
|
|
fi; done
|
|
|
|
if test -n "$tcl_version" && test "x$tcl_version" != "xnone"; then
|
|
|
|
echo "tcl.h and tk.h version $tcl_version found with \"$tk_defs\"."
|
1999-11-30 08:07:38 -08:00
|
|
|
case $tcl_version in
|
|
|
|
7.5) tclmaj=7 tclmin=5 tkmaj=4 tkmin=1 ;;
|
|
|
|
7.6) tclmaj=7 tclmin=6 tkmaj=4 tkmin=2 ;;
|
|
|
|
8.0) tclmaj=8 tclmin=0 tkmaj=8 tkmin=0 ;;
|
|
|
|
8.1) tclmaj=8 tclmin=1 tkmaj=8 tkmin=1 ;;
|
|
|
|
8.2) tclmaj=8 tclmin=2 tkmaj=8 tkmin=2 ;;
|
2000-02-14 23:25:10 -08:00
|
|
|
8.3) tclmaj=8 tclmin=3 tkmaj=8 tkmin=3 ;;
|
2002-05-28 20:51:53 -07:00
|
|
|
8.4) tclmaj=8 tclmin=4 tkmaj=8 tkmin=4 ;;
|
2008-05-01 23:41:30 -07:00
|
|
|
8.5) tclmaj=8 tclmin=5 tkmaj=8 tkmin=5 ;;
|
1999-11-30 08:07:38 -08:00
|
|
|
*) echo "This version is not known."; has_tk=false ;;
|
|
|
|
esac
|
|
|
|
else
|
2004-11-24 16:06:06 -08:00
|
|
|
echo "tcl.h and/or tk.h not found."
|
1999-11-30 08:07:38 -08:00
|
|
|
has_tk=false
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
tkauxlibs="$mathlib $dllib"
|
|
|
|
tcllib=''
|
|
|
|
tklib=''
|
|
|
|
if test $has_tk = true; then
|
2004-08-26 19:46:09 -07:00
|
|
|
if test -n "$tk_libs" && \
|
|
|
|
sh ./hasgot $tk_libs $tk_x11_libs $tkauxlibs Tcl_DoOneEvent
|
1999-11-30 08:07:38 -08:00
|
|
|
then tk_libs="$tk_libs $dllib"
|
|
|
|
elif sh ./hasgot $tk_libs -ltcl$tclmaj.$tclmin $tkauxlibs Tcl_DoOneEvent
|
|
|
|
then
|
1999-12-22 07:01:35 -08:00
|
|
|
tk_libs="$tk_libs -ltk$tkmaj.$tkmin -ltcl$tclmaj.$tclmin $dllib"
|
1999-11-30 08:07:38 -08:00
|
|
|
elif sh ./hasgot $tk_libs -ltcl$tclmaj$tclmin $tkauxlibs Tcl_DoOneEvent
|
|
|
|
then
|
1999-12-22 07:01:35 -08:00
|
|
|
tk_libs="$tk_libs -ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin $dllib"
|
1999-11-30 08:07:38 -08:00
|
|
|
elif test -z "$tk_libs" && tk_libs=-L/usr/local/lib && \
|
|
|
|
sh ./hasgot $tk_libs -ltcl$tclmaj.$tclmin $tkauxlibs Tcl_DoOneEvent
|
|
|
|
then
|
1999-12-22 07:01:35 -08:00
|
|
|
tk_libs="$tk_libs -ltk$tkmaj.$tkmin -ltcl$tclmaj.$tclmin $dllib"
|
1999-11-30 08:07:38 -08:00
|
|
|
elif sh ./hasgot $tk_libs -ltcl$tclmaj$tclmin $tkauxlibs Tcl_DoOneEvent
|
|
|
|
then
|
1999-12-22 07:01:35 -08:00
|
|
|
tk_libs="$tk_libs -ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin $dllib"
|
2003-08-20 08:10:58 -07:00
|
|
|
elif sh ./hasgot -L/sw/lib $tk_libs -ltcl$tclmaj.$tclmin $tkauxlibs \
|
|
|
|
Tcl_DoOneEvent
|
|
|
|
then tk_libs="-L/sw/lib -ltk$tkmaj.$tkmin -ltcl$tclmaj.$tclmin $dllib"
|
2005-11-08 06:00:23 -08:00
|
|
|
elif sh ./hasgot -L/usr/pkg/lib $tk_libs $tk_x11_libs \
|
|
|
|
-ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin -lpthread $tkauxlibs \
|
|
|
|
Tcl_DoOneEvent
|
|
|
|
then
|
2008-10-06 06:31:47 -07:00
|
|
|
case "$host" in
|
|
|
|
*-*-*bsd*) tk_libs="-R/usr/pkg/lib -L/usr/pkg/lib $tk_libs $tk_x11_libs -ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin -lpthread $tkauxlibs";;
|
|
|
|
*) tk_libs="-L/usr/pkg/lib $tk_libs $tk_x11_libs -ltk$tkmaj$tkmin -ltcl$tclmaj$tclmin -lpthread $tkauxlibs";;
|
|
|
|
esac
|
1999-11-30 08:07:38 -08:00
|
|
|
else
|
|
|
|
echo "Tcl library not found."
|
|
|
|
has_tk=false
|
|
|
|
fi
|
|
|
|
fi
|
2005-11-08 06:00:23 -08:00
|
|
|
|
1999-11-30 08:07:38 -08:00
|
|
|
if test $has_tk = true; then
|
2000-08-24 23:53:45 -07:00
|
|
|
if sh ./hasgot $tk_libs $tk_x11_libs $tkauxlibs Tk_SetGrid; then
|
1999-11-30 08:07:38 -08:00
|
|
|
echo "Tcl/Tk libraries found."
|
2002-02-08 11:33:57 -08:00
|
|
|
elif sh ./hasgot -L/sw/lib $tk_libs $tk_x11_libs $tkauxlibs Tk_SetGrid; then
|
2008-10-06 06:31:47 -07:00
|
|
|
case "$host" in
|
|
|
|
*-*-*bsd*) tk_libs="-R/sw/lib -L/sw/lib $tk_libs";;
|
|
|
|
*) tk_libs="-L/sw/lib $tk_libs";;
|
|
|
|
esac
|
2002-02-08 11:33:57 -08:00
|
|
|
echo "Tcl/Tk libraries found."
|
2005-11-08 06:00:23 -08:00
|
|
|
elif sh ./hasgot -L/usr/pkg/lib $tk_libs $tk_x11_libs $tkauxlibs \
|
|
|
|
Tk_SetGrid; then
|
2008-10-06 06:31:47 -07:00
|
|
|
case "$host" in
|
|
|
|
*-*-*bsd*) tk_libs="-R/usr/pkg/lib -L/usr/pkg/lib $tk_libs";;
|
|
|
|
*) tk_libs="-L/usr/pkg/lib $tk_libs";;
|
|
|
|
esac
|
2005-11-08 06:00:23 -08:00
|
|
|
echo "Tcl/Tk libraries found."
|
1999-11-30 08:07:38 -08:00
|
|
|
else
|
|
|
|
echo "Tcl library found."
|
|
|
|
echo "Tk library not found."
|
|
|
|
has_tk=false
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test $has_tk = true; then
|
2002-05-28 20:51:53 -07:00
|
|
|
if test $tk_x11 = yes; then
|
|
|
|
echo "TK_DEFS=$tk_defs "'$(X11_INCLUDES)' >> Makefile
|
|
|
|
echo "TK_LINK=$tk_libs "'$(X11_LINK)' >> Makefile
|
|
|
|
else
|
|
|
|
echo "TK_DEFS=$tk_defs" >> Makefile
|
|
|
|
echo "TK_LINK=$tk_libs" >> Makefile
|
|
|
|
fi
|
1999-11-30 08:07:38 -08:00
|
|
|
otherlibraries="$otherlibraries labltk"
|
|
|
|
else
|
|
|
|
echo "Configuration failed, LablTk will not be built."
|
2007-02-07 02:31:36 -08:00
|
|
|
echo "TK_DEFS=" >> Makefile
|
|
|
|
echo "TK_LINK=" >> Makefile
|
1999-11-30 08:07:38 -08:00
|
|
|
fi
|
|
|
|
|
2002-03-11 02:12:43 -08:00
|
|
|
# Final twiddling of compiler options to work around known bugs
|
|
|
|
|
|
|
|
nativeccprofopts="$nativecccompopts"
|
|
|
|
case "$buggycc" in
|
|
|
|
gcc.2.96)
|
|
|
|
bytecccompopts="$bytecccompopts -fomit-frame-pointer"
|
|
|
|
nativecccompopts="$nativecccompopts -fomit-frame-pointer";;
|
|
|
|
esac
|
|
|
|
|
1996-02-13 08:29:09 -08:00
|
|
|
# Finish generated files
|
|
|
|
|
1998-03-13 11:59:11 -08:00
|
|
|
cclibs="$cclibs $mathlib"
|
1998-02-26 04:46:56 -08:00
|
|
|
|
|
|
|
echo "BYTECC=$bytecc" >> Makefile
|
|
|
|
echo "BYTECCCOMPOPTS=$bytecccompopts" >> Makefile
|
|
|
|
echo "BYTECCLINKOPTS=$bytecclinkopts" >> Makefile
|
2001-10-24 06:08:53 -07:00
|
|
|
echo "BYTECCLIBS=$cclibs $dllib $curseslibs $pthread_link" >> Makefile
|
2001-08-28 07:47:48 -07:00
|
|
|
echo "BYTECCRPATH=$byteccrpath" >> Makefile
|
2000-08-10 02:58:08 -07:00
|
|
|
echo "EXE=$exe" >> Makefile
|
2001-08-28 07:47:48 -07:00
|
|
|
echo "SUPPORTS_SHARED_LIBRARIES=$shared_libraries_supported" >> Makefile
|
|
|
|
echo "SHAREDCCCOMPOPTS=$sharedcccompopts" >> Makefile
|
2001-10-30 01:32:32 -08:00
|
|
|
echo "MKSHAREDLIBRPATH=$mksharedlibrpath" >> Makefile
|
2007-11-06 07:16:56 -08:00
|
|
|
echo "NATDYNLINKOPTS=$natdynlinkopts" >> Makefile
|
2007-02-07 02:31:36 -08:00
|
|
|
cat >> Makefile <<EOF
|
|
|
|
SYSLIB=-l\$(1)
|
2007-02-08 06:41:57 -08:00
|
|
|
#ml let syslib x = "-l"^x;;
|
2007-02-07 02:31:36 -08:00
|
|
|
|
|
|
|
### How to build a static library
|
|
|
|
MKLIB=ar rc \$(1) \$(2); ranlib \$(1)
|
|
|
|
#ml let mklib out files opts = Printf.sprintf "ar rc %s %s %s; ranlib %s" out opts files out;;
|
|
|
|
EOF
|
1998-02-26 04:46:56 -08:00
|
|
|
echo "ARCH=$arch" >> Makefile
|
|
|
|
echo "MODEL=$model" >> Makefile
|
|
|
|
echo "SYSTEM=$system" >> Makefile
|
|
|
|
echo "NATIVECC=$nativecc" >> Makefile
|
|
|
|
echo "NATIVECCCOMPOPTS=$nativecccompopts" >> Makefile
|
2002-03-11 02:12:43 -08:00
|
|
|
echo "NATIVECCPROFOPTS=$nativeccprofopts" >> Makefile
|
1998-02-26 04:46:56 -08:00
|
|
|
echo "NATIVECCLINKOPTS=$nativecclinkopts" >> Makefile
|
2001-08-28 07:47:48 -07:00
|
|
|
echo "NATIVECCRPATH=$nativeccrpath" >> Makefile
|
2002-06-03 07:22:12 -07:00
|
|
|
echo "NATIVECCLIBS=$cclibs $dllib" >> Makefile
|
2007-10-30 05:37:16 -07:00
|
|
|
echo "ASM=$as" >> Makefile
|
1998-02-26 04:46:56 -08:00
|
|
|
echo "ASPP=$aspp" >> Makefile
|
1998-08-06 07:25:24 -07:00
|
|
|
echo "ASPPPROFFLAGS=$asppprofflags" >> Makefile
|
1998-11-06 07:39:18 -08:00
|
|
|
echo "PROFILING=$profiling" >> Makefile
|
1999-11-30 08:07:38 -08:00
|
|
|
echo "DYNLINKOPTS=$dllib" >> Makefile
|
1996-04-01 07:22:44 -08:00
|
|
|
echo "OTHERLIBRARIES=$otherlibraries" >> Makefile
|
1997-02-23 08:29:36 -08:00
|
|
|
echo "DEBUGGER=$debugger" >> Makefile
|
2002-12-02 04:31:19 -08:00
|
|
|
echo "CC_PROFILE=$cc_profile" >> Makefile
|
2007-02-07 02:31:36 -08:00
|
|
|
echo "SYSTHREAD_SUPPORT=$systhread_support" >> Makefile
|
|
|
|
echo "PARTIALLD=$partialld" >> Makefile
|
2010-01-19 06:56:22 -08:00
|
|
|
echo "PACKLD=\$(PARTIALLD) \$(NATIVECCLINKOPTS) -o " \
|
|
|
|
| sed -e 's/ $/\\ /' >> Makefile
|
2007-11-06 07:16:56 -08:00
|
|
|
echo "DLLCCCOMPOPTS=$dllccompopts" >> Makefile
|
2007-11-15 05:21:15 -08:00
|
|
|
echo "IFLEXDIR=$iflexdir" >> Makefile
|
2007-02-07 02:31:36 -08:00
|
|
|
echo "O=o" >> Makefile
|
|
|
|
echo "A=a" >> Makefile
|
2008-09-09 22:51:11 -07:00
|
|
|
echo "SO=so" >> Makefile
|
2007-02-07 02:31:36 -08:00
|
|
|
echo "EXT_OBJ=.o" >> Makefile
|
|
|
|
echo "EXT_ASM=.s" >> Makefile
|
|
|
|
echo "EXT_LIB=.a" >> Makefile
|
|
|
|
echo "EXT_DLL=.so" >> Makefile
|
|
|
|
echo "EXTRALIBS=" >> Makefile
|
|
|
|
echo "CCOMPTYPE=cc" >> Makefile
|
|
|
|
echo "TOOLCHAIN=cc" >> Makefile
|
2007-11-06 07:16:56 -08:00
|
|
|
echo "CMXS=$cmxs" >> Makefile
|
2007-11-15 05:21:15 -08:00
|
|
|
echo "MKEXE=$mkexe" >> Makefile
|
|
|
|
echo "MKDLL=$mksharedlib" >> Makefile
|
2007-11-15 07:18:28 -08:00
|
|
|
echo "MKMAINDLL=$mkmaindll" >> Makefile
|
1996-02-13 08:29:09 -08:00
|
|
|
|
|
|
|
rm -f tst hasgot.c
|
|
|
|
rm -f ../m.h ../s.h ../Makefile
|
|
|
|
mv m.h s.h Makefile ..
|
1996-04-01 07:22:44 -08:00
|
|
|
|
|
|
|
# Print a summary
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo "** Configuration summary **"
|
|
|
|
echo
|
1996-04-30 07:53:58 -07:00
|
|
|
echo "Directories where Objective Caml will be installed:"
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " binaries.................. $bindir"
|
|
|
|
echo " standard library.......... $libdir"
|
|
|
|
echo " manual pages.............. $mandir (with extension .$manext)"
|
1996-04-01 07:22:44 -08:00
|
|
|
|
|
|
|
echo "Configuration for the bytecode compiler:"
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " C compiler used........... $bytecc"
|
|
|
|
echo " options for compiling..... $bytecccompopts"
|
2001-10-24 06:08:53 -07:00
|
|
|
echo " options for linking....... $bytecclinkopts $cclibs $dllib $curseslibs $pthread_link"
|
2001-08-28 07:47:48 -07:00
|
|
|
if $shared_libraries_supported; then
|
|
|
|
echo " shared libraries are supported"
|
|
|
|
echo " options for compiling..... $sharedcccompopts $bytecccompopts"
|
2007-11-15 05:21:15 -08:00
|
|
|
echo " command for building...... $mksharedlib -o lib.so $mksharedlibrpath/a/path objs"
|
2001-08-28 07:47:48 -07:00
|
|
|
else
|
|
|
|
echo " shared libraries not supported"
|
|
|
|
fi
|
1996-04-01 07:22:44 -08:00
|
|
|
|
|
|
|
echo "Configuration for the native-code compiler:"
|
|
|
|
if test "$arch" = "none"; then
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " (not supported on this platform)"
|
1996-04-01 07:22:44 -08:00
|
|
|
else
|
|
|
|
if test "$model" = "default"; then
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " hardware architecture..... $arch"
|
1996-04-01 07:22:44 -08:00
|
|
|
else
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " hardware architecture..... $arch ($model)"
|
1996-04-01 07:22:44 -08:00
|
|
|
fi
|
|
|
|
if test "$system" = "unknown"; then : ; else
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " OS variant................ $system"
|
1996-04-01 07:22:44 -08:00
|
|
|
fi
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " C compiler used........... $nativecc"
|
|
|
|
echo " options for compiling..... $nativecccompopts"
|
|
|
|
echo " options for linking....... $nativecclinkopts $cclibs"
|
2007-10-30 05:37:16 -07:00
|
|
|
echo " assembler ................ $as"
|
|
|
|
echo " preprocessed assembler ... $aspp"
|
1998-11-06 07:39:18 -08:00
|
|
|
if test "$profiling" = "prof"; then
|
|
|
|
echo " profiling with gprof ..... supported"
|
|
|
|
else
|
|
|
|
echo " profiling with gprof ..... not supported"
|
|
|
|
fi
|
1996-04-01 07:22:44 -08:00
|
|
|
fi
|
|
|
|
|
1997-02-23 08:29:36 -08:00
|
|
|
if test "$debugger" = "ocamldebugger"; then
|
|
|
|
echo "Source-level replay debugger: supported"
|
|
|
|
else
|
|
|
|
echo "Source-level replay debugger: not supported"
|
|
|
|
fi
|
|
|
|
|
2002-05-25 01:33:26 -07:00
|
|
|
echo "Additional libraries supported:"
|
|
|
|
echo " $otherlibraries"
|
1996-04-01 07:22:44 -08:00
|
|
|
|
2002-05-25 01:33:26 -07:00
|
|
|
echo "Configuration for the \"num\" library:"
|
2003-10-24 02:18:01 -07:00
|
|
|
echo " target architecture ...... $bng_arch (asm level $bng_asm_level)"
|
1996-04-03 02:01:15 -08:00
|
|
|
|
1996-04-01 07:22:44 -08:00
|
|
|
if test "$x11_include" != "not found" && test "$x11_lib" != "not found"; then
|
2002-05-25 01:33:26 -07:00
|
|
|
echo "Configuration for the \"graph\" library:"
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " options for compiling .... $x11_include"
|
|
|
|
echo " options for linking ...... $x11_link"
|
1996-04-01 07:22:44 -08:00
|
|
|
fi
|
|
|
|
|
1999-11-30 08:07:38 -08:00
|
|
|
if test $has_tk = true; then
|
2002-05-25 01:33:26 -07:00
|
|
|
echo "Configuration for the \"labltk\" library:"
|
2000-01-07 07:50:42 -08:00
|
|
|
echo " use tcl/tk version ....... $tcl_version"
|
|
|
|
echo " options for compiling .... $tk_defs"
|
|
|
|
echo " options for linking ...... $tk_libs"
|
1999-11-30 08:07:38 -08:00
|
|
|
else
|
2004-11-24 16:06:06 -08:00
|
|
|
echo "The \"labltk\" library: not supported"
|
1999-12-09 10:53:52 -08:00
|
|
|
fi
|
2004-11-24 16:06:06 -08:00
|
|
|
|
|
|
|
echo
|
|
|
|
echo "** Objective Caml configuration completed successfully **"
|
|
|
|
echo
|