From bae07f485b55b4038b65e117016ea6ff7498eca9 Mon Sep 17 00:00:00 2001
From: Derek Young <dyoung@nslu2-linux.org>
Date: Tue, 1 Mar 2005 18:55:39 +0000
Subject: Merge bk://nslu2-linux@nslu2-linux.bkbits.net/openembedded into
 builder.(none):/home/dereky/bbroot/openembedded

2005/02/28 04:40:13-08:00 bkbits.net!nslu2-linux.adm
Merge bk://oe-devel.bkbits.net/openembedded
into bkbits.net:/repos/n/nslu2-linux/openembedded

2005/02/28 12:37:13+00:00 nexus.co.uk!pb
straighten out new x11 snapshot


2005/02/28 12:18:18+00:00 reciva.com!pb
add new version of xproto


2005/02/28 12:16:45+00:00 reciva.com!pb
Merge bk://oe-devel@openembedded-devel.bkbits.net/openembedded
into mebius.reciva.com:/home/pb/oe/oe

2005/03/01 18:55:34+00:00 (none)!pb
collapse multiple spaces in SRC_URI to a single space.
replace some inefficient string concatenation with %-substitution

2005/03/01 18:54:47+00:00 (none)!pb
suppress circular dependency when package contains both binaries and libraries
move pkgconfig shlibs data into new location; consider old files first so that new ones override them

2005/03/01 18:53:46+00:00 (none)!pb
add missing patch to gstreamer SRC_URI


BKrev: 4224baabcSg6J2wzDfVE30KMAuYbQA
---
 classes/package.bbclass | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

(limited to 'classes/package.bbclass')

diff --git a/classes/package.bbclass b/classes/package.bbclass
index cbd772cd9f..4ca34a3d05 100644
--- a/classes/package.bbclass
+++ b/classes/package.bbclass
@@ -358,7 +358,7 @@ python package_do_shlibs() {
 
 	shlib_provider = {}
 	list_re = re.compile('^(.*)\.list$')
-	for dir in [shlibs_dir, old_shlibs_dir]: 
+	for dir in [old_shlibs_dir, shlibs_dir]: 
 		if not os.path.exists(dir):
 			continue
 		for file in os.listdir(dir):
@@ -381,11 +381,16 @@ python package_do_shlibs() {
 	for pkg in packages.split():
 		bb.debug(2, "calculating shlib requirements for %s" % pkg)
 
+		p_pkg = bb.data.getVar("PKG_%s" % pkg, d, 1) or pkg
+
 		deps = list()
 		for n in needed[pkg]:
 			if n in shlib_provider.keys():
 				(dep_pkg, ver_needed) = shlib_provider[n]
 
+				if dep_pkg == p_pkg:
+					continue
+
 				if ver_needed:
 					dep = "%s (>= %s)" % (dep_pkg, ver_needed)
 				else:
@@ -424,6 +429,15 @@ python package_do_pkgconfig () {
 		bb.error("STAGING_DIR not defined")
 		return
 
+	target_sys = bb.data.getVar('TARGET_SYS', d, 1)
+	if not target_sys:
+		bb.error("TARGET_SYS not defined")
+		return
+
+	shlibs_dir = os.path.join(staging, target_sys, "shlibs")
+	old_shlibs_dir = os.path.join(staging, "shlibs")
+	bb.mkdirhier(shlibs_dir)
+
 	pc_re = re.compile('(.*)\.pc$')
 	var_re = re.compile('(.*)=(.*)')
 	field_re = re.compile('(.*): (.*)')
@@ -461,9 +475,6 @@ python package_do_pkgconfig () {
 							if hdr == 'Requires':
 								pkgconfig_needed[pkg] += exp.replace(',', ' ').split()
 
-	shlibs_dir = os.path.join(staging, "shlibs")
-	bb.mkdirhier(shlibs_dir)
-
 	for pkg in packages.split():
 		pkgs_file = os.path.join(shlibs_dir, pkg + ".pclist")
 		if os.path.exists(pkgs_file):
@@ -474,16 +485,17 @@ python package_do_pkgconfig () {
 				f.write('%s\n' % p)
 			f.close()
 
-	for file in os.listdir(shlibs_dir):
-		m = re.match('^(.*)\.pclist$', file)
-		if m:
-			pkg = m.group(1)
-			fd = open(os.path.join(shlibs_dir, file))
-			lines = fd.readlines()
-			fd.close()
-			pkgconfig_provided[pkg] = []
-			for l in lines:
-				pkgconfig_provided[pkg].append(l.rstrip())
+	for dir in [old_shlibs_dir, shlibs_dir]:
+		for file in os.listdir(dir):
+			m = re.match('^(.*)\.pclist$', file)
+			if m:
+				pkg = m.group(1)
+				fd = open(os.path.join(dir, file))
+				lines = fd.readlines()
+				fd.close()
+				pkgconfig_provided[pkg] = []
+				for l in lines:
+					pkgconfig_provided[pkg].append(l.rstrip())
 
 	for pkg in packages.split():
 		deps = []
-- 
cgit v1.2.3