#!/bin/sh CFG_SRC_DIR=${0%${0##*/}} CFG_BUILD_DIR=$PWD msg() { echo "configure: $1" } err() { echo "configure: error: $1" exit 1 } need_cmd() { if which $1 >/dev/null 2>&1 then msg "found $1" else err "need $1" fi } make_dir() { if [ ! -d $1 ] then msg "mkdir -p $1" mkdir -p $1 fi } copy() { msg "cp $1 $1" cp $1 $2 } putvar() { local T eval T=\$$1 eval TLEN=\${#$1} if [ $TLEN -gt 35 ] then printf "configure: %-20s := %.35s ...\n" $1 "$T" else printf "configure: %-20s := %s\n" $1 "$T" fi printf "%-20s := %s\n" $1 "$T" >>config.mk } probe() { local V=$1 local P=$2 local T T=$(which $P 2>&1) if [ $? -ne 0 ] then T="" fi eval $V=\$T putvar $V } probe_need() { local V=$1 local P=$2 probe $V $P eval VV=\$$V if [ -z "$VV" ] then err "required program '$P' not found" fi } msg "looking for configure programs" need_cmd mkdir need_cmd printf msg "recreating config.mk" echo '' >config.mk msg "making directories" for i in \ doc \ boot/fe boot/me boot/be boot/driver boot/util \ rt rt/isaac rt/bigint rt/sync rt/test \ llvmext \ stage0 stage1 stage2 \ test/run-pass test/run-fail test/compile-fail \ test/bench/99-bottles test/bench/shootout do make_dir $i done msg "inspecting environment" CFG_OSTYPE=$(uname -s) CFG_CPUTYPE=$(uname -m) putvar CFG_SRC_DIR putvar CFG_BUILD_DIR putvar CFG_OSTYPE putvar CFG_CPUTYPE msg "looking for build programs" probe_need CFG_GCC gcc probe_need CFG_GIT git probe_need CFG_LLVM_CONFIG llvm-config probe_need CFG_OCAMLC ocamlc probe_need CFG_PERL perl probe_need CFG_PYTHON python probe CFG_VALGRIND valgrind probe CFG_OCAMLOPT ocamlopt probe CFG_OCAMLC_OPT ocamlc.opt probe CFG_OCAMLOPT_OPT ocamlopt.opt probe CFG_FLEXLINK flexlink probe CFG_MAKEINFO makeinfo probe CFG_TEXI2PDF texi2pdf CFG_LLVM_VERSION=$(llvm-config --version) case $CFG_LLVM_VERSION in (3.0svn | 3.0) msg "found ok version of LLVM: $CFG_LLVM_VERSION" ;; (*) err "bad LLVM version: $CFG_LLVM_VERSION, need >=3.0svn" ;; esac CFG_LLVM_INCDIR=$(llvm-config --includedir) CFG_LLVM_BINDIR=$(llvm-config --bindir) CFG_LLVM_LIBDIR=$(llvm-config --libdir) CFG_LLVM_CXXFLAGS=$(llvm-config --cxxflags) CFG_LLVM_LDFLAGS=$(llvm-config --ldflags) CFG_LLVM_LIBS=$(llvm-config --libs) putvar CFG_LLVM_INCDIR putvar CFG_LLVM_BINDIR putvar CFG_LLVM_LIBDIR putvar CFG_LLVM_CXXFLAGS putvar CFG_LLVM_LDFLAGS putvar CFG_LLVM_LIBS copy ${CFG_SRC_DIR}Makefile.in ./Makefile echo "configure: complete"