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

Diff for /pegasus/mak/shared-library-unix.mak between version 1.8 and 1.22

version 1.8, 2007/08/01 02:17:12 version 1.22, 2012/07/30 09:23:48
Line 1 
Line 1 
 #//%2006////////////////////////////////////////////////////////////////////////  #//%LICENSE////////////////////////////////////////////////////////////////
 #// #//
 #// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development  #// Licensed to The Open Group (TOG) under one or more contributor license
 #// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.  #// agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
 #// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;  #// this work for additional information regarding copyright ownership.
 #// IBM Corp.; EMC Corporation, The Open Group.  #// Each contributor licenses this file to you under the OpenPegasus Open
 #// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;  #// Source License; you may not use this file except in compliance with the
 #// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.  #// License.
 #// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;  
 #// EMC Corporation; VERITAS Software Corporation; The Open Group.  
 #// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;  
 #// EMC Corporation; Symantec Corporation; The Open Group.  
 #// #//
 #// Permission is hereby granted, free of charge, to any person obtaining a copy  #// Permission is hereby granted, free of charge, to any person obtaining a
 #// of this software and associated documentation files (the "Software"), to  #// copy of this software and associated documentation files (the "Software"),
 #// deal in the Software without restriction, including without limitation the  #// to deal in the Software without restriction, including without limitation
 #// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  #// the rights to use, copy, modify, merge, publish, distribute, sublicense,
 #// sell copies of the Software, and to permit persons to whom the Software is  #// and/or sell copies of the Software, and to permit persons to whom the
 #// furnished to do so, subject to the following conditions:  #// Software is furnished to do so, subject to the following conditions:
 #// #//
 #// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN  #// The above copyright notice and this permission notice shall be included
 #// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED  #// in all copies or substantial portions of the Software.
 #// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  
 #// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR  
 #// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT  
 #// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN  
 #// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION  
 #// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  
 #// #//
 #//=============================================================================  #// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   #// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   #// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   #// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   #// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   #// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   #// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   #//
   #//////////////////////////////////////////////////////////////////////////
  
  
 ##============================================================================== ##==============================================================================
Line 40 
Line 38 
   LINK_COMMAND = xlC_r   LINK_COMMAND = xlC_r
   ifdef PEGASUS_USE_RELEASE_DIRS   ifdef PEGASUS_USE_RELEASE_DIRS
     ifdef PEGASUS_HAS_MESSAGES     ifdef PEGASUS_HAS_MESSAGES
       ifdef ICU_ROOT  
         ifdef ICU_INSTALL         ifdef ICU_INSTALL
           LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)          LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/lib:/lib:$(ICU_INSTALL)/lib -Wl,-bhalt:$(AIX_LD_HALT)
         endif  
       endif       endif
     else     else
       LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/linux/lib:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)        LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -blibpath:/usr/lib:/lib -Wl,-bhalt:$(AIX_LD_HALT)
     endif     endif
   else   else
     LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)     LINK_ARGUMENTS = -qmkshrobj=$(AIX_LIB_PRIORITY) -Wl,-bhalt:$(AIX_LD_HALT)
Line 71 
Line 67 
     LINK_COMMAND += -Wl,-Bsymbolic     LINK_COMMAND += -Wl,-Bsymbolic
   endif   endif
   ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)   ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
     ifdef PEGASUS_USE_RELEASE_DIRS      LINK_COMMAND += $(ACC_LINK_SEARCH_PATH)
       LINK_COMMAND += -Wl,+b$(PEGASUS_DEST_LIB_DIR):/usr/lib  
       ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_ACC)  
         LINK_COMMAND += -Wl,+cdp,$(PEGASUS_PLATFORM_SDKROOT)/usr/lib:/usr/lib -Wl,+cdp,$(PEGASUS_HOME)/lib:$(PEGASUS_DEST_LIB_DIR)  
         ifdef OPENSSL_HOME  
           LINK_COMMAND += -Wl,+cdp,$(OPENSSL_HOME)/lib:/usr/lib  
         endif  
         ifdef ICU_INSTALL  
           LINK_COMMAND += -Wl,+cdp,$(ICU_INSTALL)/lib:$(PEGASUS_DEST_LIB_DIR)  
         endif         endif
       endif  
     else  
         LINK_COMMAND += -Wl,+b$(LIB_DIR):/usr/lib  
     endif  
   endif  
   LINK_COMMAND += -Wl,+s  
   ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS   ifdef PEGASUS_USE_DEBUG_BUILD_OPTIONS
     LINK_COMMAND += -g      LINK_COMMAND += -g +noobjdebug
   endif   endif
   ifdef PEGASUS_CCOVER   ifdef PEGASUS_CCOVER
     EXTRA_LIBRARIES += $(CCOVER_LIB)/libcov.a     EXTRA_LIBRARIES += $(CCOVER_LIB)/libcov.a
Line 104 
Line 86 
 ##============================================================================== ##==============================================================================
  
 ifeq ($(COMPILER),gnu) ifeq ($(COMPILER),gnu)
     ifeq ($(HAS_ICU_DEPENDENCY),true)
       ifdef ICU_INSTALL
         ifeq ($(PEGASUS_PLATFORM), HPUX_PARISC_GNU)
           EXTRA_LINK_ARGUMENTS += -Xlinker $(ICU_INSTALL)/lib
         else
           EXTRA_LINK_ARGUMENTS += -Xlinker -rpath -Xlinker $(ICU_INSTALL)/lib
         endif
       endif
     endif
   ifneq ($(OS),darwin)   ifneq ($(OS),darwin)
    ifdef PEGASUS_USE_RELEASE_DIRS    ifdef PEGASUS_USE_RELEASE_DIRS
       LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)       LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
       LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(PEGASUS_DEST_LIB_DIR)        LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath \
             -Xlinker $(PEGASUS_DEST_LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
    else    else
       LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)       LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
       LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)       LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
Line 119 
Line 111 
   ifeq ($(PEGASUS_PLATFORM), SOLARIS_SPARC_GNU)   ifeq ($(PEGASUS_PLATFORM), SOLARIS_SPARC_GNU)
         LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)         LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX) -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
   endif   endif
     ifeq ($(OS), HPUX)
       LINK_COMMAND += -pthread -Wl,+rpathfirst
       LINK_ARGUMENTS = -Xlinker -L$(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
     endif
     ifeq ($(PEGASUS_SUPPORTS_DYNLIB),yes)
         LINK_COMMAND += $(GNU_LINK_SEARCH_PATH)
     endif
     LINK_OUT = -o
   endif
   ##==============================================================================
   ##
   ## llvm/clang compiler
   ## change for other platform like windows
   ##
   ##==============================================================================
   
   ifeq ($(COMPILER),clang)
     ifeq ($(HAS_ICU_DEPENDENCY),true)
       ifdef ICU_INSTALL
         EXTRA_LINK_ARGUMENTS += -Xlinker -rpath -Xlinker $(ICU_INSTALL)/lib
       endif
     endif
     ifdef PEGASUS_USE_RELEASE_DIRS
         LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
         LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath \
             -Xlinker $(PEGASUS_DEST_LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
     else
         LINK_COMMAND = $(CXX) -shared $(LINK_MACHINE_OPTIONS)
         LINK_ARGUMENTS = -Wl,-hlib$(LIBRARY)$(LIB_SUFFIX)  -Xlinker -rpath -Xlinker $(LIB_DIR) $(EXTRA_LINK_ARGUMENTS)
     endif
   LINK_OUT = -o   LINK_OUT = -o
 endif endif
  
Line 157 
Line 179 
  
 ifeq ($(COMPILER),CC) ifeq ($(COMPILER),CC)
   LINK_COMMAND = CC   LINK_COMMAND = CC
   LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so    LINK_ARGUMENTS = -G -KPIC -mt -h lib$(LIBRARY).so $(LINK_MACHINE_OPTIONS)
   LINK_OUT = -o   LINK_OUT = -o
   EXTRA_LIBRARIES += $(LIBRARY_SYS_LIBS)   EXTRA_LIBRARIES += $(LIBRARY_SYS_LIBS)
 endif endif
Line 194 
Line 216 
         rm -f $(FULL_LIB)         rm -f $(FULL_LIB)
     endif     endif
  
     ifeq ($(PEGASUS_PLATFORM),ZOS_ZSERIES_IBM)      ifeq ($(OS),zos)
         $(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS) > lib$(LIBRARY).llst          $(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(EXTRA_LIBRARIES) $(SYS_LIBS) $(DYNAMIC_LIBRARIES) > lib$(LIBRARY).llst
         @ $(ZIP) $(FULL_LIB).llst.zip lib$(LIBRARY).llst          @ $(ZIP) -a -m $(FULL_LIB).llst.zip lib$(LIBRARY).llst
       ## z/OS needs side definition files to link executables to       ## z/OS needs side definition files to link executables to
       ## dynamic libraries, so we have to copy them into the lib_dir       ## dynamic libraries, so we have to copy them into the lib_dir
         touch $(ROOT)/src/$(DIR)/lib$(LIBRARY).x          touch $(ROOT)/src/$(DIR)/lib$(LIBRARY)$(DYNLIB_SUFFIX)
         mv $(ROOT)/src/$(DIR)/lib$(LIBRARY).x $(LIB_DIR)          mv $(ROOT)/src/$(DIR)/lib$(LIBRARY)$(DYNLIB_SUFFIX) $(LIB_DIR)
     else     else
  
         $(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)         $(LINK_COMMAND) $(LINK_ARGUMENTS) -L$(LIB_DIR) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(DYNAMIC_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
Line 210 
Line 232 
         $(LINK_COMMAND) $(LINK_ARGUMENTS) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(FULL_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)         $(LINK_COMMAND) $(LINK_ARGUMENTS) $(LINK_OUT) $(FULL_LIB) $(OBJECTS) $(FULL_LIBRARIES) $(EXTRA_LIBRARIES) $(SYS_LIBS)
   endif   endif
     ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)     ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
         ln -f -s $(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(LIB_DIR)/lib$(LIBRARY).sl          $(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
               ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=sl
       endif
       ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_GNU)
           $(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
               ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=sl
     endif     endif
     ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)     ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
         ln -f -s $(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(LIB_DIR)/lib$(LIBRARY).so          $(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
               ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
       endif
       ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_GNU)
           $(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
          ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
     endif     endif
     ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU     ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
         ln -f -s $(LIB_DIR)/lib$(LIBRARY)$(LIB_SUFFIX) $(LIB_DIR)/lib$(LIBRARY).so          $(MAKE) --directory=$(LIB_DIR) -f $(PEGASUS_ROOT)/mak/library-unix.mak \
               ln LIBRARY=lib$(LIBRARY) SUFFIX=$(LIB_SUFFIX) PLATFORM_SUFFIX=so
     endif     endif
         $(TOUCH) $(FULL_LIB)         $(TOUCH) $(FULL_LIB)
         @ $(ECHO)         @ $(ECHO)
Line 232 
Line 265 
  
 ##============================================================================== ##==============================================================================
 ## ##
   ## ln (target to create soft link)
   ##
   ## This target is used to allow the current working directory to be set in a
   ## separate "make" execution, to avoid using fully-specified paths in the link
   ## command.
   ##
   ##==============================================================================
   
   ln:
           ln -f -s $(LIBRARY)$(SUFFIX) $(LIBRARY).$(PLATFORM_SUFFIX)
   
   ##==============================================================================
   ##
 ## FILES_TO_CLEAN (files removed by "make clean") ## FILES_TO_CLEAN (files removed by "make clean")
 ## ##
 ##============================================================================== ##==============================================================================
Line 240 
Line 286 
 ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC) ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_ACC)
     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).sl     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).sl
 endif endif
   ifeq ($(PEGASUS_PLATFORM),HPUX_PARISC_GNU)
       FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).sl
   endif
 ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC) ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_ACC)
     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
 endif endif
   ifeq ($(PEGASUS_PLATFORM),HPUX_IA64_GNU)
       FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
   endif
 ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU ifdef PEGASUS_PLATFORM_LINUX_GENERIC_GNU
     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so     FILES_TO_CLEAN += $(LIB_DIR)/lib$(LIBRARY).so
 endif endif


Legend:
Removed from v.1.8  
changed lines
  Added in v.1.22

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2