(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 kumpf 1.10       ifdef ICU_INSTALL
 44 cheng.sp 1.10.6.2         LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)
 45 mike     1.1            endif
 46                       else
 47 cheng.sp 1.10.6.2       LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)
 48 mike     1.1          endif
 49                     else
 50                       LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)
 51                     endif
 52                     LINK_OUT = -o
 53                     ifeq ($(PEGASUS_SUPPORTS_DYNLIB), yes)
 54                       LINK_COMMAND += -G
 55                     endif
 56                   endif
 57                   
 58                   ##==============================================================================
 59                   ##
 60                   ## acc compiler
 61                   ##
 62                   ##==============================================================================
 63                   
 64                   ifeq ($(COMPILER),acc)
 65                     LINK_COMMAND = $(CXX) -b -Wl,+hlib$(LIBRARY)$(LIB_SUFFIX)
 66                     ifeq ($(PEGASUS_PLATFORM), HPUX_IA64_ACC)
 67 mateus.baur 1.2          LINK_COMMAND += +DD64 -mt -Wl,+rpathfirst
 68 mike        1.1        else
 69                          LINK_COMMAND += -Wl,-Bsymbolic
 70                        endif
 71                        ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
 72                          ifdef PEGASUS_USE_RELEASE_DIRS
 73                            LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/lib
 74                            ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)
 75                              LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/lib:/usr/lib -Wl,+cdp,$(PEGASUS_HOME)/lib:$(PEGASUS_DEST_LIB_DIR)
 76 mateus.baur 1.5              ifdef OPENSSL_HOME
 77                                LINK_COMMAND += -Wl,+cdp,$(OPENSSL_HOME)/lib:/usr/lib
 78                              endif
 79                              ifdef ICU_INSTALL
 80                                LINK_COMMAND += -Wl,+cdp,$(ICU_INSTALL)/lib:$(PEGASUS_DEST_LIB_DIR)
 81                              endif
 82 mike        1.1            endif
 83                          else
 84                              LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/lib
 85                          endif
 86                        endif
 87                        LINK_COMMAND += -Wl,+s
 88                        ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS 
 89                          LINK_COMMAND += -g
 90                        endif
 91                        ifdef PEGASUS_CCOVER
 92                          EXTRA_LIBRARIES += $(CCOVER_LIB)/libcov.a
 93                        endif
 94                        LINK_ARGUMENTS =
 95                        LINK_OUT = -o
 96                      endif
 97                      
 98                      ##==============================================================================
 99                      ##
100                      ## gnu compiler
101                      ##
102                      ##==============================================================================
103 mike        1.1      
104                      ifeq ($(COMPILER),gnu)
105 mike        1.3        ifneq ($(OS),darwin)
106 mike        1.1         ifdef PEGASUS_USE_RELEASE_DIRS
107                            LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
108                            LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)
109                         else
110                            LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
111                            LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
112                         endif
113                        else
114                          LINK_COMMAND = $(CXX) -dynamiclib
115                          LINK_ARGUMENTS = --helplib$(LIBRARY)$(LIB_SUFFIX) -ldl
116                        endif
117                        ifeq ($(PEGASUS_PLATFORM), SOLARIS_SPARC_GNU)
118                      	LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
119                        endif
120                        LINK_OUT = -o
121                      endif
122                      
123                      ##==============================================================================
124                      ##
125                      ## decxx compiler
126                      ##
127 mike        1.1      ##==============================================================================
128                      
129                      ifeq ($(COMPILER),deccxx)
130                        LINK_COMMAND = cxx -shared
131                        LINK_ARGUMENTS =
132                        LINK_OUT = -o
133                      endif
134                      
135                      ##==============================================================================
136                      ##
137                      ## ibm compiler
138                      ##
139                      ##==============================================================================
140                      
141                      ifeq ($(COMPILER),ibm)
142                        LINK_COMMAND = $(CXX) $(FLAGS)
143                        LINK_ARGUMENTS = -W "l,XPLINK,dll,EDIT=NO"
144                        LINK_OUT = -o
145 r.kieninger 1.7        ifdef PEGASUS_GENERATE_LISTINGS
146                          LINK_ARGUMENTS += -W"l,MAP,LIST"
147                        endif
148 mike        1.1      endif
149                      
150                      ##==============================================================================
151                      ##
152                      ## CC compiler
153                      ##
154                      ##==============================================================================
155                      
156                      ifeq ($(COMPILER),CC)
157                        LINK_COMMAND = CC
158 karl        1.10.6.1   LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so $(LINK_MACHINE_OPTIONS)
159 mike        1.1        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                      
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 mike        1.1          ## 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 ouyang.jian 1.8          ifeq ($(PEGASUS_PLATFORM),PASE_ISERIES_IBMCXX)
192                      	rm -f $(FULL_LIB)
193                          endif
194                      
195 mike        1.1          ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM)
196 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
197                      	@ $(ZIP) $(FULL_LIB).llst.zip lib$(LIBRARY).llst
198 mike        1.1            ## z/OS needs side definition files to link executables to
199                            ## dynamic libraries, so we have to copy them into the lib_dir
200                      	touch $(ROOT)/src/$(DIR)/lib$(LIBRARY).x
201 r.kieninger 1.7      	mv $(ROOT)/src/$(DIR)/lib$(LIBRARY).x $(LIB_DIR)
202                          else
203                      
204                      	$(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
205                      
206 mike        1.1          endif
207                        else
208                      	$(LINK_COMMAND) $(LINK_ARGUMENTS) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(FULL_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
209                        endif
210                          ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
211 kumpf       1.9      	$(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
212                                  ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=sl
213 mike        1.1          endif
214                          ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
215 kumpf       1.9      	$(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
216                                  ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
217 mike        1.1          endif
218                          ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
219 kumpf       1.9      	$(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
220                                  ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
221 mike        1.1          endif
222                      	$(TOUCH) $(FULL_LIB)
223                      	@ $(ECHO)
224                      
225                      ##==============================================================================
226                      ##
227                      ## clean-lib
228                      ##
229                      ##==============================================================================
230                      
231                      clean-lib: $(ERROR)
232                      	rm -f $(FULL_LIB)
233                      
234                      ##==============================================================================
235                      ##
236 kumpf       1.9      ## ln (target to create soft link)
237                      ##
238                      ## This target is used to allow the current working directory to be set in a
239                      ## separate "make" execution, to avoid using fully-specified paths in the link
240                      ## command.
241                      ##
242                      ##==============================================================================
243                      
244                      ln:
245                      	ln -f -s $(LIBRARY)$(SUFFIX) $(LIBRARY).$(PLATFORM_SUFFIX)
246                      
247                      ##==============================================================================
248                      ##
249 kumpf       1.6      ## FILES_TO_CLEAN (files removed by "make clean")
250 mike        1.1      ##
251                      ##==============================================================================
252                      
253                      FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)
254 kumpf       1.6      ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
255                          FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).sl
256                      endif
257                      ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
258                          FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
259                      endif
260                      ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
261                          FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
262                      endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2