1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
$NetBSD: patch-ah,v 1.1 2004/11/27 02:35:53 epg Exp $
--- build/generator/gen_make.py.orig 2004-08-09 18:30:31.000000000 -0400
+++ build/generator/gen_make.py
@@ -5,6 +5,7 @@
import os
import sys
import string
+import ConfigParser
import gen_base
@@ -27,6 +28,13 @@ class Generator(gen_base.GeneratorBase):
install_deps = self.graph.get_deps(gen_base.DT_INSTALL)
install_sources = self.graph.get_all_sources(gen_base.DT_INSTALL)
+ cp = ConfigParser.ConfigParser()
+ cp.read('gen-make.opts')
+ if cp.has_option('options', '--installed-libs'):
+ self.installed_libs = cp.get('options', '--installed-libs').split(',')
+ else:
+ self.installed_libs = []
+
# ensure consistency between runs
install_deps.sort()
install_sources.sort(lambda s1, s2: cmp(s1.name, s2.name))
@@ -68,6 +76,8 @@ class Generator(gen_base.GeneratorBase):
elif isinstance(source, gen_base.TargetLinked):
if source.external_lib:
libs.append(source.external_lib)
+ elif source.name in self.installed_libs:
+ libs.append('-l%s-%s' % (source.name[3:], self.cfg.version))
else:
# append the output of the target to our stated dependencies
deps.append(source.filename)
@@ -184,6 +194,8 @@ class Generator(gen_base.GeneratorBase):
for target in inst_targets:
for target_dep in self.graph.get_sources(gen_base.DT_LINK, target.name,
gen_base.TargetLib):
+ if target_dep.name in self.installed_libs:
+ continue
if target_dep.install and target_dep.install != area:
install_deps['install-%s' % target_dep.install] = None
install_deps = install_deps.keys()
@@ -356,11 +368,18 @@ class Generator(gen_base.GeneratorBase):
# construct a list of the other .la libs to link against
retreat = build_path_retreat(target.path)
- deps = [ target.filename ]
- link = [ build_path_join(retreat, target.filename) ]
+ if target.name in self.installed_libs:
+ deps = []
+ link = [ '-l%s-%s' % (target.name[3:], self.cfg.version) ]
+ else:
+ deps = [ target.filename ]
+ link = [ build_path_join(retreat, target.filename) ]
for source in self.graph.get_sources(gen_base.DT_LINK, target.name):
if not isinstance(source, gen_base.TargetLib) or source.external_lib:
continue
+ if source.name in self.installed_libs:
+ link.append('-l%s-%s' % (source.name[3:], self.cfg.version))
+ continue
deps.append(source.filename)
link.append(build_path_join(retreat, source.filename))
|