You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2001/12/07 18:48:36 UTC

cvs commit: httpd-2.0/build instdso.sh special.mk

trawick     01/12/07 09:48:36

  Modified:    .        CHANGES
               build    special.mk
  Added:       build    instdso.sh
  Log:
  Do special install processing for Apache DSO modules on HP-UX, Tru64,
  and AIX so that we get mod_foo.so installed instead of the stuff that
  libtool installed.
  
  Revision  Changes    Path
  1.469     +6 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.468
  retrieving revision 1.469
  diff -u -r1.468 -r1.469
  --- CHANGES	2001/12/05 17:32:52	1.468
  +++ CHANGES	2001/12/07 17:48:36	1.469
  @@ -1,5 +1,11 @@
   Changes with Apache 2.0.30-dev
   
  +  *) Change make install processing of DSO modules to perform special
  +     handling on platforms where libtool doesn't install mod_foo.so.
  +     This fixes some wonkiness on HP-UX, Tru64, and AIX which
  +     prevented standard LoadModule statements from working.
  +     [Jeff Trawick]
  +
     *) Whenever mod_so is enabled (not just when there are DSOs for
        our modules), do whatever special magic is required for compiling/
        loading third-party modules.  This allows third-party DSOs to
  
  
  
  1.17      +1 -1      httpd-2.0/build/special.mk
  
  Index: special.mk
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/build/special.mk,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- special.mk	2001/10/16 17:51:11	1.16
  +++ special.mk	2001/12/07 17:48:36	1.17
  @@ -68,7 +68,7 @@
   	if [ "x$$has_mod_so" = "xhas_mod_so" ]; then \
   		list='$(shared)'; \
   		for i in $$list; do \
  -			$(SH_LIBTOOL) --mode=install cp $$i $(libexecdir); \
  +			$(top_builddir)/build/instdso.sh SH_LIBTOOL='$(SH_LIBTOOL)' $$i $(libexecdir); \
   		done; \
   	fi	
   
  
  
  
  1.1                  httpd-2.0/build/instdso.sh
  
  Index: instdso.sh
  ===================================================================
  #!/bin/sh
  #
  # instdso.sh - install Apache DSO modules
  #
  # usually this just passes through to libtool but on a few
  # platforms libtool doesn't install DSOs exactly like we'd
  # want so more effort is required
  
  if test "$#" != "3"; then
      echo "wrong number of arguments to instdso.sh"
      echo "Usage: instdso.sh SH_LIBTOOL-value dso-name path-to-modules"
      exit 1
  fi
  
  SH_LIBTOOL=`echo $1 | sed -e 's/^SH_LIBTOOL=//'`
  DSOARCHIVE=$2
  TARGETDIR=$3
  DSOBASE=`echo $DSOARCHIVE | sed -e 's/\.la$//'`
  TARGET_NAME="$DSOBASE.so"
  
  # special logic for systems where libtool doesn't install
  # the DSO exactly like we'd want
  
  SYS=`uname -s`
  case $SYS in
      AIX)
          # on AIX, shared libraries remain in storage even when
          # all processes using them have exited; standard practice
          # prior to installing a shared library is to rm -f first
          CMD="rm -f $TARGETDIR/$TARGET_NAME"
          echo $CMD
          $CMD || exit $?
          CMD="cp .libs/lib$DSOBASE.so.0 $TARGETDIR/$TARGET_NAME"
          echo $CMD
          $CMD || exit $?
          ;;
      HP-UX)
          CMD="cp .libs/$DSOBASE.sl $TARGETDIR/$TARGET_NAME"
          echo $CMD
          $CMD || exit $?
          ;;
      OSF1)
          CMD="cp .libs/lib$DSOBASE.so $TARGETDIR/$TARGET_NAME"
          echo $CMD
          $CMD || exit $?
          ;;
      *)
          CMD="$SH_LIBTOOL --mode=install cp $DSOARCHIVE $TARGETDIR"
          echo $CMD
          $CMD || exit $?
          ;;
  esac
  
  exit 0