diff options
| author | Graydon Hoare <[email protected]> | 2011-03-17 23:51:45 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2011-03-17 23:52:15 -0700 |
| commit | 4c2245d8421ff43832b005375025cd14f56c1ca9 (patch) | |
| tree | 65c7fc360cdd49854c380d0b2f6640ff347ad96d /configure | |
| parent | rustc: Switch mutability from being a type constructor to a field annotation (diff) | |
| download | rust-4c2245d8421ff43832b005375025cd14f56c1ca9.tar.xz rust-4c2245d8421ff43832b005375025cd14f56c1ca9.zip | |
Yet more painstaking configure/make logic.
Diffstat (limited to 'configure')
| -rwxr-xr-x | configure | 116 |
1 files changed, 87 insertions, 29 deletions
@@ -3,41 +3,40 @@ CFG_SRC_DIR=${0%${0##*/}} CFG_BUILD_DIR=$PWD -echo "configure: recreating config.mk" -echo '' >config.mk +msg() { + echo "configure: $1" +} -echo "configure: making directories" -for i in \ - doc \ - boot/fe boot/me boot/be boot/driver boot/util \ - rt/isaac rt/bigint rt/sync rt/test -do - mkdir -p -v $i -done +err() { + echo "configure: error: $1" + exit 1 +} + +make_dir() { + if [ ! -d $1 ] + then + msg "mkdir -p $1" + mkdir -p $1 + fi +} + +copy() { + msg "cp $1 $1" + cp $1 $2 +} make_test_subdirs() { for t in run-pass run-fail compile-fail do - mkdir -p -v $1/test/$t + make_dir $1/test/$t done } -make_test_subdirs boot - -for i in 0 1 2 -do - mkdir -p -v stage$i - make_test_subdirs stage$i -done - -echo "configure: copying Makefile" -cp -v ${CFG_SRC_DIR}Makefile.in ./Makefile - putvar() { local T eval T=\$$1 - printf "%-20s := %s\n" $1 $T - printf "%-20s := %s\n" $1 $T >>config.mk + printf "%-20s := %s\n" $1 "$T" + printf "%-20s := %s\n" $1 "$T" >>config.mk } probe() { @@ -53,7 +52,39 @@ probe() { putvar $V } -echo "configure: inspecting environment" +probe_need() { + local V=$1 + local P=$2 + probe $1 $2 + eval VV=\$$V + if [ -z "$VV" ] + then + err "required program '$P' not found" + fi +} + + +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/isaac rt/bigint rt/sync rt/test +do + make_dir $i +done + +make_test_subdirs boot + +for i in 0 1 2 +do + make_dir stage$i + make_test_subdirs stage$i +done + +msg "inspecting environment" CFG_OSTYPE=$(uname -s) CFG_CPUTYPE=$(uname -m) @@ -63,13 +94,40 @@ putvar CFG_BUILD_DIR putvar CFG_OSTYPE putvar CFG_CPUTYPE -echo "configure: looking for programs" +msg "looking for programs" +probe_need CFG_GCC gcc +probe_need CFG_LLVM_CONFIG llvm-config +probe_need CFG_OCAMLC ocamlc +probe_need CFG_PERL perl +probe_need CFG_SED sed + probe CFG_VALGRIND valgrind -probe CFG_OCAMLC ocamlc -probe CFG_OCAMLC_OPT ocamlc.opt probe CFG_OCAMLOPT ocamlopt +probe CFG_OCAMLC_OPT ocamlc.opt probe CFG_OCAMLOPT_OPT ocamlopt.opt probe CFG_FLEXLINK flexlink -probe CFG_LLVM_CONFIG llvm-config + +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_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_CXXFLAGS +putvar CFG_LLVM_LDFLAGS +putvar CFG_LLVM_LIBS + +copy ${CFG_SRC_DIR}Makefile.in ./Makefile echo "configure: complete" |