⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 build.jam

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 JAM
📖 第 1 页 / 共 2 页
字号:
#~ Copyright 2002-2007 Rene Rivera.#~ Distributed under the Boost Software License, Version 1.0.#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)# Platform related specifics.if $(NT) { rule .path { return "$(<:J=\\)" ; } ./ = "/" ; }else if $(OS2) { rule .path { return "$(<:J=\\)" ; } ./ = "/" ; }else if $(VMS) { rule .path { return "[.$(<:J=/)]" ; } }else if $(MAC) { rule .path { return ":$(<:J=\:)" ; } }else { rule .path { return "$(<:J=/)" ; } }if $(VMS) { . = "_" ; }else { . = "." ; }./ ?= "" ; # Info about what we are building._VERSION_ = 3 1 16 ;NAME = boost-jam ;VERSION = $(_VERSION_:J=$(.)) ;RELEASE = 1 ;LICENSE = LICENSE_1_0 ;# Generate development debug binaries?if --debug in $(ARGV){    debug = true ;}# Attempt to generate and/or build the grammar?if --grammar in $(ARGV){    grammar = true ;}# Do we need to add a default build type argument?if ! ( --release in $(ARGV) ) &&   ! ( --debug in $(ARGV) ){    ARGV += --release ;}# Enable, and configure, Python hooks.with-python = ;python-location = [ MATCH --with-python=(.*) : $(ARGV) ] ;if $(python-location){    with-python = true ;}if $(with-python){    if $(NT)    {        --python-include = [ .path $(python-location) include ] ;        --python-lib = ;        for local v in 25 24 23 22        {            --python-lib ?=                [ GLOB [ .path $(python-location) libs ] : "python$(v).lib" ]                [ GLOB $(python-location) [ .path $(python-location) libs ]                    $(Path) $(PATH) $(path) : "python$(v).dll" ]                ;            if ! $(--python-lib[2])            {                --python-lib = ;            }        }        --python-lib = $(--python-lib[1]) ;    }    else if $(OS) = MACOSX    {        --python-include = [ .path $(python-location) Headers ] ;        --python-lib = $(python-location) Python ;    }    else    {        --python-include = ;        --python-lib = ;        for local v in 2.5 2.4 2.3 2.2        {            local inc = [ GLOB [ .path $(python-location) include ] : python$(v) ] ;            local lib = [ GLOB [ .path $(python-location) lib ] : libpython$(v)* ] ;            if $(inc) && $(lib)            {                --python-include ?= $(inc) ;                --python-lib ?= $(lib[1]:D) python$(v) ;            }        }    }}# Boehm GC?if --gc in $(ARGV){    --boehm-gc = true ;}if $(--boehm-gc){    --extra-include += [ .path [ PWD ] "boehm_gc" "include" ] ;}# Duma?if --duma in $(ARGV){    --duma = true ;}if $(--duma){    --extra-include += [ .path [ PWD ] "duma" ] ;}# An explicit root for the toolset? (trim spaces)toolset-root = [ MATCH --toolset-root=(.*) : $(ARGV) ] ;{    local t = [ MATCH "[ ]*(.*)" : $(toolset-root:J=" ") ] ;    toolset-root = ;    while $(t)    {        t = [ MATCH "([^ ]+)([ ]*)(.*)" : $(t) ] ;        toolset-root += $(t[1]) ;        if $(t[3]) { toolset-root += $(t[2]) ; }        t = $(t[3]) ;    }    toolset-root = $(toolset-root:J="") ;}# Configure the implemented toolsets. These are minimal# commands and options to compile the full Jam. When# adding new toolsets make sure to add them to the# "known" list also.rule toolset ( name command .type ? : opt.out + : opt.define * : flags * : linklibs * ){    .type ?= "" ;    tool.$(name)$(.type).cc ?= $(command) ;    tool.$(name)$(.type).opt.out ?= $(opt.out) ;    tool.$(name)$(.type).opt.define ?= $(opt.define) ;    tool.$(name)$(.type).flags ?= $(flags) ;    tool.$(name)$(.type).linklibs ?= $(linklibs) ;    if ! $(name) in $(toolsets) { toolsets += $(name) ; }}rule opt ( type : yes-opt * : no-opt * ) { if $(type) in $(ARGV) { return $(yes-opt) ; } else { return $(no-opt) ; } }## HP-UX aCC compilertoolset acc cc : "-o " : -D    : -Ae    [ opt --release : -s -O3 ]    [ opt --debug : -g -pg ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Borland C++ 5.5.xtoolset borland bcc32 : -e -n : /D    : -WC -w- -q "-I$(toolset-root)Include" "-L$(toolset-root)Lib"    [ opt --release : -O2 -vi -w-inl ]    [ opt --debug : -v -Od -vi- ]    -I$(--python-include) -I$(--extra-include)    : $(--python-lib[1]) ;## Generic Unix ccif ! $(CC) { CC = cc ; }toolset cc $(CC) : "-o " : -D    : $(CFLAGS)    [ opt --release : -s -O ]    [ opt --debug : -g ]    -I$(--python-include) -I$(--extra-include)    : $(LIBS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Comeau C/C++ 4.xtoolset como como : "-o " : -D    : --c    [ opt --release : --inlining ]    [ opt --debug : --no_inlining ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## MacOSX Darwin, using GCC 2.9.x, 3.xtoolset darwin cc :  "-o " : -D    :    [ opt --release : -Wl,-x -O3 -finline-functions ]    [ opt --debug : -g -O0 -fno-inline -pg ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## GCC 2.x, 3.x, 4.xtoolset gcc gcc : "-o " : -D    : -pedantic -fno-strict-aliasing    [ opt --release : [ opt --symbols : -g : -s ] -O3 ]    [ opt --debug : -g -O0 -fno-inline ]    -I$(--python-include) -I$(--extra-include) -Wno-long-long    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## GCC 2.x, 3.x on CYGWIN but without cygwin1.dlltoolset gcc-nocygwin gcc : "-o " : -D    : -s -O3 -mno-cygwin    [ opt --release : -finline-functions ]    [ opt --debug : -s -O3 -fno-inline -pg ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Intel C/C++ for Linuxtoolset intel-linux icc : "-o " : -D    :    [ opt --release : -Xlinker -s -O3 ]    [ opt --debug : -g -O0 -p ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Intel C/C++ for Win32toolset intel-win32 icl : /Fe : -D    : /nologo    [ opt --release : /MT /O2 /Ob2 /Gy /GF /GA /GB ]    [ opt --debug : /MTd /DEBUG /Z7 /Od /Ob0 ]    -I$(--python-include) -I$(--extra-include)    : kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;## KCC ?toolset kcc KCC : "-o " : -D    :    [ opt --release : -s +K2 ]    [ opt --debug : -g +K0 ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Borland Kylixtoolset kylix bc++ : -o : -D    : -tC -q    [ opt --release : -O2 -vi -w-inl ]    [ opt --debug : -v -Od -vi- ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Metrowerks CodeWarrior 8.x{    # Even though CW can compile all files at once, it crashes if it tries in the bjam case.    local mwcc = ; if $(NT) { mwcc = mwcc ; } else { mwcc = mwc$(OSPLAT:L) ; }    mwcc ?= mwcc ;    toolset metrowerks $(mwcc) : "-o " : -D        : -c -lang c -subsystem console -cwd include        [ opt --release : -runtime ss -opt full -inline all ]        [ opt --debug : -runtime ssd -opt none -inline off ]        -I$(--python-include) -I$(--extra-include) ;    toolset metrowerks $(mwcc) .link : "-o " :        : -subsystem console -lkernel32.lib -ladvapi32.lib -luser32.lib        [ opt --release : -runtime ss ]        [ opt --debug : -runtime ssd ]        : $(--python-lib[1]) ;}## MINGW GCCtoolset mingw gcc : "-o " : -D    :    [ opt --release : -s -O3 -finline-functions ]    [ opt --debug : -g -O0 -fno-inline -pg ]    -I$(--python-include) -I$(--extra-include)    : $(--python-lib[2]) ;## MIPS Protoolset mipspro cc : "-o " : -D    :    [ opt --release : -s -O3 -g0 -INLINE:none ]    [ opt --debug : -g -O0 -INLINE ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Microsoft Visual Studio C++ 6.xtoolset msvc cl : /Fe /Fe /Fd /Fo : -D    : /nologo    [ opt --release : /ML /O2 /Ob2 /Gy /GF /GA /GB ]    [ opt --debug : /MLd /DEBUG /Z7 /Od /Ob0 ]    -I$(--python-include) -I$(--extra-include)    : kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;## QNX 6.x GCC 3.x/2.95.3toolset qcc qcc : "-o " : -D    : -Wc,-pedantic    [ opt --release : [ opt --symbols : -g ] -O3 -Wc,-finline-functions ]    [ opt --debug : -g -O0 -Wc,-fno-inline ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Qlogic Pathscale 2.4toolset pathscale pathcc : "-o " : -D    :    [ opt --release : -s -Ofast -O3 ]    [ opt --debug : -g ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Portland Group Pgi 6.2toolset pgi pgcc : "-o " : -D    :    [ opt --release : -s -O3 ]    [ opt --debug : -g ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Sun Workshop 6 C++toolset sun cc : "-o " : -D    :    [ opt --release : -s -fast -xO4 ]    [ opt --debug : -g ]    -xarch=generic    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Sun Workshop 6 C++ (old alias)toolset sunpro cc : "-o " : -D    :    [ opt --release : -s -fast -xO4 ]    [ opt --debug : -g ]    -xarch=generic    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## Compaq Alpha CXXtoolset tru64cxx cc : "-o " : -D    :    [ opt --release : -s -O5 -inline speed ]    [ opt --debug : -g -O0 -pg ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) ;## IBM VisualAge C++toolset vacpp xlc : "-o " : -D    :    [ opt --release : -s -O3 -qstrict -qinline ]    [ opt --debug : -g -qNOOPTimize -qnoinline -pg ]    -I$(--python-include) -I$(--extra-include)    : -L$(--python-lib[1]) -l$(--python-lib[2]) -bmaxdata:0x40000000 ;## Microsoft Visual C++ .NET 7.xtoolset vc7 cl : /Fe /Fe /Fd /Fo : -D    : /nologo    [ opt --release : /ML /O2 /Ob2 /Gy /GF /GA /GB ]    [ opt --debug : /MLd /DEBUG /Z7 /Od /Ob0 ]    -I$(--python-include) -I$(--extra-include)    : kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;## Microsoft Visual C++ 2005toolset vc8 cl : /Fe /Fe /Fd /Fo : -D    : /nologo    [ opt --release : /MT /O2 /Ob2 /Gy /GF /GA /wd4996 ]    [ opt --debug : /MTd /DEBUG /Z7 /Od /Ob0 /wd4996 ]    -I$(--python-include) -I$(--extra-include)    : kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;## Microsoft Visual C++ 2008toolset vc9 cl : /Fe /Fe /Fd /Fo : -D    : /nologo    [ opt --release : /MT /O2 /Ob2 /Gy /GF /GA /wd4996 ]    [ opt --debug : /MTd /DEBUG /Z7 /Od /Ob0 /wd4996 ]    -I$(--python-include) -I$(--extra-include)    : kernel32.lib advapi32.lib user32.lib $(--python-lib[1]) ;## VMS/OpenVMS DEC Ctoolset vmsdecc cc : /OBJECT= : "/DEFINES=(" "," ")"    : /STANDARD=VAXC /PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES    [ opt --release : /OPTIMIZE /NODEBUG ]    [ opt --debug : /NOOPTIMIZE /DEBUG ]    ;toolset vmsdecc link .link : /EXECUTABLE= :    : /NOMAP    [ opt --release : /NODEBUG ]    [ opt --debug : /DEBUG ]    ;# First set the build commands and options according to the# preset toolset.toolset = [ MATCH --toolset=(.*) : $(ARGV) ] ;if ! $(toolset){    # For some reason, the following test does not catch     # empty toolset.    ECHO "###" ;    ECHO "###" No toolset specified. Please use --toolset option. ;    ECHO "###" ;    ECHO "###" Known toolsets are: $(toolsets:J=", ") ;    EXIT "###" ;    }if ! $(toolset) in $(toolsets){    ECHO "###" ;    ECHO "###" Unknown toolset: $(toolset) ;    ECHO "###" ;    ECHO "###" Known toolsets are: $(toolsets:J=", ") ;    EXIT "###" ;}--cc = $(tool.$(toolset).cc) ;if $(tool.$(toolset).opt.out[2]){    if $(tool.$(toolset).opt.out[1]) = $(tool.$(toolset).opt.out[2])    {        --out = $(tool.$(toolset).opt.out[1]) ;        --dir = $(tool.$(toolset).opt.out[3-]) ;    }    else    {        --bin = $(tool.$(toolset).opt.out[1]) ;        --dir = $(tool.$(toolset).opt.out[2-]) ;    }}else{    --out = $(tool.$(toolset).opt.out) ;}--def = $(tool.$(toolset).opt.define) ;--flags = $(tool.$(toolset).flags) ;--defs = $(tool.$(toolset).defines) ;--libs = $(tool.$(toolset).linklibs) ;if $(tool.$(toolset).link.cc){    --link = $(tool.$(toolset).link.cc) ;    if $(tool.$(toolset).link.opt.out[2])    {        if $(tool.$(toolset).link.opt.out[1]) = $(tool.$(toolset).link.opt.out[2])        {            --link-out = $(tool.$(toolset).link.opt.out[1]) ;            --link-dir = $(tool.$(toolset).link.opt.out[3-]) ;        }        else        {            --link-bin = $(tool.$(toolset).link.opt.out[1]) ;            --link-dir = $(tool.$(toolset).link.opt.out[2-]) ;        }    }    else    {        --link-out = $(tool.$(toolset).link.opt.out) ;    }    --link-def = $(tool.$(toolset).link.opt.define) ;    --link-flags = $(tool.$(toolset).link.flags) ;    --link-defs = $(tool.$(toolset).link.defines) ;    --link-libs = $(tool.$(toolset).link.linklibs) ;}# Put executables in platform-specific subdirectory.locate-target = $(LOCATE_TARGET) ;if $(VMS){    locate-target ?= bin$(.)vms ;    platform = vms ;}else if $(MAC){    locate-target ?= bin$(.)$(OS:L)$(OSPLAT:L) ;    platform = $(OS:L)$(OSPLAT:L) ;}else if $(OSPLAT){    locate-target ?= bin$(.)$(OS:L)$(OSPLAT:L) ;    platform = $(OS:L)$(OSPLAT:L) ;}else{    locate-target ?= bin$(.)$(OS:L) ;    platform = $(OS:L) ;}if $(debug){    locate-target = [ .path $(locate-target)$(.)debug ] ;}else{    locate-target = [ .path $(locate-target) ] ;}if --show-locate-target in $(ARGV){  ECHO $(locate-target) ;}# We have some different files for UNIX, VMS, and NT.jam.source =    command.c compile.c debug.c expand.c glob.c    hash.c hcache.c headers.c hdrmacro.c    jam.c jambase.c jamgram.c    lists.c make.c make1.c mem.c newstr.c    option.c output.c parse.c regexp.c rules.c    scan.c search.c subst.c w32_getreg.c    timestamp.c variable.c modules.c strings.c filesys.c     builtins.c pwd.c class.c native.c modules/set.c     modules/path.c modules/regex.c modules/property-set.c    modules/sequence.c modules/order.c    ;if $(NT){    jam.source += execnt.c filent.c pathunix.c ;}else if $(OS2){    jam.source += execunix.c fileos2.c pathunix.c ;} else if $(VMS){    jam.source += execvms.c filevms.c pathvms.c ;}else if $(MAC){    jam.source += execmac.c filemac.c pathmac.c ;}else{    jam.source += execunix.c fileunix.c pathunix.c ;}# Debug assertions, or not.if ! $(debug) || --noassert in $(ARGV){    --defs += NDEBUG ;}# Enable some optional features.--defs += OPT_HEADER_CACHE_EXT ;--defs += OPT_GRAPH_DEBUG_EXT ;--defs += OPT_SEMAPHORE ;--defs += OPT_AT_FILES ;--defs += OPT_DEBUG_PROFILE ;# Bug fixes--defs += OPT_FIX_TARGET_VARIABLES_EXT ;#~ --defs += OPT_NO_EXTERNAL_VARIABLE_SPLIT ;# Improvements--defs += OPT_IMPROVED_PATIENCE_EXT ;# Use Boehm GC memory allocator?if $(--boehm-gc){    --defs += OPT_BOEHM_GC ;    if $(debug)    {        --defs += GC_DEBUG ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -