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 denise.eckstein 1.53 SYS_LIBS += -lpam
|
103 kumpf 1.7
|
104 denise.eckstein 1.53 ## The following flags need to be set or unset
105 ## to compile-in the code required for PAM authentication
106 ## and compile-out the code that uses the password file.
|
107 kumpf 1.7
|
108 denise.eckstein 1.53 DEFINES += -DPEGASUS_PAM_AUTHENTICATION -DPEGASUS_NO_PASSWORDFILE
|
109 kumpf 1.7 endif
110
|
111 mike 1.49 FLAGS += -W -Wall -Wno-unused -D_GNU_SOURCE -DTHREAD_SAFE -D_REENTRANT
112
113 ##==============================================================================
114 ##
115 ## The DYNAMIC_FLAGS variable defines linker flags that only apply to shared
116 ## libraries.
117 ##
118 ##==============================================================================
119 DYNAMIC_FLAGS += -fPIC
|
120 kumpf 1.7
|
121 aruran.ms 1.36 ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
|
122 mike 1.43 FLAGS += -g
|
123 kumpf 1.7 else
|
124 mike 1.43 FLAGS += -s
125 #
126 # The -fno-enforce-eh-specs is not available in 2.9.5 and it probably
127 # appeared in the 3.0 series of compilers.
128 #
129 ifeq ($(shell expr $(GCC_VERSION) '>=' 3.0), 1)
130 EXTRA_CXX_FLAGS += -fno-enforce-eh-specs
131 endif
|
132 karl 1.26 ifdef PEGASUS_OPTIMIZE_FOR_SIZE
133 FLAGS += -Os
134 else
135 FLAGS += -O2
136 endif
|
137 kumpf 1.7 endif
138
|
139 w.otsuka 1.41 FLAGS += $(CXX_MACHINE_OPTIONS)
140
|
141 dave.sudlik 1.44 ifdef PEGASUS_ENABLE_GCOV
142 FLAGS += -ftest-coverage -fprofile-arcs
143 SYS_LIBS += -lgcc -lgcov
144 EXTRA_LIBRARIES += -lgcc -lgcov
145 endif
146
|
147 kumpf 1.7 ifndef PEGASUS_USE_MU_DEPEND
148 PEGASUS_HAS_MAKEDEPEND = yes
149 endif
150
151 # l10n
152 ifdef PEGASUS_HAS_MESSAGES
153 DEFINES += -DPEGASUS_HAS_MESSAGES
154 ifdef ICU_ROOT
|
155 h.sterling 1.34 MSG_COMPILE = genrb
156 MSG_FLAGS =
157 MSG_SOURCE_EXT = .txt
158 MSG_COMPILE_EXT = .res
159 CNV_ROOT_CMD = cnv2rootbundle
|
160 kumpf 1.7
161 ##################################
162 ##
163 ## ICU_NO_UPPERCASE_ROOT if set, specifies NOT to uppercase the root resource bundle,
|
164 w.white 1.18 ## default is to uppercase the root resource bundle##
|
165 kumpf 1.7 ##################################
166
167 ifdef ICU_NO_UPPERCASE_ROOT
168 CNV_ROOT_FLAGS =
169 else
170 CNV_ROOT_FLAGS = -u
171 endif
172
173 ####################################
174 ##
175 ## ICU_ROOT_BUNDLE_LANG if set, specifies the language that the root resource bundle will be generated from
176 ## defaults to _en if not set. if set, for any directory containing resource bundles,
177 ## there must exist a file name: package(the value of ICU_ROOT_BUNDLE_LANG).txt or the make messages target will fail
178 ##
179 ####################################
180
181 ifdef ICU_ROOT_BUNDLE_LANG
182 MSG_ROOT_SOURCE = $(ICU_ROOT_BUNDLE_LANG)
183 else
184 MSG_ROOT_SOURCE = _en
185 endif
186 kumpf 1.7
|
187 ba.patil 1.24 SYS_INCLUDES += -I${ICU_ROOT}/source/common -I${ICU_ROOT}/source/i18n
|
188 kumpf 1.7 DEFINES += -DPEGASUS_HAS_ICU
|
189 h.sterling 1.31 EXTRA_LIBRARIES += -L$(ICU_INSTALL)/lib -licuuc -licui18n -licudata
|
190 kumpf 1.7 endif
191 endif
|
192 konrad.r 1.15
|
193 mike 1.48 ##==============================================================================
194 ##
195 ## Set the default visibility symbol to hidden for shared libraries. This
196 ## feature is only available in GCC 4.0 and later.
197 ##
198 ##==============================================================================
199
200 ifeq ($(shell expr $(GCC_VERSION) '>=' 4.0), 1)
201 FLAGS += -fvisibility=hidden
202 endif
203
|
204 w.otsuka 1.47 ifndef PEGASUS_ARCH_LIB
205 ifeq ($(PEGASUS_PLATFORM),LINUX_X86_64_GNU)
206 PEGASUS_ARCH_LIB = lib64
207 else
208 PEGASUS_ARCH_LIB = lib
209 endif
210 endif
211 DEFINES += -DPEGASUS_ARCH_LIB=\"$(PEGASUS_ARCH_LIB)\"
|