aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-04-01 00:24:12 +0200
committerMichael Niedermayer <michaelni@gmx.at>2011-04-01 00:24:12 +0200
commitb1ca9642a2a3968a6f6ab80c6d2f1c37e9046d3d (patch)
tree574374816d3d9fe2b8276bbe709bfe0a5611e4c5
parent607cd90cdbcc1bf1160dc4ee15b079fd5a568462 (diff)
downloadffmpeg-b1ca9642a2a3968a6f6ab80c6d2f1c37e9046d3d.tar.gz
Revert "Remove support for stripping executables"
People did not like this change. This reverts commit e0be794a71be25a350f68287ee291b4942bcb7d8.
-rw-r--r--Makefile14
-rw-r--r--common.mak2
-rwxr-xr-xconfigure16
-rw-r--r--subdir.mak1
4 files changed, 27 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 37863b3155..4080b82214 100644
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,7 @@ PROGS-$(CONFIG_FFPROBE) += ffprobe
PROGS-$(CONFIG_FFSERVER) += ffserver
PROGS := $(PROGS-yes:%=%$(EXESUF))
+PROGS_G = $(PROGS-yes:%=%_g$(EXESUF))
OBJS = $(PROGS-yes:%=%.o) cmdutils.o
MANPAGES = $(PROGS-yes:%=doc/%.1)
PODPAGES = $(PROGS-yes:%=doc/%.pod)
@@ -20,6 +21,7 @@ HOSTPROGS := $(TESTTOOLS:%=tests/%)
BASENAMES = ffmpeg ffplay ffprobe ffserver
ALLPROGS = $(BASENAMES:%=%$(EXESUF))
+ALLPROGS_G = $(BASENAMES:%=%_g$(EXESUF))
ALLMANPAGES = $(BASENAMES:%=%.1)
FFLIBS-$(CONFIG_AVDEVICE) += avdevice
@@ -51,6 +53,10 @@ INSTALL_PROGS_TARGETS-$(CONFIG_SHARED) = install-libs
all: $(FF_DEP_LIBS) $(PROGS) $(ALL_TARGETS-yes)
+$(PROGS): %$(EXESUF): %_g$(EXESUF)
+ $(CP) $< $@
+ $(STRIP) $@
+
config.h: .config
.config: $(wildcard $(FFLIBS:%=$(SRC_DIR)/lib%/all*.c))
@-tput bold 2>/dev/null
@@ -74,10 +80,10 @@ endef
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
-ffplay$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS)
-ffserver$(EXESUF): FF_LDFLAGS += $(FFSERVERLDFLAGS)
+ffplay_g$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS)
+ffserver_g$(EXESUF): FF_LDFLAGS += $(FFSERVERLDFLAGS)
-%$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
+%_g$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
$(LD) $(FF_LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS)
tools/%$(EXESUF): tools/%.o
@@ -159,7 +165,7 @@ testclean:
$(RM) $(TESTTOOLS:%=tests/%$(HOSTEXESUF))
clean:: testclean
- $(RM) $(ALLPROGS)
+ $(RM) $(ALLPROGS) $(ALLPROGS_G)
$(RM) $(CLEANSUFFIXES)
$(RM) doc/*.html doc/*.pod doc/*.1
$(RM) $(TOOLS)
diff --git a/common.mak b/common.mak
index 6daf77cc07..3d1a1293fb 100644
--- a/common.mak
+++ b/common.mak
@@ -21,7 +21,7 @@ endif
ifndef V
Q = @
ECHO = printf "$(1)\t%s\n" $(2)
-BRIEF = CC AS YASM AR LD HOSTCC
+BRIEF = CC AS YASM AR LD HOSTCC STRIP CP
SILENT = DEPCC YASMDEP RM RANLIB
MSG = $@
M = @$(call ECHO,$(TAG),$@);
diff --git a/configure b/configure
index 4cc64af740..435bb629af 100755
--- a/configure
+++ b/configure
@@ -243,6 +243,7 @@ Developer options (useful when working on FFmpeg itself):
--enable-debug=LEVEL set the debug level [$debuglevel]
--disable-optimizations disable compiler optimizations
--enable-extra-warnings enable more compiler warnings
+ --disable-stripping disable stripping of executables and shared libraries
--samples=PATH location of test samples for FATE, if not set use
\$FATE_SAMPLES at make invocation time.
@@ -1146,6 +1147,7 @@ CMDLINE_SELECT="
extra_warnings
logging
optimizations
+ stripping
symver
yasm
"
@@ -1183,6 +1185,7 @@ CMDLINE_SET="
pkg_config
samples
source_path
+ strip
sysinclude
sysroot
target_exec
@@ -1622,6 +1625,7 @@ nm_default="nm"
objformat="elf"
pkg_config_default=pkg-config
ranlib="ranlib"
+strip_default="strip"
yasmexe="yasm"
nogas=":"
@@ -1654,6 +1658,7 @@ enable network
enable optimizations
enable protocols
enable static
+enable stripping
enable swscale
enable swscale_alpha
@@ -1830,10 +1835,11 @@ cc_default="${cross_prefix}${cc_default}"
nm_default="${cross_prefix}${nm_default}"
pkg_config_default="${cross_prefix}${pkg_config_default}"
ranlib="${cross_prefix}${ranlib}"
+strip_default="${cross_prefix}${strip_default}"
sysinclude_default="${sysroot}/usr/include"
-set_default cc nm pkg_config sysinclude
+set_default cc nm pkg_config strip sysinclude
enabled cross_compile || host_cc_default=$cc
set_default host_cc
@@ -2392,6 +2398,7 @@ case $target_os in
;;
bsd/os)
add_extralibs -lpoll -lgnugetopt
+ strip="strip -d"
;;
darwin)
enable malloc_aligned
@@ -2399,6 +2406,7 @@ case $target_os in
enabled ppc && add_asflags -force_cpusubtype_ALL
SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR)'
enabled x86_32 && append SHFLAGS -Wl,-read_only_relocs,suppress
+ strip="${strip} -x"
add_ldflags -Wl,-dynamic,-search_paths_first
SLIBSUF=".dylib"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
@@ -2468,6 +2476,7 @@ case $target_os in
ranlib="echo ignoring ranlib"
;;
os/2*)
+ strip="lxlite -CS"
ln_s="cp -f"
add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
@@ -3129,6 +3138,7 @@ if enabled sparc; then
echo "VIS enabled ${vis-no}"
fi
echo "debug symbols ${debug-no}"
+echo "strip symbols ${stripping-no}"
echo "optimizations ${optimizations-no}"
echo "static ${static-no}"
echo "shared ${shared-no}"
@@ -3224,6 +3234,8 @@ if enabled source_path_used; then
map 'test -f "$source_path/$v" && $ln_s "$source_path/$v" $v' $FILES
fi
+enabled stripping || strip="echo skipping strip"
+
config_files="$TMPH config.mak"
cat > config.mak <<EOF
@@ -3251,7 +3263,9 @@ YASM=$yasmexe
YASMDEP=$yasmexe
AR=$ar
RANLIB=$ranlib
+CP=cp -p
LN_S=$ln_s
+STRIP=$strip
CPPFLAGS=$CPPFLAGS
CFLAGS=$CFLAGS
ASFLAGS=$ASFLAGS
diff --git a/subdir.mak b/subdir.mak
index 7fdeddcceb..8a407fe164 100644
--- a/subdir.mak
+++ b/subdir.mak
@@ -60,6 +60,7 @@ distclean:: clean
install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
$(Q)mkdir -p "$(SHLIBDIR)"
$$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
+ $$(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
$(Q)cd "$(SHLIBDIR)" && \
$(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR)
$(Q)cd "$(SHLIBDIR)" && \