diff options
author | Diego Biurrun <diego@biurrun.de> | 2016-12-17 20:01:07 +0100 |
---|---|---|
committer | Diego Biurrun <diego@biurrun.de> | 2016-12-22 12:17:37 +0100 |
commit | edb434873238876790f6a17bb65490cc29a1d176 (patch) | |
tree | ccf95adc42317493c5056ff77a682da44b6daf31 /avbuild | |
parent | 11a9320de54759340531177c9f2b1e31e6112cc2 (diff) | |
download | ffmpeg-streaming-edb434873238876790f6a17bb65490cc29a1d176.zip ffmpeg-streaming-edb434873238876790f6a17bb65490cc29a1d176.tar.gz |
build: Store library version numbers in .version files
This moves work from the configure to the Make stage where it can
be parallelized and ensures that shared libraries are built with
the right version number in the filename.
Diffstat (limited to 'avbuild')
-rw-r--r-- | avbuild/common.mak | 2 | ||||
-rw-r--r-- | avbuild/library.mak | 5 | ||||
-rwxr-xr-x | avbuild/libversion.sh | 15 |
3 files changed, 21 insertions, 1 deletions
diff --git a/avbuild/common.mak b/avbuild/common.mak index 9676294..236380e 100644 --- a/avbuild/common.mak +++ b/avbuild/common.mak @@ -49,7 +49,7 @@ $(TOOLOBJS): | tools OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS)) -CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver +CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.version DISTCLEANSUFFIXES = *.pc LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a diff --git a/avbuild/library.mak b/avbuild/library.mak index 9215a93..45152be 100644 --- a/avbuild/library.mak +++ b/avbuild/library.mak @@ -1,5 +1,7 @@ include $(SRC_PATH)/avbuild/common.mak +-include $(SUBDIR)lib$(NAME).version + LIBVERSION := $(lib$(NAME)_VERSION) LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) LIBMINOR := $(lib$(NAME)_VERSION_MINOR) @@ -30,6 +32,9 @@ $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) +$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h | $(SUBDIR) + $$(M) $$(SRC_PATH)/avbuild/libversion.sh $(NAME) $$< > $$@ + $(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS) $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@ diff --git a/avbuild/libversion.sh b/avbuild/libversion.sh new file mode 100755 index 0000000..30046b1 --- /dev/null +++ b/avbuild/libversion.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +toupper(){ + echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ +} + +name=lib$1 +ucname=$(toupper ${name}) +file=$2 + +eval $(awk "/#define ${ucname}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file") +eval ${ucname}_VERSION=\$${ucname}_VERSION_MAJOR.\$${ucname}_VERSION_MINOR.\$${ucname}_VERSION_MICRO +eval echo "${name}_VERSION=\$${ucname}_VERSION" +eval echo "${name}_VERSION_MAJOR=\$${ucname}_VERSION_MAJOR" +eval echo "${name}_VERSION_MINOR=\$${ucname}_VERSION_MINOR" |