summaryrefslogtreecommitdiff
path: root/buildtools/wafsamba/samba_deps.py
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-03-18 23:47:48 +1100
committerAndrew Tridgell <tridge@samba.org>2010-04-06 20:26:52 +1000
commite9fd67f4deaa822bec025f8cc2557b825a05f3ef (patch)
treefce439cbe815fc6f683ea16b3d37460951e222bd /buildtools/wafsamba/samba_deps.py
parentc1f4015dcd7cb6edbde9fafd138c4d36fc061a8d (diff)
downloadsamba-e9fd67f4deaa822bec025f8cc2557b825a05f3ef.tar.gz
samba-e9fd67f4deaa822bec025f8cc2557b825a05f3ef.tar.bz2
samba-e9fd67f4deaa822bec025f8cc2557b825a05f3ef.zip
build: split build and install libraries/binaries
we need to split these to avoid re-compilation on install as install has different rpath settings
Diffstat (limited to 'buildtools/wafsamba/samba_deps.py')
-rw-r--r--buildtools/wafsamba/samba_deps.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/buildtools/wafsamba/samba_deps.py b/buildtools/wafsamba/samba_deps.py
index f20bccba06..fa34cb8fcf 100644
--- a/buildtools/wafsamba/samba_deps.py
+++ b/buildtools/wafsamba/samba_deps.py
@@ -15,7 +15,9 @@ def ADD_GLOBAL_DEPENDENCY(ctx, dep):
def TARGET_ALIAS(bld, target, alias):
'''define an alias for a target name'''
cache = LOCAL_CACHE(bld, 'TARGET_ALIAS')
- bld.ASSERT(alias not in cache, "Target alias %s already set" % alias)
+ if alias in cache:
+ print("Target alias %s already set to %s : newalias %s" % (alias, cache[alias], target))
+ raise
cache[alias] = target
Build.BuildContext.TARGET_ALIAS = TARGET_ALIAS
@@ -173,9 +175,14 @@ def add_init_functions(self):
subsystems = LOCAL_CACHE(bld, 'INIT_FUNCTIONS')
+ # cope with the separated object lists from BINARY and LIBRARY targets
+ sname = self.sname
+ if sname.endswith('.objlist'):
+ sname = sname[0:-8]
+
modules = []
- if self.sname in subsystems:
- modules.append(self.sname)
+ if sname in subsystems:
+ modules.append(sname)
m = getattr(self, 'samba_modules', None)
if m is not None:
@@ -544,6 +551,9 @@ def calculate_final_deps(bld, tgt_list):
for l in t.final_libs.copy():
t2 = bld.name_to_obj(l, bld.env)
if t.sname in t2.final_libs:
+ # we could break this in either direction. If one of the libraries
+ # has a version number, and will this be distributed publicly, then
+ # we should make it the lower level library in the DAG
debug('deps: removing library loop %s<->%s', t.sname, l)
t2.final_libs.remove(t.sname)
loops[t2.sname] = t.sname;
@@ -702,6 +712,9 @@ def check_project_rules(bld):
if not type in ['SUBSYSTEM', 'MODULE', 'BINARY', 'LIBRARY', 'ASN1', 'PYTHON']:
continue
t = bld.name_to_obj(tgt, bld.env)
+ if t is None:
+ print "Target %s of type %s has no task generator" % (tgt, type)
+ raise
tgt_list.append(t)
add_samba_attributes(bld, tgt_list)