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.
... | ... |
@@ -49,7 +49,7 @@ $(TOOLOBJS): | tools |
49 | 49 |
|
50 | 50 |
OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS)) |
51 | 51 |
|
52 |
-CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver |
|
52 |
+CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.version |
|
53 | 53 |
DISTCLEANSUFFIXES = *.pc |
54 | 54 |
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a |
55 | 55 |
|
... | ... |
@@ -1,5 +1,7 @@ |
1 | 1 |
include $(SRC_PATH)/avbuild/common.mak |
2 | 2 |
|
3 |
+-include $(SUBDIR)lib$(NAME).version |
|
4 |
+ |
|
3 | 5 |
LIBVERSION := $(lib$(NAME)_VERSION) |
4 | 6 |
LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
5 | 7 |
LIBMINOR := $(lib$(NAME)_VERSION_MINOR) |
... | ... |
@@ -30,6 +32,9 @@ $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) |
30 | 30 |
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o |
31 | 31 |
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) |
32 | 32 |
|
33 |
+$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h | $(SUBDIR) |
|
34 |
+ $$(M) $$(SRC_PATH)/avbuild/libversion.sh $(NAME) $$< > $$@ |
|
35 |
+ |
|
33 | 36 |
$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS) |
34 | 37 |
$$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@ |
35 | 38 |
|
36 | 39 |
new file mode 100755 |
... | ... |
@@ -0,0 +1,15 @@ |
0 |
+#!/bin/sh |
|
1 |
+ |
|
2 |
+toupper(){ |
|
3 |
+ echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ |
|
4 |
+} |
|
5 |
+ |
|
6 |
+name=lib$1 |
|
7 |
+ucname=$(toupper ${name}) |
|
8 |
+file=$2 |
|
9 |
+ |
|
10 |
+eval $(awk "/#define ${ucname}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file") |
|
11 |
+eval ${ucname}_VERSION=\$${ucname}_VERSION_MAJOR.\$${ucname}_VERSION_MINOR.\$${ucname}_VERSION_MICRO |
|
12 |
+eval echo "${name}_VERSION=\$${ucname}_VERSION" |
|
13 |
+eval echo "${name}_VERSION_MAJOR=\$${ucname}_VERSION_MAJOR" |
|
14 |
+eval echo "${name}_VERSION_MINOR=\$${ucname}_VERSION_MINOR" |
... | ... |
@@ -5318,19 +5318,6 @@ VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD} |
5318 | 5318 |
SAMPLES:=${samples:-\$(LIBAV_SAMPLES)} |
5319 | 5319 |
EOF |
5320 | 5320 |
|
5321 |
-get_version(){ |
|
5322 |
- lcname=lib${1} |
|
5323 |
- name=$(toupper $lcname) |
|
5324 |
- file=$source_path/$lcname/version.h |
|
5325 |
- eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file") |
|
5326 |
- eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO |
|
5327 |
- eval echo "${lcname}_VERSION=\$${name}_VERSION" >> avbuild/config.mak |
|
5328 |
- eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> avbuild/config.mak |
|
5329 |
- eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> avbuild/config.mak |
|
5330 |
-} |
|
5331 |
- |
|
5332 |
-map 'get_version $v' $LIBRARY_LIST |
|
5333 |
- |
|
5334 | 5321 |
map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> avbuild/config.mak' $LIBRARY_LIST |
5335 | 5322 |
|
5336 | 5323 |
print_program_extralibs(){ |