提交 f1f07a23 编写于 作者: R Rich Salz 提交者: Rich Salz

Better check for gcc/clang

Iteratively improved with Richard and Andy.
Reviewed-by: NAndy Polyakov <appro@openssl.org>
Reviewed-by: NRichard Levitte <levitte@openssl.org>
上级 eb507efb
......@@ -1072,11 +1072,19 @@ if (!$no_asm) {
}
}
# Is the compiler gcc or clang? $ecc is used below to see if error-checking
# can be turned on.
my $ecc = $target{cc};
$ecc = "clang" if `$target{cc} --version 2>&1` =~ /clang/;
my $ccpcc = "$config{cross_compile_prefix}$target{cc}";
$config{makedepprog} = 'makedepend';
open(PIPE, "$ccpcc --version 2>&1 | head -2 |");
while ( <PIPE> ) {
$config{makedepprog} = $ccpcc if /clang|gcc/;
$ecc = "clang" if /clang/;
$ecc = "gcc" if /gcc/;
}
close(PIPE);
$config{makedepprog} =
$ecc eq "gcc" || $ecc eq "clang" ? $target{cc} : "makedepend";
$config{depflags} =~ s/^\s*//;
......@@ -1121,7 +1129,8 @@ if (defined($config{api})) {
if ($strict_warnings)
{
my $wopt;
die "ERROR --strict-warnings requires gcc or clang" unless ($ecc =~ /gcc(-\d(\.\d)*)?$/ or $ecc =~ /clang$/);
die "ERROR --strict-warnings requires gcc or clang"
unless $ecc eq 'gcc' || $ecc eq 'clang';
foreach $wopt (split /\s+/, $gcc_devteam_warn)
{
$config{cflags} .= " $wopt" unless ($config{cflags} =~ /(^|\s)$wopt(\s|$)/)
......
......@@ -6,20 +6,21 @@
{- "MAKEDEPEND=" . quotify1($config{makedepprog}) -}
case "${MAKEDEPEND}" in
cat)
;;
makedepend)
cp Makefile.in Makefile
${MAKEDEPEND} -DOPENSSL_DOING_MAKEDEPEND $@ || exit 1
;;
*)
args="-Werror -M"
args="-Werror -MM"
while [ $# -gt 0 ]; do
if [ "$1" != '--' ] ; then
args="$args $1"
fi
shift
done
${MAKEDEPEND} -DOPENSSL_DOING_MAKEDEPEND $args >Makefile.tmp || exit 1
cat Makefile.in Makefile.tmp >Makefile
rm Makefile.tmp
sed -e '/DO NOT DELETE THIS LINE/q' Makefile >Makefile.tmp
${MAKEDEPEND} -DOPENSSL_DOING_MAKEDEPEND $args >>Makefile.tmp || exit 1
mv Makefile.tmp Makefile
;;
esac
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册