summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorGravatar Samuel Mimram <samuel.mimram@ens-lyon.org>2004-07-28 21:54:47 +0000
committerGravatar Samuel Mimram <samuel.mimram@ens-lyon.org>2004-07-28 21:54:47 +0000
commit6b649aba925b6f7462da07599fe67ebb12a3460e (patch)
tree43656bcaa51164548f3fa14e5b10de5ef1088574 /configure
Imported Upstream version 8.0pl1upstream/8.0pl1
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure542
1 files changed, 542 insertions, 0 deletions
diff --git a/configure b/configure
new file mode 100755
index 00000000..923eee76
--- /dev/null
+++ b/configure
@@ -0,0 +1,542 @@
+#!/bin/sh
+
+##################################
+#
+# Configuration script for Coq
+#
+##################################
+
+VERSION=8.0pl1
+DATE="Jul 2004"
+
+# a local which command for sh
+which () {
+IFS=":" # set words separator in PATH to be ':' (it allows spaces in dirnames)
+for i in $PATH; do
+ if test -z "$i"; then i=.; fi
+ if [ -f "$i/$1" ] ; then
+ IFS=" "
+ echo "$i/$1"
+ break
+ fi
+done
+}
+
+bytecamlc=ocamlc
+nativecamlc=ocamlopt
+camlp4o=camlp4o
+coq_debug_flag=
+coq_profile_flag=
+best_compiler=opt
+
+local=false
+bindir_spec=no
+libdir_spec=no
+mandir_spec=no
+emacslib_spec=no
+emacs_spec=no
+coqdocdir_spec=no
+reals_opt=no
+reals=all
+arch_spec=no
+coqide_spec=no
+
+COQTOP=`pwd`
+
+
+# Parse command-line arguments
+
+while : ; do
+ case "$1" in
+ "") break;;
+ -prefix|--prefix) bindir_spec=yes
+ bindir=$2/bin
+ libdir_spec=yes
+ libdir=$2/lib/coq
+ mandir_spec=yes
+ mandir=$2/man
+ coqdocdir_spec=yes
+ coqdocdir=$2/share/texmf/tex/latex/misc
+ shift;;
+ -local|--local) local=true
+ bindir_spec=yes
+ bindir=$COQTOP/bin
+ libdir_spec=yes
+ libdir=$COQTOP
+ mandir_spec=yes
+ mandir=$COQTOP/man
+ emacslib_spec=yes
+ emacslib=$COQTOP/tools/emacs
+ coqdocdir_spec=yes
+ coqdocdir=$COQTOP/tools/coqdoc
+ reals_opt=yes
+ reals=all;;
+ -src|--src) COQTOP=$2
+ shift;;
+ -bindir|--bindir) bindir_spec=yes
+ bindir=$2
+ shift;;
+ -libdir|--libdir) libdir_spec=yes
+ libdir=$2
+ shift;;
+ -mandir|--mandir) mandir_spec=yes
+ mandir=$2
+ shift;;
+ -emacslib|--emacslib) emacslib_spec=yes
+ emacslib=$2
+ shift;;
+ -emacs |--emacs) emacs_spec=yes
+ emacs=$2
+ shift;;
+ -coqdocdir|--coqdocdir) coqdocdir_spec=yes
+ coqdocdir=$2
+ shift;;
+ -arch|--arch) arch_spec=yes
+ arch=$2
+ shift;;
+ -opt|--opt) bytecamlc=ocamlc.opt
+ camlp4o=camlp4o # can't add .opt since dyn load'll be required
+ nativecamlc=ocamlopt.opt;;
+ -reals|--reals) reals_opt=yes
+ reals=$2
+ shift;;
+ -coqide|--coqide) coqide_spec=yes
+ COQIDE=$2
+ shift;;
+ -byte-only|-byteonly|--byteonly|--byte-only) best_compiler=byte;;
+ -debug|--debug) coq_debug_flag=-g;;
+ -profile|--profile) coq_profile_flag=-p;;
+ *) echo "Unknown option \"$1\"." 1>&2; exit 2;;
+ esac
+ shift
+done
+
+
+# compile date
+DATEPGM=`which date`
+case $DATEPGM in
+ "") echo "I can't find the program \"date\" in your path."
+ echo "Please give me the current date"
+ read COMPILEDATE;;
+ *) COMPILEDATE=`date +"%h %d %Y %H:%M:%S"`;;
+esac
+
+# Architecture
+
+case $arch_spec in
+ no) if test -x /bin/arch ; then
+ ARCH=`/bin/arch`
+ elif test -x /usr/bin/arch ; then
+ ARCH=`/usr/bin/arch`
+ elif test -x /usr/ucb/arch ; then
+ ARCH=`/usr/ucb/arch`
+ elif test -x /bin/uname && (/bin/uname -s | grep -q -i CYGWIN) ; then
+ ARCH=win32
+ # cygwin returns a name of the form /cygdrive/c/...
+ # that coqc does not understand; need to transform it
+ COQTOP=`echo $COQTOP | sed -e "s#.*cygdrive.\(.\)#\1:#"`
+ elif test -x /usr/bin/uname ; then
+ ARCH=`/usr/bin/uname -s`
+ else
+ echo "I can not automatically find the name of your architecture"
+ echo -n\
+ "Give me a name, please [win32 for Win95, Win98 or WinNT]: "
+ read ARCH
+ fi;;
+ yes) ARCH=$arch
+esac
+
+# bindir, libdir, mandir, etc.
+
+case $ARCH in
+ win32)
+ bindir_def=C:\\coq\\bin
+ libdir_def=C:\\coq\\lib
+ mandir_def=C:\\coq\\man
+ emacslib_def=C:\\coq\\emacs;;
+ *)
+ bindir_def=/usr/local/bin
+ libdir_def=/usr/local/lib/coq
+ mandir_def=/usr/local/man
+ emacslib_def=/usr/share/emacs/site-lisp
+ coqdocdir_def=/usr/share/texmf/tex/latex/misc;;
+esac
+
+emacs_def=emacs
+
+case $bindir_spec in
+ no) echo "Where should I install the Coq binaries [$bindir_def] ?"
+ read BINDIR
+
+ case $BINDIR in
+ "") BINDIR=$bindir_def;;
+ *) true;;
+ esac;;
+ yes) BINDIR=$bindir;;
+esac
+
+case $libdir_spec in
+ no) echo "Where should I install the Coq library [$libdir_def] ?"
+ read LIBDIR
+
+ case $LIBDIR in
+ "") LIBDIR=$libdir_def;;
+ *) true;;
+ esac;;
+ yes) LIBDIR=$libdir;;
+esac
+
+case $mandir_spec in
+ no) echo "Where should I install the Coq man pages [$mandir_def] ?"
+ read MANDIR
+
+ case $MANDIR in
+ "") MANDIR=$mandir_def;;
+ *) true;;
+ esac;;
+ yes) MANDIR=$mandir;;
+esac
+
+case $emacslib_spec in
+ no) echo "Where should I install the Coq Emacs mode [$emacslib_def] ?"
+ read EMACSLIB
+
+ case $EMACSLIB in
+ "") EMACSLIB=$emacslib_def;;
+ *) true;;
+ esac;;
+ yes) EMACSLIB=$emacslib;;
+esac
+
+case $coqdocdir_spec in
+ no) echo "Where should I install Coqdoc TeX/LaTeX files [$coqdocdir_def] ?"
+ read COQDOCDIR
+
+ case $COQDOCDIR in
+ "") COQDOCDIR=$coqdocdir_def;;
+ *) true;;
+ esac;;
+ yes) COQDOCDIR=$coqdocdir;;
+esac
+
+case $reals_opt in
+ no) echo "Should I compile the complete theory of real analysis [Y/N, default is Y] ?"
+ read reals_ans
+
+ case $reals_ans in
+ "N"|"n"|"No"|"NO"|"no")
+ reals=basic;;
+ *) reals=all;;
+ esac;;
+ yes) true;;
+esac
+
+# case $emacs_spec in
+# no) echo "Which Emacs command should I use to compile coq.el [$emacs_def] ?"
+# read EMACS
+
+# case $EMACS in
+# "") EMACS=$emacs_def;;
+# *) true;;
+# esac;;
+# yes) EMACS=$emacs;;
+# esac
+
+# OS dependent libraries
+
+case $ARCH in
+ sun4*) OS=`uname -r`
+ case $OS in
+ 5*) OS="Sun Solaris $OS"
+ OSDEPLIBS="-cclib -lunix -cclib -lnsl -cclib -lsocket";;
+ *) OS="Sun OS $OS"
+ OSDEPLIBS="-cclib -lunix"
+ esac;;
+ alpha) OSDEPLIBS="-cclib -lunix";;
+ win32) OS="Win32"
+ OSDEPLIBS="-cclib -lunix";;
+ *) OSDEPLIBS="-cclib -lunix"
+esac
+
+# executable extension
+
+case $ARCH in
+ win32) EXE=".exe";;
+ *) EXE=""
+esac
+
+# Objective Caml programs
+
+CAMLC=`which $bytecamlc`
+case "$CAMLC" in
+ "") echo "$bytecamlc is not present in your path !"
+ echo "Give me manually the path to the $bytecamlc executable [/usr/local/bin by default]: "
+ read CAMLC
+
+ case "$CAMLC" in
+ "") CAMLC=/usr/local/bin/$bytecamlc;;
+ */ocamlc|*/ocamlc.opt) true;;
+ */) CAMLC="${CAMLC}"$bytecamlc;;
+ *) CAMLC="${CAMLC}"/$bytecamlc;;
+ esac
+ bytecamlc="$CAMLC"
+ nativecamlc=`dirname "$CAMLC"`/$nativecamlc;;
+esac
+
+if test ! -f "$CAMLC" ; then
+ echo "I can not find the executable '$CAMLC'! (Have you installed it?)"
+ echo "Configuration script failed!"
+ exit 1
+fi
+
+CAMLBIN=`dirname "$CAMLC"`
+CAMLVERSION=`"$CAMLC" -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
+
+case $CAMLVERSION in
+ 1.*|2.*|3.00|3.01|3.02|3.03|3.03alpha|3.04|3.05beta|3.05)
+ echo "Your version of Objective-Caml is $CAMLVERSION."
+ echo "You need Objective-Caml 3.06 or later !"
+ echo "Configuration script failed!"
+ exit 1;;
+ ?*) echo "You have Objective-Caml $CAMLVERSION. Good!";;
+ *) echo "I found the Objective-Caml compiler but cannot find its version number!"
+ echo "Is it installed properly ?"
+ echo "Configuration script failed!"
+ exit 1;;
+esac
+
+CAMLTAG=OCAML`echo $CAMLVERSION | sed -e "s/\([1-9]\)\.\([0-9]*\).*/\1\2/g"`
+
+# do we have a native compiler: test of ocamlopt and its version
+
+if [ "$best_compiler" = "opt" ] ; then
+ CAMLOPT=`which $nativecamlc`
+ case "$CAMLOPT" in
+ "") best_compiler=byte
+ echo "You have only bytecode compilation.";;
+ *) CAMLOPTVERSION=`"$CAMLOPT" -v | sed -n -e 's|.*version* *\(.*\)$|\1|p' `
+ if [ "$CAMLOPTVERSION" != "$CAMLVERSION" ] ; then \
+ echo "native and bytecode compilers do not have the same version!"; fi
+ echo "You have native-code compilation. Good!"
+ esac
+fi
+
+# For coqmktop
+
+#CAMLLIB=`"$CAMLC" -v | sed -n -e 's|.*directory:* *\(.*\)$|\1|p' `
+CAMLLIB=`"$CAMLC" -where`
+
+# Camlp4 (greatly simplified since merged with ocaml)
+
+CAMLP4BIN=${CAMLBIN}
+
+#case $OS in
+# Win32)
+ CAMLP4LIB=+camlp4
+# ;;
+# *)
+# CAMLP4LIB=${CAMLLIB}/camlp4
+#esac
+
+# lablgtk2 and CoqIDE
+
+if [ "$coqide_spec" = "no" ] ; then
+if test -x "${CAMLLIB}/lablgtk2" ; then
+ if grep -q -w convert_with_fallback "${CAMLLIB}/lablgtk2/glib.mli" ; then
+ if test -f "${CAMLLIB}/threads/threads.cmxa" ; then
+ echo "LablGtk2 found, native threads: native CoqIde will be available"
+ COQIDE=opt;
+ else
+ echo "LablGtk2 found, no native threads: bytecode CoqIde will be available"
+ COQIDE=byte
+ fi;
+ else
+ echo "LablGtk2 found but too old: CoqIde will not be available"
+ COQIDE=no;
+ fi
+else
+ echo "LablGtk2 not found: CoqIde will not be available"
+ COQIDE=no
+fi
+fi
+
+# Tell on windows if ocaml understands cygwin or windows path formats
+
+#"$CAMLC" -o config/giveostype config/giveostype.ml
+#CAMLOSTYPE=`config/giveostype`
+#rm config/giveostype
+
+case $ARCH in
+ win32)
+ # true -> strip : it exists under cygwin !
+ STRIPCOMMAND="strip";;
+ *)
+ if [ "$coq_profile_flag" = "-p" ] ; then
+ STRIPCOMMAND="true"
+ else
+ STRIPCOMMAND="strip"
+ fi
+esac
+
+# mktexlsr
+#MKTEXLSR=`which mktexlsr`
+#case $MKTEXLSR in
+# "") MKTEXLSR=true;;
+#esac
+
+# Summary of the configuration
+
+echo ""
+echo " Coq top directory : $COQTOP"
+echo " Architecture : $ARCH"
+if test ! -z "$OS" ; then
+ echo " Operating system : $OS"
+fi
+echo " OS dependent libraries : $OSDEPLIBS"
+echo " Objective-Caml/Camlp4 version : $CAMLVERSION"
+echo " Objective-Caml/Camlp4 binaries in : $CAMLBIN"
+echo " Objective-Caml library in : $CAMLLIB"
+echo " Camlp4 library in : $CAMLP4LIB"
+if test "$reals" = "all"; then
+echo " Reals theory : All"
+else
+echo " Reals theory : Basic"
+fi
+echo " CoqIde : $COQIDE"
+echo ""
+
+echo " Paths for true installation:"
+echo " binaries will be copied in $BINDIR"
+echo " library will be copied in $LIBDIR"
+echo " man pages will be copied in $MANDIR"
+echo " emacs mode will be copied in $EMACSLIB"
+echo ""
+
+#####################################################
+# Building the $COQTOP/config/coq_config.ml file
+#####################################################
+
+# damned backslashes under M$Windows
+case $ARCH in
+ win32)
+ CAMLLIB=`echo $CAMLLIB |sed -e 's|\\\|\\\\\\\|g'`
+ BINDIR=`echo $BINDIR |sed -e 's|\\\|\\\\\\\|g'`
+ LIBDIR=`echo $LIBDIR |sed -e 's|\\\|\\\\\\\|g'`
+ MANDIR=`echo $MANDIR |sed -e 's|\\\|\\\\\\\|g'`
+ EMACSLIB=`echo $EMACSLIB |sed -e 's|\\\|\\\\\\\|g'`
+ ;;
+esac
+
+mlconfig_file=$COQTOP/config/coq_config.ml
+rm -f $mlconfig_file
+cat << END_OF_COQ_CONFIG > $mlconfig_file
+(* DO NOT EDIT THIS FILE: automatically generated by ../configure *)
+
+let local = $local
+let bindir = "$BINDIR"
+let coqlib = "$LIBDIR"
+let coqtop = "$COQTOP"
+let camllib = "$CAMLLIB"
+let camlp4lib = "$CAMLP4LIB"
+let best = "$best_compiler"
+let arch = "$ARCH"
+let osdeplibs = "$OSDEPLIBS"
+let version = "$VERSION"
+let versionsi = "$VERSIONSI"
+let date = "$DATE"
+let compile_date = "$COMPILEDATE"
+let exec_extension = "$EXE"
+
+END_OF_COQ_CONFIG
+
+# to be sure printf is found on windows when spaces occur in PATH variable
+PRINTF=`which printf`
+
+# Subdirectories of theories/ added in coq_config.ml
+subdirs () {
+ (cd $1; find * -type d ! -name CVS -exec $PRINTF "\"%s\";\n" {} \; | grep -v extraction/test | grep -v correctness >> $mlconfig_file)
+}
+
+echo "let theories_dirs = [" >> $mlconfig_file
+subdirs theories
+echo "]" >> $mlconfig_file
+
+echo "let contrib_dirs = [" >> $mlconfig_file
+subdirs contrib
+echo "]" >> $mlconfig_file
+
+chmod a-w $mlconfig_file
+
+
+###############################################
+# Building the $COQTOP/config/Makefile file
+###############################################
+
+rm -f $COQTOP/config/Makefile
+
+# damned backslashes under M$Windows (bis)
+case $ARCH in
+ win32)
+ BINDIR=`echo $BINDIR |sed -e 's|\\\|\\\\\\\|g'`
+ LIBDIR=`echo $LIBDIR |sed -e 's|\\\|\\\\\\\|g'`
+ MANDIR=`echo $MANDIR |sed -e 's|\\\|\\\\\\\|g'`
+ EMACSLIB=`echo $EMACSLIB |sed -e 's|\\\|\\\\\\\|g'`
+ ;;
+esac
+
+sed -e "s|LOCALINSTALLATION|$local|" \
+ -e "s|COQTOPDIRECTORY|$COQTOP|" \
+ -e "s|COQVERSION|$VERSION|" \
+ -e "s|BINDIRDIRECTORY|$BINDIR|" \
+ -e "s|COQLIBDIRECTORY|$LIBDIR|" \
+ -e "s|MANDIRDIRECTORY|$MANDIR|" \
+ -e "s|EMACSLIBDIRECTORY|$EMACSLIB|" \
+ -e "s|EMACSCOMMAND|$EMACS|" \
+ -e "s|COQDOCDIRECTORY|$COQDOCDIR|" \
+ -e "s|MKTEXLSRCOMMAND|$MKTEXLSR|" \
+ -e "s|ARCHITECTURE|$ARCH|" \
+ -e "s|OSDEPENDENTLIBS|$OSDEPLIBS|" \
+ -e "s|OSDEPENDENTP4OPTFLAGS|$OSDEPP4OPTFLAGS|" \
+ -e "s|CAMLLIBDIRECTORY|$CAMLLIB|" \
+ -e "s|CAMLTAG|$CAMLTAG|" \
+ -e "s|CAMLP4BINDIRECTORY|$CAMLP4BIN|" \
+ -e "s|CAMLP4LIBDIRECTORY|$CAMLP4LIB|" \
+ -e "s|CAMLP4TOOL|$camlp4o|" \
+ -e "s|COQDEBUGFLAG|$coq_debug_flag|" \
+ -e "s|COQPROFILEFLAG|$coq_profile_flag|" \
+ -e "s|BESTCOMPILER|$best_compiler|" \
+ -e "s|EXECUTEEXTENSION|$EXE|" \
+ -e "s|BYTECAMLC|$bytecamlc|" \
+ -e "s|NATIVECAMLC|$nativecamlc|" \
+ -e "s|STRIPCOMMAND|$STRIPCOMMAND|" \
+ -e "s|REALSOPT|$reals|" \
+ -e "s|COQIDEOPT|$COQIDE|" \
+ $COQTOP/config/Makefile.template > $COQTOP/config/Makefile
+
+chmod a-w $COQTOP/config/Makefile
+
+##################################################
+# Building the $COQTOP/dev/ocamldebug-v7 file
+####################################################
+
+if test "$coq_debug_flag" = "-g" ; then
+ rm -f $COQTOP/dev/ocamldebug-v7
+ if [ "$CAMLP4LIB" = "+camlp4" ] ; then
+ CAMLP4LIBFORCAMLDEBUG=$CAMLLIB/camlp4
+ else
+ CAMLP4LIBFORCAMLDEBUG=$CAMLP4LIB
+ fi
+ sed -e "s|COQTOPDIRECTORY|$COQTOP|" \
+ -e "s|COQLIBDIRECTORY|$LIBDIR|" \
+ -e "s|CAMLBINDIRECTORY|$CAMLBIN|" \
+ -e "s|CAMLP4LIBDIRECTORY|$CAMLP4LIBFORCAMLDEBUG|" \
+ $COQTOP/dev/ocamldebug-v7.template > $COQTOP/dev/ocamldebug-v7
+ chmod a-w,a+x $COQTOP/dev/ocamldebug-v7
+fi
+
+echo "If anything in the above is wrong, please restart './configure'"
+echo
+echo "*Warning* To compile the system for a new architecture"
+echo " don't forget to do a 'make archclean' before './configure'."
+
+# $Id: configure,v 1.74.2.5 2004/07/17 17:06:51 herbelin Exp $