(file) Return to shared-library-unix.mak CVS log (file) (dir) Up to [Pegasus] / pegasus / mak

  1 mike  1.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 mike  1.1 #// 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           
 32           
 33           ##==============================================================================
 34           ##
 35           ## xlc compiler
 36           ##
 37           ##==============================================================================
 38           
 39           ifeq ($(COMPILER),xlc)
 40             LINK_COMMAND = xlC_r
 41             ifdef PEGASUS_USE_RELEASE_DIRS
 42               ifdef PEGASUS_HAS_MESSAGES
 43 mike  1.1       ifdef ICU_ROOT
 44                   ifdef ICU_INSTALL
 45                     LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)
 46                   endif
 47                 endif
 48               else
 49                 LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)
 50               endif
 51             else
 52               LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)
 53             endif
 54             LINK_OUT = -o
 55             ifeq ($(PEGASUS_SUPPORTS_DYNLIB), yes)
 56               LINK_COMMAND += -G
 57             endif
 58           endif
 59           
 60           ##==============================================================================
 61           ##
 62           ## acc compiler
 63           ##
 64 mike  1.1 ##==============================================================================
 65           
 66           ifeq ($(COMPILER),acc)
 67             LINK_COMMAND = $(CXX) -b -Wl,+hlib$(LIBRARY)$(LIB_SUFFIX)
 68             ifeq ($(PEGASUS_PLATFORM), HPUX_IA64_ACC)
 69 mateus.baur 1.2     LINK_COMMAND += +DD64 -mt -Wl,+rpathfirst
 70 mike        1.1   else
 71                     LINK_COMMAND += -Wl,-Bsymbolic
 72                   endif
 73                   ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
 74                     ifdef PEGASUS_USE_RELEASE_DIRS
 75                       LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/lib
 76                       ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)
 77                         LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/lib:/usr/lib -Wl,+cdp,$(PEGASUS_HOME)/lib:$(PEGASUS_DEST_LIB_DIR)
 78 mateus.baur 1.5         ifdef OPENSSL_HOME
 79                           LINK_COMMAND += -Wl,+cdp,$(OPENSSL_HOME)/lib:/usr/lib
 80                         endif
 81                         ifdef ICU_INSTALL
 82                           LINK_COMMAND += -Wl,+cdp,$(ICU_INSTALL)/lib:$(PEGASUS_DEST_LIB_DIR)
 83                         endif
 84 mike        1.1       endif
 85                     else
 86                         LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/lib
 87                     endif
 88                   endif
 89                   LINK_COMMAND += -Wl,+s
 90                   ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS 
 91                     LINK_COMMAND += -g
 92                   endif
 93                   ifdef PEGASUS_CCOVER
 94                     EXTRA_LIBRARIES += $(CCOVER_LIB)/libcov.a
 95                   endif
 96                   LINK_ARGUMENTS =
 97                   LINK_OUT = -o
 98                 endif
 99                 
