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

  1 martin 1.16 #//%LICENSE////////////////////////////////////////////////////////////////
  2 mike   1.1  #// 
  3 martin 1.16 #// Licensed to The Open Group (TOG) under one or more contributor license
  4             #// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5             #// this work for additional information regarding copyright ownership.
  6             #// Each contributor licenses this file to you under the OpenPegasus Open
  7             #// Source License; you may not use this file except in compliance with the
  8             #// License.
  9             #// 
 10             #// Permission is hereby granted, free of charge, to any person obtaining a
 11             #// copy of this software and associated documentation files (the "Software"),
 12             #// to deal in the Software without restriction, including without limitation
 13             #// the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14             #// and/or sell copies of the Software, and to permit persons to whom the
 15             #// Software is furnished to do so, subject to the following conditions:
 16             #// 
 17             #// The above copyright notice and this permission notice shall be included
 18             #// in all copies or substantial portions of the Software.
 19             #// 
 20             #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21             #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
 22             #// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23             #// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24 martin 1.16 #// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25             #// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26             #// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27             #// 
 28             #//////////////////////////////////////////////////////////////////////////
 29 mike   1.1  
 30             
 31             ##==============================================================================
 32             ##
 33             ## xlc compiler
 34             ##
 35             ##==============================================================================
 36             
 37             ifeq ($(COMPILER),xlc)
 38               LINK_COMMAND = xlC_r
 39               ifdef PEGASUS_USE_RELEASE_DIRS
 40                 ifdef PEGASUS_HAS_MESSAGES
 41 kumpf  1.10       ifdef ICU_INSTALL
 42 cheng.sp 1.15         LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)
 43 mike     1.1        endif
 44                   else
 45 cheng.sp 1.15       LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)
 46 mike     1.1      endif
 47                 else
 48                   LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)
 49                 endif
 50                 LINK_OUT = -o
 51                 ifeq ($(PEGASUS_SUPPORTS_DYNLIB), yes)
 52                   LINK_COMMAND += -G
 53                 endif
 54               endif
 55               
 56               ##==============================================================================
 57               ##
 58               ## acc compiler
 59               ##
 60               ##==============================================================================
 61               
 62               ifeq ($(COMPILER),acc)
 63                 LINK_COMMAND = $(CXX) -b -Wl,+hlib$(LIBRARY)$(LIB_SUFFIX)
 64                 ifeq ($(PEGASUS_PLATFORM), HPUX_IA64_ACC)
 65 mateus.baur 1.2      LINK_COMMAND += +DD64 -mt -Wl,+rpathfirst
 66 mike        1.1    else
 67                      LINK_COMMAND += -Wl,-Bsymbolic
 68                    endif
 69                    ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
 70                      ifdef PEGASUS_USE_RELEASE_DIRS
 71                        LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/lib
 72                        ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)
 73                          LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/lib:/usr/lib -Wl,+cdp,$(PEGASUS_HOME)/lib:$(PEGASUS_DEST_LIB_DIR)
 74 mateus.baur 1.5          ifdef OPENSSL_HOME
 75                            LINK_COMMAND += -Wl,+cdp,$(OPENSSL_HOME)/lib:/usr/lib
 76                          endif
 77                          ifdef ICU_INSTALL
 78                            LINK_COMMAND += -Wl,+cdp,$(ICU_INSTALL)/lib:$(PEGASUS_DEST_LIB_DIR)
 79                          endif
 80 mike        1.1        endif
 81                      else
 82                          LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/lib
 83                      endif
 84                    endif
 85                    LINK_COMMAND += -Wl,+s
 86                    ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS 
 87                      LINK_COMMAND += -g
 88                    endif
 89                    ifdef PEGASUS_CCOVER
 90                      EXTRA_LIBRARIES += $(CCOVER_LIB)/libcov.a
 91                    endif
 92                    LINK_ARGUMENTS =
 93                    LINK_OUT = -o
 94                  endif
 95                  
 96                  ##==============================================================================
 97                  ##
 98                  ## gnu compiler
 99                  ##
