$NetBSD: patch-aa,v 1.4 2007/03/18 17:34:41 adam Exp $

--- qmake/generators/unix/unixmake2.cpp.orig	2006-11-27 17:26:28.000000000 +0000
+++ qmake/generators/unix/unixmake2.cpp
@@ -205,6 +205,8 @@ UnixMakefileGenerator::writeMakeParts(QT
         if(!project->isEmpty("QMAKE_BUNDLE_NAME")) {
             t << "TARGETD       = " << escapeFilePath(var("TARGET_x.y")) << endl;
             t << "TARGET0       = " << escapeFilePath(var("TARGET_")) << endl;
+	} else if(project->isActiveConfig("compile_libtool")) {
+	    t << "TARGETD       = " << var("TARGET_la") << endl;
         } else if(project->isEmpty("QMAKE_HPUX_SHLIB")) {
             t << "TARGETD       = " << escapeFilePath(var("TARGET_x.y.z")) << endl;
             t << "TARGET0       = " << escapeFilePath(var("TARGET_")) << endl;
@@ -946,8 +948,12 @@ void UnixMakefileGenerator::init2()
     } else if (project->isActiveConfig("staticlib")) {
         project->values("TARGET").first().prepend("lib");
         project->values("TARGET").first() += ".a";
-        if(project->values("QMAKE_AR_CMD").isEmpty())
+        if(project->values("QMAKE_AR_CMD").isEmpty()) {
+	  if(project->isActiveConfig("compile_libtool"))
+	    project->variables()["QMAKE_AR_CMD"].append("$(CXX) -o $(TARGET) $(OBJECTS) $(OBJMOC)");
+	  else
             project->values("QMAKE_AR_CMD").append("$(AR) $(TARGET) $(OBJECTS)");
+	}
     } else {
         project->values("TARGETA").append(project->first("DESTDIR") + "lib" + project->first("TARGET") + ".a");
         if(project->isActiveConfig("compile_libtool"))
@@ -1372,7 +1378,7 @@ UnixMakefileGenerator::writePkgConfigFil
     else
         libs << "QMAKE_LIBS"; //obvious one
     libs << "QMAKE_LFLAGS_THREAD"; //not sure about this one, but what about things like -pthread?
-    t << "Libs: -L${libdir} -l" << lname.left(lname.length()-Option::libtool_ext.length()) << " ";
+    t << "Libs: -Wl,-R${libdir} -L${libdir} -l" << lname.left(lname.length()-Option::libtool_ext.length()) << " ";
     for(QStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it)
         t << project->values((*it)).join(" ") << " ";
     t << endl;