100                 ##==============================================================================
101                 ##
102                 ## gnu compiler
103                 ##
104                 ##==============================================================================
105 mike        1.1 
106                 ifeq ($(COMPILER),gnu)
107 mike        1.3   ifneq ($(OS),darwin)
108 mike        1.1    ifdef PEGASUS_USE_RELEASE_DIRS
109                       LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
110                       LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)
111                    else
112                       LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
113                       LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
114                    endif
115                   else
116                     LINK_COMMAND = $(CXX) -dynamiclib
117                     LINK_ARGUMENTS = --helplib$(LIBRARY)$(LIB_SUFFIX) -ldl
118                   endif
119                   ifeq ($(PEGASUS_PLATFORM), SOLARIS_SPARC_GNU)
120                 	LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
121                   endif
122                   LINK_OUT = -o
123                 endif
124                 
125                 ##==============================================================================
126                 ##
127                 ## decxx compiler
128                 ##
129 mike        1.1 ##==============================================================================
130                 
131                 ifeq ($(COMPILER),deccxx)
132                   LINK_COMMAND = cxx -shared
133                   LINK_ARGUMENTS =
134                   LINK_OUT = -o
135                 endif
136                 
137                 ##==============================================================================
138                 ##
139                 ## ibm compiler
140                 ##
141                 ##==============================================================================
142                 
143                 ifeq ($(COMPILER),ibm)
144                   LINK_COMMAND = $(CXX) $(FLAGS)
145                   LINK_ARGUMENTS = -W "l,XPLINK,dll,EDIT=NO"
146                   LINK_OUT = -o
147 r.kieninger 1.7   ifdef PEGASUS_GENERATE_LISTINGS
148                     LINK_ARGUMENTS += -W"l,MAP,LIST"
149                   endif
150 mike        1.1 endif
151                 
152                 ##==============================================================================
153                 ##
154                 ## CC compiler
155                 ##
156                 ##==============================================================================
157                 
158                 ifeq ($(COMPILER),CC)
159                   LINK_COMMAND = CC
160                   LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so
161                   LINK_OUT = -o
162                   EXTRA_LIBRARIES += $(LIBRARY_SYS_LIBS)
163                 endif
164                 
165                 ##==============================================================================
166                 ##
167                 ## Link target
168                 ##
169                 ##==============================================================================
170                 
171 mike        1.1 ifdef EXTRA_LINK_FLAGS
172                   LINK_COMMAND += $(EXTRA_LINK_FLAGS)
173                 endif
174                 
175                 FULL_LIB=$(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX)
176                 
177                 ## Rule for all UNIX library builds
178                 $(FULL_LIB): $(LIB_DIR)/target $(OBJ_DIR)/target $(OBJECTS) $(FULL_LIBRARIES) \
179                     $(ERROR)
180                   ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
181                     ## To generate shared libraries which will cause dynamic
182                     ## search of other shared libraries which they reference,
183                     ## must specify the referenced shared libraries as "-l<name>"
184                     ## DYNAMIC_LIBRARIES must be defined appropriately in the
185                     ## libraries.mak file that includes this file
186                     ##
187                 
188                 
189                     ifeq ($(PEGASUS_PLATFORM),AIX_RS_IBMCXX)
190                 	rm -f $(FULL_LIB)
191                     endif
192 mike        1.1 
193                     ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM)
194 r.kieninger 1.7 	$(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS) > lib$(LIBRARY).llst
195                 	@ $(ZIP) $(FULL_LIB).llst.zip lib$(LIBRARY).llst
196 mike        1.1       ## z/OS needs side definition files to link executables to
197                       ## dynamic libraries, so we have to copy them into the lib_dir
198                 	touch $(ROOT)/src/$(DIR)/lib$(LIBRARY).x
199 r.kieninger 1.7 	mv $(ROOT)/src/$(DIR)/lib$(LIBRARY).x $(LIB_DIR)
200                     else
201                 
202                 	$(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
203                 
204 mike        1.1     endif
205                   else
206                 	$(LINK_COMMAND) $(LINK_ARGUMENTS) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(FULL_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
207                   endif
208                     ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
209 kumpf       1.6 	ln -f -s $(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(LIB_DIR)/lib$(LIBRARY).sl
210 mike        1.1     endif
211                     ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
212 kumpf       1.6 	ln -f -s $(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(LIB_DIR)/lib$(LIBRARY).so
213 mike        1.1     endif
214                     ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
215 kumpf       1.6 	ln -f -s $(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(LIB_DIR)/lib$(LIBRARY).so
216 mike        1.1     endif
217                 	$(TOUCH) $(FULL_LIB)
218                 	@ $(ECHO)
219                 
220                 ##==============================================================================
221                 ##
222                 ## clean-lib
223                 ##
224                 ##==============================================================================
225                 
226                 clean-lib: $(ERROR)
227                 	rm -f $(FULL_LIB)
228                 
229                 ##==============================================================================
230                 ##
231 kumpf       1.6 ## FILES_TO_CLEAN (files removed by "make clean")
232 mike        1.1 ##
233                 ##==============================================================================
234                 
235                 FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)
236 kumpf       1.6 ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
237                     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).sl
238                 endif
239                 ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
240                     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
241                 endif
242                 ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
243                     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
244                 endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2