Diff for /embedaddon/libiconv/build-aux/install-reloc between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2012/05/29 09:29:44 version 1.1.1.3, 2021/03/17 13:38:46
Line 1 Line 1
 #!/bin/sh  #!/bin/sh
 # install-reloc - install a program including a relocating wrapper  # install-reloc - install a program including a relocating wrapper
# Copyright (C) 2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.# Copyright (C) 2003-2019 Free Software Foundation, Inc.
 # Written by Bruno Haible <bruno@clisp.org>, 2003.  # Written by Bruno Haible <bruno@clisp.org>, 2003.
 #  #
 # This program is free software: you can redistribute it and/or modify  # This program is free software: you can redistribute it and/or modify
Line 14 Line 14
 # GNU General Public License for more details.  # GNU General Public License for more details.
 #  #
 # You should have received a copy of the GNU General Public License  # You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.# along with this program.  If not, see <https://www.gnu.org/licenses/>.
   
# Usage:# Usage 1:
#   install-reloc library_path_var library_path_value prefix destdir \#   install-reloc -- library_path_var library_path_value prefix destdir \
#                 compile_command srcdir builddir config_h_dir exeext \#                    compile_command srcdir builddir config_h_dir exeext \
#                 strip_command \#                    strip_command \
#                 install_command... destprog#                    install_command... destprog
 # where  # where
 #   - library_path_var is the platform dependent runtime library path variable  #   - library_path_var is the platform dependent runtime library path variable
 #   - library_path_value is a colon separated list of directories that contain  #   - library_path_value is a colon separated list of directories that contain
Line 39 Line 39
 #     stripping is desired  #     stripping is desired
 #   - install_command is the install command line, excluding the final destprog  #   - install_command is the install command line, excluding the final destprog
 #   - destprog is the destination program name  #   - destprog is the destination program name
   # Usage 2:
   #   env RELOC_LIBRARY_PATH_VAR=library_path_var \
   #       RELOC_LIBRARY_PATH_VALUE=library_path_value \
   #       RELOC_PREFIX=prefix \
   #       RELOC_DESTDIR=destdir \
   #       RELOC_COMPILE_COMMAND=compile_command \
   #       RELOC_SRCDIR=srcdir \
   #       RELOC_BUILDDIR=builddir \
   #       RELOC_CONFIG_H_DIR=config_h_dir \
   #       RELOC_EXEEXT=exeext \
   #       RELOC_STRIP_PROG=strip_command \
   #       RELOC_INSTALL_PROG=install_command... \
   #   install-reloc prog1 ... destprog
   #   where destprog is either the destination program name (when only one program
   #   is specified) or the destination directory for all programs.
 # install-reloc renames destprog to destprog.bin and installs a relocating  # install-reloc renames destprog to destprog.bin and installs a relocating
 # wrapper in the place of destprog.  # wrapper in the place of destprog.
   
 progname=$0  progname=$0
   
if test $# -eq 2; thenif test $# -ge 12 && test "x$1" = "x--"; then
  # Get arguments from environment variables.  # Get fixed position arguments.
  library_path_var=$RELOC_LIBRARY_PATH_VAR  shift
  library_path_value=$RELOC_LIBRARY_PATH_VALUE  library_path_var=$1
  prefix=$RELOC_PREFIX  library_path_value=$2
  destdir=$RELOC_DESTDIR  prefix=$3
  compile_command=$RELOC_COMPILE_COMMAND  destdir=$4
  srcdir=$RELOC_SRCDIR  shift
  builddir=$RELOC_BUILDDIR  shift
  config_h_dir=$RELOC_CONFIG_H_DIR  shift
  exeext=$RELOC_EXEEXT  shift
  strip_prog=$RELOC_STRIP_PROG  compile_command=$1
  install_prog=$RELOC_INSTALL_PROG # including the "-c" option  srcdir=$2
   builddir=$3
   config_h_dir=$4
   exeext=$5
   shift
   shift
   shift
   shift
   shift
   strip_prog=$1
   shift
   install_prog=$1 # maybe not including the "-c" option
   shift
 else  else
  if test $# -ge 11; then  if test $# -ge 2; then
    # Get fixed position arguments.    # Get arguments from environment variables.
    library_path_var=$1    library_path_var=$RELOC_LIBRARY_PATH_VAR
    library_path_value=$2    library_path_value=$RELOC_LIBRARY_PATH_VALUE
    prefix=$3    prefix=$RELOC_PREFIX
    destdir=$4    destdir=$RELOC_DESTDIR
    shift    compile_command=$RELOC_COMPILE_COMMAND
    shift    srcdir=$RELOC_SRCDIR
    shift    builddir=$RELOC_BUILDDIR
    shift    config_h_dir=$RELOC_CONFIG_H_DIR
    compile_command=$1    exeext=$RELOC_EXEEXT
    srcdir=$2    strip_prog=$RELOC_STRIP_PROG
    builddir=$3    install_prog=$RELOC_INSTALL_PROG # including the "-c" option
    config_h_dir=$4 
    exeext=$5 
    shift 
    shift 
    shift 
    shift 
    shift 
    strip_prog=$1 
    shift 
    install_prog=$1 # maybe not including the "-c" option 
    shift 
   else    else
    echo "Usage: $0 library_path_var library_path_value prefix destdir" \    echo "Usage: $0 -- library_path_var library_path_value prefix destdir" \
          "compile_command srcdir builddir config_h_dir exeext" \           "compile_command srcdir builddir config_h_dir exeext" \
          "strip_command" \           "strip_command" \
          "install_command... destprog" 1>&2           "install_command... destprog" 1>&2
