[FFmpeg-devel] [PATCH] Enhanced configure and Makefile to copy .pdb files to bindir for MSVC builds for make install
Aaron Levinson
alevinsn at aracnet.com
Fri May 5 10:01:47 EEST 2017
On 4/14/2017 6:27 PM, Aaron Levinson wrote:
> From 1059473c449c3079f03461bb42c2d3cc21d1b2c1 Mon Sep 17 00:00:00 2001
> From: Aaron Levinson <alevinsn at aracnet.com>
> Date: Fri, 14 Apr 2017 18:14:21 -0700
> Subject: [PATCH] Enhanced configure and Makefile to copy .pdb files to
> bindir for MSVC builds for make install
>
> Purpose: Enhanced configure and Makefile to copy .pdb files to bindir
> for MSVC builds for make install. Files are also uninstalled
> appropriately when make uninstall is exercised. Placing the PDB files
> in the same directory as other binaries can make it easier to debug,
> especially if the files are copied to another system.
>
> Note: General idea for how to properly handle the copying of PDB files
> associated with programs suggested by Hendrik Leppkes.
>
> Comments:
>
> -- configure:
> a) Leveraged already existing SLIB_INSTALL_EXTRA_SHLIB facility (which
> is already pretty specific to Windows) to add .pdb files, in
> addition to .lib files, for shared libraries to bindir during make
> install.
> b) Added PROG_INSTALL_EXTRA_BIN variable for MSVC builds and also
> added it to the section that causes it to be added to config.mak.
> This is used in Makefile to copy any additional files associated
> with programs. For MSVC, it is used to copy the pdb files
> associated with any executables that are built. Note that such
> executables are build with _g in the file name and are later copied
> to a filename without _g in the file name. As such, the PDB files
> have _g in the file name.
>
> -- Makefile: Enhanced install-progs and uninstall-progs targets to
> handle PROG_INSTALL_EXTRA_BIN if defined. It uses a similar
> procedure as already in place for SLIB_INSTALL_EXTRA_SHLIB in
> library.mak.
> ---
> Makefile | 2 ++
> configure | 4 +++-
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index d5b51de..45c42c6 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -165,6 +165,7 @@ install-progs-$(CONFIG_SHARED): install-libs
> install-progs: install-progs-yes $(AVPROGS)
> $(Q)mkdir -p "$(BINDIR)"
> $(INSTALL) -c -m 755 $(INSTPROGS) "$(BINDIR)"
> + $(if $(PROG_INSTALL_EXTRA_BIN), $(INSTALL) -m 644 $(PROG_INSTALL_EXTRA_BIN) "$(BINDIR)")
>
> install-data: $(DATA_FILES) $(EXAMPLES_FILES)
> $(Q)mkdir -p "$(DATADIR)/examples"
> @@ -175,6 +176,7 @@ uninstall: uninstall-libs uninstall-headers uninstall-progs uninstall-data
>
> uninstall-progs:
> $(RM) $(addprefix "$(BINDIR)/", $(ALLAVPROGS))
> + $(if $(PROG_INSTALL_EXTRA_BIN), $(RM) $(addprefix "$(BINDIR)/", $(PROG_INSTALL_EXTRA_BIN)))
>
> uninstall-data:
> $(RM) -r "$(DATADIR)"
> diff --git a/configure b/configure
> index 18d79ab..88206e3 100755
> --- a/configure
> +++ b/configure
> @@ -4947,9 +4947,10 @@ case $target_os in
> SLIB_CREATE_DEF_CMD='$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) > $$(@:$(SLIBSUF)=.def)'
> SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
> SLIB_INSTALL_LINKS=
> - SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib)'
> + SLIB_INSTALL_EXTRA_SHLIB='$(SLIBNAME:$(SLIBSUF)=.lib) $(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.pdb)'
> SLIB_INSTALL_EXTRA_LIB='$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.def)'
> SHFLAGS='-dll -def:$$(@:$(SLIBSUF)=.def) -implib:$(SUBDIR)$(SLIBNAME:$(SLIBSUF)=.lib)'
> + PROG_INSTALL_EXTRA_BIN='$(AVPROGS-yes:%=%$(PROGSSUF)_g.pdb)'
> objformat="win32"
> ranlib=:
> enable dos_paths
> @@ -6796,6 +6797,7 @@ SLIB_INSTALL_NAME=${SLIB_INSTALL_NAME}
> SLIB_INSTALL_LINKS=${SLIB_INSTALL_LINKS}
> SLIB_INSTALL_EXTRA_LIB=${SLIB_INSTALL_EXTRA_LIB}
> SLIB_INSTALL_EXTRA_SHLIB=${SLIB_INSTALL_EXTRA_SHLIB}
> +PROG_INSTALL_EXTRA_BIN=${PROG_INSTALL_EXTRA_BIN}
> VERSION_SCRIPT_POSTPROCESS_CMD=${VERSION_SCRIPT_POSTPROCESS_CMD}
> SAMPLES:=${samples:-\$(FATE_SAMPLES)}
> NOREDZONE_FLAGS=$noredzone_flags
>
Ping.
Thanks,
Aaron Levinson
More information about the ffmpeg-devel
mailing list