summaryrefslogtreecommitdiff
path: root/include/makeinclude/platform_sunos5_sunc++.GNU
blob: fd661849810db94758d3ea523be4961820b5b5b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# $Id$

# SunOS 5.x (Solaris 2.x) with SunC++ 4.2 or earlier
# *not* using Orbix
#
# Note: some ACE files might generate these kinds of warnings:
# 1) "Warning: Could not find source for " one of the following:
#    default constructor, copy constructor, destructor, or assignment
#    operator.  It appears that with +w, Sun C++ 4.x issues this warning
#    whenever it has to generate one of these functions (because it wasn't
#    defined by the user).  This isn't really a problem.
#    This warning appears to be fixed by Sun C++ 4.2 jumbo patch 104631-02.
# 2) "Warning: <foo> hides the function " or "hides the same name in an
#    outer scope".  A useful warning, perhaps, but not really a problem.
#    Again, this appears much more often with +w.  The jumbo patch did not
#    remove it.
# There should be no other warnings from Sun C++ when building ACE.

debug = 1

CC              = cc
CXX             = CC
CFLAGS          += -mt
#### -pta instantiates all template members, which makes libraries bigger.
#### But, it's supposed to put each member into it's own .o, so executable
#### size should not be penalized.
#### We've commented -pta out for the moment to see if it works.
CCFLAGS         += $(CFLAGS) # -pta
DCFLAGS         += -g
DLD             = $(CXX)

#### Exception handling breaks on MP machines prior to Sun C++ 4.2
#### with jumbo patch 104631-02, see ace/config-sunos5.5-sunc++-4.x.h.
#### If you are using a version of Sun C++ prior to 4,2, or haven't
#### applied that jumbo patch to your 4.2, or don't want to pay the
#### performance penalty of exception handling, then use the default
#### of no exceptions.  If you want to enable exception handling,
#### add "exceptions=1" to your "make" invocation.
ifndef exceptions
  CCFLAGS += -noex
endif # ! exceptions

LD              = $(CXX)

ifdef orbix
  LDFLAGS       += $(PIC) -L$(ORBIX_ROOT)/corba2/lib \
                   -R $(ACE_ROOT)/ace -R./ -R $(ORBIX_ROOT)/corba2/lib
  LIBS          += -lITinimt -liiopmt -lorbixmt -lsocket -ldl -lnsl \
                   -lthread -lgen -lposix4
  CPPFLAGS      += -I$(ORBIX_ROOT)/corba2/include
else
  LDFLAGS       += -R $(ACE_ROOT)/ace -R./
  LIBS          += -lsocket -ldl -lnsl -lgen -lposix4
endif # orbix

LDFLAGS         += -mt -xildoff

OCFLAGS         += -O
PIC             = -PIC
AR              = CC
ARFLAGS         = -xar -o
RANLIB          = echo
SOFLAGS         = -G $(CPPFLAGS)

#### Create template repository to avoid compiler warning.
TEMPLATE_REPOSITORY = Templates.DB

ifdef 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 = /bin/rm -f $@; \
           $(COMPILE.cc) $(PIC) -o $(VSHDIR)$*.o $< && /bin/ln $(VSHDIR)$*.o $@
endif # 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".
####
#### Dynamic casting and RTTI can coexist with ACE, but it doesn't
#### use them.  To disable, add: -features=no%castop,no%rtti
#### Sun C++ 4.2 (and later?) only support this option.
ifdef fast
  CFLAGS += -fast
  CCFLAGS += -features=no%castop,no%rtti
  DCFLAGS =
  LDFLAGS += -fast
endif # fast