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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2