Commit f1f07a23 authored by Rich Salz's avatar Rich Salz Committed by Rich Salz
Browse files

Better check for gcc/clang



Iteratively improved with Richard and Andy.

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent eb507efb
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -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 −5
Original line number Diff line number Diff line
@@ -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