Improve version.h generation

Force version.sh to run whenever the version might have changed,
regardless of what is being built.  This is done by attaching the
dependencies to a dummy file (.version) which is included from the
makefile.  As make will always attempt to rebuild any included files
before considering other rules, this ensures that the real version.h
is (re-)created before it is required by any source file.

Originally committed as revision 22420 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2010-03-10 02:56:56 +00:00
parent 93bff1de77
commit 6a53fffd77
2 changed files with 12 additions and 9 deletions

View File

@ -85,7 +85,18 @@ tools/%.o: tools/%.c
ffplay.o ffplay.d: CFLAGS += $(SDL_CFLAGS) ffplay.o ffplay.d: CFLAGS += $(SDL_CFLAGS)
cmdutils.o cmdutils.d: version.h VERSION_SH = $(SRC_PATH_BARE)/version.sh
SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
.version: $(wildcard $(SVN_ENTRIES)) $(VERSION_SH) config.mak
.version: M=@
version.h .version:
$(M)$(VERSION_SH) $(SRC_PATH) $@ $(EXTRA_VERSION)
$(Q)touch .version
# force version.sh to run whenever version might have changed
-include .version
alltools: $(TOOLS) alltools: $(TOOLS)

View File

@ -54,14 +54,6 @@ CFLAGS += $(ECFLAGS)
%.c %.h: MSG = GEN %.c %.h: MSG = GEN
SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries
ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES))
$(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES)
endif
$(BUILD_ROOT_REL)/version.h: $(SRC_PATH_BARE)/version.sh config.mak
$(M)$< $(SRC_PATH) $@ $(EXTRA_VERSION)
install: install-libs install-headers install: install-libs install-headers
install-libs: install-libs-yes install-libs: install-libs-yes