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

📄 intel-linux-tools.jam

📁 C++的一个好库。。。现在很流行
💻 JAM
字号:
# (C) Copyright David Abrahams 2001.
# 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)

# Adapted from gcc-tools.jam by Joerg Walter

# The following #// line will be used by the regression test table generation
# program as the column heading for HTML tables. Must not include version
# number.
#//<a href="http://www.intel.com/software/products/compilers/">Intel<br>C++</a>

set-as-singleton INTEL_PATH ;

INTEL_VERSION ?= $(INTEL_LINUX_VERSION) ;  # For backwards compatibility
INTEL_CC ?= icc ;
INTEL_CXX ?= icpc ;

# Attempt to look in the PATH if no variables have been set up.
if ! $(INTEL_VERSION) && ! $(INTEL_PATH)
{
    local paths = [ MATCH ^(.*/(compiler[567]0/ia32|intel_cc_[0-9]+))/ : [ GLOB $(PATH) : iccvars.sh ] ] ;
    INTEL_PATH ?= $(paths[0]) ;
}

INTEL_VERSION ?= 80 ;

# In case the path is unspecified, try to deduce it from the version
if $(INTEL_VERSION) in 50 60 70
{
    INTEL_PATH ?= /opt/intel/compiler$(INTEL_VERSION)/ia32 ;
}
else
{
    INTEL_PATH ?= /opt/intel_cc_$(INTEL_VERSION) ;
}

# Root directory
flags intel-linux INTEL_LINUX_ROOT : $(INTEL_PATH) ;
# Setup script
flags intel-linux INTEL_LINUX_SETUP : ". "$(INTEL_LINUX_ROOT)"/bin/iccvars.sh" ;
# Additional DLL directory
flags intel-linux INTEL_LINUX_RUN_LD_LIBRARY_PATH : $(INTEL_LINUX_ROOT)"/lib" ;


#### compiler and linker switches ####

# debugging
flags intel-linux CFLAGS <debug-symbols>on : -g ;
flags intel-linux LINKFLAGS <debug-symbols>on : -g ;
flags intel-linux LINKFLAGS <debug-symbols>off : -Xlinker -s ;

# optimizations
flags intel-linux CFLAGS <optimization>off : -O0 ;
flags intel-linux CFLAGS <optimization>space : -O2 ;
flags intel-linux CFLAGS <optimization>speed : -O3 ;

# standard library
flags intel-linux CFLAGS <stdlib>gcc : -cxxlib-gcc ;
flags intel-linux LINKFLAGS <stdlib>gcc : -cxxlib-gcc ;

# inlining
# results using -ip are worse than without?
# flags intel-linux CFLAGS <inlining>full : -ip ;

# threading
flags intel-linux CFLAGS <threading>multi : -openmp ;
flags intel-linux LINKFLAGS <threading>multi : -openmp ;

# profiling
flags intel-linux CFLAGS <profiling>on : -p ;
flags intel-linux LINKFLAGS <profiling>on : -p ;

# position independent code
flags intel-linux CFLAGS <shared-linkable>true : -KPIC ;
flags intel-linux LINKFLAGS <shared-linkable>true : -KPIC ;

# dynamic link library
flags intel-linux LINKFLAGS <target-type>$(SHARED_TYPES) : -shared ;

# library linking
flags intel-linux LINKFLAGS <runtime-link>static : -static ;

# required libraries
flags intel-linux FINDLIBS : rt ;
flags intel-linux FINDLIBS <runtime-link>static : pthread ;


#### standard settings ####

flags intel-linux UNDEFS <undef> ;
flags intel-linux DEFINES <define> ;
flags intel-linux CFLAGS <cflags> ;
flags intel-linux C++FLAGS <cxxflags> ;

flags intel-linux HDRS <include> ;
flags intel-linux LIBPATH <library-path> ;

flags intel-linux NEEDLIBS <library-file> ;
flags intel-linux FINDLIBS <find-library> ;

flags intel-linux STDHDRS <sysinclude> ;
flags intel-linux LINKFLAGS <linkflags> ;

flags intel-linux ARFLAGS <arflags> ;

if ! $(ARFLAGS)
{
    flags intel-linux ARFLAGS : "" ;
}

flags intel-linux DLLVERSION <dllversion> ;
DLLVERSION = $(DLLVERSION[1]) ;
DLLVERSION ?= $(BOOST_VERSION) ;

flags intel-linux TARGET_TYPE <target-type> ;

#### Cc ####

rule Cc-action
{
    intel-linux-Cc-action $(<) : $(>) ;
}

actions intel-linux-Cc-action
{
    $(INTEL_LINUX_SETUP)
    $(INTEL_CC) -c -w1 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}

#### C++ ####

rule C++-action
{
    intel-linux-C++-action $(<) : $(>) ;
}

actions intel-linux-C++-action
{
    $(INTEL_LINUX_SETUP)
    $(INTEL_CXX) -c -w1 -U$(UNDEFS) -D$(DEFINES) $(CFLAGS) $(C++FLAGS) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}

#### Archive ####

rule Archive-action
{
    intel-linux-Archive-action $(<) : $(>) ;
}

actions updated together piecemeal intel-linux-Archive-action
{
    ar ru$(ARFLAGS) "$(<)" "$(>)"
}

#### Link ####

rule Link-action
{
    local result ;
    gRUN_LD_LIBRARY_PATH($(<)) += $(INTEL_LINUX_RUN_LD_LIBRARY_PATH) ;
    SPACE on $(<) = " " ;
    if $(DLLVERSION) && $(TARGET_TYPE) in $(SHARED_TYPES)
    {
        OUTTAG on $(<) = ".$(DLLVERSION)" ;
        SOTAG on $(<) = ".$(DLLVERSION)" ;
        ACTION_1 on $(<) = "" ;
        result += "$(<[1]:D=).$(DLLVERSION)" ;
    }
    else
    {
        OUTTAG on $(<) = "" ;
        SOTAG on $(<) = ;
        ACTION_1 on $(<) = ;
    }
    intel-linux-Link-action $(<) : $(>) ;
    return $(result) ;
}

# for icc, we repeat all libraries so that dependencies are always resolved
actions intel-linux-Link-action bind NEEDLIBS NEEDIMPS
{
    $(INTEL_LINUX_SETUP)
    $(INTEL_CXX) $(LINKFLAGS) -o "$(<[1])$(OUTTAG)" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" $(NEEDLIBS) $(NEEDLIBS) -l$(FINDLIBS) "$(IMPLIB_FLAGS)$(NEEDIMPS)" "-Qoption,link,-soname,$(<[1]:D=)$(SOTAG)"
    $(ACTION_1)$(LN)$(SPACE)-fs$(SPACE)"$(<[1]:D=)$(OUTTAG)"$(SPACE)"$(<[1])"
}



⌨️ 快捷键说明

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