diff -r 5dc02b23752f -r 3e2da88830cd qmake/generators/win32/mingw_make.cpp --- a/qmake/generators/win32/mingw_make.cpp Tue Jul 06 15:10:48 2010 +0300 +++ b/qmake/generators/win32/mingw_make.cpp Wed Aug 18 10:37:55 2010 +0300 @@ -372,16 +372,17 @@ if (project->values("OBJECTS").count() < var("QMAKE_LINK_OBJECT_MAX").toInt()) { objectsLinkLine = "$(OBJECTS)"; } else if (project->isActiveConfig("staticlib") && project->first("TEMPLATE") == "lib") { - QString ar_script_file = var("QMAKE_LINK_OBJECT_SCRIPT") + "." + var("TARGET"); - if (!var("BUILD_NAME").isEmpty()) { - ar_script_file += "." + var("BUILD_NAME"); - } - createArObjectScriptFile(ar_script_file, var("DEST_TARGET"), project->values("OBJECTS")); - if(!project->isEmpty("QMAKE_AR")) { - objectsLinkLine = var("QMAKE_AR") + " -M < " + ar_script_file; - } else { - objectsLinkLine = "ar -M < " + ar_script_file; - } + QString ar_script_file = var("QMAKE_LINK_OBJECT_SCRIPT") + "." + var("TARGET"); + if (!var("BUILD_NAME").isEmpty()) { + ar_script_file += "." + var("BUILD_NAME"); + } + createArObjectScriptFile(ar_script_file, var("DEST_TARGET"), project->values("OBJECTS")); + // QMAKE_LIB is used for win32, including mingw, whereas QMAKE_AR is used on Unix. + // Strip off any options since the ar commands will be read from file. + QString ar_cmd = var("QMAKE_LIB").section(" ", 0, 0);; + if (ar_cmd.isEmpty()) + ar_cmd = "ar"; + objectsLinkLine = ar_cmd + " -M < " + ar_script_file; } else { QString ld_script_file = var("QMAKE_LINK_OBJECT_SCRIPT") + "." + var("TARGET"); if (!var("BUILD_NAME").isEmpty()) {