Add the first tool facility: sstrip.

This commit is contained in:
Yann E. MORIN" 2007-06-01 17:00:43 +00:00
parent 51554bf237
commit d472c9b951
3 changed files with 129 additions and 0 deletions

46
config/tools/sstrip.in Normal file
View File

@ -0,0 +1,46 @@
# Configuration file for sstrip tool facility
menuconfig SSTRIP
bool
prompt "sstrip"
default n
help
The sstrip utility, to maximise the striping of ELF binaries
(executables and libraries).
if SSTRIP
choice
bool
prompt "Use sstrip from:"
config SSTRIP_ELFKICKERS
bool
prompt "ELFkickers"
help
Use the original, ageing version of sstrip from ELFkickers.
It seems to be fully functional, but not maintained.
config SSTRIP_BUILDROOT
bool
prompt "buildroot"
help
Use the version from buildroot. It comes from the original
ELFkickers, but is somewhat maintained by the buildroot guys.
endchoice
config SSTRIP_FROM
string
default "ELFkickers" if SSTRIP_ELFKICKERS
default "buildroot" if SSTRIP_BUILDROOT
if SSTRIP_ELFKICKERS
config SSTRIP_ELFKICKERS_VERSION
string
default "2.0a"
endif
endif

View File

@ -0,0 +1,12 @@
diff -dur ELFkickers.orig/sstrip/Makefile ELFkickers/sstrip/Makefile
--- ELFkickers.orig/sstrip/Makefile 2001-03-24 12:58:27.000000000 +0100
+++ ELFkickers/sstrip/Makefile 2007-05-31 21:17:18.000000000 +0200
@@ -1,7 +1,7 @@
# Makefile for sstrip
sstrip: sstrip.c
- gcc -ggdb -Wall -W -o sstrip sstrip.c
+ $(CC) -Wall -W -o sstrip sstrip.c
clean:
rm -f sstrip

View File

@ -0,0 +1,71 @@
# This will build and install sstrip to run on host and sstrip target files
is_enabled="${CT_SSTRIP}"
case "${CT_SSTRIP_FROM}" in
ELFkickers)
do_tools_sstrip_get() {
CT_GetFile "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" \
http://www.muppetlabs.com/~breadbox/pub/software
}
do_tools_sstrip_extract() {
CT_ExtractAndPatch "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}"
}
do_tools_sstrip_build() {
CT_DoStep INFO "Installing sstrip"
mkdir -p "${CT_BUILD_DIR}/build-strip"
cd "${CT_BUILD_DIR}/build-strip"
( cd "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip"; tar cf - . ) |tar xf -
CT_DoLog EXTRA "Building sstrip"
make CC="${CT_CC_NATIVE}" sstrip 2>&1 |CT_DoLog ALL
CT_DoLog EXTRA "Installing sstrip"
install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" 2>&1 |CT_DoLog ALL
CT_EndStep
}
;;
buildroot)
sstrip_url='http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/sstrip/sstrip.c'
do_tools_sstrip_get() {
# With this one, we must handle the download by ourselves,
# we can't leave the job to the classic CT_GetFile.
if [ -f "${CT_SRC_DIR}/sstrip/sstrip.c" ]; then
return 0
fi
CT_Pushd "${CT_SRC_DIR}"
CT_DoLog EXTRA "Retrieving sstrip (buildroot)"
mkdir -p sstrip
cd sstrip
http_data=`lynx -dump "${sstrip_url}"`
link=`echo -en "${http_data}" \
|egrep '\[[[:digit:]]+\]download' \
|sed -r -e 's/.*\[([[:digit:]]+)\]download.*/\1/;'`
rev_url=`echo -en "${http_data}" \
|egrep '^ *8\.' \
|sed -r -e 's/^ *'${link}'\. +(.+)$/\1/;'`
CT_DoGetFile "${rev_url}" 2>&1 |CT_DoLog ALL
mv sstrip.c?* sstrip.c
CT_Popd
}
do_tools_sstrip_extract() {
# We'll let buildroot guys take care of sstrip maintenance and patching.
:
}
do_tools_sstrip_build() {
CT_DoStep INFO "Installing sstrip"
mkdir -p "${CT_BUILD_DIR}/build-sstrip"
cd "${CT_BUILD_DIR}/build-sstrip"
CT_DoLog EXTRA "Building sstrip"
${CT_CC_NATIVE} -Wall -o sstrip "${CT_SRC_DIR}/sstrip/sstrip.c" 2>&1 |CT_DoLog ALL
CT_DoLog EXTRA "Installing sstrip"
install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" 2>&1 |CT_DoLog ALL
CT_EndStep
}
;;
esac