ncurses 6.1 - patch 20190706
[ncurses.git] / misc / run_tic.in
index b228e45b7e7f66910f77a06440e15692adf0bf56..6d019decd9d51b63f0cfff7b2e875f817bbfd21a 100644 (file)
@@ -1,6 +1,7 @@
 #!@SHELL@
 #!@SHELL@
+# $Id: run_tic.in,v 1.36 2019/06/30 16:29:23 tom Exp $
 ##############################################################################
 ##############################################################################
-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2017,2019 Free Software Foundation, Inc.                #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
 # authorization.                                                             #
 ##############################################################################
 #
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey 1996,2000
+# Author: Thomas E. Dickey 1996-on
 #
 #
-# $Id: run_tic.in,v 1.20 2005/09/17 23:13:49 tom Exp $
 # This script is used to install terminfo.src using tic.  We use a script
 # because the path checking is too awkward to do in a makefile.
 #
 # Assumes:
 #      The leaf directory names (lib, tabset, terminfo)
 #
 # This script is used to install terminfo.src using tic.  We use a script
 # because the path checking is too awkward to do in a makefile.
 #
 # Assumes:
 #      The leaf directory names (lib, tabset, terminfo)
 #
-echo '** Building terminfo database, please wait...'
+echo "** Building terminfo database, please wait..."
 #
 # The script is designed to be run from the misc/Makefile as
 #      make install.data
 
 #
 # The script is designed to be run from the misc/Makefile as
 #      make install.data
 
-: ${suffix=@PROG_EXT@}
-: ${DESTDIR=@DESTDIR@}
-: ${prefix=@prefix@}
-: ${exec_prefix=@exec_prefix@}
-: ${bindir=@bindir@}
-: ${top_srcdir=@top_srcdir@}
-: ${srcdir=@srcdir@}
-: ${datadir=@datadir@}
-: ${ticdir=@TERMINFO@}
-: ${source=@TERMINFO_SRC@}
-: ${LN_S="@LN_S@"}
-: ${THAT_CC=cc}
-: ${THIS_CC=cc}
-: ${ext_funcs=@NCURSES_EXT_FUNCS@}
+: ${suffix:=@EXEEXT@}
+: ${DESTDIR:=@DESTDIR@}
+: ${prefix:=@prefix@}
+: ${exec_prefix:=@exec_prefix@}
+: ${bindir:=@bindir@}
+: ${top_srcdir:=@top_srcdir@}
+: ${srcdir:=@srcdir@}
+: ${datarootdir:=@datarootdir@}
+: ${datadir:=@datadir@}
+: ${TIC_PATH:=@TIC@}
+: ${ticdir:=@TERMINFO@}
+: ${source:=@TERMINFO_SRC@}
+: ${LN_S:="@LN_S@"}
+: ${cross_compiling:=no}
+: ${ext_funcs:=@NCURSES_EXT_FUNCS@}
 
 test -z "${DESTDIR}" && DESTDIR=
 
 # Allow tic to run either from the install-path, or from the build-directory.
 # Do not do this if we appear to be cross-compiling.  In that case, we rely
 # on the host's copy of tic to compile the terminfo database.
 
 test -z "${DESTDIR}" && DESTDIR=
 
 # Allow tic to run either from the install-path, or from the build-directory.
 # Do not do this if we appear to be cross-compiling.  In that case, we rely
 # on the host's copy of tic to compile the terminfo database.
-if test "$THAT_CC" = "$THIS_CC" ; then
-case "$PATH" in
-:*) PATH=../progs:../lib:${DESTDIR}$bindir$PATH ;;
-*) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;;
-esac
-export PATH
-SHLIB="sh $srcdir/shlib"
+if test "x$cross_compiling" = "xno"
+then
+       if test -f ../progs/tic$suffix
+       then
+               case "$PATH" in
+               \@PATH_SEPARATOR@*)
+                       PATH="../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir$PATH"
+                       ;;
+               *)
+                       PATH="../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir@PATH_SEPARATOR@$PATH"
+                       ;;
+               esac
+               export PATH
+               if test @DFT_LWR_MODEL@ = shared
+               then
+                       SHLIB="sh $srcdir/shlib"
+                       TIC_PATH="$SHLIB tic"
+               else
+                       TIC_PATH="tic"
+               fi
+       elif test "$TIC_PATH" = unknown
+       then
+               echo "? no tic program found"
+               exit 1
+       fi
 else
 else
-# Cross-compiling, so don't set PATH or run shlib.
-SHLIB=
-# reset $suffix, since it applies to the target, not the build platform.
-suffix=
+       # Cross-compiling, so don't set PATH or run shlib.
+       SHLIB=
+       # reset $suffix, since it applies to the target, not the build platform.
+       suffix=
 fi
 
 
 fi
 
 
@@ -86,21 +105,36 @@ SHLIB_HOST=@host_os@
 export SHLIB_HOST
 
 # don't use user's TERMINFO variable
 export SHLIB_HOST
 
 # don't use user's TERMINFO variable
-TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
+unset TERMINFO_DIRS
+TERMINFO="${DESTDIR}$ticdir" ; export TERMINFO
 umask 022
 
 # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
 umask 022
 
 # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
