From 05a7aee0e2b9102c8b2ececdc1dfdb727c453c95 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Mon, 16 May 2016 14:54:39 +0200 Subject: [PATCH] Communicate Configure generated header files to build files Add Configure generated header files to $unified_info{generate}. This makes sure the build files will pick them up with the rest for the GENERATED macro, and thereby make sure they get cleaned away by 'make clean' Reviewed-by: Rich Salz --- Configurations/common.tmpl | 2 ++ Configurations/unix-Makefile.tmpl | 7 ++++++- Configurations/windows-makefile.tmpl | 8 +++++++- Configure | 7 +++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl index af1746a144..e3f49e776a 100644 --- a/Configurations/common.tmpl +++ b/Configurations/common.tmpl @@ -42,6 +42,8 @@ my $bin = shift; my %opts = @_; if ($unified_info{generate}->{$src}) { + die "$src is generated by Configure, should not appear in build file\n" + if ref $unified_info{generate}->{$src} eq ""; my $script = $unified_info{generate}->{$src}->[0]; $OUT .= generatesrc(src => $src, generator => $unified_info{generate}->{$src}, diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 469bd323d8..8c27ba98ec 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -84,7 +84,12 @@ DEPS={- join(" ", map { (my $x = $_) =~ s|\.o$|$depext|; $x; } grep { $unified_info{sources}->{$_}->[0] =~ /\.c$/ } keys %{$unified_info{sources}}); -} {- output_on() if $disabled{makedepend}; "" -} -GENERATED={- join(" ", map { (my $x = $_) =~ s|\.S$|\.s|; $x } keys %{$unified_info{generate}}) -} +GENERATED={- join(" ", + ( map { (my $x = $_) =~ s|\.S$|\.s|; $x } + grep { defined $unified_info{generate}->{$_} } + map { @{$unified_info{sources}->{$_}} } + grep { /\.o$/ } keys %{$unified_info{sources}} ), + ( grep { /\.h$/ } keys %{$unified_info{generate}} )) -} {- output_off() if $disabled{apps}; "" -} BIN_SCRIPTS=$(BLDDIR)/tools/c_rehash diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index d72c7bc50e..e48aa2273d 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -77,6 +77,12 @@ DEPS={- join(" ", map { (my $x = $_) =~ s|\.o$|$depext|; $x; } grep { $unified_info{sources}->{$_}->[0] =~ /\.c$/ } keys %{$unified_info{sources}}); -} {- output_on() if $disabled{makedepend}; "" -} +GENERATED={- join(" ", + ( map { (my $x = $_) =~ s|\.[sS]$|\.asm|; $x } + grep { defined $unified_info{generate}->{$_} } + map { @{$unified_info{sources}->{$_}} } + grep { /\.o$/ } keys %{$unified_info{sources}} ), + ( grep { /\.h$/ } keys %{$unified_info{generate}} )) -} # Do not edit these manually. Use Configure with --prefix or --openssldir # to change this! Short explanation in the top comment in Configure @@ -176,7 +182,7 @@ libclean: clean: libclean -del /Q /F $(PROGRAMS) $(TESTPROGS) $(ENGINES) $(SCRIPTS) - -del /Q /S /F *.asm + -del /Q /S /F $(GENERATED) -del /Q /S /F *.d -del /Q /S /F *.obj -del /Q /S /F *.pdb diff --git a/Configure b/Configure index 215ffb87f2..95d457c171 100755 --- a/Configure +++ b/Configure @@ -1731,6 +1731,13 @@ EOF } } + ### Add information about files generated by Configure + foreach (map { abs2rel($_) } @generated_headers) { + die "Configure gerenerated header file $_ has a GENERATE in a build.info\n" + if $unified_info{generate}->{$_}; + $unified_info{generate}->{$_} = "Generated by Configure"; + } + ### Make unified_info a bit more efficient # One level structures foreach (("programs", "libraries", "engines", "scripts", "extra", "overrides")) { -- 2.40.0