Skip to content

Commit 320ac6b

Browse files
committed
Teach configure.sh to probe paths, factor a bit.
1 parent 6a6a30b commit 320ac6b

File tree

1 file changed

+48
-26
lines changed

1 file changed

+48
-26
lines changed

src/configure.sh

100644100755
Lines changed: 48 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,59 @@
33
CFG_SRC_DIR=${0%${0##*/}}
44
CFG_BUILD_DIR=$PWD
55

6-
CFG_OSTYPE=$(uname -s)
7-
CFG_CPUTYPE=$(uname -m)
8-
9-
echo "configuring on $CFG_CPUTYPE $CFG_OSTYPE"
10-
11-
echo "setting up build directories"
12-
for i in boot/{fe,me,be,driver,util} \
13-
rt/{isaac,bigint,sync,test} \
14-
stage{0,1,2} \
15-
test/{run-pass,compile-{pass,fail}}
6+
echo "configure: recreating config.mk"
7+
echo '' >config.mk
8+
9+
echo "configure: making directories"
10+
for i in \
11+
boot/fe boot/me boot/be boot/driver boot/util \
12+
rt/isaac rt/bigint rt/sync rt/test \
13+
stage0 stage1 stage2 \
14+
test/run-pass test/compile-pass test/compile-fail
1615
do
1716
mkdir -p -v $i
1817
done
1918

20-
CFG_VALGRIND=$(sh which valgrind)
21-
CFG_OCAMLC_OPT=$(sh which ocamlc.opt)
22-
23-
echo "copying Makefile"
19+
echo "configure: copying Makefile"
2420
cp -v ${CFG_SRC_DIR}Makefile.in ./Makefile
2521

26-
echo "writing config.mk"
27-
cat >config.mk <<EOF
22+
putvar() {
23+
local T
24+
eval T=\$$1
25+
printf "%-20s := %s\n" $1 $T
26+
printf "%-20s := %s\n" $1 $T >>config.mk
27+
}
28+
29+
probe() {
30+
local V=$1
31+
local P=$2
32+
local T
33+
T=$(which $P 2>&1)
34+
if [ $? -ne 0 ]
35+
then
36+
T=""
37+
fi
38+
eval $V=\$T
39+
putvar $V
40+
}
41+
42+
echo "configure: inspecting environment"
2843

29-
CFG_OSTYPE := $CFG_OSTYPE
30-
CFG_CPUTYPE := $CFG_CPUTYPE
31-
CFG_SRC_DIR := $CFG_SRC_DIR
32-
CFG_BUILD_DIR := $CFG_BUILD_DIR
33-
34-
CFG_VALGRIND := $CFG_VALGRIND
35-
CFG_OCAMLC_OPT := $CFG_OCAMLC_OPT
36-
37-
EOF
44+
CFG_OSTYPE=$(uname -s)
45+
CFG_CPUTYPE=$(uname -m)
3846

39-
echo "configured ok"
47+
putvar CFG_SRC_DIR
48+
putvar CFG_BUILD_DIR
49+
putvar CFG_OSTYPE
50+
putvar CFG_CPUTYPE
51+
52+
echo "configure: looking for programs"
53+
probe CFG_VALGRIND valgrind
54+
probe CFG_OCAMLC ocamlc
55+
probe CFG_OCAMLC_OPT ocamlc.opt
56+
probe CFG_OCAMLOPT ocamlopt
57+
probe CFG_OCAMLOPT_OPT ocamlopt.opt
58+
probe CFG_FLEXLINK flexlink
59+
probe CFG_LLVM_CONFIG llvm-config
60+
61+
echo "configure: complete"

0 commit comments

Comments
 (0)