diff --git a/base/glibc/glibc.conf b/base/glibc/glibc.conf index 48652c53f..294916fdd 100644 --- a/base/glibc/glibc.conf +++ b/base/glibc/glibc.conf @@ -86,30 +86,20 @@ var_append makeinstopt " " "slibdir=/\$slibdir install_root=\$root" glibc_prepatch() { local tarball= tarname= - for tarball in `match_source_file -p ports` \ - `match_source_file -p libidn` \ - `match_source_file -p linuxthread` - do + local addon= addons="ports" + + [ "$SDECFG_PKG_GLIBC_LIBIDN" != '1' ] || var_append addons ' ' 'libidn' + [ "$SDECFG_PKG_GLIBC_TLS" = 1 ] || var_append addons ' ' 'linuxthreads' + + for addon in $addons; do + tarball=$( match_source_file -p $addon ) tarname=${tarball##*/}; tarname=${tarname%.tar.*} - # do not overwrite the configure script and such - case "$tarball" in - *ports*) - ln -sv . $tarname - tar -v ${taropt} $tarball ${tarname}/sysdeps - ;; - *libidn*) - mkdir -pv libidn - ln -sv libidn $tarname - tar -v ${taropt} $tarball - ;; - *) - tar -v ${taropt} $tarball linuxthreads - ;; - esac - # remove CVS from the newly extracted files, glibc tries to - # automatically commit newly generated files :-! - find -name CVS | xargs rm -rfv + # extract each addon into the definitive folder + mkdir -pv $addon + ln -sv $addon $tarname + tar -v ${taropt} $tarball + rm $tarname done mkdir -p $root$includedir/gnu/