Line 97  for arg Line 113  for arg
 do  do
   destprog=$arg    destprog=$arg
 done  done
# Remove trailing $exeext, if present.# Determine whether destprog is a program name or a directory name.
 if test -d "$destprog"; then
   sed_remove_trailing_slashes='s|//*$||'
   destprog_directory=`echo "$destprog" | sed -e "$sed_remove_trailing_slashes"`
   if test -z "$destprog_directory"; then
     destprog_directory='/'
   fi
 else
   destprog_directory=
 fi
 # Prepare for remove trailing $exeext, if present.
 if test -n "$exeext"; then  if test -n "$exeext"; then
   sed_quote='s,\.,\\.,g'    sed_quote='s,\.,\\.,g'
   sed_remove_exeext='s|'`echo "$exeext" | sed -e "$sed_quote"`'$||'    sed_remove_exeext='s|'`echo "$exeext" | sed -e "$sed_quote"`'$||'
   destprog=`echo "$destprog" | sed -e "$sed_remove_exeext"`  
 fi  fi
   if test -z "$destprog_directory"; then
     # Remove trailing $exeext, if present.
     if test -n "$exeext"; then
       destprog=`echo "$destprog" | sed -e "$sed_remove_exeext"`
     fi
   fi
   
 # Outputs a command and runs it.  # Outputs a command and runs it.
 func_verbose ()  func_verbose ()
 {  {
  echo "$@"  # Make it easy to copy&paste the printed command into a shell in most cases,
   # by escaping '\\', '"', and '$'. This is not perfect, just good enough.
   echo "$@" | sed -e 's/\([\\"$]\)/\\\1/g'
   "$@"    "$@"
 }  }
   
 # Run install_command.  # Run install_command.
 func_verbose $install_prog "$@" || exit $?  func_verbose $install_prog "$@" || exit $?
   
   # Iterate over all destination program names.
   # func_iterate f
   # applies f to each destination program names, after setting destprog.
   sed_basename_of_file='s|^.*/||'
   func_iterate ()
   {
     if test -n "$destprog_directory"; then
       prev_arg=
       for arg
       do
         if test -n "prev_arg"; then
           destprog="$destprog_directory"/`echo "$prev_arg" | sed -e "$sed_basename_of_file"`
           $1
         fi
         prev_arg="$arg"
       done
     else
       $1
     fi
   }
   
 # Run strip_command.  # Run strip_command.
test "$strip_prog" = ':' || func_verbose "$strip_prog" "$destprog$exeext" || exit $?func_strip ()
 {
   # Remove trailing $exeext, if present.
   if test -n "$exeext"; then
     destprog=`echo "$destprog" | sed -e "$sed_remove_exeext"`
   fi
   func_verbose "$strip_prog" "$destprog$exeext" || exit $?
 }
 if test "$strip_prog" != ':'; then
   func_iterate func_strip
 fi
   
 # If the platform doesn't support LD_LIBRARY_PATH or similar, we cannot build  # If the platform doesn't support LD_LIBRARY_PATH or similar, we cannot build
 # a wrapper.  # a wrapper.
Line 138  IFS="$save_IFS" Line 202  IFS="$save_IFS"
 test -n "$libdirs" || exit 0  test -n "$libdirs" || exit 0
   
 # Determine installdir from destprog, removing a leading destdir if present.  # Determine installdir from destprog, removing a leading destdir if present.
installdir=`echo "$destprog" | sed -e 's,/[^/]*$,,'`if test -n "$destprog_directory"; then
   installdir="$destprog_directory"
 else
   installdir=`echo "$destprog" | sed -e 's,/[^/]*$,,'`
 fi
 if test -n "$destdir"; then  if test -n "$destdir"; then
   sed_quote='s,\([|.\*^$[]\),\\\1,g'    sed_quote='s,\([|.\*^$[]\),\\\1,g'
   sed_remove_destdir='s|^'`echo "$destdir" | sed -e "$sed_quote"`'||'    sed_remove_destdir='s|^'`echo "$destdir" | sed -e "$sed_quote"`'||'
   installdir=`echo "$installdir" | sed -e "$sed_remove_destdir"`    installdir=`echo "$installdir" | sed -e "$sed_remove_destdir"`
 fi  fi
   
