|
Packit |
1f8b6b |
#! /bin/sh
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
# Try to turn internationalization off
|
|
Packit |
1f8b6b |
unset LANG
|
|
Packit |
1f8b6b |
unset LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
set -e
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
PINNED=0
|
|
Packit |
1f8b6b |
for i in "$@"; do
|
|
Packit |
1f8b6b |
case $i in
|
|
Packit |
1f8b6b |
--bindir=*)
|
|
Packit |
1f8b6b |
BINDIR=${i##*=}
|
|
Packit |
1f8b6b |
;;
|
|
Packit |
1f8b6b |
--libdir=*)
|
|
Packit |
1f8b6b |
LIBDIR=${i##*=}
|
|
Packit |
1f8b6b |
;;
|
|
Packit |
1f8b6b |
--pkgdir=*)
|
|
Packit |
1f8b6b |
PKGDIR=${i##*=}
|
|
Packit |
1f8b6b |
;;
|
|
Packit |
1f8b6b |
--pinned*)
|
|
Packit |
1f8b6b |
PINNED=1
|
|
Packit |
1f8b6b |
;;
|
|
Packit |
1f8b6b |
*)
|
|
Packit |
1f8b6b |
echo "usage: ./configure [--bindir=<dir>] [--libdir=<dir>] [--pkgdir=<dir>]" 1>&2
|
|
Packit |
1f8b6b |
exit 2
|
|
Packit |
1f8b6b |
;;
|
|
Packit |
1f8b6b |
esac
|
|
Packit |
1f8b6b |
done
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
# OCaml is already installed, this means we should have everything we
|
|
Packit |
1f8b6b |
# need. Just dump its configuration.
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
ocaml_version=`ocamlc -version`
|
|
Packit |
1f8b6b |
major=`echo $ocaml_version | cut -d. -f1`
|
|
Packit |
1f8b6b |
minor=`echo $ocaml_version | cut -d. -f2`
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
if [ $major -lt 4 -o \( $major -eq 4 -a $minor -lt 2 \) ]; then
|
|
Packit |
1f8b6b |
echo "The standalone Camlp4 requires OCaml >= 4.02."
|
|
Packit |
1f8b6b |
echo "For previous versions of OCaml use the Camlp4 distributed with OCaml."
|
|
Packit |
1f8b6b |
exit 2
|
|
Packit |
1f8b6b |
elif [ $major -ne 4 -o $minor -ne 7 ]; then
|
|
Packit |
1f8b6b |
echo "This version of Camlp4 is for OCaml 4.07 but you are using OCaml $ocaml_version."
|
|
Packit |
1f8b6b |
if [ -d .git ] ; then
|
|
Packit |
1f8b6b |
if [ $PINNED -eq 1 ] ; then
|
|
Packit |
1f8b6b |
echo "You've used the wrong opam pin URL for this switch.">&2
|
|
Packit |
1f8b6b |
echo "Try https://github.com/ocaml/camlp4.git#$major.$minor instead">&2
|
|
Packit |
1f8b6b |
else
|
|
Packit |
1f8b6b |
echo "You appear to be building Camlp4 from git, so try the $major.$minor branch."
|
|
Packit |
1f8b6b |
fi
|
|
Packit |
1f8b6b |
fi
|
|
Packit |
1f8b6b |
exit 2
|
|
Packit |
1f8b6b |
fi
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
ocamlc -config | tr -d '\015' | sed 's/: /="/;s/$/"/' > config.sh
|
|
Packit |
1f8b6b |
ocamlc -config | tr -d '\015' | sed 's/^/let /;s/: / = "/;s/$/"/' > myocamlbuild_config.ml
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
# Add a few things to config.sh
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
. ./config.sh
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
if [ "$os_type" = Win32 ]; then
|
|
Packit |
1f8b6b |
ext_exe=".exe"
|
|
Packit |
1f8b6b |
else
|
|
Packit |
1f8b6b |
ext_exe=""
|
|
Packit |
1f8b6b |
fi
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
OCAMLC="`command -v ocamlc`"
|
|
Packit |
1f8b6b |
LIBDIR="${LIBDIR:-$standard_library}"
|
|
Packit |
1f8b6b |
BINDIR="${BINDIR:-`dirname $OCAMLC`}"
|
|
Packit |
1f8b6b |
PKGDIR="${PKGDIR:-$standard_library}"
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
if [ -x "`command -v ocamlopt`" ]; then
|
|
Packit |
1f8b6b |
OB_FLAGS=""
|
|
Packit |
1f8b6b |
else
|
|
Packit |
1f8b6b |
OB_FLAGS="-byte-plugin"
|
|
Packit |
1f8b6b |
fi
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
COMPLIBS="`ocamlc -where`/compiler-libs"
|
|
Packit |
1f8b6b |
if [ -f "$COMPLIBS/opttoploop.cmi" ]; then
|
|
Packit |
1f8b6b |
OCAMLNAT=true
|
|
Packit |
1f8b6b |
else
|
|
Packit |
1f8b6b |
OCAMLNAT=false
|
|
Packit |
1f8b6b |
fi
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
cat >> config.sh <
|
|
Packit |
1f8b6b |
A="$ext_lib"
|
|
Packit |
1f8b6b |
O="$ext_obj"
|
|
Packit |
1f8b6b |
EXE="$ext_exe"
|
|
Packit |
1f8b6b |
LIBDIR="$LIBDIR"
|
|
Packit |
1f8b6b |
BINDIR="$BINDIR"
|
|
Packit |
1f8b6b |
PKGDIR="$PKGDIR"
|
|
Packit |
1f8b6b |
OB_FLAGS=$OB_FLAGS
|
|
Packit |
1f8b6b |
OCAMLNAT=$OCAMLNAT
|
|
Packit |
1f8b6b |
EOF
|
|
Packit |
1f8b6b |
|
|
Packit |
1f8b6b |
cat >> myocamlbuild_config.ml <
|
|
Packit |
1f8b6b |
let libdir="$LIBDIR"
|
|
Packit |
1f8b6b |
let bindir="$BINDIR"
|
|
Packit |
1f8b6b |
let pkgdir="$PKGDIR"
|
|
Packit |
1f8b6b |
let ocamlnat=$OCAMLNAT
|
|
Packit |
1f8b6b |
EOF
|