| # Copyright David Abrahams 2004. Distributed under the Boost |
| # Software License, Version 1.0. (See accompanying |
| # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| |
| import type ; # for set-generated-target-suffix |
| import os ; |
| |
| # The following naming scheme is used for libraries. |
| # |
| # On *nix: |
| # libxxx.a static library |
| # libxxx.so shared library |
| # |
| # On windows (msvc) |
| # libxxx.lib static library |
| # xxx.dll DLL |
| # xxx.lib import library |
| # |
| # On windows (mingw): |
| # libxxx.a static library |
| # libxxx.dll DLL |
| # libxxx.dll.a import library |
| # |
| # On cygwin i.e. <target-os>cygwin |
| # libxxx.a static library |
| # cygxxx.dll DLL |
| # libxxx.dll.a import library |
| # |
| |
| type.register LIB ; |
| |
| # FIXME: should not register both extensions on both platforms. |
| type.register STATIC_LIB : a lib : LIB ; |
| |
| # The 'lib' prefix is used everywhere |
| type.set-generated-target-prefix STATIC_LIB : : lib ; |
| |
| # Use '.lib' suffix for windows |
| type.set-generated-target-suffix STATIC_LIB : <target-os>windows : lib ; |
| |
| # Except with gcc. |
| type.set-generated-target-suffix STATIC_LIB : <toolset>gcc <target-os>windows : a ; |
| |
| # Use xxx.lib for import libs |
| type IMPORT_LIB : : STATIC_LIB ; |
| type.set-generated-target-prefix IMPORT_LIB : : "" ; |
| type.set-generated-target-suffix IMPORT_LIB : : lib ; |
| |
| # Except with gcc (mingw or cygwin), where use libxxx.dll.a |
| type.set-generated-target-prefix IMPORT_LIB : <toolset>gcc : lib ; |
| type.set-generated-target-suffix IMPORT_LIB : <toolset>gcc : dll.a ; |
| |
| type.register SHARED_LIB : so dll dylib : LIB ; |
| |
| # Both mingw and cygwin use libxxx.dll naming scheme. |
| # On Linux, use "lib" prefix |
| type.set-generated-target-prefix SHARED_LIB : : lib ; |
| # But don't use it on windows |
| type.set-generated-target-prefix SHARED_LIB : <target-os>windows : "" ; |
| # But use it again on mingw |
| type.set-generated-target-prefix SHARED_LIB : <toolset>gcc <target-os>windows : lib ; |
| # And use 'cyg' on cygwin |
| type.set-generated-target-prefix SHARED_LIB : <target-os>cygwin : cyg ; |
| |
| |
| type.set-generated-target-suffix SHARED_LIB : <target-os>windows : dll ; |
| type.set-generated-target-suffix SHARED_LIB : <target-os>cygwin : dll ; |
| type.set-generated-target-suffix SHARED_LIB : <target-os>darwin : dylib ; |
| |
| type SEARCHED_LIB : : LIB ; |
| # This is needed so that when we create a target of SEARCHED_LIB |
| # type, there's no prefix or suffix automatically added. |
| type.set-generated-target-prefix SEARCHED_LIB : : "" ; |
| type.set-generated-target-suffix SEARCHED_LIB : : "" ; |