Boost logo

Boost Users :

From: Sinan (sinan.karasu_at_[hidden])
Date: 2002-01-23 18:07:15


sebmarc wrote:
>
> Does anybody know how to compile boost with Solaris 7 and sparcWorks 5.0.
>
> Looking at http://www.boost.org/tools/build/index.html, there is no
> place for this compiler.
>
> Any help appreciated.
>
> Thanks,
>
> Seb.
>
> Info: <http://www.boost.org>
> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl>
> Unsubscribe: <mailto:boost-users-unsubscribe_at_[hidden]>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/

 I did a build with WSU2 in October 4th...
 
 This is what I had to do......
 
 1) modify config.hpp
 2) modify iterator_adaptors.hpp
 3) create a file called tools/build/suncc-tools.jam (which was quickly
hacked from gcc version)
 4) invoke jam -f./tools/build/allyourbase.jam -sTOOLS=suncc
 
 Following are the steps as well as I can reconstruct......
 ( I hope )....

STEP 1) in config.hpp
  you need
-----------------------------------------------------------
# elif defined __SUNPRO_CC
# if __SUNPRO_CC <= 0x530
# define BOOST_NO_SLIST
# define BOOST_NO_HASH
# define BOOST_NO_STD_ITERATOR_TRAITS
# define BOOST_NO_STD_ALLOCATOR

       // although sunpro 5.1 supports the syntax for
       // inline initialization it often gets the value
       // wrong, especially where the value is computed
       // from other constants (J Maddock 6th May 2001)
# // sik define BOOST_NO_INCLASS_MEMBER_INITIALIZATION

       // although sunpro 5.1 supports the syntax for
       // partial specialization, it often seems to
       // bind to the wrong specialization. Better
       // to disable it until suppport becomes more stable
       // (J Maddock 6th May 2001).
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif
# if __SUNPRO_CC <= 0x500
# define BOOST_NO_MEMBER_TEMPLATES
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
# endif
---------------------------
STEP 2) in iterator_adaptors.hpp make the following modifications....

          , class Reference = Value&
//sik , class ConstReference = const Value&
          , class ConstReference = Value&
          , class Category = BOOST_ARG_DEPENDENT_TYPENAME
boost::detail::iterator_traits<OuterIterator>::iterator_category
          , class Pointer = Value*
//sik , class ConstPointer = const Value*
          , class ConstPointer = Value*

STEP 3 & 4 ) jam -f./tools/build/allyourbase.jam -sTOOLS=suncc

But you need the following file first ....

tools/build/suncc-tools.jam
-----------------------------------

# (C) Copyright David Abrahams 2001. Permission to copy, use,
# modify, sell and distribute this software is granted provided this
# copyright notice appears in all copies. This software is provided
# "as is" without express or implied warranty, and with no claim as
# to its suitability for any purpose.

# compute directories for invoking WS6U2
WS6U2_BIN_DIRECTORY ?= $(WS6U2_ROOT_DIRECTORY)$(SLASH)bin ;
WS6U2_BIN_DIRECTORY ?= "" ; # Don't clobber tool names if
WS6U2_ROOT_DIRECTORY not set
WS6U2_INCLUDE_DIRECTORY ?= $(WS6U2_ROOT_DIRECTORY)$(SLASH)include ;
WS6U2_STDLIB_DIRECTORY ?= $(WS6U2_ROOT_DIRECTORY)$(SLASH)lib ;

flags cc LINKFLAGS <runtime-link>static : -Bstatic ;
flags cc CFLAGS <debug-symbols>on : -g ;
flags cc LINKFLAGS <debug-symbols>on : -g ;
flags cc CFLAGS <optimization>off : -xO0 ;
flags cc CFLAGS <optimization>speed : -xO4 ;

# Other optimizations we might want for WS6U2
#
#

flags cc CFLAGS <optimization>space : -xO2 ;
flags cc CFLAGS <inlining>off : -xinline=no%func ;
flags cc CFLAGS <inlining>on : -xinline=%auto ;
flags cc CFLAGS <inlining>full : -xinline=%auto ;

flags cc CFLAGS <profiling>on : -xpg ;
flags cc LINKFLAGS <profiling>on : -xpg ;

flags cc DEFINES <define> ;
flags cc UNDEFS <undef> ;
flags cc HDRS <include> ;

flags cc STDHDRS : $(WS6U2_INCLUDE_DIRECTORY) ;
flags cc STDLIBPATH : $(WS6U2_STDLIB_DIRECTORY) ;

flags cc CFLAGS <shared-linkable>true : -KPIC ;
flags cc LINKFLAGS <shared-linkable>true : -KPIC ;

flags cc LINKFLAGS <target-type>DLL : -G ;

flags cc LIBPATH <library-path> ;
flags cc NEEDLIBS <library-file> ;
flags cc FINDLIBS <find-library> ;

#### Link ####

rule Link-action
{
    # This will appear before the import library name when building a
DLL, but
    # will be "multiplied away" otherwise. The --exclude-symbols
directive
    # proved to be neccessary with some versions of Cygwin.
    ##sik IMPLIB_COMMAND on $(<) =
"-Wl,--exclude-symbols,_bss_end__:_bss_start__:_data_end__:_data_start__
-Wl,--out-implib," ;
    # IMPLIB_COMMAND on $(<) = "-Wl,--out-implib," ;
    cc-Link-action $(<) : $(>) ;
}

# for cc, we repeat all libraries so that dependencies are always
resolved
actions cc-Link-action bind NEEDLIBS
{
    $(WS6U2_BIN_DIRECTORY)CC $(IMPLIB_COMMAND)$(<[2]) $(LINKFLAGS) -o
"$(<[1])" -L$(LIBPATH) -L$(STDLIBPATH) "$(>)" "$(NEEDLIBS)"
"$(NEEDLIBS)" -l$(FINDLIBS) -znodefs
}

# older actions
# $(WS6U2_BIN_DIRECTORY)dlltool -e $(<[1]:S=:D=:G=) -l "$(<[2])"
"$(>)"
# $(WS6U2_BIN_DIRECTORY)CC $(LINKFLAGS) -L$(STDLIBPATH) "$(>)"
"$(NEEDLIBS)" "$(NEEDLIBS)" -o "$(<[1])"

#### Cc #####

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

actions cc-Cc-action
{
    $(WS6U2_BIN_DIRECTORY)cc -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS)
-I$(BOOST_ROOT) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}

#### C++ ####
rule C++-action
{
    cc-C++-action $(<) : $(>) ;
}

actions cc-C++-action
{
    $(WS6U2_BIN_DIRECTORY)CC -c -U$(UNDEFS) -D$(DEFINES) $(CFLAGS)
$(C++FLAGS) -I$(BOOST_ROOT) -I"$(HDRS)" -I"$(STDHDRS)" -o "$(<)" "$(>)"
}

#### Archive ####

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

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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net