58 |
58 |
59 SOURCE_DIR = $(shell pwd)/$(COMPONENT_SRC) |
59 SOURCE_DIR = $(shell pwd)/$(COMPONENT_SRC) |
60 BUILD_DIR = $(shell pwd)/build |
60 BUILD_DIR = $(shell pwd)/build |
61 PROTO_DIR = $(BUILD_DIR)/prototype/$(MACH) |
61 PROTO_DIR = $(BUILD_DIR)/prototype/$(MACH) |
62 |
62 |
|
63 USRDIR = /usr |
|
64 BINDIR = /bin |
|
65 LIBDIR = /lib |
|
66 USRBINDIR = $(USRDIR)/bin |
|
67 USRLIBDIR = $(USRDIR)/lib |
|
68 USRSHAREDIR = $(USRDIR)/share |
|
69 USRSHAREMANDIR = $(USRSHAREDIR)/man |
|
70 USRSHAREMAN1DIR = $(USRSHAREMANDIR)/man1 |
|
71 USRSHAREMAN3DIR = $(USRSHAREMANDIR)/man3 |
|
72 USRLIBDIR64 = $(USRDIR)/lib/$(MACH64) |
|
73 PROTOUSRDIR = $(PROTO_DIR)/$(USRDIR) |
|
74 PROTOUSRBINDIR = $(PROTO_DIR)/$(USRBINDIR) |
|
75 PROTOUSRLIBDIR = $(PROTO_DIR)/$(USRLIBDIR) |
|
76 PROTOUSRLIBDIR64 = $(PROTO_DIR)/$(USRLIBDIR64) |
|
77 PROTOUSRSHAREDIR = $(PROTO_DIR)/$(USRSHAREDIR) |
|
78 PROTOUSRSHAREMANDIR = $(PROTO_DIR)/$(USRSHAREMANDIR) |
|
79 PROTOUSRSHAREMAN1DIR = $(PROTO_DIR)/$(USRSHAREMAN1DIR) |
|
80 PROTOUSRSHAREMAN3DIR = $(PROTO_DIR)/$(USRSHAREMAN3DIR) |
|
81 |
|
82 |
63 SFWBIN = /usr/sfw/bin |
83 SFWBIN = /usr/sfw/bin |
64 SFWLIB = /usr/sfw/lib |
84 SFWLIB = /usr/sfw/lib |
65 PROTOSFWBIN = $(PROTO_DIR)/$(SFWBIN) |
85 PROTOSFWBIN = $(PROTO_DIR)/$(SFWBIN) |
66 PROTOSFWLIB = $(PROTO_DIR)/$(SFWLIB) |
86 PROTOSFWLIB = $(PROTO_DIR)/$(SFWLIB) |
67 |
87 |
81 |
101 |
82 # set MACH64 from MACH to either sparcv9 or amd64 |
102 # set MACH64 from MACH to either sparcv9 or amd64 |
83 MACH64_1 = $(MACH:sparc=sparcv9) |
103 MACH64_1 = $(MACH:sparc=sparcv9) |
84 MACH64 = $(MACH64_1:i386=amd64) |
104 MACH64 = $(MACH64_1:i386=amd64) |
85 |
105 |
86 BUILD_32 = $(BUILD_DIR)/$(MACH32)/.built |
106 BUILD_DIR_32 = $(BUILD_DIR)/$(MACH32) |
87 BUILD_64 = $(BUILD_DIR)/$(MACH64)/.built |
107 BUILD_DIR_64 = $(BUILD_DIR)/$(MACH64) |
|
108 |
|
109 BUILD_32 = $(BUILD_DIR_32)/.built |
|
110 BUILD_64 = $(BUILD_DIR_64)/.built |
88 BUILD_32_and_64 = $(BUILD_32) $(BUILD_64) |
111 BUILD_32_and_64 = $(BUILD_32) $(BUILD_64) |
89 |
112 |
90 INSTALL_32 = $(BUILD_DIR)/$(MACH32)/.installed |
113 INSTALL_32 = $(BUILD_DIR_32)/.installed |
91 INSTALL_64 = $(BUILD_DIR)/$(MACH64)/.installed |
114 INSTALL_64 = $(BUILD_DIR_64)/.installed |
92 INSTALL_32_and_64 = $(INSTALL_32) $(INSTALL_64) |
115 INSTALL_32_and_64 = $(INSTALL_32) $(INSTALL_64) |
93 |
116 |
94 # BUILD_TOOLS is the root of all tools not normally installed on the system. |
117 # BUILD_TOOLS is the root of all tools not normally installed on the system. |
95 BUILD_TOOLS = /ws/onnv-tools |
118 BUILD_TOOLS = /ws/onnv-tools |
96 |
119 |
111 CC.gcc.64 = $(GCC_ROOT)/bin/cc -m64 |
134 CC.gcc.64 = $(GCC_ROOT)/bin/cc -m64 |
112 CCC.gcc.64 = $(GCC_ROOT)/bin/CC -m64 |
135 CCC.gcc.64 = $(GCC_ROOT)/bin/CC -m64 |
113 |
136 |
114 CC = $(CC.$(COMPILER).$(BITS)) |
137 CC = $(CC.$(COMPILER).$(BITS)) |
115 CCC = $(CCC.$(COMPILER).$(BITS)) |
138 CCC = $(CCC.$(COMPILER).$(BITS)) |
|
139 |
|
140 lint.32 = $(SPRO_VROOT)/bin/lint -m32 |
|
141 lint.64 = $(SPRO_VROOT)/bin/lint -m64 |
|
142 |
|
143 LINT = $(lint.$(BITS)) |
116 |
144 |
117 LD = /usr/bin/ld |
145 LD = /usr/bin/ld |
118 |
146 |
119 PYTHON.2.6.32 = /usr/bin/python2.6 |
147 PYTHON.2.6.32 = /usr/bin/python2.6 |
120 PYTHON.2.6.64 = /usr/bin/$(MACH64)/python2.6 |
148 PYTHON.2.6.64 = /usr/bin/$(MACH64)/python2.6 |
134 CP = /bin/cp -f |
162 CP = /bin/cp -f |
135 LN = /bin/ln |
163 LN = /bin/ln |
136 SYMLINK = /bin/ln -s |
164 SYMLINK = /bin/ln -s |
137 ENV = /usr/bin/env |
165 ENV = /usr/bin/env |
138 INSTALL = /usr/bin/ginstall |
166 INSTALL = /usr/bin/ginstall |
|
167 |
|
168 INS.dir= $(INSTALL) -d $@ |
|
169 INS.file= $(INSTALL) -m 444 $< $(@D) |
|
170 |
|
171 # C compiler mode. Future compilers may change the default on us, |
|
172 # so force transition mode globally. Lower level makefiles can |
|
173 # override this by setting CCMODE. |
|
174 # |
|
175 CCMODE= -Xa |
|
176 CCMODE64= -Xa |
|
177 |
|
178 # compiler '-xarch' flag. This is here to centralize it and make it |
|
179 # overridable for testing. |
|
180 sparc_XARCH= $(CCBITS32) -xarch=sparc |
|
181 sparcv9_XARCH= $(CCBITS64) -xcode=abs64 |
|
182 i386_XARCH= $(CCBITS32) -xchip=pentium |
|
183 amd64_XARCH= $(CCBITS64) -xarch=generic -Ui386 -U__i386 |
|
184 |
|
185 # disable the incremental linker |
|
186 ILDOFF= -xildoff |
|
187 |
|
188 # C99 mode |
|
189 C99_ENABLE= -xc99=all |
|
190 C99_DISABLE= -xc99=none |
|
191 C99MODE= $(C99_ENABLE) |
|
192 C99LMODE= $(C99MODE:-xc99%=-Xc99%) |
|
193 |
|
194 # XPG6 mode. This option enables XPG6 conformance, plus extensions. |
|
195 # Amongst other things, this option will cause system calls like |
|
196 # popen (3C) and system (3C) to invoke the standards-conforming |
|
197 # shell, /usr/xpg4/bin/sh, instead of /usr/bin/sh. |
|
198 XPG6MODE= $(C99MODE) -D_XOPEN_SOURCE=600 -D__EXTENSIONS__=1 |
|
199 |
|
200 |
|
201 # The Sun Studio 11 compiler has changed the behaviour of integer |
|
202 # wrap arounds and so a flag is needed to use the legacy behaviour |
|
203 # (without this flag panics/hangs could be exposed within the source). |
|
204 # |
|
205 sparc_IROPTFLAG = -W2,-xwrap_int |
|
206 sparcv9_IROPTFLAG = -W2,-xwrap_int |
|
207 i386_IROPTFLAG = |
|
208 amd64_IROPTFLAG = |
|
209 IROPTFLAG = $($(MACH)_IROPTFLAG) |
|
210 IROPTFLAG64 = $($(MACH64)_IROPTFLAG) |
|
211 |
|
212 sparc_CFLAGS= $(sparc_XARCH) |
|
213 sparcv9_CFLAGS= $(sparcv9_XARCH) -dalign $(CCVERBOSE) |
|
214 i386_CFLAGS= $(i386_XARCH) |
|
215 amd64_CFLAGS= $(amd64_XARCH) |
|
216 |
|
217 sparc_COPTFLAG= -xO3 |
|
218 sparcv9_COPTFLAG= -xO3 |
|
219 i386_COPTFLAG= -xO3 |
|
220 amd64_COPTFLAG= -xO3 |
|
221 COPTFLAG= $($(MACH)_COPTFLAG) |
|
222 COPTFLAG64= $($(MACH64)_COPTFLAG) |
|
223 |
|
224 sparc_XREGSFLAG = -xregs=no%appl |
|
225 sparcv9_XREGSFLAG = -xregs=no%appl |
|
226 i386_XREGSFLAG = |
|
227 amd64_XREGSFLAG = |
|
228 XREGSFLAG = $($(MACH)_XREGSFLAG) |
|
229 XREGSFLAG64 = $($(MACH64)_XREGSFLAG) |
|
230 |
|
231 CFLAGS= \ |
|
232 $(COPTFLAG) $($(MACH)_CFLAGS) $(CCMODE) \ |
|
233 $(ILDOFF) $(C99MODE) $(IROPTFLAG) |
|
234 |
|
235 CFLAGS64= \ |
|
236 $(COPTFLAG64) $($(MACH64)_CFLAGS) $(CCMODE64) \ |
|
237 $(ILDOFF) $(C99MODE) $(IROPTFLAG64) |
|
238 |