Hi, I've successfully built Boost 1.34 with MS Visual C++ "Orcas" Express Edition. To do so I've modified msvc.jam and visualc.hpp. Here the patch files for all of you interested. --- msvc.jam 2007-05-13 07:37:48.562500000 -0300 +++ msvc.jam 2007-05-12 13:10:57.734375000 -0300 @@ -231,6 +231,10 @@ local rule configure-really ( { # Even if version is not explicitly specified, try to detect the version # from the path. + if [ MATCH "(Microsoft Visual Studio 9.0)" : $(command) ] + { + version = 9.0 ; + } if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ] { version = 8.0 ; --- visualc.hpp 2006-01-13 04:48:08.000000000 -0200 +++ visualc.hpp 2007-05-12 13:07:19.500000000 -0300 @@ -168,8 +168,8 @@ #error "Compiler not supported or configured - please reconfigure" #endif // -// last known and checked version is 1400 (VC8): -#if (_MSC_VER > 1400) +// last known and checked version is 1500 (VC9): +#if (_MSC_VER > 1500) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # else Regards, josuegomes at gmail dot com
Josue Gomes escreveu:
Hi,
I've successfully built Boost 1.34 with MS Visual C++ "Orcas" Express Edition.
Well, sorry , this was not true. I got some compilation errors actually: compile-c-c++ bin.v2\libs\signals\build\msvc-9.0express\debug\threading-multi\named_slot_map.obj .. E:\boost\boost/iterator/iterator_facade.hpp(529) : error C2039: 'decrement' : is not a member of 'boost::signals::detail::named_slot_map_iterator' ... E:\boost\boost/iterator/iterator_facade.hpp(547) : error C2039: 'advance' : is not a member of 'boost::signals::detail::named_slot_map_iterator' ... Also the patch files were not complete. The new ones are attached. --- msvc.jam 2007-05-13 08:23:18.671875000 -0300 +++ msvc.jam 2007-05-13 08:19:42.859375000 -0300 @@ -231,6 +231,10 @@ local rule configure-really ( { # Even if version is not explicitly specified, try to detect the version # from the path. + if [ MATCH "(Microsoft Visual Studio 9.0)" : $(command) ] + { + version = 9.0 ; + } if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ] { version = 8.0 ; @@ -913,13 +916,14 @@ actions compile.mc .ProgramFiles = [ path.make [ common.get-program-files-dir ] ] ; -.known-versions = 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ; +.known-versions = 9.0 9.0express 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ; # Version aliases .version-alias-6 = 6.0 ; .version-alias-6.5 = 6.0 ; .version-alias-7 = 7.0 ; .version-alias-8 = 8.0 ; +.version-alias-9 = 9.0 ; # Name of the registry key that contains Visual C++ installation path # (relative to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft" @@ -928,6 +932,8 @@ actions compile.mc .version-7.1-reg = "VisualStudio\\7.1\\Setup\\VC" ; .version-8.0-reg = "VisualStudio\\8.0\\Setup\\VC" ; .version-8.0express-reg = "VCExpress\\8.0\\Setup\\VC" ; +.version-9.0-reg = "VisualStudio\\9.0\\Setup\\VC" ; +.version-9.0express-reg = "VCExpress\\9.0\\Setup\\VC" ; # Visual C++ Toolkit 2003 do not store its installation path in the registry. # The environment variable 'VCToolkitInstallDir' and the default installation --- auto_link.hpp 2005-12-07 21:11:42.000000000 -0200 +++ auto_link.hpp 2007-05-13 08:02:29.062500000 -0300 @@ -130,11 +130,16 @@ BOOST_LIB_VERSION: The Boost version, // vc71: # define BOOST_LIB_TOOLSET "vc71" -#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) +#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400) // vc80: # define BOOST_LIB_TOOLSET "vc80" +#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500) + + // vc80: +# define BOOST_LIB_TOOLSET "vc90" + #elif defined(__BORLANDC__) // CBuilder 6: --- visualc.hpp 2006-01-13 04:48:08.000000000 -0200 +++ visualc.hpp 2007-05-12 13:07:19.500000000 -0300 @@ -168,8 +168,8 @@ #error "Compiler not supported or configured - please reconfigure" #endif // -// last known and checked version is 1400 (VC8): -#if (_MSC_VER > 1400) +// last known and checked version is 1500 (VC9): +#if (_MSC_VER > 1500) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # else
on Sun May 13 2007, "Josue Gomes"
Hi,
I've successfully built Boost 1.34 with MS Visual C++ "Orcas" Express Edition.
To do so I've modified msvc.jam and visualc.hpp. Here the patch files for all of you interested.
--- msvc.jam 2007-05-13 07:37:48.562500000 -0300 +++ msvc.jam 2007-05-12 13:10:57.734375000 -0300 @@ -231,6 +231,10 @@ local rule configure-really ( { # Even if version is not explicitly specified, try to detect the version # from the path. + if [ MATCH "(Microsoft Visual Studio 9.0)" : $(command) ] + { + version = 9.0 ; + } if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ] { version = 8.0 ;
It's not your fault for following the pattern that was already there, but looking at the path to identify the compiler is suboptimal at best. We should be invoking the compiler using the SHELL function and asking it to tell us its version. See gcc.jam for an example. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com Don't Miss BoostCon 2007! ==> http://www.boostcon.com
On Mon, May 14, 2007 at 11:04:56PM -0600, David Abrahams wrote:
It's not your fault for following the pattern that was already there, but looking at the path to identify the compiler is suboptimal at best. We should be invoking the compiler using the SHELL function and asking it to tell us its version. See gcc.jam for an example.
Does gcc.jam pickup CC and CXX env variables, btw? I think that i had trouble to use the auto guessed toolset since i want to use the CC and CXX and do not have gcc nor g++. I had to create my own cc.jam, since for --with-toolset=cc i was unable to find a corresponding jam file. CC and CXX both point to gcc executables of the form gcc-4.2-suffix resp. g++-etc How would i use these compilers to build boost?
on Tue May 15 2007, Bernhard Fischer
On Mon, May 14, 2007 at 11:04:56PM -0600, David Abrahams wrote:
It's not your fault for following the pattern that was already there, but looking at the path to identify the compiler is suboptimal at best. We should be invoking the compiler using the SHELL function and asking it to tell us its version. See gcc.jam for an example.
Does gcc.jam pickup CC and CXX env variables, btw?
No.
I think that i had trouble to use the auto guessed toolset since i want to use the CC and CXX and do not have gcc nor g++. I had to create my own cc.jam, since for --with-toolset=cc i was unable to find a corresponding jam file. CC and CXX both point to gcc executables of the form gcc-4.2-suffix resp. g++-etc
How would i use these compilers to build boost?
Create a user-config.jam file in your home directory where you have
import toolset.using ;
using gcc : 4.2-<suffix> :
On Wed, May 16, 2007 at 10:29:32AM -0600, David Abrahams wrote:
on Tue May 15 2007, Bernhard Fischer
wrote: On Mon, May 14, 2007 at 11:04:56PM -0600, David Abrahams wrote:
It's not your fault for following the pattern that was already there, but looking at the path to identify the compiler is suboptimal at best. We should be invoking the compiler using the SHELL function and asking it to tell us its version. See gcc.jam for an example.
Does gcc.jam pickup CC and CXX env variables, btw?
No.
I think that i had trouble to use the auto guessed toolset since i want to use the CC and CXX and do not have gcc nor g++. I had to create my own cc.jam, since for --with-toolset=cc i was unable to find a corresponding jam file. CC and CXX both point to gcc executables of the form gcc-4.2-suffix resp. g++-etc
How would i use these compilers to build boost?
Create a user-config.jam file in your home directory where you have
import toolset.using ; using gcc : 4.2-<suffix> :
; which might look just like:
import toolset.using ; using gcc : 4.2-mysuf : g++-4.2-mysuf ;
Then you can build with --toolset=gcc-4.2-mysuf
That didn't work out for me: $ cat ~/user-config.jam import toolset.using ; using gcc : -4.3-HEAD : g++-4.3-HEAD ; $ make distclean $ which gcc-4.3-HEAD g++-4.3-HEAD jam bjam /opt/gcc-4.3/bin/gcc-4.3-HEAD /opt/gcc-4.3/bin/g++-4.3-HEAD $ ./configure --prefix=/opt/boost-1.35.0 --with-toolset=gcc-4.3-HEAD Building Boost.Jam with toolset gcc-4.3-HEAD... ./configure: line 199: ./bootstrap/jam0: No such file or directory # try with plain gcc: $ ./configure --prefix=/opt/boost-1.35.0 --with-toolset=gcc Building Boost.Jam with toolset gcc... ./configure: line 199: ./bootstrap/jam0: No such file or directory I must be doing something wrong.. For now i'm back to use my cc.jam, but IMHO it's a little bit odd that one cannot specify the compiler one wants to use (resp. i can not).
participants (4)
-
Bernhard Fischer
-
David Abrahams
-
Josue Andrade Gomes
-
Josue Gomes