From 3ae9ca444ce244e2bab660de28a5bf7047aa3813 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 17 Mar 2011 14:26:24 -0700 Subject: Move Makefile.in and configure to top level, BOOT_-qualify names, various tweaks. --- configure | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 configure (limited to 'configure') diff --git a/configure b/configure new file mode 100755 index 00000000..0e584f35 --- /dev/null +++ b/configure @@ -0,0 +1,75 @@ +#!/bin/sh + +CFG_SRC_DIR=${0%${0##*/}} +CFG_BUILD_DIR=$PWD + +echo "configure: recreating config.mk" +echo '' >config.mk + +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 + +make_test_subdirs() { + for t in run-pass run-fail compile-fail + do + mkdir -p -v $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 +} + +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 +} + +echo "configure: inspecting environment" + +CFG_OSTYPE=$(uname -s) +CFG_CPUTYPE=$(uname -m) + +putvar CFG_SRC_DIR +putvar CFG_BUILD_DIR +putvar CFG_OSTYPE +putvar CFG_CPUTYPE + +echo "configure: looking for programs" +probe CFG_VALGRIND valgrind +probe CFG_OCAMLC ocamlc +probe CFG_OCAMLC_OPT ocamlc.opt +probe CFG_OCAMLOPT ocamlopt +probe CFG_OCAMLOPT_OPT ocamlopt.opt +probe CFG_FLEXLINK flexlink +probe CFG_LLVM_CONFIG llvm-config + +echo "configure: complete" -- cgit v1.2.3 From 4c2245d8421ff43832b005375025cd14f56c1ca9 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 17 Mar 2011 23:51:45 -0700 Subject: Yet more painstaking configure/make logic. --- configure | 116 ++++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 87 insertions(+), 29 deletions(-) (limited to 'configure') diff --git a/configure b/configure index 0e584f35..1672375e 100755 --- a/configure +++ b/configure @@ -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" -- cgit v1.2.3