Add version information to DLLs.

Patch by Jeremy Kolb.

Originally committed as revision 13379 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Jeremy Kolb 2008-05-25 14:09:56 +00:00 committed by Ramiro Polla
parent 5b0e7dacd8
commit 3f28da61de
2 changed files with 77 additions and 2 deletions

View File

@ -32,6 +32,9 @@ CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
%.d: %.cpp
$(DEPEND_CMD) > $@
%.rco: %.rc
windres -I$(BUILD_ROOT) $< $@
%$(EXESUF): %.c
install: install-libs install-headers
@ -66,9 +69,9 @@ checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
DEPS := $(OBJS:.o=.d)
depend dep: $(DEPS)
CLEANSUFFIXES = *.o *~ *.ho
CLEANSUFFIXES = *.o *~ *.ho *.rco
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map
DISTCLEANSUFFIXES = *.d
DISTCLEANSUFFIXES = *.d *.rc
define RULES
$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o

72
configure vendored
View File

@ -1084,6 +1084,7 @@ TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}"
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
TMPRC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.rc"
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
TMPSH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh"
@ -1236,12 +1237,15 @@ case $target_os in
VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
fi
disable ffserver
enabled shared && enable dllinfo
SLIBPREF=""
SLIBSUF=".dll"
EXESUF=".exe"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
SLIB_EXTRA_CMD='-lib /machine:$(LIBTARGET) /def:$$(@:$(SLIBSUF)=.def) /out:$(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)'
SLIB_EXTRA_OBJS="dllinfo.rco"
SLIB_EXTRA_DEP='$(SUBDIR)../version.h'
SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"; \
install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib)"'
SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
@ -2069,6 +2073,8 @@ if enabled shared; then
echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak
echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
echo "SLIB_EXTRA_OBJS=${SLIB_EXTRA_OBJS}" >> config.mak
echo "SLIB_EXTRA_DEP=${SLIB_EXTRA_DEP}" >> config.mak
echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
fi
@ -2215,3 +2221,69 @@ else
pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION"
apply libswscale.pc sed s/^Libs:.*$/Libs:/
fi
# build dll configuration for windows.
dllinfo_generate() {
name=$1
description=$2
version=$3
major=${version%%.*}
version_commas=`echo $version | tr . ,`,0
dllname=`echo $name | sed s/lib//`
license_str="This FFmpeg build is distributed under the terms of the GNU $license.\r\n"
test "$license" = "unredistributable" &&
license_str="This FFmpeg build may not be distributed publicly.\r\n"
cat <<EOF >$TMPRC
#include <WinVer.h>
#include "version.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION $version_commas
PRODUCTVERSION $version_commas
FILEFLAGSMASK 0x17L
FILEFLAGS 0x0L
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "$license_str"
"Source code is available at http://ffmpeg.org"
VALUE "CompanyName", "FFmpeg"
VALUE "FileDescription", "$description"
VALUE "FileVersion", "$version"
VALUE "InternalName", "$name"
VALUE "LegalCopyright", "(C) 2000-2008 Fabrice Bellard, et al."
VALUE "LegalTrademarks", "FFmpeg"
VALUE "OriginalFilename", "$dllname-$major.dll"
VALUE "ProductName", "$name"
VALUE "ProductVersion", FFMPEG_VERSION
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
EOF
if ! cmp -s $TMPRC $name/dllinfo.rc; then
mv -f $TMPRC $name/dllinfo.rc
fi
rm -f $TMPRC
}
if test "$dllinfo" = "yes"; then
dllinfo_generate libavutil "FFmpeg utility library" "$LIBAVUTIL_VERSION"
dllinfo_generate libavcodec "FFmpeg codec library" "$LIBAVCODEC_VERSION"
dllinfo_generate libavformat "FFmpeg container format library" "$LIBAVFORMAT_VERSION"
dllinfo_generate libavdevice "FFmpeg device handling library" "$LIBAVDEVICE_VERSION"
dllinfo_generate libavfilter "FFmpeg video filtering library" "$LIBAVFILTER_VERSION"
dllinfo_generate libpostproc "FFmpeg post processing library" "$LIBPOSTPROC_VERSION"
dllinfo_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION"
fi