1 karl 1.42 #//%2006////////////////////////////////////////////////////////////////////////
|
2 martin 1.35 #//
3 #// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
4 #// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
5 #// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
6 #// IBM Corp.; EMC Corporation, The Open Group.
7 #// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
8 #// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
9 #// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
10 #// EMC Corporation; VERITAS Software Corporation; The Open Group.
|
11 karl 1.42 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 #// EMC Corporation; Symantec Corporation; The Open Group.
|
13 martin 1.35 #//
14 #// Permission is hereby granted, free of charge, to any person obtaining a copy
15 #// of this software and associated documentation files (the "Software"), to
16 #// deal in the Software without restriction, including without limitation the
17 #// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18 #// sell copies of the Software, and to permit persons to whom the Software is
19 #// furnished to do so, subject to the following conditions:
20 #//
21 #// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
22 #// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
23 #// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
24 #// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
25 #// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
26 #// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
27 #// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 #//
30 #//==============================================================================
|
31 kumpf 1.7 # Configuration options for Pegasus on all architectures running Linux
32
33 include $(ROOT)/mak/config-unix.mak
34
35 PEGASUS_PLATFORM_LINUX_GENERIC_GNU = 1
36 DEFINES += -DPEGASUS_PLATFORM_LINUX_GENERIC_GNU
37 DEFINES += -DPEGASUS_PLATFORM_$(PEGASUS_PLATFORM)
38
|
39 jim.wunderlich 1.38 #########################################################################
40 ##
41 ## Platform specific compile options controlled by environment variables
42 ## are set here.
43 ##
44 #########################################################################
45
46
47 # Enable OOP by default if preference not already set in the environment
48 #
|
49 jim.wunderlich 1.39 ifndef PEGASUS_DEFAULT_ENABLE_OOP
50 PEGASUS_DEFAULT_ENABLE_OOP = true
|
51 jim.wunderlich 1.38 endif
52
53
|
54 konrad.r 1.27 # Enable CMPI by default.
55 #
|
56 denise.eckstein 1.45 ifndef PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER
|
57 denise.eckstein 1.46 PEGASUS_ENABLE_CMPI_PROVIDER_MANAGER=true
|
58 denise.eckstein 1.45 endif
|
59 konrad.r 1.27
|
60 jim.wunderlich 1.38 #########################################################################
61
|
62 kumpf 1.7 OS = linux
63
64 COMPILER = gnu
65
66 PLATFORM_VERSION_SUPPORTED = yes
67
|
68 konrad.r 1.17 ifndef CXX
|
69 kumpf 1.7 CXX = g++
|
70 konrad.r 1.17 endif
|
71 kumpf 1.7
72 SH = sh
73
|
74 david.dillard 1.30 YACC = bison
|
75 kumpf 1.7
|
76 jim.wunderlich 1.32 RM = rm -f
77
78 DIFF = diff
79
80 SORT = sort
81
|
82 kumpf 1.7 COPY = cp
83
84 MOVE = mv
85
|
86 konrad.r 1.15 MKDIRHIER = mkdir -p
87
|
88 kumpf 1.7 PEGASUS_SUPPORTS_DYNLIB = yes
89
90 MAJOR_VERSION_NUMBER = 1
91
92 LIB_SUFFIX = .so.$(MAJOR_VERSION_NUMBER)
93
|
94 kumpf 1.11 DEFINES += -DPEGASUS_USE_SYSLOGS
95
|
96 kumpf 1.7 DEFINES += -DPEGASUS_HAS_SIGNALS
97
|
98 mike 1.49 SYS_LIBS = -ldl -lpthread -lcrypt
|
99 kumpf 1.7
100 # PAM support
101 ifdef PEGASUS_PAM_AUTHENTICATION
102 ifeq ($(HPUX_IA64_VERSION), yes)
103 SYS_LIBS += -L$(PAMLIB_HOME) -lpam
104 else
105 SYS_LIBS += -lpam
106 endif
107
108 ## The following flags need to be set or unset
109 ## to compile-in the code required for PAM authentication
110 ## and compile-out the code that uses the password file.
111
112 DEFINES += -DPEGASUS_PAM_AUTHENTICATION -DPEGASUS_NO_PASSWORDFILE
113
114 endif
115
|
116 mike 1.49 FLAGS += -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT
117
118 ##==============================================================================
119 ##
120 ## The DYNAMIC_FLAGS variable defines linker flags that only apply to shared
121 ## libraries.
122 ##
123 ##==============================================================================
124 DYNAMIC_FLAGS += -fPIC
|
125 kumpf 1.7
|
126 aruran.ms 1.36 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
|
127 mike 1.43 FLAGS += -g
|
128 kumpf 1.7 else
|
129 mike 1.43 FLAGS += -s
130 #
131 # The -fno-enforce-eh-specs is not available in 2.9.5 and it probably
132 # appeared in the 3.0 series of compilers.
133 #
134 ifeq ($(shell expr $(GCC_VERSION) '>=' 3.0), 1)
135 EXTRA_CXX_FLAGS += -fno-enforce-eh-specs
136 endif
|
137 karl 1.26 ifdef PEGASUS_OPTIMIZE_FOR_SIZE
138 FLAGS += -Os
139 else
140 FLAGS += -O2
141 endif
|
142 kumpf 1.7 endif
143
|
144 w.otsuka 1.41 FLAGS += $(CXX_MACHINE_OPTIONS)
145
|
146 dave.sudlik 1.44 ifdef PEGASUS_ENABLE_GCOV
147 FLAGS += -ftest-coverage -fprofile-arcs
148 SYS_LIBS += -lgcc -lgcov
149 EXTRA_LIBRARIES += -lgcc -lgcov
150 endif
151
|
152 kumpf 1.7 ifndef PEGASUS_USE_MU_DEPEND
153 PEGASUS_HAS_MAKEDEPEND = yes
154 endif
155
156 # l10n
157 ifdef PEGASUS_HAS_MESSAGES
158 DEFINES += -DPEGASUS_HAS_MESSAGES
159 ifdef ICU_ROOT
|
160 h.sterling 1.34 MSG_COMPILE = genrb
161 MSG_FLAGS =
162 MSG_SOURCE_EXT = .txt
163 MSG_COMPILE_EXT = .res
164 CNV_ROOT_CMD = cnv2rootbundle
|
165 kumpf 1.7
166 ##################################
167 ##
168 ## ICU_NO_UPPERCASE_ROOT if set, specifies NOT to uppercase the root resource bundle,
|
169 w.white 1.18 ## default is to uppercase the root resource bundle##
|
170 kumpf 1.7 ##################################
171
172 ifdef ICU_NO_UPPERCASE_ROOT
173 CNV_ROOT_FLAGS =
174 else
175 CNV_ROOT_FLAGS = -u
176 endif
177
178 ####################################
179 ##
180 ## ICU_ROOT_BUNDLE_LANG if set, specifies the language that the root resource bundle will be generated from
181 ## defaults to _en if not set. if set, for any directory containing resource bundles,
182 ## there must exist a file name: package(the value of ICU_ROOT_BUNDLE_LANG).txt or the make messages target will fail
183 ##
184 ####################################
185
186 ifdef ICU_ROOT_BUNDLE_LANG
187 MSG_ROOT_SOURCE = $(ICU_ROOT_BUNDLE_LANG)
188 else
189 MSG_ROOT_SOURCE = _en
190 endif
191 kumpf 1.7
|
192 ba.patil 1.24 SYS_INCLUDES += -I${ICU_ROOT}/source/common -I${ICU_ROOT}/source/i18n
|
193 kumpf 1.7 DEFINES += -DPEGASUS_HAS_ICU
|
194 h.sterling 1.31 EXTRA_LIBRARIES += -L$(ICU_INSTALL)/lib -licuuc -licui18n -licudata
|
195 kumpf 1.7 endif
196 endif
|
197 konrad.r 1.15
198 ####################################
199 ##
200 ## If PEGASUS_LSB is set, set the rest of the variables.
201 ##
202 ####################################
203
204 ifdef PEGASUS_LSB
|
205 konrad.r 1.17 SYS_INCLUDES += -I/usr/include -I/usr/include/c++ -I/opt/lsbdev-base/include/c++ -I/opt/lsbdev-base/include/
|
206 konrad.r 1.15 FLAGS += -DPEGASUS_OS_LSB
207 endif
208
|
209 mike 1.48 ##==============================================================================
210 ##
211 ## Set the default visibility symbol to hidden for shared libraries. This
212 ## feature is only available in GCC 4.0 and later.
213 ##
214 ##==============================================================================
215
216 ifeq ($(shell expr $(GCC_VERSION) '>=' 4.0), 1)
217 FLAGS += -fvisibility=hidden
218 endif
219
|
220 w.otsuka 1.47 ifndef PEGASUS_ARCH_LIB
221 ifeq ($(PEGASUS_PLATFORM),LINUX_X86_64_GNU)
222 PEGASUS_ARCH_LIB = lib64
223 else
224 PEGASUS_ARCH_LIB = lib
225 endif
226 endif
227 DEFINES += -DPEGASUS_ARCH_LIB=\"$(PEGASUS_ARCH_LIB)\"
|