BUG#: 7069
[tpot/pegasus/.git] / src / Pegasus / Common / Makefile
1 #//%2006////////////////////////////////////////////////////////////////////////
2 #//
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 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
12 #// EMC Corporation; Symantec Corporation; The Open Group.
13 #//
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 ROOT = ../../..
32
33 DIR = Pegasus/Common
34
35 include $(ROOT)/mak/config.mak
36
37 ifdef PEGASUS_HAS_SSL
38     ifdef OPENSSL_HOME
39         SYS_INCLUDES += -I$(OPENSSL_HOME)/include
40      endif
41 endif
42 LOCAL_DEFINES = -DPEGASUS_COMMON_INTERNAL -DPEGASUS_INTERNALONLY
43
44 LIBRARY = pegcommon
45
46 ifeq ($(PEGASUS_PLATFORM),PASE_ISERIES_IBMCXX)
47   LIBRARIES = ILEWrapperUtils
48 endif
49
50 ##
51 ## CAUTION: the source files are divided evenly (more or less) between SOURCES1
52 ## and SOURCES2. This avoids a command line buffer overflow on Windows 2000
53 ## (see bug #2754 for details). As a precaution, limit SOURCES1 and SOURCES2
54 ## to 75 source files each.
55 ##
56
57 SOURCES1 = \
58     Executor.cpp \
59     CIMError.cpp \
60     PropertyAccessor.cpp \
61     Once.cpp \
62     Time.cpp \
63     Threads.cpp \
64     TSDKey.cpp \
65     Semaphore.cpp \
66     ReadWriteSem.cpp \
67     Condition.cpp \
68     AnonymousPipe.cpp \
69     Array.cpp \
70     AsyncOpNode.cpp \
71     AtomicInt.cpp \
72     AuthenticationInfoRep.cpp \
73     AutoStreamer.cpp \
74     Base64.cpp \
75     BinaryStreamer.cpp \
76     Buffer.cpp \
77     CharSet.cpp \
78     LanguageParser.cpp \
79     AcceptLanguageList.cpp \
80     ContentLanguageList.cpp \
81     LanguageTag.cpp \
82     MessageLoader.cpp \
83     Char16Inline.cpp \
84     CIMClass.cpp \
85     CIMClassRep.cpp \
86     CIMDateTime.cpp \
87     CIMFlavor.cpp \
88     CIMInstance.cpp \
89     CIMInstanceRep.cpp \
90     CIMMessage.cpp \
91     CIMMessageSerializer.cpp \
92     CIMMessageDeserializer.cpp \
93     CIMMethod.cpp \
94     CIMMethodRep.cpp \
95     CIMName.cpp \
96     CIMNameInline.cpp \
97     CIMObject.cpp \
98     CIMObjectRep.cpp \
99     CIMObjectPath.cpp \
100     Cimom.cpp \
101     CimomMessage.cpp \
102     CIMParameter.cpp \
103     CIMParameterRep.cpp \
104     CIMParamValue.cpp \
105     CIMParamValueRep.cpp \
106     CIMProperty.cpp \
107     CIMPropertyList.cpp \
108     CIMPropertyRep.cpp \
109     CIMQualifier.cpp \
110     CIMQualifierDecl.cpp \
111     CIMQualifierDeclRep.cpp \
112     CIMQualifierList.cpp \
113     CIMQualifierNames.cpp \
114     CIMQualifierRep.cpp \
115     CIMScope.cpp \
116     CIMStatusCode.cpp \
117     CIMType.cpp \
118     CIMValue.cpp \
119     CIMValueInline.cpp \
120     Config.cpp \
121     DeclContext.cpp \
122     Dir.cpp \
123     List.cpp \
124     AsyncQueue.cpp \
125     IDFactory.cpp \
126     AuditLogger.cpp \
127     Magic.cpp
128
129 SOURCES2 = \
130     DynamicLibrary.cpp \
131     Exception.cpp \
132     InternalException.cpp \
133     FileSystem.cpp \
134     Formatter.cpp \
135     HashTable.cpp \
136     HTTPAcceptor.cpp \
137     HTTPConnection.cpp \
138     HTTPConnector.cpp  \
139     HTTPMessage.cpp \
140     Indentor.cpp \
141     IndicationFormatter.cpp \
142     Logger.cpp \
143     Memory.cpp \
144     Message.cpp \
145     MessageQueue.cpp \
146     MessageQueueService.cpp \
147     ModuleController.cpp \
148     Monitor.cpp \
149     Mutex.cpp \
150     ObjectNormalizer.cpp \
151     OperationContext.cpp \
152     OperationContextInternal.cpp \
153     OptionManager.cpp \
154     Packer.cpp \
155     Pair.cpp \
156     QueryExpressionRep.cpp \
157     Resolver.cpp \
158     ResponseHandler.cpp \
159     ResponseHandlerRep.cpp \
160     Sharable.cpp \
161     Signal.cpp \
162     Socket.cpp \
163     SpinLock.cpp \
164     Stack.cpp \
165     StatisticalData.cpp \
166     Stopwatch.cpp \
167     String.cpp \
168     StringConversion.cpp \
169     StringInline.cpp \
170     System.cpp \
171     TimeValue.cpp \
172     SSLContext.cpp \
173     SSLContextManager.cpp \
174     TLS.cpp \
175     TraceFileHandler.cpp \
176     Tracer.cpp \
177     Thread.cpp \
178     ThreadPool.cpp \
179     Union.cpp \
180     XmlParser.cpp \
181     XmlReader.cpp \
182     XmlStreamer.cpp \
183     XmlWriter.cpp \
184     MofWriter.cpp \
185     CommonUTF.cpp \
186     Constants.cpp \
187     HostAddress.cpp \
188     HostLocator.cpp
189
190 ifeq ($(PEGASUS_PLATFORM),PASE_ISERIES_IBMCXX)
191   SOURCES2 += PaseCcsid.cpp
192 endif
193
194 SOURCES_SLP = Attribute.cpp \
195     CIMServerDescription.cpp
196
197 SOURCES_SECURITY_ZOS = MustStayCleanzOS.c
198 ifeq ($(PEGASUS_ENABLE_SLP),true)
199   SOURCES2 += $(SOURCES_SLP)
200 endif
201
202 ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
203   SOURCES2 += LoadAndClearWord_HPUX_PARISC_ACC.s
204 endif
205
206 SOURCES = $(SOURCES1) $(SOURCES2)
207
208 ifdef PEGASUS_HAS_SSL
209   ifeq ($(OS_TYPE),windows)
210     SYS_LIBS += /libpath:$(OPENSSL_HOME)/lib libeay32.lib ssleay32.lib
211   else
212     ifdef OPENSSL_HOME
213       EXTRA_LIBRARIES += -L$(OPENSSL_HOME)/lib
214     endif
215     EXTRA_LIBRARIES += -lssl -lcrypto
216   endif
217 endif
218
219 ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM)
220   ifdef PEGASUS_ZOS_SECURITY
221     SOURCES += $(SOURCES_SECURITY_ZOS)
222   endif
223   SOURCES2 += Audit_zOS_SMF.cpp
224 endif
225
226 ifeq ($(PEGASUS_PLATFORM),AIX_RS_IBMCXX)
227   AIX_LIB_PRIORITY=-20
228 endif
229
230 ifeq ($(PEGASUS_PLATFORM),PASE_ISERIES_IBMCXX)
231   AIX_LIB_PRIORITY=-20
232 endif
233
234 # Note that PEGASUS_WINDOWS_SDK_HOME only needs to be specified if using VC6.
235 ifeq ($(OS_TYPE),windows)
236   SYS_LIBS += ws2_32.lib advapi32.lib netapi32.lib
237   ifdef PEGASUS_WINDOWS_SDK_HOME
238     FLAGS += -DPEGASUS_WINDOWS_SDK_HOME
239     SYS_LIBS += /libpath:$(PEGASUS_WINDOWS_SDK_HOME)/lib secur32.lib
240   else
241      ifneq ($(CL_MAJOR_VERSION), 12)
242     SYS_LIBS += secur32.lib
243      endif
244   endif
245 endif
246
247 include $(ROOT)/mak/library.mak
248 # DO NOT DELETE