diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-01-16 14:33:45 +0100 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-01-16 14:33:45 +0100 |
commit | 9cb1ad3cffdb2664205645e2dad0600d6eaa2e1f (patch) | |
tree | 6ca666fbf68294181c628edccc1d0e5998837c7f | |
parent | 8d6009110cc441b37c8300e52abe2b59ef2c1e1b (diff) | |
download | abuild-9cb1ad3cffdb2664205645e2dad0600d6eaa2e1f.tar.gz abuild-9cb1ad3cffdb2664205645e2dad0600d6eaa2e1f.tar.bz2 abuild-9cb1ad3cffdb2664205645e2dad0600d6eaa2e1f.tar.xz abuild-9cb1ad3cffdb2664205645e2dad0600d6eaa2e1f.zip |
abuild: implement -dbg subpackages
Patch from Andrew Manison.
ref #626
-rwxr-xr-x | abuild.in | 35 |
1 files changed, 34 insertions, 1 deletions
@@ -1245,6 +1245,31 @@ doc() { default_doc } +# predefined splitfunc doc +default_dbg() { + local f + binfiles=$(scanelf -R "$pkgdir" | grep ET_DYN | sed "s:$pkgdir\/::g" | sed "s:ET_DYN ::g") + for f in $binfiles; do + srcdir=$(dirname $pkgdir/$f) + srcfile=$(basename $pkgdir/$f) + dstdir=$(dirname $subpkgdir/usr/lib/debug/$f.debug) + dstfile=$(basename $subpkgdir/usr/lib/debug/$f.debug) + if [ ! -d $dstdir ] ; then + mkdir -p $dstdir + fi + cd $srcdir + objcopy --only-keep-debug $srcfile $dstfile + objcopy --add-gnu-debuglink=$dstfile $srcdir/$srcfile + mv $dstfile $dstdir + strip $srcfile + done + return 0 +} + +dbg() { + default_dbg +} + # predefined splitfunc dev default_dev() { local i= j= @@ -1675,6 +1700,14 @@ subpackages_has() { return 1 } +subpackage_types_has() { + local i + for i in $subpackages; do + [ "$1" = "${i##*-}" ] && return 0 + done + return 1 +} + list_has() { local needle="$1" local i @@ -1946,7 +1979,7 @@ else fi # if we want build debug package -if [ -n "$DEBUG" ]; then +if [ -n "$DEBUG" ] || subpackage_types_has "dbg"; then CFLAGS="$CFLAGS -g" options="$options !strip" fi |