diff options
Diffstat (limited to 'include/makeinclude/platform_sunos5_kcc.GNU')
-rw-r--r-- | include/makeinclude/platform_sunos5_kcc.GNU | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/include/makeinclude/platform_sunos5_kcc.GNU b/include/makeinclude/platform_sunos5_kcc.GNU new file mode 100644 index 00000000000..80554e48bb1 --- /dev/null +++ b/include/makeinclude/platform_sunos5_kcc.GNU @@ -0,0 +1,111 @@ +# $Id$ -*- Makefile -*- + +# SunOS 5.x (Solaris 2.x) with KAI C++ 3.3e + +debug = 1 +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 + +ifeq ($(threads),1) + CFLAGS += --thread_safe + LDFLAGS += --thread_safe + ARFLAGS = --thread_safe +else + ARFLAGS = + CCFLAGS += -DACE_HAS_THREADS=0 +endif # threads + +CC = KCC +CXX = KCC + +DCFLAGS += +K0 -g +DLD = $(CXX) +LD = $(CXX) + +ifeq (1,$(exceptions)) + CCFLAGS += --exceptions +else + CCFLAGS += --no_exceptions + LDFLAGS += --no_exceptions +endif + + + +LIBS += -Bdynamic -lsocket -lnsl -lgen -ldl -lposix4 +MATHLIB = -lm +CPPFLAGS += $(CFLAGS) +OCFLAGS += +K3 -o +PIC = -KPIC +AR = KCC +ARFLAGS += -Bstatic -o +RANLIB = echo +SOFLAGS += -G $(CPPFLAGS) + + +ifdef static_libs_only + ifneq ($(static_libs_only),0) + static_libs=1 + endif +endif +ifneq ($(static_libs),0) + CCFLAGS += --one_instantiation_per_object +endif + + + +#### Create template repository to avoid compiler warning. +TEMPLATE_REPOSITORY = Templates.DB + +ifdef CLEANUP_BIN + #### Builds .shobj/$*.o file, then .shobj/$*.so file. The .o files + #### are used for building libraries and executables. But, it seems + #### to be necessary to build the .so files (with -G) in order to get + #### all template instantiations. + SOBUILD = $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $<; \ + $(SOLINK.cc) -o $@ -h $@ $(LDFLAGS) $(VSHDIR)$*.o +else + #### Optimize builds when no executables are built in the current + #### directory. Only a library is being created, and -G is used + #### in that step. Therefore, all templates instantations are + #### included in the library. This optimization saves almost 11 Mb + #### (2.6 percent) and 27 minutes (22 percent) on the entire ACE + #### build on a 168 MHz Sun Ultra2. + #### + #### Sun C++ won't allow the output from a compile to be named with + #### a .so extension. Rather than muck with the ACE build rules and + #### risk upsetting builds on other platforms, just ln the output + #### after building it. + SOBUILD = $(RM) $@; $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && \ + /bin/ln $(VSHDIR)$*.o $@ +endif # CLEANUP_BIN + +#### The following macro overrides enable creation of fast executables. +#### They _don't_ support fast compilation :-) +#### To use, add fast=1 to your "make" invocation. +#### +#### -g is incompatible with -fast. If you need -g, you can +#### use "-fast -O3". +#### +ifeq (1,$(fast)) + CFLAGS += -fast +K3 + DCFLAGS = + LDFLAGS += -fast +K3 +endif # fast |