summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamfile.jam6
-rw-r--r--Jamrules.jam37
-rw-r--r--tests/autotest-local.pl2
3 files changed, 43 insertions, 2 deletions
diff --git a/Jamfile.jam b/Jamfile.jam
index 1ebdba3..bc47f10 100644
--- a/Jamfile.jam
+++ b/Jamfile.jam
@@ -13,7 +13,11 @@
# default toolset/configuration
if ( ! $(toolset) )
{
- if ( $(UNIX) )
+ if ( $(OS) = SOLARIS )
+ {
+ toolset = suncc ;
+ }
+ else if ( $(UNIX) )
{
local GCCVERSION = [ Subst [ Shell "gcc -dumpversion" ] : $(NEWLINE) ] ;
toolset = "gcc"$(GCCVERSION) ;
diff --git a/Jamrules.jam b/Jamrules.jam
index 5837dda..bed6458 100644
--- a/Jamrules.jam
+++ b/Jamrules.jam
@@ -285,6 +285,43 @@ else if ( $(toolset:I=^bcc) )
{
}
}
+else if ( $(toolset:I=^suncc) )
+{
+ CCFLAGS += -D$(defines) ;
+
+ if ( $(configuration) = "debug" )
+ {
+ CCFLAGS += -D_DEBUG ;
+ }
+ else
+ {
+ CCFLAGS += -DNDEBUG -O ;
+ }
+
+ if ( PUGIXML_NO_EXCEPTIONS in $(defines) )
+ {
+ CCFLAGS += -noex ;
+ }
+
+ actions ObjectAction
+ {
+ sunCC $(CCFLAGS) +w -xwe -c -o $(<) $(>)
+ }
+
+ actions LibraryAction
+ {
+ ar rcs $(<) $(>)
+ }
+
+ actions LinkAction
+ {
+ sunCC $(>) -o $(<) $(LDFLAGS)
+ }
+
+ actions CoverageAction
+ {
+ }
+}
else
{
exit "Unknown toolset $(toolset)!" ;
diff --git a/tests/autotest-local.pl b/tests/autotest-local.pl
index 6527c1c..db7b26c 100644
--- a/tests/autotest-local.pl
+++ b/tests/autotest-local.pl
@@ -24,7 +24,7 @@ sub gcctoolset
}
$fast = (shift eq 'fast');
-@toolsets = ($^O =~ /MSWin/) ? (bcc, cw, dmc, ic8, mingw34, mingw44, mingw45, msvc6, msvc7, msvc71, msvc8, msvc8_x64, msvc9, msvc9_x64, msvc10, msvc10_x64) : (&gcctoolset());
+@toolsets = ($^O =~ /MSWin/) ? (bcc, cw, dmc, ic8, mingw34, mingw44, mingw45, msvc6, msvc7, msvc71, msvc8, msvc8_x64, msvc9, msvc9_x64, msvc10, msvc10_x64) : ($^O =~ /solaris/) ? (suncc) : (&gcctoolset());
@configurations = (debug, release);
@defines = (PUGIXML_NO_XPATH, PUGIXML_NO_EXCEPTIONS, PUGIXML_NO_STL, PUGIXML_WCHAR_MODE);