This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Also the $ccflags is needed for the C compiler check.
[metaconfig.git] / U / perl / Checkcc.U
CommitLineData
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
32cat <<EOS >checkcc
33$startsh
34EOS
35cat <<'EOSC' >>checkcc
36case "$cc" in
37'') ;;
38*) $rm -f try try.*
39 $cat >try.c <<EOM
40int main(int argc, char *argv[]) {
41 return 0;
42}
43EOM
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
79You need to find a working C compiler.
80Either (purchase and) install the C compiler supplied by your OS vendor,
81or for a free C compiler try http://gcc.gnu.org/
82I cannot continue any further, aborting.
83EOM
14054727
JH
84 exit 1
85 fi
86 fi
87 $rm -f try try.*
88 ;;
89esac
90EOSC
91