+TICDIR=`echo "$TERMINFO" | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
+
+# Parent directory may not exist, which would confuse the install for hashed
+# database.  Fix.
+PARENT=`echo "$TERMINFO" | sed -e 's%/[^/]*$%%'`
+if test -n "$PARENT"
+then
+       test -d $PARENT || mkdir -p $PARENT
+fi
 
 # Remove the old terminfo stuff; we don't care if it existed before, and it
 # would generate a lot of confusing error messages if we tried to overwrite it.
 # We explicitly remove its contents rather than the directory itself, in case
 # the directory is actually a symbolic link.
 
 # Remove the old terminfo stuff; we don't care if it existed before, and it
 # would generate a lot of confusing error messages if we tried to overwrite it.
 # We explicitly remove its contents rather than the directory itself, in case
 # the directory is actually a symbolic link.
-( cd $TERMINFO && rm -fr ? 2>/dev/null )
+if test -d "$TERMINFO"
+then
+       ( cd "$TERMINFO" && rm -fr ? 2>/dev/null )
+elif test -f "$TERMINFO.db"
+then
+       ( rm -f "$TERMINFO.db" 2>/dev/null )
+fi
 
 if test "$ext_funcs" = 1 ; then
 cat <<EOF
 
 if test "$ext_funcs" = 1 ; then
 cat <<EOF
-Running tic to install $TERMINFO ...
+Running $TIC_PATH to install $TERMINFO ...
 
        You may see messages regarding extended capabilities, e.g., AX.
        These are extended terminal capabilities which are compiled
 
        You may see messages regarding extended capabilities, e.g., AX.
        These are extended terminal capabilities which are compiled
@@ -110,16 +144,16 @@ Running tic to install $TERMINFO ...
        document, and install the terminfo without the -x option.
 
 EOF
        document, and install the terminfo without the -x option.
 
 EOF
-if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
+if ( $TIC_PATH -x -s -o "$TERMINFO" $source )
 then
 then
-       echo '** built new '$TERMINFO
+       echo "** built new $TERMINFO"
 else
 else
-       echo '? tic could not build '$TERMINFO
+       echo "? tic could not build $TERMINFO"
        exit 1
 fi
 else
 cat <<EOF
        exit 1
 fi
 else
 cat <<EOF
-Running tic to install $TERMINFO ...
+Running $TIC_PATH to install $TERMINFO ...
 
        You may see messages regarding unknown capabilities, e.g., AX.
        These are extended terminal capabilities which may be compiled
 
        You may see messages regarding unknown capabilities, e.g., AX.
        These are extended terminal capabilities which may be compiled
@@ -129,11 +163,11 @@ Running tic to install $TERMINFO ...
        document, and install the terminfo without the -x option.
 
 EOF
        document, and install the terminfo without the -x option.
 
 EOF
-if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
+if ( $TIC_PATH -s -o "$TERMINFO" $source )
 then
 then
-       echo '** built new '$TERMINFO
+       echo "** built new $TERMINFO"
 else
 else
-       echo '? tic could not build '$TERMINFO
+       echo "? tic could not build $TERMINFO"
        exit 1
 fi
 fi
        exit 1
 fi
 fi
@@ -143,12 +177,12 @@ fi
 # all systems support symbolic links, and those that do provide a variety
 # of options for 'test'.
 if test "$TICDIR" != "$TERMINFO" ; then
 # all systems support symbolic links, and those that do provide a variety
 # of options for 'test'.
 if test "$TICDIR" != "$TERMINFO" ; then
-       ( rm -f $TICDIR 2>/dev/null )
-       if ( cd $TICDIR 2>/dev/null )
+       ( rm -f "$TICDIR" 2>/dev/null )
+       if ( cd "$TICDIR" 2>/dev/null )
        then
        then
-               cd $TICDIR
+               cd "$TICDIR"
                TICDIR=`pwd`
                TICDIR=`pwd`
-               if test $TICDIR != $TERMINFO ; then
+               if test "$TICDIR "!= "$TERMINFO "; then
                        # Well, we tried.  Some systems lie to us, so the
                        # installer will have to double-check.
                        echo "Verify if $TICDIR and $TERMINFO are the same."
                        # Well, we tried.  Some systems lie to us, so the
                        # installer will have to double-check.
                        echo "Verify if $TICDIR and $TERMINFO are the same."
@@ -163,11 +197,12 @@ if test "$TICDIR" != "$TERMINFO" ; then
                if test "$RELATIVE" != "$ticdir" ; then
                        RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
                fi
                if test "$RELATIVE" != "$ticdir" ; then
                        RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
                fi
-               if ( @LN_S@ $RELATIVE $TICDIR )
+               if ( @LN_S@ "$RELATIVE" "$TICDIR" )
                then
                then
-                       echo '** sym-linked '$TICDIR' for compatibility'
+                       echo "** sym-linked $TICDIR for compatibility"
                else
                else
-                       echo '** could not sym-link '$TICDIR' for compatibility'
+                       echo "** could not sym-link $TICDIR for compatibility"
                fi
        fi
 fi
                fi
        fi
 fi
+# vile:shmode