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:
parent
5b0e7dacd8
commit
3f28da61de
@ -32,6 +32,9 @@ CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
|
|||||||
%.d: %.cpp
|
%.d: %.cpp
|
||||||
$(DEPEND_CMD) > $@
|
$(DEPEND_CMD) > $@
|
||||||
|
|
||||||
|
%.rco: %.rc
|
||||||
|
windres -I$(BUILD_ROOT) $< $@
|
||||||
|
|
||||||
%$(EXESUF): %.c
|
%$(EXESUF): %.c
|
||||||
|
|
||||||
install: install-libs install-headers
|
install: install-libs install-headers
|
||||||
@ -66,9 +69,9 @@ checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
|
|||||||
DEPS := $(OBJS:.o=.d)
|
DEPS := $(OBJS:.o=.d)
|
||||||
depend dep: $(DEPS)
|
depend dep: $(DEPS)
|
||||||
|
|
||||||
CLEANSUFFIXES = *.o *~ *.ho
|
CLEANSUFFIXES = *.o *~ *.ho *.rco
|
||||||
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map
|
LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp *.map
|
||||||
DISTCLEANSUFFIXES = *.d
|
DISTCLEANSUFFIXES = *.d *.rc
|
||||||
|
|
||||||
define RULES
|
define RULES
|
||||||
$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o
|
$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o
|
||||||
|
72
configure
vendored
72
configure
vendored
@ -1084,6 +1084,7 @@ TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
|
|||||||
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}"
|
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}"
|
||||||
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
|
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
|
||||||
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
|
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
|
||||||
|
TMPRC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.rc"
|
||||||
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
|
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
|
||||||
TMPSH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh"
|
TMPSH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh"
|
||||||
|
|
||||||
@ -1236,12 +1237,15 @@ case $target_os in
|
|||||||
VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
|
VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
|
||||||
fi
|
fi
|
||||||
disable ffserver
|
disable ffserver
|
||||||
|
enabled shared && enable dllinfo
|
||||||
SLIBPREF=""
|
SLIBPREF=""
|
||||||
SLIBSUF=".dll"
|
SLIBSUF=".dll"
|
||||||
EXESUF=".exe"
|
EXESUF=".exe"
|
||||||
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
|
||||||
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(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_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)"; \
|
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)"'
|
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)"'
|
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 "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
|
||||||
echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> 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_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_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
|
||||||
echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
|
echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
|
||||||
fi
|
fi
|
||||||
@ -2215,3 +2221,69 @@ else
|
|||||||
pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION"
|
pkgconfig_generate libswscale "FFmpeg image rescaling library" "$LIBSWSCALE_VERSION" "" "$pkg_requires libavcodec = $LIBAVCODEC_VERSION"
|
||||||
apply libswscale.pc sed s/^Libs:.*$/Libs:/
|
apply libswscale.pc sed s/^Libs:.*$/Libs:/
|
||||||
fi
|
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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user