summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-04-07 10:33:34 +0000
committerkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-04-07 10:33:34 +0000
commitb48b7910f1dab5e59fbc2b57a559818af23f11a1 (patch)
treecac7ae34fd858eb0964e63d58015084febcdab02 /include
parent7cc5c7e8af781f6b2fd5ca1a1d0de66395862935 (diff)
downloadATCD-b48b7910f1dab5e59fbc2b57a559818af23f11a1.tar.gz
ChangeLogTag: Sun Apr 7 05:27:35 2002 Krishnakumar B <kitty@cs.wustl.edu>
Diffstat (limited to 'include')
-rw-r--r--include/makeinclude/platform_g++_common.GNU7
-rw-r--r--include/makeinclude/platform_sunos5_ghs.GNU17
-rw-r--r--include/makeinclude/platform_sunos5_kcc.GNU13
-rw-r--r--include/makeinclude/platform_sunos5_sunc++.GNU48
4 files changed, 72 insertions, 13 deletions
diff --git a/include/makeinclude/platform_g++_common.GNU b/include/makeinclude/platform_g++_common.GNU
index 7c1d98b3743..89519b85541 100644
--- a/include/makeinclude/platform_g++_common.GNU
+++ b/include/makeinclude/platform_g++_common.GNU
@@ -4,8 +4,8 @@
CXX_VERSION := $(shell $(CXX) -dumpversion)
-# If no option has been specified, try to enable implicit_templates based
-# on the version of the compiler.
+# If no option has been specified, try to enable templates based on the
+# version of the compiler.
#
ifeq ($(templates),)
ifeq (2.95,$(findstring 2.95,$(CXX_VERSION)))
@@ -23,8 +23,7 @@ ifeq ($(templates),)
endif
endif
-# User didn't specify and we couldn't guess if this version of the compiler
-# works fine with implicit template instantiation. Turn if off.
+# Turn on the proper flags for explicit template instantiation.
#
ifeq ("$(templates)","explicit")
ifeq ($(TEMPLATES_FLAG),) # Turn on flags if none is speficied.
diff --git a/include/makeinclude/platform_sunos5_ghs.GNU b/include/makeinclude/platform_sunos5_ghs.GNU
index 8933d0fc199..155e2b78af9 100644
--- a/include/makeinclude/platform_sunos5_ghs.GNU
+++ b/include/makeinclude/platform_sunos5_ghs.GNU
@@ -7,13 +7,26 @@ exceptions = 0
optimize = 1
threads = 1
+# I(kitty) don't know anything about this compiler. Making it explicit.
+#
+templates = "explicit"
+
+# Turn on the proper flags for explicit template instantiation.
+#
+ifeq ("$(templates)","explicit")
+ ifeq ($(TEMPLATES_FLAG),) # Turn on flags if none is speficied.
+ TEMPLATES_FLAG=-tnone
+ endif
+ CPPFLAGS += -DACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
+ LDFLAGS += --no_auto_instantiation
+endif
+
CC = gcx
CXX = $(CC)
-CCFLAGS += $(CFLAGS) --no_rtti -tnone
+CCFLAGS += $(CFLAGS) --no_rtti $(TEMPLATES_FLAG)
DCFLAGS += -g
DLD = $(CXX)
LD = $(CXX)
-LDFLAGS = --no_auto_instantiation
LIBS += -lsocket -ldl -lgen -lnsl -lposix4
OCFLAGS += -OL -OM
PIC = -PIC
diff --git a/include/makeinclude/platform_sunos5_kcc.GNU b/include/makeinclude/platform_sunos5_kcc.GNU
index e2124add875..f95b666ff93 100644
--- a/include/makeinclude/platform_sunos5_kcc.GNU
+++ b/include/makeinclude/platform_sunos5_kcc.GNU
@@ -7,6 +7,19 @@ distrib = 0
threads = 1
exceptions = 1
+# I(kitty) don't know anything about this combination. Making it explicit.
+# XXX: Get the flags from the Kai web-site and fill it in.
+templates = "explicit"
+
+# Turn on the proper flags for explicit template instantiation.
+#
+ifeq ("$(templates)","explicit")
+ ifeq ($(TEMPLATES_FLAG),) # Turn on flags if none is speficied.
+ TEMPLATES_FLAG=
+ endif
+ CPPFLAGS += -DACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
+endif
+
# These are required for KCC 3.4g compiler.
LDFLAGS += --one_instantiation_per_object
CCFLAGS += --one_instantiation_per_object
diff --git a/include/makeinclude/platform_sunos5_sunc++.GNU b/include/makeinclude/platform_sunos5_sunc++.GNU
index f7ca5a81877..2d23627c7ec 100644
--- a/include/makeinclude/platform_sunos5_sunc++.GNU
+++ b/include/makeinclude/platform_sunos5_sunc++.GNU
@@ -92,6 +92,7 @@ ifeq (Compilers 4.2,$(findstring Compilers 4.2,$(CC_VERSION)))
#### Create template repository to avoid compiler warning.
TEMPLATE_REPOSITORY = Templates.DB
+
else # ! 4.2
ifeq (C++ 5,$(findstring C++ 5,$(CC_VERSION)))
#### CC 5.0 or later
@@ -102,11 +103,12 @@ else # ! 4.2
else
ifeq (C++ 5.1,$(findstring C++ 5.1,$(CC_VERSION)))
inline = 0
- else
+ else # ! 5.1
inline = 1
exceptions = 1
- endif #!5.1
- endif #!5.0
+ templates = "automatic"
+ endif # 5.2 or greater
+ endif #! 5.0
CCFLAGS += $(CFLAGS)
@@ -114,7 +116,7 @@ else # ! 4.2
#### in the compatibility modes, but here all we need to be concerned with
#### is turning on -compat=4, and not trying to enable the new libraries.
ifeq ($(compat4),1)
- CCFLAGS += -compat=4 -instances=explicit
+ CCFLAGS += -compat=4
#### RTTI can coexist with ACE, but it doesn't use it. To enable,
#### add rtti=1 to your make invocation. Sun C++ 4.2, only, supports
@@ -130,7 +132,6 @@ else # ! 4.2
#### Support RTTI by default. And, use explicit template instantiation
#### because automatic instantiation appears to be broken, at least
#### with early releases of CC 5.0. And, use old iostreams.
- CCFLAGS += -instances=explicit
ifeq (C++ 5.0,$(findstring C++ 5.0,$(CC_VERSION)))
ifeq (1,$(stdcpplib))
CCFLAGS += -library=Cstd
@@ -157,12 +158,45 @@ else # ! 4.2
endif # CC 5.0 or later
endif # ! 4.2
+# If no option has been specified, try to enable templates based on the
+# version of the compiler.
+#
+ifeq ($(templates),)
+ ifeq (Compilers 4.2,$(findstring Compilers 4.2,$(CC_VERSION)))
+ templates = "explicit"
+ else
+ ifeq (C++ 5.0,$(findstring C++ 5.0,$(CC_VERSION)))
+ templates = "explicit"
+ else
+ ifeq (C++ 5.1,$(findstring C++ 5.1,$(CC_VERSION)))
+ templates = "automatic"
+ else
+ # Assume it's Forte Update 1 or later. Implicit template
+ # instantiation seems to work.
+ #
+ templates = "automatic"
+ endif
+ endif
+ endif
+endif
+
+# Turn on the proper flags for explicit template instantiation.
+#
+ifeq ("$(templates)","explicit")
+ ifeq ($(TEMPLATES_FLAG),) # Turn on flags if none is speficied.
+ TEMPLATES_FLAG=-instances=explicit
+ endif
+ CPPFLAGS += -DACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
+endif
+
+CCFLAGS += $(TEMPLATES_FLAG)
DCFLAGS += -g
-DCCFLAGS += -g
+DCCFLAGS +=
DLD = $(CXX)
#### Sun CC-specific "Pure virtual finction called" bug fix trigger.
+#### XXX: Shouldn't this go into a compiler specific guard ???
CPPFLAGS += -DSUN_CC_HAS_PVFC_BUG
#### Exception handling breaks on MP machines prior to Sun C++ 4.2
@@ -184,7 +218,7 @@ endif
LDFLAGS += -xildoff
-OCFLAGS += -O
+OCFLAGS += -xO4
PIC = -KPIC
AR = CC
ARFLAGS = -xar -o