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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2