📄 vacpp.jam
字号:
# Copyright Vladimir Prus 2004.# Copyright Toon Knapen 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)## Boost.Build V2 toolset for the IBM XL C++ compiler#import toolset : flags ;import feature ;import common ;import generators ;import os ;feature.extend toolset : vacpp ;toolset.inherit vacpp : unix ;generators.override vacpp.prebuilt : builtin.lib-generator ;generators.override vacpp.searched-lib-generator : searched-lib-generator ;# Configure the vacpp toolsetrule init ( version ? : command * : options * ){ local condition = [ common.check-init-parameters vacpp : version $(version) ] ; command = [ common.get-invocation-command vacpp : xlC : $(command) : "/usr/vacpp/bin/xlC" ] ; common.handle-options vacpp : $(condition) : $(command) : $(options) ;}# Declare generatorsgenerators.register-c-compiler vacpp.compile.c : C : OBJ : <toolset>vacpp ;generators.register-c-compiler vacpp.compile.c++ : CPP : OBJ : <toolset>vacpp ;# Allow C++ style comments in C filesflags vacpp CFLAGS : -qcpluscmt ;# Declare flagsflags vacpp CFLAGS <optimization>off : -qNOOPTimize ;flags vacpp CFLAGS <optimization>speed : -O3 -qstrict ;flags vacpp CFLAGS <optimization>space : -O2 -qcompact ;# Discretionary inlining (not recommended)flags vacpp CFLAGS <inlining>off : -qnoinline ;flags vacpp CFLAGS <inlining>on : -qinline ;#flags vacpp CFLAGS <inlining>full : -qinline ;flags vacpp CFLAGS <inlining>full : ;# Exception handlingflags vacpp C++FLAGS <exception-handling>off : -qnoeh ;flags vacpp C++FLAGS <exception-handling>on : -qeh ;# Run-time Type Identificationflags vacpp C++FLAGS <rtti>off : -qnortti ;flags vacpp C++FLAGS <rtti>on : -qrtti ;# Enable 64-bit memory addressing modelflags vacpp CFLAGS <address-model>64 : -q64 ;flags vacpp LINKFLAGS <address-model>64 : -q64 ;flags vacpp ARFLAGS <target-os>aix/<address-model>64 : -X 64 ;# Use absolute path when generating debug informationflags vacpp CFLAGS <debug-symbols>on : -g -qfullpath ;flags vacpp LINKFLAGS <debug-symbols>on : -g -qfullpath ;flags vacpp LINKFLAGS <debug-symbols>off : -s ;if [ os.name ] = AIX{ # Tell the linker to discard unneeded object files from archive libraries. # Please note that the static constructors contained by the discarded object # files will not be invoked. flags vacpp.compile C++FLAGS : -qfuncsect ; flags vacpp.link LINKFLAGS <link>static : -qtwolink ; # Run-time linking flags vacpp.link EXE-LINKFLAGS <link>shared : -brtl -qtwolink ;}else{ # Linux PPC flags vacpp.compile CFLAGS <link>shared : -qpic ; flags vacpp FINDLIBS : rt ;}# Profilingflags vacpp CFLAGS <profiling>on : -pg ;flags vacpp LINKFLAGS <profiling>on : -pg ;flags vacpp CFLAGS <cflags> ;flags vacpp C++FLAGS <cxxflags> ;flags vacpp DEFINES <define> ;flags vacpp UNDEFS <undef> ;flags vacpp HDRS <include> ;flags vacpp STDHDRS <sysinclude> ;flags vacpp LINKFLAGS <linkflags> ;flags vacpp ARFLAGS <arflags> ;flags vacpp LIBPATH <library-path> ;flags vacpp NEEDLIBS <library-file> ;flags vacpp FINDLIBS <find-shared-library> ;flags vacpp FINDLIBS <find-static-library> ;# Select the compiler name according to the threading model.flags vacpp VA_C_COMPILER <threading>single : xlc ;flags vacpp VA_C_COMPILER <threading>multi : xlc_r ;flags vacpp VA_CXX_COMPILER <threading>single : xlC ;flags vacpp VA_CXX_COMPILER <threading>multi : xlC_r ;actions vacpp.link bind NEEDLIBS{ $(VA_CXX_COMPILER) $(EXE-LINKFLAGS) $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)}actions vacpp.link.dll bind NEEDLIBS{ xlC_r -G $(LINKFLAGS) -o "$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" -l$(FINDLIBS)}actions vacpp.compile.c{ $(VA_C_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"}actions vacpp.compile.c++{ $(VA_CXX_COMPILER) -c -I$(BOOST_ROOT) -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"}actions updated together piecemeal vacpp.archive{ ar $(ARFLAGS) ru "$(<)" "$(>)"}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -