|
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