# Compile wrapper.# Compile and install wrapper.
func_verbose $compile_command \func_create_wrapper ()
             -I"$builddir" -I"$srcdir" -I"$config_h_dir" \{
             -DHAVE_CONFIG_H -DIN_RELOCWRAPPER -DNO_XMALLOC \  # Remove trailing $exeext, if present.
             -D"INSTALLPREFIX=\"$prefix\"" -D"INSTALLDIR=\"$installdir\"" \  if test -n "$exeext"; then
             -D"LIBPATHVAR=\"$library_path_var\"" -D"LIBDIRS=$libdirs" \    destprog=`echo "$destprog" | sed -e "$sed_remove_exeext"`
             -D"EXEEXT=\"$exeext\"" \  fi
             "$srcdir"/relocwrapper.c \ 
             "$srcdir"/progname.c \ 
             "$srcdir"/progreloc.c \ 
             "$srcdir"/areadlink.c \ 
             "$srcdir"/careadlinkat.c \ 
             "$srcdir"/allocator.c \ 
             "$srcdir"/readlink.c \ 
             "$srcdir"/canonicalize-lgpl.c \ 
             "$srcdir"/malloca.c \ 
             "$srcdir"/relocatable.c \ 
             "$srcdir"/setenv.c \ 
             "$srcdir"/strerror.c \ 
             "$srcdir"/c-ctype.c \ 
             -o "$destprog.wrapper$exeext" 
rc=$? 
# Clean up object files left over in the current directory by the native C 
# compilers on Solaris, HP-UX, OSF/1, IRIX. 
rm -f relocwrapper.o \ 
      progname.o \ 
      progreloc.o \ 
      xreadlink.o \ 
      areadlink.o \ 
      careadlinkat.o \ 
      allocator.o \ 
      canonicalize-lgpl.o \ 
      malloca.o \ 
      relocatable.o \ 
      setenv.o \ 
      strerror.o \ 
      c-ctype.o 
test $rc = 0 || exit $? 
# Clean up debugging information left over by the native C compiler on MacOS X. 
rm -rf "$destprog.wrapper$exeext.dSYM" 
test $rc = 0 || exit $? 
   
# Strip wrapper.  # Compile wrapper.
test "$strip_prog" = ':' || func_verbose "$strip_prog" "$destprog.wrapper$exeext" || exit $?  func_verbose $compile_command \
                -I"$builddir" -I"$srcdir" -I"$config_h_dir" \
                -DHAVE_CONFIG_H -DIN_RELOCWRAPPER -DNO_XMALLOC \
                -D"INSTALLPREFIX=\"$prefix\"" -D"INSTALLDIR=\"$installdir\"" \
                -D"LIBPATHVAR=\"$library_path_var\"" -D"LIBDIRS=$libdirs" \
                -D"EXEEXT=\"$exeext\"" \
                "$srcdir"/relocwrapper.c \
                "$srcdir"/progname.c \
                "$srcdir"/progreloc.c \
                "$srcdir"/areadlink.c \
                "$srcdir"/careadlinkat.c \
                "$srcdir"/allocator.c \
                "$srcdir"/readlink.c \
                "$srcdir"/stat.c \
                "$srcdir"/canonicalize-lgpl.c \
                "$srcdir"/malloca.c \
                "$srcdir"/lstat.c \
                "$srcdir"/relocatable.c \
                "$srcdir"/setenv.c \
                "$srcdir"/c-ctype.c \
                -o "$destprog.wrapper$exeext"
   rc=$?
   # Clean up object files left over in the current directory by the native C
   # compilers on Solaris, HP-UX, OSF/1, IRIX.
   rm -f relocwrapper.o \
         progname.o \
         progreloc.o \
         areadlink.o \
         careadlinkat.o \
         allocator.o \
         readlink.o \
         stat.o \
         canonicalize-lgpl.o \
         malloca.o \
         lstat.o \
         relocatable.o \
         setenv.o \
         c-ctype.o
   test $rc = 0 || exit $?
   # Clean up debugging information left over by the native C compiler on MacOS X.
   rm -rf "$destprog.wrapper$exeext.dSYM"
   test $rc = 0 || exit $?
   
# Rename $destprog.wrapper -> $destprog -> $destprog.bin.  # Strip wrapper.
ln -f "$destprog$exeext" "$destprog.bin$exeext" \  test "$strip_prog" = ':' || func_verbose "$strip_prog" "$destprog.wrapper$exeext" || exit $?
  || { rm -f "$destprog.bin$exeext" \
       && cp -p "$destprog$exeext" "$destprog.bin$exeext"; } \  # Rename $destprog.wrapper -> $destprog -> $destprog.bin.
  || exit 1  ln -f "$destprog$exeext" "$destprog.bin$exeext" \
mv "$destprog.wrapper$exeext" "$destprog$exeext" || exit 1    || { rm -f "$destprog.bin$exeext" \
          && cp -p "$destprog$exeext" "$destprog.bin$exeext"; } \
     || exit 1
   mv "$destprog.wrapper$exeext" "$destprog$exeext" || exit 1
 }
 func_iterate func_create_wrapper
   
 exit 0  exit 0

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>