source: libcf++/trunk/makeinclude/platform.mk@ 4

Last change on this file since 4 was 4, checked in by cheese, 9 years ago

#1 commit prototype

File size: 6.9 KB
Line 
1#------------------------------------------------------------
2# set command to check os
3#------------------------------------------------------------
4UNAME_S := $(shell uname -s)
5UNAME_M := $(shell uname -m)
6UNAME_R := $(shell uname -r)
7UNAME_V := $(shell uname -v)
8UNAME_A := $(shell uname -a)
9
10#------------------------------------------------------------
11# additional info.
12#------------------------------------------------------------
13MACHINE_INFO = $(UNAME_S).$(UNAME_R)
14ifeq ($(UNAME_S),AIX)
15 MACHINE_INFO = $(UNAME_S).$(UNAME_V).$(UNAME_R)
16endif
17ifeq ($(UNAME_S),Linux)
18 MACHINE_INFO = $(UNAME_S).$(UNAME_M)
19endif
20
21DATETIME := $(shell date +%Y%m%d)
22
23#------------------------------------------------------------
24# set options
25#------------------------------------------------------------
26ifeq ($(DEBUG),yes)
27 DEFS = -D_DEBUG
28 FLAG = -g
29else
30 DEFS =
31 FLAG = -O2
32endif
33
34EXT_SHARED = so
35EXT_STATIC = a
36EXT_EXECUTE = ex
37
38#------------------------------------------------------------
39# set platform
40#------------------------------------------------------------
41ifeq ($(UNAME_S),SunOS)
42 OS_FAMILY = solaris
43 ifeq ($(UNAME_M),i86pc)
44 ifeq ($(VER),32)
45 OS_DEF = solaris_x86
46 else
47 OS_DEF = solaris_x86_64
48 endif
49 else
50 ifeq ($(VER),32)
51 OS_DEF = solaris
52 else
53 OS_DEF = solaris64
54 endif
55 endif
56# java
57 ifeq ($(UNAME_M),i86pc)
58 JAVA_HOME = /usr/j2se
59 else
60 JAVA_HOME = /usr/java1.4.2
61 endif
62endif
63
64ifeq ($(UNAME_S),AIX)
65 OS_FAMILY = aix
66 ifeq ($(VER),32)
67 OS_DEF = aix
68 JAVA_HOME = /usr/java14
69 else
70 OS_DEF = aix64
71 JAVA_HOME = /usr/java14_64
72 endif
73# java
74endif
75
76ifeq ($(UNAME_S),HP-UX)
77 OS_FAMILY = hp-ux
78 ifeq ($(UNAME_M),ia64)
79 UNAME_S := HP-UX_IA
80 ifeq ($(VER),32)
81 OS_DEF = hp_ia
82 else
83 OS_DEF = hp_ia64
84 endif
85 else
86 ifeq ($(VER),32)
87 OS_DEF = hp
88 else
89 OS_DEF = hp64
90 endif
91 endif
92# java
93 JAVA_HOME = /opt/java1.4
94endif
95
96ifeq ($(UNAME_S),Linux)
97 OS_FAMILY = linux
98 ifeq ($(UNAME_M),ppc64)
99 OS_DEF = linux_ppc64
100 else
101 ifeq ($(VER),32)
102 OS_DEF = linux
103 else
104 OS_DEF = linux_x86_64
105 endif
106 endif
107# java
108 ifeq ($(VER),32)
109 JAVA_HOME := ${JAVA_HOME}
110 endif
111endif
112
113ifeq ($(UNAME_S),Darwin)
114 OS_FAMILY = mac
115 ifeq ($(VER),32)
116 OS_DEF = mac
117 else
118 OS_DEF = mac_x86_64
119 endif
120endif
121
122ifeq ($(filter $(UNAME_A),Cygwin),Cygwin)
123 # forced
124 VER = 32
125 EXT_SHARED = dll
126 EXT_STATIC = lib
127 EXT_EXECUTE = exe
128
129 # run as linux
130 OS_DEF = linux
131endif
132
133ifeq ($(JAVA_HOME),)
134 JAVA_HOME = $(USER_JAVA_HOME)
135endif
136ifeq ($(JAVA_HOME),)
137$(error JAVA_HOME=\'\'.)
138endif
139
140#------------------------------------------------------------
141# set build env.
142#------------------------------------------------------------
143#ifeq ($(OS_DEF),$(filter $(OS_DEF),solaris solaris64 solaris_x86 solaris_x86_64))
144ifeq ($(OS_FAMILY),solaris)
145 ifeq ($(OS_DEF),solaris_x86_64)
146 OPT_SHARED_LDFLAGS += -shared
147 else
148 OPT_SHARED_LDFLAGS += -G
149 endif
150
151CC = gcc
152CXX = g++
153LD = $(CXX)
154AR = ar
155CDEFS = -D_SOLARIS -D_REENTRANT $(DEFS)
156CFLAGS = $(FLAG) -m$(VER) -Wall -fPIC -Wconversion -Wpointer-arith -Wcast-align
157LDFLAGS = $(FLAG) -m$(VER) -Wall
158SHARED_LDFLAGS = $(LDFLAGS) $(OPT_SHARED_LDFLAGS) -shared
159ARFLAGS = rc
160LIBS = -lnsl -lsocket -lpthread
161LIBENV = LD_LIBRARY_PATH
162COMPILER_VER = $(CXX) --version | awk 'NR==1'
163endif
164
165ifeq ($(OS_FAMILY),aix)
166# -Wl,-brtl
167# => http://durgaprasad.wordpress.com/2006/09/28/problems-with-linking-of-shared-libraries-in-aix/
168CC = /usr/vac/bin/xlc_r
169CXX = /usr/vacpp/bin/xlC_r
170LD = $(CXX)
171AR = ar
172CDEFS = -D_AIX -D_REENTRANT -D_POSIX_THREADS=1 -D_PTHREADS -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L $(DEFS)
173CFLAGS = $(FLAG) -q$(VER) -qpic=large -qflag=w:w -qeh=v6 -qchars=signed -qstaticinline
174LDFLAGS = $(FLAG) -q$(VER) -qpic=large -brtl
175SHARED_LDFLAGS = $(LDFLAGS) -G -qmkshrobj -bnoentry -bM:SRE
176ARFLAGS = -X64 -ruv
177LIBS = -lc -lpthread
178LIBENV = LIBPATH
179COMPILER_VER = lslpp -l | grep xlC | grep rte | grep -v msg
180
181# g++ {{{
182ifeq ($(compiler),g++)
183CC = g++
184CXX = g++
185LD = $(CXX)
186AR = ar
187CDEFS = -D_AIX -D_REENTRANT -D_POSIX_THREADS=1 -D_PTHREADS -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L $(DEFS)
188CFLAGS = $(FLAG) -maix$(VER)
189LDFLAGS = $(FLAG) -maix$(VER) -Wl,-brtl
190SHARED_LDFLAGS = $(LDFLAGS) -shared
191ARFLAGS = -X64 -ruv
192LIBS = -lc -lpthread
193LIBENV = LIBPATH
194COMPILER_VER = $(CXX) --version | awk 'NR==1'
195endif
196# }}} g++
197endif
198
199ifeq ($(OS_FAMILY),hp-ux)
200
201 ifneq ($(DEBUG),yes)
202 FLAG = +O2
203 endif
204
205# in pa-risc, +W690 option is disable a warning about header without line-feed.
206 ifeq ($(OS_DEF),hp)
207 EXT_SHARED = sl
208 HP_LD = /opt/aCC/bin/aCC
209 FLAG += -AA -mt +W690 +Z +DAportable
210 OPT_SHARED_LDFLAGS = +DAportable
211 endif
212
213 ifeq ($(OS_DEF),hp64)
214 EXT_SHARED = sl
215 HP_LD = /opt/aCC/bin/aCC
216 FLAG += -AA -mt +W690 +z +DA2.0W
217 OPT_SHARED_LDFLAGS = +DA2.0W
218 endif
219
220# in itanium64, +W2001 option is disable a warning about header without line-feed.
221 ifeq ($(OS_DEF),hp_ia)
222 HP_LD = ld
223 FLAG += +DD32 +W2001
224 OPT_SHARED_LDFLAGS = +s +vallcompatwarnings -B symbolic
225 endif
226
227 ifeq ($(OS_DEF),hp_ia64)
228 HP_LD = ld
229 FLAG += +DD64 +W2001
230 OPT_SHARED_LDFLAGS = +s +vallcompatwarnings -B symbolic
231 endif
232
233CC = cc
234CXX = /opt/aCC/bin/aCC
235LD = $(HP_LD)
236AR = ar
237CDEFS = -D_HPUX -D_HPUX_SOURCE -D_REENTRANT -D_POSIX_THREADS=1 -D_POSIX_C_SOURCE=199506L $(DEFS)
238CFLAGS = $(FLAG) -q -n -z
239LDFLAGS = $(FLAG) -q -n -Wl,+s
240SHARED_LDFLAGS = $(HP_SHARED_LDFLAGS) -b
241ARFLAGS = cru
242LIBS = -lnsl -lc -lpthread -lstd_v2 -lCsup
243LIBENV = SHLIB_PATH
244COMPILER_VER = $(CXX) -V
245
246# g++ {{{
247ifeq ($(compiler),g++)
248
249 ifeq ($(OS_DEF),hp)
250 EXT_SHARED = sl
251 endif
252
253 ifeq ($(OS_DEF),hp64)
254 EXT_SHARED = sl
255 endif
256
257 ifeq ($(OS_DEF),hp_ia)
258 FLAG = -milp32
259 LDFLAGS =
260 endif
261
262 ifeq ($(OS_DEF),hp_ia64)
263 FLAG = -mlp64
264 LDFLAGS =
265 endif
266
267CC = gcc
268CXX = g++
269LD = g++
270AR = ar
271CDEFS = -D_HPUX -D_REENTRANT -DMTHREAD -DPTHREAD -D_THREAD_SAFE -D_POSIX_C_SOURCE=199506L $(DEFS)
272CFLAGS = $(FLAG) -Wall -fPIC -Wconversion -Wpointer-arith -Wcast-align
273LDFLAGS = $(FLAG) -Wall
274SHARED_LDFLAGS = $(LDFLAGS) -shared
275ARFLAGS = cru
276LIBS = -lnsl -lc -lpthread
277LIBENV = SHLIB_PATH
278COMPILER_VER = $(CXX) --version | awk 'NR==1'
279endif
280# }}} g++
281endif
282
283ifeq ($(OS_FAMILY),linux)
284
285 ifneq ($(shell find /usr/include -name "stropts.h"),)
286 DEFS += -D_HAVE_STROPTS_H
287 endif
288
289CC = gcc
290CXX = g++
291LD = $(CXX)
292AR = ar
293CDEFS = -D_LINUX -D_REENTRANT $(DEFS)
294CFLAGS = $(FLAG) -m$(VER) -Wall -fPIC -Wconversion -Wpointer-arith -Wcast-align
295LDFLAGS = $(FLAG) -m$(VER) -Wall
296SHARED_LDFLAGS = $(LDFLAGS) -shared -rdynamic
297ARFLAGS = rc
298LIBS = -lpthread $(USER_LIBS)
299LIBENV = LD_LIBRARY_PATH
300COMPILER_VER = $(CXX) --version | awk 'NR==1'
301endif
302
303ifeq ($(OS_FAMILY),mac)
304CC = gcc
305CXX = g++
306LD = $(CXX)
307AR = ar
308CDEFS = -D_MAC -D_REENTRANT $(DEFS)
309CFLAGS = $(FLAG) -m$(VER) -Wall -fPIC -Wconversion -Wpointer-arith -Wcast-align
310LDFLAGS = $(FLAG) -m$(VER) -Wall
311SHARED_LDFLAGS = $(LDFLAGS) -shared -rdynamic
312ARFLAGS = rc
313LIBS = -lpthread
314LIBENV = LD_LIBRARY_PATH
315COMPILER_VER = $(CXX) --version | awk 'NR==1'
316endif
Note: See TracBrowser for help on using the repository browser.