summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2003-08-21 11:04:15 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2003-08-21 11:04:15 +0000
commite06aa3c62c31554feb8acd733709e8267b6e237a (patch)
tree2a6264c796c8914ceefb40841d3c3a49851eff3d /eclass
parentsys-libs/db fixes for netatalk-1.6*, allows them to build with db>3 (diff)
downloadgentoo-2-e06aa3c62c31554feb8acd733709e8267b6e237a.tar.gz
gentoo-2-e06aa3c62c31554feb8acd733709e8267b6e237a.tar.bz2
gentoo-2-e06aa3c62c31554feb8acd733709e8267b6e237a.zip
completed db.eclass with helper functions
Diffstat (limited to 'eclass')
-rw-r--r--eclass/db.eclass53
1 files changed, 50 insertions, 3 deletions
diff --git a/eclass/db.eclass b/eclass/db.eclass
index 7945f232fc97..845b1816d82d 100644
--- a/eclass/db.eclass
+++ b/eclass/db.eclass
@@ -1,5 +1,5 @@
# This is a common location for functions used in the sys-libs/db ebuilds
-# $Header: /var/cvsroot/gentoo-x86/eclass/db.eclass,v 1.1 2003/08/21 09:53:43 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/db.eclass,v 1.2 2003/08/21 11:04:15 robbat2 Exp $
ECLASS=db
INHERITED="$INHERITED $ECLASS"
@@ -7,6 +7,12 @@ EXPORT_FUNCTIONS db_fix_so
db_fix_so () {
cd ${ROOT}/usr/lib
+
+ # first clean up old symlinks
+ find ${ROOT}/usr/lib -type l -name 'libdb*.so' -exec rm \{} \;
+ find ${ROOT}/usr/lib -type l -name 'libdb*.a' -exec rm \{} \;
+
+ # now rebuild all the correct ones
for ext in so a; do
for name in libdb libdb_cxx libdb_tcl libdb_java; do
target=`find -type f -maxdepth 1 -name "${name}-*.${ext}" |sort -g |tail -n 1`
@@ -14,8 +20,49 @@ db_fix_so () {
done;
done;
+ # do the same for headers now
+ # but since there are only two of them, just overwrite them
cd ${ROOT}/usr/include
target=`find -type d -maxdepth 1 -name 'db*' | sort -g |cut -d/ -f2- | tail -n1`
- [ -n "${target}" ] && ln -sf ${target}/db.h .
- [ -n "${target}" ] && ln -sf ${target}/db_185.h .
+ if [ -n "${target}" ]; then
+ ln -sf ${target}/db.h .
+ ln -sf ${target}/db_185.h .
+ fi
+}
+
+db_src_install_doc() {
+ # not everybody wants this wad of documentation as it is primarily API docs
+ if use doc; then
+ dodir /usr/share/doc/${PF}/html
+ mv ${D}/usr/docs/* ${D}/usr/share/doc/${PF}/html/
+ rm -rf ${D}/usr/docs
+ else
+ rm -rf ${D}/usr/docs
+ fi
+}
+
+db_src_install_usrbinslot() {
+ # slot all program names to avoid overwriting
+ for fname in ${D}/usr/bin/db_*
+ do
+ mv ${fname} ${fname//\/db_/\/db${SLOT}_}
+ done
+}
+
+db_src_install_headerslot() {
+ # install all headers in a slotted location
+ dodir /usr/include/db${SLOT}
+ mv ${D}/usr/include/*.h ${D}/usr/include/db${SLOT}/
+}
+
+db_src_install_usrlibcleanup() {
+ # this is handled by db_fix_so now
+ #ln -s /usr/include/db${SLOT}/db.h ${D}/usr/include/db.h
+
+ # we remove all symlinks created in here, as our db_fix_so will re-create them
+ #find ${D}/usr/lib -type l -name 'libdb*.so' -exec rm \{} \;
+ #find ${D}/usr/lib -type l -name 'libdb*.a' -exec rm \{} \;
+
+ # this actually does all the work for us, so let's reduce code duplication
+ ROOT=${D} db_fix_so
}