From: Richard Levitte Date: Fri, 23 Apr 2021 14:19:23 +0000 (+0200) Subject: Windows bulding: Make dependency generation not quite as talkative X-Git-Tag: openssl-3.0.0-alpha16~102 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0bd138b8c36c7e8e504beb2c12a2771929c24cfb;p=thirdparty%2Fopenssl.git Windows bulding: Make dependency generation not quite as talkative The modified way to generate .d files had an unfortunate side effect, that it outputs the whole preprocessed file and not just the dependency lines, at least with MSVC's cl. That gave util/add-depends.pl a whole lot more to read through, which impacts greatly on the performance of dependency treatment. We modify the process by adding a config target attribute 'make_depend', which can be any suitable command for generating such lines. All it needs is to also accept C flags and macro definitions. Fixes #14994 Reviewed-by: Tomas Mraz Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/15006) --- diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index f5e5754b3a6..882af5e65be 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1276,9 +1276,9 @@ my %targets = ( template => 1, CC => "cl", CPP => '"$(CC)" /EP /C', + make_depend => '"$(CC)" /Zs /showIncludes', CFLAGS => "/W3 /wd4090 /nologo", coutflag => "/Fo", - cpp_depend_flags => "/Zs /showIncludes", LD => "link", LDFLAGS => "/nologo /debug", ldoutflag => "/out:", diff --git a/Configurations/50-cppbuilder.conf b/Configurations/50-cppbuilder.conf index 1c47a4c2be1..fad905267bf 100644 --- a/Configurations/50-cppbuilder.conf +++ b/Configurations/50-cppbuilder.conf @@ -6,6 +6,10 @@ my %targets = ( thread_scheme => "winthreads", cc => "bcc32c", CPP => "cpp32 -oCON -Sc -Sr", + # -Sx isn't documented, but 'cpp32 -H -S' explains it: + # + # -Sx Omit preprocessed text in output + make_depend => "cpp32 -oCON -Sx -Hp", defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN32", "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp", "_strnicmp=strnicmp", "_malloca=malloc", @@ -18,7 +22,6 @@ my %targets = ( bin_cflags => "-tWC", lib_cflags => shared("-tWD -D_WINDLL -D_DLL"), coutflag => "-o", - cpp_depend_flags => "-Hp", LD => "ilink32", LDFLAGS => picker(default => "-x -Gn -q -w-dup", debug => '-j"$(BDS)\lib\win32c\debug" ' . diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 6ceab7e94d5..a5afe3848a8 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -836,7 +836,7 @@ $obj: $deps \$(CC) $cflags $defs -c \$(COUTFLAG)\$\@ $srcs EOF $recipe .= <<"EOF" unless $disabled{makedepend}; - cmd /C "\$(CPP) $cflags $defs $target{cpp_depend_flags} $srcs > $dep 2>&1" + cmd /C "$target{make_depend} $cflags $defs $srcs > $dep 2>&1" EOF return $recipe; }