diff options
author | Patrick Simianer <simianer@cl.uni-heidelberg.de> | 2012-11-05 15:29:46 +0100 |
---|---|---|
committer | Patrick Simianer <simianer@cl.uni-heidelberg.de> | 2012-11-05 15:29:46 +0100 |
commit | 1db70a45d59946560fbd5db6487b55a8674ef973 (patch) | |
tree | 172585dafe4d1462f22d8200e733d52dddb55b1e /jam-files/boost-build/tools/cw.jam | |
parent | 4dd5216d3afa9ab72b150e250a3c30a5f223ce53 (diff) | |
parent | 6bbf03ac46bd57400aa9e65a321a304a234af935 (diff) |
merge upstream/master
Diffstat (limited to 'jam-files/boost-build/tools/cw.jam')
-rw-r--r-- | jam-files/boost-build/tools/cw.jam | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/jam-files/boost-build/tools/cw.jam b/jam-files/boost-build/tools/cw.jam deleted file mode 100644 index ddcbfeb2..00000000 --- a/jam-files/boost-build/tools/cw.jam +++ /dev/null @@ -1,246 +0,0 @@ -# Copyright (C) Reece H Dunn 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) - -# based on the msvc.jam toolset - -import property ; -import generators ; -import os ; -import type ; -import toolset : flags ; -import errors : error ; -import feature : feature get-values ; -import path ; -import sequence : unique ; -import common ; - -if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ] -{ - .debug-configuration = true ; -} - -feature.extend toolset : cw ; - -toolset.add-requirements <toolset>cw,<runtime-link>shared:<threading>multi ; - -nl = " -" ; - -rule init ( version ? : command * : options * ) -{ - # TODO: fix the $(command[1]) = $(compiler) issue - - setup = [ get-values <setup> : $(options) ] ; - setup ?= cwenv.bat ; - compiler = [ get-values <compiler> : $(options) ] ; - compiler ?= mwcc ; - linker = [ get-values <linker> : $(options) ] ; - linker ?= mwld ; - - local condition = [ common.check-init-parameters cw : - version $(version) ] ; - - command = [ common.get-invocation-command cw : mwcc.exe : $(command) : - [ default-paths $(version) ] ] ; - - common.handle-options cw : $(condition) : $(command) : $(options) ; - - local root = [ feature.get-values <root> : $(options) ] ; - if $(command) - { - command = [ common.get-absolute-tool-path $(command[-1]) ] ; - } - local tool-root = $(command) ; - - setup = $(tool-root)\\$(setup) ; - - # map the batch file in setup so it can be executed - - other-tools = $(tool-root:D) ; - root ?= $(other-tools:D) ; - - flags cw.link RUN_PATH $(condition) : - "$(root)\\Win32-x86 Support\\Libraries\\Runtime" - "$(root)\\Win32-x86 Support\\Libraries\\Runtime\\Libs\\MSL_All-DLLs" ; - - setup = "set \"CWFOLDER="$(root)"\" && call \""$(setup)"\" > nul " ; - - if [ os.name ] = NT - { - setup = $(setup)" -" ; - } - else - { - setup = "cmd /S /C "$(setup)" \"&&\" " ; - } - - # bind the setup command to the tool so it can be executed before the - # command - - local prefix = $(setup) ; - - flags cw.compile .CC $(condition) : $(prefix)$(compiler) ; - flags cw.link .LD $(condition) : $(prefix)$(linker) ; - flags cw.archive .LD $(condition) : $(prefix)$(linker) ; - - if [ MATCH ^([89]\\.) : $(version) ] - { - if [ os.name ] = NT - { - # The runtime libraries - flags cw.compile CFLAGS <runtime-link>static/<threading>single/<runtime-debugging>off : -runtime ss ; - flags cw.compile CFLAGS <runtime-link>static/<threading>single/<runtime-debugging>on : -runtime ssd ; - - flags cw.compile CFLAGS <runtime-link>static/<threading>multi/<runtime-debugging>off : -runtime sm ; - flags cw.compile CFLAGS <runtime-link>static/<threading>multi/<runtime-debugging>on : -runtime smd ; - - flags cw.compile CFLAGS <runtime-link>shared/<runtime-debugging>off : -runtime dm ; - flags cw.compile CFLAGS <runtime-link>shared/<runtime-debugging>on : -runtime dmd ; - } - } -} - - -local rule default-paths ( version ? ) # FIXME -{ - local possible-paths ; - local ProgramFiles = [ common.get-program-files-dir ] ; - - # TODO: add support for cw8 and cw9 detection - - local version-6-path = $(ProgramFiles)"\\Metrowerks\\CodeWarrior" ; - possible-paths += $(version-6-path) ; - - # perform post-processing - - possible-paths - = $(possible-paths)"\\Other Metrowerks Tools\\Command Line Tools" ; - - possible-paths += [ modules.peek : PATH Path path ] ; - - return $(possible-paths) ; -} - - - - -## declare generators - -generators.register-c-compiler cw.compile.c++ : CPP : OBJ : <toolset>cw ; -generators.register-c-compiler cw.compile.c : C : OBJ : <toolset>cw ; - -generators.register-linker cw.link - : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB - : EXE - : <toolset>cw - ; -generators.register-linker cw.link.dll - : OBJ SEARCHED_LIB STATIC_LIB IMPORT_LIB - : SHARED_LIB IMPORT_LIB - : <toolset>cw - ; - -generators.register-archiver cw.archive - : OBJ - : STATIC_LIB - : <toolset>cw - ; - -## compilation phase - -flags cw WHATEVER <toolset-cw:version> ; - -flags cw.compile CFLAGS <debug-symbols>on : -g ; -flags cw.compile CFLAGS <optimization>off : -O0 ; -flags cw.compile CFLAGS <optimization>speed : -O4,p ; -flags cw.compile CFLAGS <optimization>space : -O4,s ; -flags cw.compile CFLAGS <inlining>off : -inline off ; -flags cw.compile CFLAGS <inlining>on : -inline on ; -flags cw.compile CFLAGS <inlining>full : -inline all ; -flags cw.compile CFLAGS <exception-handling>off : -Cpp_exceptions off ; - - -flags cw.compile CFLAGS <rtti>on : -RTTI on ; -flags cw.compile CFLAGS <rtti>off : -RTTI off ; - -flags cw.compile CFLAGS <warnings>on : -w on ; -flags cw.compile CFLAGS <warnings>off : -w off ; -flags cw.compile CFLAGS <warnings>all : -w all ; -flags cw.compile CFLAGS <warnings-as-errors>on : -w error ; - -flags cw.compile USER_CFLAGS <cflags> : ; -flags cw.compile.c++ USER_CFLAGS <cxxflags> : ; - -flags cw.compile DEFINES <define> ; -flags cw.compile UNDEFS <undef> ; -flags cw.compile INCLUDES <include> ; - -actions compile.c -{ - $(.CC) -c -cwd include -lang c -U$(UNDEFS) $(CFLAGS) $(USER_CFLAGS) -I- -o "$(<)" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -} -actions compile.c++ -{ - $(.CC) -c -cwd include -lang c++ -U$(UNDEFS) $(CFLAGS) $(USER_CFLAGS) -I- -o "$(<)" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -} - -## linking phase - -flags cw.link DEF_FILE <def-file> ; - -flags cw LINKFLAGS : -search ; -flags cw LINKFLAGS <debug-symbols>on : -g ; -flags cw LINKFLAGS <user-interface>console : -subsystem console ; -flags cw LINKFLAGS <user-interface>gui : -subsystem windows ; -flags cw LINKFLAGS <user-interface>wince : -subsystem wince ; -flags cw LINKFLAGS <user-interface>native : -subsystem native ; -flags cw LINKFLAGS <user-interface>auto : -subsystem auto ; - -flags cw LINKFLAGS <main-target-type>LIB/<link>static : -library ; - -flags cw.link USER_LINKFLAGS <linkflags> ; -flags cw.link LINKPATH <library-path> ; - -flags cw.link FINDLIBS_ST <find-static-library> ; -flags cw.link FINDLIBS_SA <find-shared-library> ; -flags cw.link LIBRARY_OPTION <toolset>cw : "" : unchecked ; -flags cw.link LIBRARIES_MENTIONED_BY_FILE : <library-file> ; - -rule link.dll ( targets + : sources * : properties * ) -{ - DEPENDS $(<) : [ on $(<) return $(DEF_FILE) ] ; -} - -if [ os.name ] in NT -{ - actions archive - { - if exist "$(<[1])" DEL "$(<[1])" - $(.LD) -library -o "$(<[1])" @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")" - } -} -else # cygwin -{ - actions archive - { - _bbv2_out_="$(<)" - if test -f "$_bbv2_out_" ; then - _bbv2_existing_="$(<:W)" - fi - $(.LD) -library -o "$(<:W)" $_bbv2_existing_ @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")" - } -} - -actions link bind DEF_FILE -{ - $(.LD) -o "$(<[1]:W)" -L"$(LINKPATH)" $(LINKFLAGS) $(USER_LINKFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")" -} - -actions link.dll bind DEF_FILE -{ - $(.LD) -shared -o "$(<[1]:W)" -implib "$(<[2]:W)" -L"$(LINKPATH)" $(LINKFLAGS) -f"$(DEF_FILE)" $(USER_LINKFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")" -} - |