$NetBSD: patch-ah,v 1.4 2006/09/11 04:14:31 epg Exp $

--- build/generator/gen_make.py.orig	2006-04-05 12:12:48.000000000 -0400
+++ build/generator/gen_make.py
@@ -5,6 +5,7 @@
 import os
 import sys
 import string
+import ConfigParser
 
 import gen_base
 import generator.swig.header_wrappers
@@ -53,6 +54,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,11 +76,17 @@ 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.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
+          elif source.name in self.installed_libs:
+            continue
           deps.append(source.filename)
           link.append(build_path_join(retreat, source.filename))
 
@@ -216,6 +230,8 @@ class Generator(gen_base.GeneratorBase):
             # expeditiously.  It is of questionable validity for a build
             # node to have external_project but not have external_lib.
             pass
+          elif link_dep.name in self.installed_libs:
+            libs.append('-l%s-%s' % (link_dep.name[3:], self.version))
           else:
             # append the output of the target to our stated dependencies
             if not self.assume_shared_libs:
