(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               LINK_COMMAND += +DD64 -mt
 77             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 mike  1.1       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             LINK_OUT = -o
 99           endif
100           
101           ##==============================================================================
102           ##
103           ## gnu compiler
104           ##
105           ##==============================================================================
106 mike  1.1 
107           ifeq ($(COMPILER),gnu)
108             ifneq ($(PEGASUS_PLATFORM),DARWIN_PPC_GNU)
109              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 mike  1.1 ##
128           ## decxx compiler
129           ##
130           ##==============================================================================
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 mike  1.1 endif
149           
150           ##==============================================================================
151           ##
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 mike  1.1 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               ## 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 mike  1.1 
191           	$(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
192           
193               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 mike  1.1 	$(TOUCH) $(FULL_LIB)
212           	@ $(ECHO)
213           
214           ##==============================================================================
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 mike  1.1 FILES_TO_CLEAN = $(OBJECTS) $(FULL_LIB)

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2