Create empty.h (used to force rebuilds of version.o by the automake

makefile) as a side effect of running mkfiles.pl.

The automake docs observe that the BUILT_SOURCES list is only
automatically built by plain 'make' or 'make all' or a couple of other
targets, so the sequence './configure && make plink' from a freshly
unpacked tar file would previously fail for lack of empty.h.

If empty.h had important _content_ that needed to be built at compile
time, of course, I wouldn't be able to fix it like this; but since the
only important thing is the timestamp, I can just make sure it already
exists at the time of first build.

[originally from svn r9288]
This commit is contained in:
Simon Tatham 2011-09-14 15:54:26 +00:00
Родитель aac16a33e8
Коммит a4424bfd85
2 изменённых файлов: 13 добавлений и 2 удалений

5
Recipe
Просмотреть файл

@ -179,9 +179,12 @@ version.o: FORCE
BUILT_SOURCES = empty.h
CLEANFILES = empty.h
empty.h: $(allsources)
echo '/* nothing to see here */' >$@
echo '/* Empty file touched by automake makefile to force rebuild of version.o */' >$@
!end
!begin >empty.h
/* Empty file touched by automake makefile to force rebuild of version.o */
!end
# Add VER to Windows resource targets, and force them to be rebuilt every
# time, on the assumption that they will contain version information.

Просмотреть файл

@ -88,7 +88,9 @@ while (<IN>) {
}
if ($_[0] eq "!forceobj") { $forceobj{$_[1]} = 1; next; }
if ($_[0] eq "!begin") {
if (&mfval($_[1])) {
if ($_[1] =~ /^>(.*)/) {
$divert = \$auxfiles{$1};
} elsif (&mfval($_[1])) {
$sect = $_[2] ? $_[2] : "end";
$divert = \($makefile_extra{$_[1]}->{$sect});
} else {
@ -145,6 +147,12 @@ while (<IN>) {
close IN;
foreach $aux (sort keys %auxfiles) {
open AUX, ">$aux";
print AUX $auxfiles{$aux};
close AUX;
}
# Now retrieve the complete list of objects and resource files, and
# construct dependency data for them. While we're here, expand the
# object list for each program, and complain if its type isn't set.