100                  ##==============================================================================
101 mike        1.1  
102                  ifeq ($(COMPILER),gnu)
103 mike        1.3    ifneq ($(OS),darwin)
104 mike        1.1     ifdef PEGASUS_USE_RELEASE_DIRS
105                        LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
106                        LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)
107                     else
108                        LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
109                        LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
110                     endif
111                    else
112                      LINK_COMMAND = $(CXX) -dynamiclib
113                      LINK_ARGUMENTS = --helplib$(LIBRARY)$(LIB_SUFFIX) -ldl
114                    endif
115                    ifeq ($(PEGASUS_PLATFORM), SOLARIS_SPARC_GNU)
116                  	LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
117                    endif
118                    LINK_OUT = -o
119                  endif
120                  
121                  ##==============================================================================
122                  ##
123                  ## decxx compiler
124                  ##
125 mike        1.1  ##==============================================================================
126                  
127                  ifeq ($(COMPILER),deccxx)
128                    LINK_COMMAND = cxx -shared
129                    LINK_ARGUMENTS =
130                    LINK_OUT = -o
131                  endif
132                  
133                  ##==============================================================================
134                  ##
135                  ## ibm compiler
136                  ##
137                  ##==============================================================================
138                  
139                  ifeq ($(COMPILER),ibm)
140                    LINK_COMMAND = $(CXX) $(FLAGS)
141                    LINK_ARGUMENTS = -W "l,XPLINK,dll,EDIT=NO"
142                    LINK_OUT = -o
143 r.kieninger 1.7    ifdef PEGASUS_GENERATE_LISTINGS
144                      LINK_ARGUMENTS += -W"l,MAP,LIST"
145                    endif
146 mike        1.1  endif
147                  
148                  ##==============================================================================
149                  ##
150                  ## CC compiler
151                  ##
152                  ##==============================================================================
153                  
154                  ifeq ($(COMPILER),CC)
155                    LINK_COMMAND = CC
156 karl        1.11   LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so $(LINK_MACHINE_OPTIONS)
157 mike        1.1    LINK_OUT = -o
158                    EXTRA_LIBRARIES += $(LIBRARY_SYS_LIBS)
159                  endif
160                  
161                  ##==============================================================================
162                  ##
163                  ## Link target
164                  ##
165                  ##==============================================================================
166                  
167                  ifdef EXTRA_LINK_FLAGS
168                    LINK_COMMAND += $(EXTRA_LINK_FLAGS)
169                  endif
170                  
171                  FULL_LIB=$(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX)
172                  
173                  ## Rule for all UNIX library builds
174                  $(FULL_LIB): $(LIB_DIR)/target $(OBJ_DIR)/target $(OBJECTS) $(FULL_LIBRARIES) \
175                      $(ERROR)
176                    ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
177                      ## To generate shared libraries which will cause dynamic
178 mike        1.1      ## search of other shared libraries which they reference,
179                      ## must specify the referenced shared libraries as "-l<name>"
180                      ## DYNAMIC_LIBRARIES must be defined appropriately in the
181                      ## libraries.mak file that includes this file
182                      ##
183                  
184                  
185                      ifeq ($(PEGASUS_PLATFORM),AIX_RS_IBMCXX)
186                  	rm -f $(FULL_LIB)
187                      endif
188                  
189 ouyang.jian 1.8      ifeq ($(PEGASUS_PLATFORM),PASE_ISERIES_IBMCXX)
190                  	rm -f $(FULL_LIB)
191                      endif
192                  
193 r.kieninger 1.13     ifeq ($(OS),zos)
194 marek       1.14 	$(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(EXTRA_LIBRARIES) $(SYS_LIBS) $(DYNAMIC_LIBRARIES) > lib$(LIBRARY).llst
195 r.kieninger 1.12 	@ $(ZIP) -a -m $(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 r.kieninger 1.13 	touch $(ROOT)/src/$(DIR)/lib$(LIBRARY)$(DYNLIB_SUFFIX)
199                  	mv $(ROOT)/src/$(DIR)/lib$(LIBRARY)$(DYNLIB_SUFFIX) $(LIB_DIR)
200 r.kieninger 1.7      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.9  	$(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
210                              ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=sl
211 mike        1.1      endif
212                      ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
213 kumpf       1.9  	$(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
214                              ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
215 mike        1.1      endif
216                      ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
217 kumpf       1.9  	$(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
218                              ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
219 mike        1.1      endif
220                  	$(TOUCH) $(FULL_LIB)
221                  	@ $(ECHO)
222                  
223                  ##==============================================================================
224                  ##
225                  ## clean-lib
226                  ##
227                  ##==============================================================================
228                  
229                  clean-lib: $(ERROR)
230                  	rm -f $(FULL_LIB)
231                  
232                  ##==============================================================================
233                  ##
234 kumpf       1.9  ## ln (target to create soft link)
235                  ##
236                  ## This target is used to allow the current working directory to be set in a
237                  ## separate "make" execution, to avoid using fully-specified paths in the link
238                  ## command.
239                  ##
240                  ##==============================================================================
241                  
242                  ln:
243                  	ln -f -s $(LIBRARY)$(SUFFIX) $(LIBRARY).$(PLATFORM_SUFFIX)
244                  
245                  ##==============================================================================
246                  ##
247 kumpf       1.6  ## FILES_TO_CLEAN (files removed by "make clean")
248 mike        1.1  ##
249                  ##==============================================================================
250                  
251                  FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)
252 kumpf       1.6  ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
253                      FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).sl
254                  endif
255                  ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
256                      FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
257                  endif
258                  ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
259                      FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
260                  endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2