192d8d02582f772ecb26df2d7c8782492f1d889c
[ncurses.git] / misc / run_tic.in
1 #!@SHELL@
2 # $Id: run_tic.in,v 1.28 2010/08/08 00:53:45 tom Exp $
3 ##############################################################################
4 # Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.                #
5 #                                                                            #
6 # Permission is hereby granted, free of charge, to any person obtaining a    #
7 # copy of this software and associated documentation files (the "Software"), #
8 # to deal in the Software without restriction, including without limitation  #
9 # the rights to use, copy, modify, merge, publish, distribute, distribute    #
10 # with modifications, sublicense, and/or sell copies of the Software, and to #
11 # permit persons to whom the Software is furnished to do so, subject to the  #
12 # following conditions:                                                      #
13 #                                                                            #
14 # The above copyright notice and this permission notice shall be included in #
15 # all copies or substantial portions of the Software.                        #
16 #                                                                            #
17 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
20 # THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
22 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
23 # DEALINGS IN THE SOFTWARE.                                                  #
24 #                                                                            #
25 # Except as contained in this notice, the name(s) of the above copyright     #
26 # holders shall not be used in advertising or otherwise to promote the sale, #
27 # use or other dealings in this Software without prior written               #
28 # authorization.                                                             #
29 ##############################################################################
30 #
31 # Author: Thomas E. Dickey 1996-on
32 #
33 # This script is used to install terminfo.src using tic.  We use a script
34 # because the path checking is too awkward to do in a makefile.
35 #
36 # Assumes:
37 #       The leaf directory names (lib, tabset, terminfo)
38 #
39 echo '** Building terminfo database, please wait...'
40 #
41 # The script is designed to be run from the misc/Makefile as
42 #       make install.data
43
44 : ${suffix=@PROG_EXT@}
45 : ${DESTDIR=@DESTDIR@}
46 : ${prefix=@prefix@}
47 : ${exec_prefix=@exec_prefix@}
48 : ${bindir=@bindir@}
49 : ${top_srcdir=@top_srcdir@}
50 : ${srcdir=@srcdir@}
51 : ${datadir=@datadir@}
52 : ${ticdir=@TERMINFO@}
53 : ${source=@TERMINFO_SRC@}
54 : ${LN_S="@LN_S@"}
55 : ${cross_compiling=no}
56 : ${ext_funcs=@NCURSES_EXT_FUNCS@}
57
58 test -z "${DESTDIR}" && DESTDIR=
59
60 # Allow tic to run either from the install-path, or from the build-directory.
61 # Do not do this if we appear to be cross-compiling.  In that case, we rely
62 # on the host's copy of tic to compile the terminfo database.
63 if test "x$cross_compiling" = "xno"
64 then
65         if test -f ../progs/tic$suffix
66         then
67                 case "$PATH" in
68                 @PATH_SEPARATOR@*)
69                         PATH=../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir$PATH
70                         ;;
71                 *)
72                         PATH=../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir@PATH_SEPARATOR@$PATH
73                         ;;
74                 esac
75                 export PATH
76                 SHLIB="sh $srcdir/shlib"
77                 TIC_PATH="$SHLIB tic"
78         elif test "$TIC_PATH" = unknown
79         then
80                 echo '? no tic program found'
81                 exit 1
82         fi
83 else
84         # Cross-compiling, so don't set PATH or run shlib.
85         SHLIB=
86         # reset $suffix, since it applies to the target, not the build platform.
87         suffix=
88 fi
89
90
91 # set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
92 # the PATH we just set.
93 SHLIB_PATH=$PATH
94 export SHLIB_PATH
95
96 # set a variable to simplify environment update in shlib
97 SHLIB_HOST=@host_os@
98 export SHLIB_HOST
99
100 # don't use user's TERMINFO variable
101 TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
102 umask 022
103
104 # Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
105 TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
106
107 # Remove the old terminfo stuff; we don't care if it existed before, and it
108 # would generate a lot of confusing error messages if we tried to overwrite it.
109 # We explicitly remove its contents rather than the directory itself, in case
110 # the directory is actually a symbolic link.
111 ( test -d "$TERMINFO" && cd $TERMINFO && rm -fr ? 2>/dev/null )
112
113 if test "$ext_funcs" = 1 ; then
114 cat <<EOF
115 Running $TIC_PATH to install $TERMINFO ...
116
117         You may see messages regarding extended capabilities, e.g., AX.
118         These are extended terminal capabilities which are compiled
119         using
120                 tic -x
121         If you have ncurses 4.2 applications, you should read the INSTALL
122         document, and install the terminfo without the -x option.
123
124 EOF
125 if ( $TIC_PATH -x -s -o $TERMINFO $source )
126 then
127         echo '** built new '$TERMINFO
128 else
129         echo '? tic could not build '$TERMINFO
130         exit 1
131 fi
132 else
133 cat <<EOF
134 Running $TIC_PATH to install $TERMINFO ...
135
136         You may see messages regarding unknown capabilities, e.g., AX.
137         These are extended terminal capabilities which may be compiled
138         using
139                 tic -x
140         If you have ncurses 4.2 applications, you should read the INSTALL
141         document, and install the terminfo without the -x option.
142
143 EOF
144 if ( $TIC_PATH -s -o $TERMINFO $source )
145 then
146         echo '** built new '$TERMINFO
147 else
148         echo '? tic could not build '$TERMINFO
149         exit 1
150 fi
151 fi
152
153 # Make a symbolic link to provide compatibility with applications that expect
154 # to find terminfo under /usr/lib.  That is, we'll _try_ to do that.  Not
155 # all systems support symbolic links, and those that do provide a variety
156 # of options for 'test'.
157 if test "$TICDIR" != "$TERMINFO" ; then
158         ( rm -f $TICDIR 2>/dev/null )
159         if ( cd $TICDIR 2>/dev/null )
160         then
161                 cd $TICDIR
162                 TICDIR=`pwd`
163                 if test $TICDIR != $TERMINFO ; then
164                         # Well, we tried.  Some systems lie to us, so the
165                         # installer will have to double-check.
166                         echo "Verify if $TICDIR and $TERMINFO are the same."
167                         echo "The new terminfo is in $TERMINFO; the other should be a link to it."
168                         echo "Otherwise, remove $TICDIR and link it to $TERMINFO."
169                 fi
170         else
171                 cd ${DESTDIR}$prefix
172                 # Construct a symbolic link that only assumes $ticdir has the
173                 # same $prefix as the other installed directories.
174                 RELATIVE=`echo $ticdir|sed -e 's%^'$prefix'/%%'`
175                 if test "$RELATIVE" != "$ticdir" ; then
176                         RELATIVE=../`echo $ticdir|sed -e 's%^'$prefix'/%%' -e 's%^/%%'`
177                 fi
178                 if ( @LN_S@ $RELATIVE $TICDIR )
179                 then
180                         echo '** sym-linked '$TICDIR' for compatibility'
181                 else
182                         echo '** could not sym-link '$TICDIR' for compatibility'
183                 fi
184         fi
185 fi
186 # vile:shmode