blob: 5e3976cd76919b1964e7855d6925dffe8167078a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
#!/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
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"
|