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>
This commit is contained in:
		
							parent
							
								
									9415c2c11f
								
							
						
					
					
						commit
						1e42a48e37
					
				
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							@ -133,13 +133,18 @@ endif
 | 
			
		||||
	$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS)
 | 
			
		||||
 | 
			
		||||
VERSION_SH  = $(SRC_PATH)/ffbuild/version.sh
 | 
			
		||||
ifeq ($(VERSION_TRACKING),yes)
 | 
			
		||||
GIT_LOG     = $(SRC_PATH)/.git/logs/HEAD
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak
 | 
			
		||||
.version: M=@
 | 
			
		||||
 | 
			
		||||
ifneq ($(VERSION_TRACKING),yes)
 | 
			
		||||
libavutil/ffversion.h .version: REVISION=unknown
 | 
			
		||||
endif
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
# force version.sh to run whenever version might have changed
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								configure
									
									
									
									
										vendored
									
									
								
							@ -505,6 +505,7 @@ Developer options (useful when working on FFmpeg itself):
 | 
			
		||||
  --enable-macos-kperf     enable macOS kperf (private) API
 | 
			
		||||
  --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-version-tracking don't include the git/release version in the build
 | 
			
		||||
 | 
			
		||||
NOTE: Object files are built at the place where configure is launched.
 | 
			
		||||
EOF
 | 
			
		||||
@ -2578,6 +2579,7 @@ CMDLINE_SELECT="
 | 
			
		||||
    optimizations
 | 
			
		||||
    rpath
 | 
			
		||||
    stripping
 | 
			
		||||
    version_tracking
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
PATHS_LIST="
 | 
			
		||||
@ -3996,6 +3998,7 @@ enable $DOCUMENT_LIST
 | 
			
		||||
enable $EXAMPLE_LIST
 | 
			
		||||
enable $LIBRARY_LIST
 | 
			
		||||
enable stripping
 | 
			
		||||
enable version_tracking
 | 
			
		||||
 | 
			
		||||
enable asm
 | 
			
		||||
enable debug
 | 
			
		||||
@ -8032,6 +8035,7 @@ SAMPLES:=${samples:-\$(FATE_SAMPLES)}
 | 
			
		||||
NOREDZONE_FLAGS=$noredzone_flags
 | 
			
		||||
LIBFUZZER_PATH=$libfuzzer_path
 | 
			
		||||
IGNORE_TESTS=$ignore_tests
 | 
			
		||||
VERSION_TRACKING=$version_tracking
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user