source: libcf/trunk/makeinclude/platform.mk@ 73

Last change on this file since 73 was 73, checked in by cheese, 11 years ago

#1 fix makefile for multi-platform

File size: 3.0 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), true)
14 DEFS = -D_DEBUG
15 FLAG = -g
16else
17 DEFS =
18 FLAG = -O2
19endif
20
21EXT_SHARED = so
22EXT_STATIC = a
23
24#------------------------------------------------------------
25# set platform
26#------------------------------------------------------------
27ifeq ($(UNAME_S), SunOS)
28 ifeq ($(UNAME_M), i86pc)
29 UNAME_S := $(UNAME_S)_x86
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 ($(filter $(UNAME_A),CYGWIN),CYGWIN)
82 # forced
83 VER = 32
84 EXT_SHARED = dll
85 EXT_STATIC = lib
86
87 # run as linux
88 OS_DEF = linux
89endif
90
91#------------------------------------------------------------
92# set build env.
93#------------------------------------------------------------
94ifeq ($(OS_DEF), $(filter $(OS_DEF),solaris solaris_64 solaris_x86 solaris_x86_64))
95CC = gcc
96LD = gcc
97AR = ar
98CDEFS = $(DEFS) -D_SOLARIS -D_REENTRANT
99CFLAGS = $(FLAG) -m$(VER) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
100LDFLAGS = -m$(VER) -G -lnsl
101SHARED_FLAGS = $(LDFLAGS) -shared
102ARFLAGS = rc
103endif
104
105ifeq ($(OS_DEF), $(filter $(OS_DEF),aix aix64))
106CC = cc_r
107LD = ld
108AR =
109CDEFS = $(DEFS) -D_AIX -D_REENTRANT
110CFLAGS = $(FLAG) -q$(VER) -qcpluscmt
111LDFLAGS = -b$(VER) -lc -brtl
112SHARED_FLAGS = $(LDFLAGS) -bnoentry -bM:SRE
113ARFLAGS =
114endif
115
116ifeq ($(OS_DEF), $(filter $(OS_DEF),hp hp64 hp_ia hp_ia64))
117CC = cc
118LD = ld
119AR =
120CDEFS = $(DEFS) -D_HPUX -D_REENTRANT
121CFLAGS = $(FLAG) +z -q -n +w1 -Ae -z
122LDFLAGS = -b +vallcompatwarnings
123SHARED_FLAGS = $(LDFLAGS) +s -B symblic
124ARFLAGS =
125
126 ifeq ($(OS_DEF), hp)
127 CFLAGS += +DAportable
128 EXT_SHARED = sl
129 endif
130
131 ifeq ($(OS_DEF), hp64)
132 CFLAGS += +DA2.0W
133 EXT_SHARED = sl
134 endif
135
136 ifeq ($(OS_DEF), hp_ia)
137 endif
138
139 ifeq ($(OS_DEF), hp_ia64)
140 CFLAGS += +DD64
141 endif
142endif
143
144ifeq ($(OS_DEF), $(filter $(OS_DEF),linux linux_x86_64 linux_ppc64))
145CC = gcc
146LD = gcc
147AR = ar
148CDEFS = $(DEFS) -D_LINUX -D_REENTRANT
149CFLAGS = $(FLAG) -m$(VER) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
150LDFLAGS = -m$(VER) -Wl,-Bsymbolic
151SHARED_FLAGS = $(LDFLAGS) -shared
152ARFLAGS = rc
153endif
Note: See TracBrowser for help on using the repository browser.