Made the strip function more intelligent by ripping the brp-strip-*
scripts from RPM.
This commit is contained in:
parent
c6b27e50fe
commit
3faeac8b79
@ -61,6 +61,7 @@ BASENAME=/bin/basename
|
|||||||
DIRNAME=/bin/dirname
|
DIRNAME=/bin/dirname
|
||||||
TR=/bin/tr
|
TR=/bin/tr
|
||||||
DIFF=/usr/local/bin/diff # *Must* support -u (like GNU Diff)
|
DIFF=/usr/local/bin/diff # *Must* support -u (like GNU Diff)
|
||||||
|
FILE=/usr/bin/file # Used by strip()
|
||||||
|
|
||||||
# Groff stuff for manpages
|
# Groff stuff for manpages
|
||||||
NEQN=/usr/local/bin/neqn
|
NEQN=/usr/local/bin/neqn
|
||||||
@ -111,8 +112,11 @@ pkgdirdesig=${topinstalldir##/*/} # topinstalldir suffix
|
|||||||
|
|
||||||
# Functionality controls
|
# Functionality controls
|
||||||
catman=0 # Don't fix manpages pr. default
|
catman=0 # Don't fix manpages pr. default
|
||||||
dostrip=1 # default to stripping binaries during the install stage
|
dostrip=1
|
||||||
shortroot=0 # Shallow or deep stagedir?
|
dostrip_elf=1 # default to stripping binaries during the install stage
|
||||||
|
dostrip_shared=1 # default to stripping shared objects during the install stage
|
||||||
|
dostrip_static=1 # default to stripping static archives during the install stage
|
||||||
|
shortroot=0 # Deep or shallow stagedir?
|
||||||
|
|
||||||
# Distfiles should be named like this
|
# Distfiles should be named like this
|
||||||
# <name>-<version>-<pkgver>.sb-<os>-<cpu>-<pkgdirdesig>
|
# <name>-<version>-<pkgver>.sb-<os>-<cpu>-<pkgdirdesig>
|
||||||
@ -323,11 +327,37 @@ clean()
|
|||||||
# On exit cwd is $stagedir
|
# On exit cwd is $stagedir
|
||||||
strip()
|
strip()
|
||||||
{
|
{
|
||||||
|
local f
|
||||||
setdir stage
|
setdir stage
|
||||||
$FIND . -type f -perm -700 | $XARGS $STRIP
|
# Strip ELF binaries (see brp-strip from RPM)
|
||||||
# if [ $? -ne 0 ]; then
|
if [ $dostrip_elf -eq 1 ]; then
|
||||||
# error $E_BAD_STRIP strip
|
echo "Stripping ELF binaries..."
|
||||||
# if
|
for f in `$FIND . -type f \( -perm -0100 -o -perm -0010 -o -perm -0001 \) -exec $FILE {} \; | \
|
||||||
|
$GREP -v ' shared object,' | \
|
||||||
|
$SED -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
|
||||||
|
$STRIP $strip_elf_args $f || :
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ $dostrip_shared -eq 1 ]; then
|
||||||
|
echo "Stripping ELF shared objects..."
|
||||||
|
# Strip ELF shared objects (see brp-strip-shared from RPM)
|
||||||
|
# Please note we don't restrict our search to executable files because
|
||||||
|
# our libraries are not (should not be, at least) +x.
|
||||||
|
for f in `$FIND . -type f -a -exec $FILE {} \; | \
|
||||||
|
grep ' shared object,' | \
|
||||||
|
$SED -n -e 's/^\(.*\):[ ]*ELF.*, not stripped/\1/p'`; do
|
||||||
|
$STRIP $strip_shared_args $f
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
if [ $dostrip_static -eq 1 ]; then
|
||||||
|
echo "Stripping static archives..."
|
||||||
|
# Strip static libraries. (see brp-strip-static-archive from RPM)
|
||||||
|
for f in `$FIND . -type f -a -exec $FILE {} \; | \
|
||||||
|
$GREP 'current ar archive' | \
|
||||||
|
$SED -n -e 's/^\(.*\):[ ]*current ar archive,.*/\1/p'`; do
|
||||||
|
$STRIP $strip_static_args $f
|
||||||
|
done
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# fix_man(): create compressed pre-formatted manpages from raw ones
|
# fix_man(): create compressed pre-formatted manpages from raw ones
|
||||||
|
Loading…
x
Reference in New Issue
Block a user