source: libcf/trunk/makeinclude/platform.mk

Last change on this file was 161, checked in by cheese, 10 years ago

#1 separate doxygen makefile

File size: 3.6 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# set options
12#------------------------------------------------------------
13ifeq ($(DEBUG), yes)
14 DEFS = -D_DEBUG
15 FLAG = -g
16else
17 DEFS =
18 FLAG = -O2
19endif
20
21EXT_SHARED = so
22EXT_STATIC = a
23EXT_EXECUTE = ex
24
25#------------------------------------------------------------
26# set platform
27#------------------------------------------------------------
28ifeq ($(UNAME_S), SunOS)
29 ifeq ($(UNAME_M), i86pc)
30 ifeq ($(VER), 32)
31 OS_DEF = solaris_x86
32 else
33 OS_DEF = solaris_x86_64
34 endif
35 else
36 ifeq ($(VER), 32)
37 OS_DEF = solaris
38 else
39 OS_DEF = solaris64
40 endif
41 endif
42endif
43
44ifeq ($(UNAME_S), AIX)
45 ifeq ($(VER), 32)
46 OS_DEF = aix
47 else
48 OS_DEF = aix64
49 endif
50endif
51
52ifeq ($(UNAME_S), HP-UX)
53 ifeq ($(UNAME_M), ia64)
54 UNAME_S := HP-UX_IA
55 ifeq ($(VER), 32)
56 OS_DEF = hp_ia
57 else
58 OS_DEF = hp_ia64
59 endif
60 else
61 ifeq ($(VER), 32)
62 OS_DEF = hp
63 else
64 OS_DEF = hp64
65 endif
66 endif
67endif
68
69ifeq ($(UNAME_S), Linux)
70 ifeq ($(UNAME_M), ppc64)
71 OS_DEF = linux_ppc64
72 else
73 ifeq ($(VER), 32)
74 OS_DEF = linux
75 else
76 OS_DEF = linux_x86_64
77 endif
78 endif
79endif
80
81ifeq ($(UNAME_S), Darwin)
82 ifeq ($(VER), 32)
83 OS_DEF = mac
84 else
85 OS_DEF = mac_x86_64
86 endif
87endif
88
89ifeq ($(filter $(UNAME_A),Cygwin),Cygwin)
90 # forced
91 VER = 32
92 EXT_SHARED = dll
93 EXT_STATIC = lib
94 EXT_EXECUTE = exe
95
96 # run as linux
97 OS_DEF = linux
98endif
99
100#------------------------------------------------------------
101# set build env.
102#------------------------------------------------------------
103ifeq ($(OS_DEF), $(filter $(OS_DEF),solaris solaris64 solaris_x86 solaris_x86_64))
104CC = gcc
105LD = gcc
106AR = ar
107CDEFS = $(DEFS) -D_SOLARIS -D_REENTRANT
108CFLAGS = $(FLAG) -m$(VER) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
109LDFLAGS = -m$(VER)
110SHARED_FLAGS = $(LDFLAGS) -G
111ARFLAGS = rc
112LIBS = -lnsl -lsocket -lpthread
113endif
114
115ifeq ($(OS_DEF), $(filter $(OS_DEF),aix aix64))
116CC = cc_r
117LD = ld
118AR = ar
119CDEFS = $(DEFS) -D_AIX -D_REENTRANT -D__STDC__=1
120CFLAGS = $(FLAG) -q$(VER) -qcpluscmt
121LDFLAGS = -b$(VER) -brtl
122SHARED_FLAGS = $(LDFLAGS) -bnoentry -bM:SRE -bexpall
123ARFLAGS = cru
124LIBS = -lc -lpthread
125endif
126
127ifeq ($(OS_DEF), $(filter $(OS_DEF),hp hp64 hp_ia hp_ia64))
128CC = cc
129LD = ld
130AR = ar
131CDEFS = $(DEFS) -D_HPUX -D_REENTRANT
132CFLAGS = $(FLAG) +z -q -n
133LDFLAGS =
134SHARED_FLAGS = $(LDFLAGS) -b +s
135ARFLAGS = cru
136LIBS = -lc -lpthread
137
138 ifeq ($(OS_DEF), hp)
139 CFLAGS += +DA1.1 +s
140 EXT_SHARED = sl
141 endif
142
143 ifeq ($(OS_DEF), hp64)
144 CFLAGS += +DA2.0W +w1 -Ae -z +u4
145 EXT_SHARED = sl
146 endif
147
148 ifeq ($(OS_DEF), hp_ia)
149 CFLAGS += +DA1.1 +s
150 endif
151
152 ifeq ($(OS_DEF), hp_ia64)
153 CFLAGS += +DD64 +w1 -Ae -z +u4
154 endif
155endif
156
157ifeq ($(OS_DEF), $(filter $(OS_DEF),linux linux_x86_64 linux_ppc64))
158CC = gcc
159LD = gcc
160AR = ar
161CDEFS = $(DEFS) -D_LINUX -D_REENTRANT
162CFLAGS = $(FLAG) -m$(VER) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
163LDFLAGS = -m$(VER)
164SHARED_FLAGS = $(LDFLAGS) -shared
165ARFLAGS = rc
166LIBS = -lpthread
167endif
168
169ifeq ($(OS_DEF), $(filter $(OS_DEF),mac mac_x86_64))
170CC = gcc
171LD = gcc
172AR = ar
173CDEFS = $(DEFS) -D_MAC -D_REENTRANT
174CFLAGS = $(FLAG) -m$(VER) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
175LDFLAGS = -m$(VER)
176SHARED_FLAGS = $(LDFLAGS) -shared
177ARFLAGS = rc
178LIBS = -lpthread
179endif
Note: See TracBrowser for help on using the repository browser.