configure: Add a --disable-version-tracking option

This disables regenerating ffversion.h whenever the checked out
git commit changes, speeding up development rebuilds.

Whenever this option is set, force the version to be printed as
"unknown" rather than showing potentially stale information.

Signed-off-by: Martin Storsjö <martin@martin.st>
release/7.0
Martin Storsjö 1 year ago
parent 9415c2c11f
commit 1e42a48e37
  1. 7
      Makefile
  2. 4
      configure

@ -133,13 +133,18 @@ endif
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
VERSION_SH = $(SRC_PATH)/ffbuild/version.sh VERSION_SH = $(SRC_PATH)/ffbuild/version.sh
ifeq ($(VERSION_TRACKING),yes)
GIT_LOG = $(SRC_PATH)/.git/logs/HEAD GIT_LOG = $(SRC_PATH)/.git/logs/HEAD
endif
.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak .version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak
.version: M=@ .version: M=@
ifneq ($(VERSION_TRACKING),yes)
libavutil/ffversion.h .version: REVISION=unknown
endif
libavutil/ffversion.h .version: libavutil/ffversion.h .version:
$(M)$(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION) $(M)revision=$(REVISION) $(VERSION_SH) $(SRC_PATH) libavutil/ffversion.h $(EXTRA_VERSION)
$(Q)touch .version $(Q)touch .version
# force version.sh to run whenever version might have changed # force version.sh to run whenever version might have changed

4
configure vendored

@ -505,6 +505,7 @@ Developer options (useful when working on FFmpeg itself):
--enable-macos-kperf enable macOS kperf (private) API --enable-macos-kperf enable macOS kperf (private) API
--disable-large-tests disable tests that use a large amount of memory --disable-large-tests disable tests that use a large amount of memory
--disable-ptx-compression don't compress CUDA PTX code even when possible --disable-ptx-compression don't compress CUDA PTX code even when possible
--disable-version-tracking don't include the git/release version in the build
NOTE: Object files are built at the place where configure is launched. NOTE: Object files are built at the place where configure is launched.
EOF EOF
@ -2578,6 +2579,7 @@ CMDLINE_SELECT="
optimizations optimizations
rpath rpath
stripping stripping
version_tracking
" "
PATHS_LIST=" PATHS_LIST="
@ -3996,6 +3998,7 @@ enable $DOCUMENT_LIST
enable $EXAMPLE_LIST enable $EXAMPLE_LIST
enable $LIBRARY_LIST enable $LIBRARY_LIST
enable stripping enable stripping
enable version_tracking
enable asm enable asm
enable debug enable debug
@ -8032,6 +8035,7 @@ SAMPLES:=${samples:-\$(FATE_SAMPLES)}
NOREDZONE_FLAGS=$noredzone_flags NOREDZONE_FLAGS=$noredzone_flags
LIBFUZZER_PATH=$libfuzzer_path LIBFUZZER_PATH=$libfuzzer_path
IGNORE_TESTS=$ignore_tests IGNORE_TESTS=$ignore_tests
VERSION_TRACKING=$version_tracking
EOF EOF
map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST

Loading…
Cancel
Save