X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=misc%2Frun_tic.in;h=ef2e26518726ea0cf3be5960424a07a580613ab6;hp=2732403a393d4da7d54c5ceef0d1aa625782790c;hb=ade723c546e6559187580c695f7f4637eac13125;hpb=027ae42953e3186daed8f3882da73de48291b606 diff --git a/misc/run_tic.in b/misc/run_tic.in index 2732403a..ef2e2651 100644 --- a/misc/run_tic.in +++ b/misc/run_tic.in @@ -1,7 +1,7 @@ #!@SHELL@ -# $Id: run_tic.in,v 1.23 2006/10/28 19:43:30 tom Exp $ +# $Id: run_tic.in,v 1.35 2017/10/24 00:16:22 tom Exp $ ############################################################################## -# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. # +# Copyright (c) 1998-2012,2017 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"), # @@ -28,7 +28,7 @@ # authorization. # ############################################################################## # -# Author: Thomas E. Dickey 1996,2000 +# Author: Thomas E. Dickey 1996-on # # 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. @@ -36,43 +36,62 @@ # 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 -: ${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_PATH@} +: ${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. -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 -# 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 @@ -86,21 +105,36 @@ SHLIB_HOST=@host_os@ 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. -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. -( test -d "$TERMINFO" && 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 </dev/null ) - if ( cd $TICDIR 2>/dev/null ) + ( rm -f "$TICDIR" 2>/dev/null ) + if ( cd "$TICDIR" 2>/dev/null ) then - cd $TICDIR + cd "$TICDIR" 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." @@ -163,11 +197,11 @@ if test "$TICDIR" != "$TERMINFO" ; then 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 - echo '** sym-linked '$TICDIR' for compatibility' + echo "** sym-linked $TICDIR for compatibility" else - echo '** could not sym-link '$TICDIR' for compatibility' + echo "** could not sym-link $TICDIR for compatibility" fi fi fi