Commit | Line | Data |
---|---|---|
14054727 JH |
1 | ?RCS: |
2 | ?RCS: $Id$ | |
3 | ?RCS: | |
4 | ?RCS: Copyright (c) 2000, Jarkko Hietaniemi | |
5 | ?RCS: | |
6 | ?X: | |
7 | ?X: This unit produces a bit of shell code that must be dotted in order | |
8 | ?X: to make quick check on whether the current C compiler is working. | |
9 | ?X: | |
3bb42500 | 10 | ?MAKE:Checkcc ccname ccversion: rm cat test Myread startsh |
14054727 | 11 | ?MAKE: -pick add $@ %< |
3bb42500 JH |
12 | ?S:ccname: |
13 | ?S: This can set either by hints files or by Configure. If using | |
14 | ?S: gcc, this is gcc, and if not, usually equal to cc, unimpressive, no? | |
15 | ?S: Some platforms, however, make good use of this by storing the | |
16 | ?S: flavor of the C compiler being used here. For example if using | |
17 | ?S: the Sun WorkShop suite, ccname will be 'workshop'. | |
18 | ?S:. | |
19 | ?S:ccversion: | |
20 | ?S: This can set either by hints files or by Configure. If using | |
21 | ?S: a (non-gcc) vendor cc, this variable may contain a version for | |
22 | ?S: the compiler. | |
23 | ?S:. | |
14054727 JH |
24 | ?T: trygcc despair |
25 | ?F:./checkcc | |
3bb42500 JH |
26 | ?INIT:ccname='' |
27 | ?INIT:ccversion='' | |
14054727 JH |
28 | ?LINT:extern cc |
29 | ?LINT:change cc | |
30 | ?LINT:extern ccflags | |
31 | ?LINT:change ccflags | |
32 | cat <<EOS >checkcc | |
33 | $startsh | |
34 | EOS | |
35 | cat <<'EOSC' >>checkcc | |
36 | case "$cc" in | |
37 | '') ;; | |
38 | *) $rm -f try try.* | |
39 | $cat >try.c <<EOM | |
40 | int main(int argc, char *argv[]) { | |
41 | return 0; | |
42 | } | |
43 | EOM | |
30e1080a | 44 | if $cc $cflags -o try try.c; then |
14054727 JH |
45 | : |
46 | else | |
47 | echo "Uh-oh, the C compiler '$cc' doesn't seem to be working." >&4 | |
48 | despair=yes | |
49 | trygcc=yes | |
50 | case "$cc" in | |
51 | *gcc*) trygcc=no ;; | |
52 | esac | |
53 | case "`$cc -v -c try.c 2>&1`" in | |
54 | *gcc*) trygcc=no ;; | |
55 | esac | |
56 | if $test X"$trygcc" = Xyes; then | |
57 | if gcc -o try -c try.c; then | |
58 | echo " " | |
59 | echo "You seem to have a working gcc, though." >&4 | |
60 | rp="Would you like to use it?" | |
61 | dflt=y | |
62 | if $test -f myread; then | |
63 | . ./myread | |
64 | else | |
65 | if $test -f UU/myread; then | |
66 | . ./UU/myread | |
67 | else | |
68 | echo "Cannot find myread, sorry. Aborting." >&2 | |
69 | exit 1 | |
70 | fi | |
71 | fi | |
72 | case "$ans" in | |
05c8895a | 73 | [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;; |
14054727 JH |
74 | esac |
75 | fi | |
76 | fi | |
77 | if $test X"$despair" = Xyes; then | |
30e1080a MB |
78 | $cat >&4 <<EOM |
79 | You need to find a working C compiler. | |
80 | Either (purchase and) install the C compiler supplied by your OS vendor, | |
81 | or for a free C compiler try http://gcc.gnu.org/ | |
82 | I cannot continue any further, aborting. | |
83 | EOM | |
14054727 JH |
84 | exit 1 |
85 | fi | |
86 | fi | |
87 | $rm -f try try.* | |
88 | ;; | |
89 | esac | |
90 | EOSC | |
91 |