summaryrefslogtreecommitdiffstats
path: root/Configure
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2021-08-23 08:54:37 +0200
committerRichard Levitte <levitte@openssl.org>2022-05-22 17:44:57 +0200
commit5cbd580be9012edb39a60dc303f9ea55c7e4d7bd (patch)
tree083a4ea70b0f6c3c0572ac6ba9c1397284e3bac2 /Configure
parent7d78017bd88758cc4cc1337da282f5439c17719a (diff)
Configuration: produce include/openssl/configuration.h when configuring
The goal is to avoid having too much of the OpenSSL source rebuilt because include/openssl/configuration.h, or even because it was a Makefile target that was called upon (some make implementations consider the use of a target as an update of that target, even if it wasn't really updated). To resolve this, we move the production of include/openssl/configuration.h to configdata.pm, and only update it if there were any actual changes. Fixes #16377 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/16378) (cherry picked from commit 2522889620446f1e56338367d1b6b028ea952bb4)
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure7
1 files changed, 5 insertions, 2 deletions
diff --git a/Configure b/Configure
index f5bbd8ba8e..d274a9e67d 100755
--- a/Configure
+++ b/Configure
@@ -2864,8 +2864,11 @@ if (-f $configdata_outname) {
# like nothing happened
unlink "$configdata_outname.new";
- # We still run configdata.pm if the build file (Makefile) is missing
- $run_configdata = !( -f $target{build_file} );
+ # We still run configdata.pm if one of the build file (Makefile) or
+ # the configuration header file are missing
+ $run_configdata =
+ !( -f $target{build_file} )
+ || !( -f catfile('include', 'openssl', 'configuration.h') );
}
} else {
$update_configdata = 1;