This repository has been archived by the owner on Mar 16, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmake.platform.tmpl
141 lines (123 loc) · 5.05 KB
/
make.platform.tmpl
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#
# $Id: make.platform.tmpl,v 1.13 2008/02/19 13:36:40 rchen Exp $
# make.platform.tmpl: toplevel, platform-specific make configuration
#
ifdef USES_NATIVE_CC
### filter non-native flags
# -fno-implicit-templates
# -fexternal-templates
# -fPIC
# $(BASICWARNINGS)
# $(COMMONWARNINGS)
# $(USEFULWARNINGS)
# $(TCLFRIENDLYWARNINGS)
CFLAGS := $(filter-out -f%,$(CFLAGS))
CXXFLAGS := $(filter-out -f%,$(CXXFLAGS))
KFLAGS := $(filter-out -f%,$(KFLAGS))
TFLAGS := $(filter-out -f%,$(TFLAGS))
CFLAGS := $(filter-out -W%,$(CFLAGS))
CXXFLAGS := $(filter-out -W%,$(CXXFLAGS))
KFLAGS := $(filter-out -W%,$(KFLAGS))
TFLAGS := $(filter-out -W%,$(TFLAGS))
#LIBS := $(filter-out -lstdc++,$(LIBS))
SYSLIBS := $(filter-out -lstdc++,$(SYSLIBS))
ifeq (solaris,$(findstring solaris,$(PLATFORM)))
DEPENDFLAGS := $(subst -MM,-xM,$(DEPENDFLAGS))
else
DEPENDFLAGS := $(subst -MM,-M,$(DEPENDFLAGS))
endif
endif
### mips-sgi-irix6.4 flags
ifeq (irix,$(findstring irix,$(PLATFORM)))
### platform flags (both compilers)
AS = as -64
ASFLAGS := $(filter-out -P,$(ASFLAGS))
ifndef USES_NATIVE_CC
### generic "-64" binaries (default)
CC = $(GCC)
CXX = $(GXX)
MODCC = g++ -mabi=64
### generic "-n32" binaries
CC2 = gcc -mabi=n32
MODCC2 = g++ -mabi=n32
LD2 = ld -n32
### generic flags
OPT_FLAG =
LDFLAGS += -Wl,-woff,131 -Wl,-woff,85
else # USES_NATIVE_CC
### native "-64" binaries (default)
CC = $(NATIVE_CC) -64
CXX = $(NATIVE_CXX) -64
MODCC = $(NATIVE_CXX) -64
### native "-n32" binaries
CC2 = $(NATIVE_CC) -n32
MODCC2 = $(NATIVE_CXX) -n32
LD2 = $(NATIVE_CXX) -n32
### native flags
NATIVE_FLAGS += -DUSES_NATIVE_CC
NATIVE_FLAGS += -D__LONGLONG
NATIVE_FLAGS += -Dvfork=fork
NATIVE_FLAGS += -woff 1155
NATIVE_FLAGS += -Xcpluscomm
NATIVE_CXXFLAGS += -LANG:ansi-for-init-scope=ON
NATIVE_CXXFLAGS += -woff 3303
NATIVE_CXXFLAGS += -LANG:std
CFLAGS += $(NATIVE_FLAGS)
CXXFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS)
TFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS)
KFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS)
### native linking
LIBDIR += -L/usr/local/lib64
### native optimization
ifndef NO_OPT_FLAG
OPT_FLAG += -OPT:Olimit=0
endif
endif # USES_NATIVE_CC
endif # mips-sgi-irix6.4
### sparc-sun-solaris2.8 flags
ifdef SOLARIS_NATIVE
ifeq (solaris,$(findstring solaris,$(PLATFORM)))
DEPENDFLAGS = -xM1
CC = $(NATIVE_CC)
CXX = $(NATIVE_CXX)
MODCC = $(NATIVE_CXX)
LD = $(NATIVE_CXX)
NATIVE_FLAGS += -DUSES_NATIVE_CC
CFLAGS += $(NATIVE_FLAGS)
CXXFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS)
TFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS)
KFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS)
endif # sparc-sun-solaris2.8
endif # SOLARIS_NATIVE
# AIX 5.1 xlC/xlc
ifeq (ibm-aix,$(findstring ibm-aix,$(PLATFORM)))
ifdef IBM_BPATCH_COMPAT
CC = $(NATIVE_CC)
CXX = $(NATIVE_CXX)
MODCC = $(NATIVE_CXX)
# define AUTO_TEMPLATES to exclude the dyninst template files -- this needs to be done in Makefile
#XLC_TEMPLATE_PARAMETERS = -qnotempinc -qtemplateregistry=temp_reg -qtemplaterecompile
#XLC_TEMPLATE_PARAMETERS = -qtempinc
#XLC_TEMPLATE_PARAMETERS = -qnotempinc -qnotemplateregistry
XLC_TEMPLATE_PARAMETERS =
# -qobjmodel: (ibm) smaller classes, faster access to virtual function tables. (compat) less efficient
# -qsrcmsg: nice for debugging... prints source lines with error messages
# -qmakeshrobj:
# -qtempinc: implicit template instantiation... explicit instantiation of the sane template will cause
# tons of duplicate symbol warnings
# -qtemplateregistry: implicit template instantiation... preferable for spaceusage reasons
# like tempinc, but uses a registry file instead of special include files
# Also a bit annoying because you cant run a parallel compile (registry file must be
# build sequentially).
# -qstatsym: Adds user defined static symbols to the xcoff name list
#LD = /usr/vacpp/bin/makeC++SharedLib -p0 -blibpath:/usr/lib:/lib:/usr/local/lib -bbigtoc -bloadmap:loadmap -qobjmodel=ibm
#LD = xlC -bnoentry -qmkshrobj -G -bnoobjreorder -blibpath:/usr/lib:/lib:/usr/local/lib -bbigtoc -bloadmap:loadmap -qobjmodel=ibm $(XLC_TEMPLATE_PARAMETERS)
LD = xlC -bnoentry -qmkshrobj -bnoobjreorder -brtl -blibpath:/usr/lib:/lib:/usr/local/lib -bbigtoc -bloadmap:loadmap $(XLC_TEMPLATE_PARAMETERS)
#NATIVE_FLAGS += -qhalt=E -qcpluscmt -D__XLC__ -qlanglvl=ansi -q32 -qlonglong -qsrcmsg
NATIVE_FLAGS += -qhalt=E -D__XLC__ -qtbtable=full -qmaxmem=2048 -qro
CFLAGS += $(NATIVE_FLAGS) -qcpluscmt
CXXFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS) $(XLC_TEMPLATE_PARAMETERS)
TFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS) $(XLC_TEMPLATE_PARAMETERS)KFLAGS += $(NATIVE_FLAGS) $(NATIVE_CXXFLAGS) $(XLC_TEMPLATE_PARAMETERS)
LIBDIR += -L/usr/local/lib
endif #AIX_USE_XLC
endif #IBM-AIX