summaryrefslogtreecommitdiff
path: root/include/makeinclude/platform_aix_vacpp.GNU
blob: 626940dcc49265cc8784aa3066af30104afdb8a7 (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
# $Id$

# AIX 4.3 and higher using the Visual Age C++ 5 batch compiler (xlC_r)
# *not* using Orbix

ifeq (,$(debug))
  debug = 1
endif
ifeq (,$(distrib))
  distrib = 0
endif
ifeq (,$(exceptions))
  exceptions = 1
endif
ifeq (,$(optimize))
  optimize = 0
endif
ifeq (,$(threads))
  threads = 1
endif

# Note - Visual Age C++ pre-V5 didn't have a way to turn exception handling
# off, and V5 building ACE without exception handling causes segv on startup
# of every test. Until this is straightened out, force exceptions=1
exceptions=1

# In case anything here or in the config depends on OS version number,
# grab it here and pass it all to the compiler as well.
AIX_MAJOR_VERS := $(shell uname -v)
AIX_MINOR_VERS := $(shell uname -r)

ifeq ($(threads),1)
# Note - the _r form of the compiler command turns on -qthreads and the
# thread-required preprocessor defines, as well as -lpthreads for linking.
CC	    = xlc_r
CXX	    = xlC_r
else
CC          = xlc
CXX         = xlC
endif
DLD	    = $(CXX) -qmkshrobj

# -qextchk is handy, but produces false type mismatches when linking
# netsvcs with 3.1.4, so it's disabled.  IBM reports this fixed in 3.6.4.
CCFLAGS     += $(CFLAGS) -qonce -qtempinc
ifeq ($(exceptions),0)
CCFLAGS     += -qnoeh
endif

CPPFLAGS    += -DACE_AIX_MAJOR_VERS=$(AIX_MAJOR_VERS) -DACE_AIX_MINOR_VERS=$(AIX_MINOR_VERS)
ifeq (1,$(rtti))
  CCFLAGS += -qrtti=dynamiccast
else  # ! rtti
  CCFLAGS += -DACE_LACKS_RTTI
endif # ! rtti

# Define options used for debug=1 builds.
# -qextchk still produces type mismatch errors... should look into this.
# -qcheck messes up ACE_Allocator::instance?   - no, seems ok
# How about -qinitauto?
DCFLAGS     += -g

LD          = $(CXX)

# Yes, believe it or not...
# The way to make a shared lib on AIX is to make a shared object file and
# then put that in an archive.
# Non-shared archives are named lib<x>ns.a - ns = non-shared.
SOEXT       = a

SOFLAGS = $(CCFLAGS) $(CPPFLAGS) $(INCLDIRS)

aix_build = 1
ifeq ($(shared_libs),1)
ACELIB      = -lACE
else
ACELIB      = -lACEns
endif

LIBS	    += -ltli_r -ldl

ARFLAGS	    = ruv
AR	    = ar
LDFLAGS	    += -bloadmap:vacpp.map
# Default OCCFLAGS builds common code for all RS/6000 architectures but
# this can be set to optimize for your particular computer. The commented
# out example optimizes for RS/6000 43P.
# OCCFLAGS is not used by default.  To used it, set optimize=1
# either in this file or on the command line.
#OCCFLAGS    += -qarch=ppc -qtune=604
OCCFLAGS    += -qlibansi -O2 -qarch=com 
RANLIB	    = ranlib
#TEMPINCDIR  = tempinc
SOBUILD =