Boost logo

Boost-Build :

From: Dan Gohman (gohmandj_at_[hidden])
Date: 2002-06-07 20:14:54


Here's the attatchment.

-- 
Dan Gohman
gohmandj_at_[hidden]
 --YiEDa0DAkWCtVeE4 Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="mipspro-tools.jam"
# This file was originally based on gcc-tools.jam by David Abrahams.
# It has been written for and tested with MIPSpro 7.3 .
# This file doesn't yet support the dllversion free-feature. MIPSpro
# can do sonames, however I haven't added the support for them yet.
# The rule set-as-singleton means to have the build system flatten
# lists of strings into strings. This file was written to use quotes
# carefully thus doesn't need such singletons. Actually, this file
# was written to take advandage of jam's nifty handling of lists.
# compute directories for invoking MIPSpro: first try ROOT and
# TOOLROOT, which are traditionally used for this purpose.
MIPSPRO_ROOT_DIRECTORY ?= "$(ROOT)/usr" ;
MIPSPRO_TOOLROOT_DIRECTORY ?= "$(TOOLROOT)/usr" ;
# Either ROOT or TOOLROOT missing? Fall back to the default.
MIPSPRO_ROOT_DIRECTORY ?= "/usr" ;
MIPSPRO_TOOLROOT_DIRECTORY ?= "/usr" ;
# For most users, either ROOT/TOOLROOT or
# MIPSPRO_ROOT_DIRECTORY/MIPSPRO_TOOLROOT_DIRECTORY should be
# sufficient. Users needing to further customize the executable
# directory or include directory can use the following.
MIPSPRO_BIN_DIRECTORY ?= "$(MIPSPRO_TOOLROOT_DIRECTORY)/bin" ;
MIPSPRO_INCLUDE_DIRECTORY ?= "$(MIPSPRO_TOOLROOT_DIRECTORY)/include"
"$(MIPSPRO_ROOT_DIRECTORY)/include" ;
MIPSPRO_C++INCLUDE_DIRECTORY ?= "$(MIPSPRO_INCLUDE_DIRECTORY)/CC" ;
local MIPSPRO_STDLIB_ROOTS = "$(MIPSPRO_TOOLROOT_DIRECTORY)"
"$(MIPSPRO_ROOT_DIRECTORY)"
;
local MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES = "mips3" "" ;
local MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES = "mips4" "" ;
flags mipspro LINKFLAGS : -nostdlib -LANG:std ;
flags mipspro LINKFLAGS <sgi-abi>n32 : -n32 ;
flags mipspro LINKFLAGS <sgi-abi>n64 : -64 ;
flags mipspro LINKFLAGS <sgi-isa>mips3 : -mips3 ;
flags mipspro LINKFLAGS <sgi-isa>mips4 : -mips4 ;
flags mipspro LINKFLAGS <target-type>$(SHARED_TYPES) : -shared ;
flags mipspro LINKFLAGS <debug-symbols>off : -g0 -s ;
flags mipspro LINKFLAGS <debug-symbols>on/<optimization>off : -g ;
flags mipspro LINKFLAGS <debug-symbols>on/<optimization>speed : -g3 ;
flags mipspro LINKFLAGS <debug-symbols>on/<optimization>space : -g3 ;
# If you add -IPA to the compiler flags, the linker needs be told as well.
#flags mipspro LINKFLAGS <optimization>speed : -IPA ;
flags mipspro DEFINES <threading>multi : _SGI_MP_SOURCE ;
flags mipspro CFLAGS : -nostdinc -c
-LANG:std -OPT:Olimit=0 -OPT:IEEE_NaN_inf=ON -no_auto_include
-fullwarn -woff 1375,1424,1234
;
# woff values:
# 1375: The destructor for base class is not virtual.
# 1424: Template parameter not used in declaring the argument types of function template.
# 1234: Access control is not specified.
flags mipspro CFLAGS <sgi-abi>n32 : -n32 ;
flags mipspro CFLAGS <sgi-abi>n64 : -64 ;
flags mipspro CFLAGS <sgi-isa>mips3 : -mips3 ;
flags mipspro CFLAGS <sgi-isa>mips4 : -mips4 ;
# For some C++ apps, adding -IPA can make a big difference.
flags mipspro CFLAGS <optimization>off : -O0 ;
flags mipspro CFLAGS <optimization>speed : -O3 ;
flags mipspro CFLAGS <optimization>space : -O2 ;
flags mipspro CFLAGS <debug-symbols>off : -g0 ;
flags mipspro CFLAGS <debug-symbols>on/<optimization>off : -g ;
flags mipspro CFLAGS <debug-symbols>on/<optimization>speed : -g3 ;
flags mipspro CFLAGS <debug-symbols>on/<optimization>space : -g3 ;
# An option for <inlining>full is -INLINE:all, however that may cause
# too much to be inlined. I don't think that level of inlining is what
# is meant by <inlining>full.
flags mipspro CFLAGS <inlining>off : -INLINE:never ;
flags mipspro CFLAGS <inlining>on : -INLINE ;
flags mipspro CFLAGS <inlining>full : -INLINE ;
flags mipspro C++FLAGS <exception-handling>off : -LANG:exceptions=OFF ;
flags mipspro STDHDRS : "$(MIPSPRO_INCLUDE_DIRECTORY)" ;
flags mipspro STDC++HDRS : "$(MIPSPRO_C++INCLUDE_DIRECTORY)"
"$(BOOST_ROOT)/boost/compatibility/cpp_c_headers"
;
flags mipspro STDLIBPATH <sgi-abi>n32/<sgi-isa>mips3 :
"$(MIPSPRO_STDLIB_ROOTS)/lib32/$(MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <sgi-abi>n32/<sgi-isa>mips4 :
"$(MIPSPRO_STDLIB_ROOTS)/lib32/$(MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <sgi-abi>n64/<sgi-isa>mips3 :
"$(MIPSPRO_STDLIB_ROOTS)/lib64/$(MIPSPRO_STDLIB_MIPS3_SUBDIRECTORIES)"
;
flags mipspro STDLIBPATH <sgi-abi>n64/<sgi-isa>mips4 :
"$(MIPSPRO_STDLIB_ROOTS)/lib64/$(MIPSPRO_STDLIB_MIPS4_SUBDIRECTORIES)"
;
flags mipspro HDRS <include> ;
flags mipspro UNDEFS <undef> ;
flags mipspro DEFINES <define> ;
flags mipspro CFLAGS <cflags> ;
flags mipspro C++FLAGS <cxxflags> ;
flags mipspro LIBPATH <library-path> ;
flags mipspro NEEDLIBS <library-file> ;
flags mipspro FINDLIBS <find-library> ;
flags mipspro STDHDRS <sysinclude> ;
flags mipspro LINKFLAGS <linkflags> ;
flags mipspro ARFLAGS <arflags> ;
if ! $(ARFLAGS)
{
flags mipspro ARFLAGS : "" ;
}
#### Link (for C++) ####
rule Link-action
{
mipspro-Link-action "$(<)" : "$(>)" ;
}
# for mipspro, we repeat all libraries so that dependencies are always resolved
actions mipspro-Link-action bind NEEDLIBS
{
"$(MIPSPRO_BIN_DIRECTORY)/CC" "$(LINKFLAGS)" -o "$(<[1])" "-L$(LIBPATH)" "-L$(STDLIBPATH)" "$(>)" "$(NEEDLIBS)" "$(NEEDLIBS)" "-l$(FINDLIBS)"
}
#### Cc #####
rule Cc-action
{
mipspro-Cc-action "$(<)" : "$(>)" ;
}
actions mipspro-Cc-action
{
"$(MIPSPRO_BIN_DIRECTORY)/cc" "-U$(UNDEFS)" "-D$(DEFINES)" "$(CFLAGS)" "-I$(HDRS)" "-I$(STDHDRS)" -o "$(<)" "$(>)"
}
#### C++ ####
rule C++-action
{
mipspro-C++-action "$(<)" : "$(>)" ;
}
actions mipspro-C++-action
{
"$(MIPSPRO_BIN_DIRECTORY)/CC" "-U$(UNDEFS)" "-D$(DEFINES)" "$(CFLAGS)" "$(C++FLAGS)" "-I$(HDRS)" "-I$(STDC++HDRS)" "-I$(STDHDRS)" -o "$(<)" "$(>)"
}
#### Archive ####
rule Archive-action
{
mipspro-Archive-action "$(<)" : "$(>)" ;
}
actions updated together piecemeal mipspro-Archive-action
{
"$(MIPSPRO_BIN_DIRECTORY)/CC" -ar $(CFLAGS) $(C++FLAGS) -o "$(<:T)" "$(>:T)"
}
 --YiEDa0DAkWCtVeE4-- 

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk