From c00a05b980bf893ad982ba5af9d2054f578cdc69 Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Sat, 30 May 2009 11:51:46 +0000 Subject: [PATCH] Generate import libs on cygwin, and fix naming to match conventions. Patch from Ronald Landheer-Cieslak. [SVN r53446] --- src/tools/gcc.jam | 23 +++++++++++++++++++++++ src/tools/types/lib.jam | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam index 41cb58f86..eb818030e 100644 --- a/src/tools/gcc.jam +++ b/src/tools/gcc.jam @@ -542,6 +542,28 @@ generators.register generators.override gcc.mingw.link : gcc.link ; generators.override gcc.mingw.link.dll : gcc.link.dll ; +# Cygwin is similar to msvc and mingw in that it uses import libraries. +# While in simple cases, it can directly link to a shared library, +# it is believed to be slower, and not always possible. Define cygwin-specific +# generators here. + +g = [ new gcc-linking-generator gcc.cygwin.link + : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB + : EXE + : gcc cygwin ] ; +$(g).set-rule-name gcc.link ; +generators.register $(g) ; + +g = [ new gcc-linking-generator gcc.cygwin.link.dll + : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB + : IMPORT_LIB SHARED_LIB + : gcc cygwin ] ; +$(g).set-rule-name gcc.link.dll ; +generators.register $(g) ; + +generators.override gcc.cygwin.link : gcc.link ; +generators.override gcc.cygwin.link.dll : gcc.link.dll ; + # Declare flags for linking. # First, the common flags. toolset.flags gcc.link OPTIONS on : -g ; @@ -553,6 +575,7 @@ toolset.flags gcc.link FINDLIBS-SA ; toolset.flags gcc.link LIBRARIES ; toolset.flags gcc.link.dll .IMPLIB-COMMAND windows : "-Wl,--out-implib," ; +toolset.flags gcc.link.dll .IMPLIB-COMMAND cygwin : "-Wl,--out-implib," ; # For static we made sure there are no dynamic libraries in the # link. On HP-UX not all system libraries exist as archived libraries (for diff --git a/src/tools/types/lib.jam b/src/tools/types/lib.jam index c343b788a..345385f85 100644 --- a/src/tools/types/lib.jam +++ b/src/tools/types/lib.jam @@ -9,7 +9,7 @@ type.register LIB ; type.set-generated-target-prefix LIB : : "lib" ; type.set-generated-target-prefix LIB : windows : "" ; -type.set-generated-target-prefix LIB : cygwin : "" ; +type.set-generated-target-prefix LIB : cygwin : "cyg" ; # FIXME: should not register both extensions on both # platforms.