18f8e44373
... also, name it with "-$$" added instead of ".$$" Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/5608)
50 lines
1.5 KiB
Perl
50 lines
1.5 KiB
Perl
#! /usr/bin/env perl
|
|
# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the OpenSSL license (the "License"). You may not use
|
|
# this file except in compliance with the License. You can obtain a copy
|
|
# in the file LICENSE in the source distribution or at
|
|
# https://www.openssl.org/source/license.html
|
|
|
|
use lib '.';
|
|
use configdata;
|
|
|
|
use File::Compare qw(compare_text);
|
|
|
|
my $buildfile = $config{build_file};
|
|
my $buildfile_new = "$buildfile-$$";
|
|
my $depext = $target{dep_extension} || ".d";
|
|
my @deps =
|
|
grep { -f $_ }
|
|
map { (my $x = $_) =~ s|\.o$|$depext|; $x; }
|
|
grep { $unified_info{sources}->{$_}->[0] =~ /\.cc?$/ }
|
|
keys %{$unified_info{sources}};
|
|
|
|
open IBF, $buildfile or die "Trying to read $buildfile: $!\n";
|
|
open OBF, '>', $buildfile_new or die "Trying to write $buildfile_new: $!\n";
|
|
while (<IBF>) {
|
|
$force_rewrite = 0;
|
|
last if /^# DO NOT DELETE THIS LINE/;
|
|
print OBF or die "$!\n";
|
|
$force_rewrite = 1;
|
|
}
|
|
close IBF;
|
|
|
|
print OBF "# DO NOT DELETE THIS LINE -- make depend depends on it.\n";
|
|
|
|
foreach (@deps) {
|
|
open IBF,$_ or die "Trying to read $_: $!\n";
|
|
while (<IBF>) {
|
|
print OBF or die "$!\n";
|
|
}
|
|
close IBF;
|
|
}
|
|
close OBF;
|
|
|
|
if (compare_text($buildfile_new, $buildfile) != 0) {
|
|
rename $buildfile_new, $buildfile
|
|
or die "Trying to rename $buildfile_new -> $buildfile: $!\n";
|
|
}
|
|
# On VMS, we want to remove all generations of this file, in case there are
|
|
# more than one
|
|
while (unlink $buildfile_new) {}
|