Originally committed as revision 21595 to svn://svn.ffmpeg.org/ffmpeg/branches/0.5
Reinhard Tartler authored on 2010/02/02 01:00:09... | ... |
@@ -9,6 +9,7 @@ vpath %.c $(SRC_DIR) |
9 | 9 |
vpath %.h $(SRC_DIR) |
10 | 10 |
vpath %.S $(SRC_DIR) |
11 | 11 |
vpath %.asm $(SRC_DIR) |
12 |
+vpath %.v $(SRC_DIR) |
|
12 | 13 |
|
13 | 14 |
ifeq ($(SRC_DIR),$(SRC_PATH_BARE)) |
14 | 15 |
BUILD_ROOT_REL = . |
... | ... |
@@ -43,6 +44,9 @@ CFLAGS := -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ |
43 | 43 |
|
44 | 44 |
%$(EXESUF): %.c |
45 | 45 |
|
46 |
+%.ver: %.v |
|
47 |
+ sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ |
|
48 |
+ |
|
46 | 49 |
SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries |
47 | 50 |
ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES)) |
48 | 51 |
$(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES) |
... | ... |
@@ -77,7 +81,7 @@ checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) |
77 | 77 |
DEPS := $(OBJS:.o=.d) |
78 | 78 |
depend dep: $(DEPS) |
79 | 79 |
|
80 |
-CLEANSUFFIXES = *.o *~ *.ho |
|
80 |
+CLEANSUFFIXES = *.o *~ *.ho *.ver |
|
81 | 81 |
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map |
82 | 82 |
DISTCLEANSUFFIXES = *.d *.pc |
83 | 83 |
|
... | ... |
@@ -566,13 +566,18 @@ int x; |
566 | 566 |
EOF |
567 | 567 |
} |
568 | 568 |
|
569 |
-check_ldflags(){ |
|
570 |
- log check_ldflags "$@" |
|
571 |
- check_ld "$@" <<EOF && add_ldflags "$@" |
|
569 |
+test_ldflags(){ |
|
570 |
+ log test_ldflags "$@" |
|
571 |
+ check_ld "$@" <<EOF |
|
572 | 572 |
int main(void){ return 0; } |
573 | 573 |
EOF |
574 | 574 |
} |
575 | 575 |
|
576 |
+check_ldflags(){ |
|
577 |
+ log check_ldflags "$@" |
|
578 |
+ test_ldflags "$@" && add_ldflags "$@" |
|
579 |
+} |
|
580 |
+ |
|
576 | 581 |
check_header(){ |
577 | 582 |
log check_header "$@" |
578 | 583 |
header=$1 |
... | ... |
@@ -1356,6 +1361,7 @@ TMPE="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}" |
1356 | 1356 |
TMPH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h" |
1357 | 1357 |
TMPO="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o" |
1358 | 1358 |
TMPS="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S" |
1359 |
+TMPV="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.ver" |
|
1359 | 1360 |
TMPSH="${TMPDIR}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh" |
1360 | 1361 |
|
1361 | 1362 |
# make sure we can execute files in $TMPDIR |
... | ... |
@@ -2160,6 +2166,10 @@ check_ldflags -Wl,--as-needed |
2160 | 2160 |
check_ldflags '-Wl,-rpath-link,\$(BUILD_ROOT)/libpostproc -Wl,-rpath-link,\$(BUILD_ROOT)/libswscale -Wl,-rpath-link,\$(BUILD_ROOT)/libavfilter -Wl,-rpath-link,\$(BUILD_ROOT)/libavdevice -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil' |
2161 | 2161 |
check_ldflags -Wl,-Bsymbolic |
2162 | 2162 |
|
2163 |
+echo "X{};" > $TMPV |
|
2164 |
+test_ldflags -Wl,--version-script,$TMPV && |
|
2165 |
+ append SHFLAGS '-Wl,--version-script,\$(SUBDIR)lib\$(NAME).ver' |
|
2166 |
+ |
|
2163 | 2167 |
if enabled small; then |
2164 | 2168 |
check_cflags -Os # not all compilers support -Os |
2165 | 2169 |
optimizations="small" |
... | ... |
@@ -27,7 +27,7 @@ install-libs: install-lib$(NAME)-shared |
27 | 27 |
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
28 | 28 |
cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
29 | 29 |
|
30 |
-$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) |
|
30 |
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver |
|
31 | 31 |
$(SLIB_CREATE_DEF_CMD) |
32 | 32 |
$(CC) $(SHFLAGS) $(FFLDFLAGS) -o $$@ $$(filter-out $(DEP_LIBS),$$^) $(FFEXTRALIBS) $(EXTRAOBJS) |
33 | 33 |
$(SLIB_EXTRA_CMD) |