]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/dialog/headers.sh
THIS BRANCH IS OBSOLETE, PLEASE READ:
[FreeBSD/FreeBSD.git] / contrib / dialog / headers.sh
1 #! /bin/sh
2 # $Id: headers.sh,v 1.3 2007/02/25 20:37:56 tom Exp $
3 ##############################################################################
4 # Copyright (c) 2004,2007 Thomas E. Dickey                                   #
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 # Adjust includes for header files that reside in a subdirectory of
32 # /usr/include, etc.
33 #
34 # Parameters (the first case creates the sed script):
35 #       $1 is the target directory
36 #       $2 is the source directory
37 # or (the second case does the install, using the sed script):
38 #       $1 is the script to use for installing
39 #       $2 is the target directory
40 #       $3 is the source directory
41 #       $4 is the file to install, editing source/target/etc.
42
43 PACKAGE=DIALOG
44 PKGNAME=DLG
45 CONFIGH=dlg_config.h
46
47 TMPSED=headers.sed
48
49 if test $# = 2 ; then
50         rm -f $TMPSED
51         DST=$1
52         REF=$2
53         LEAF=`basename $DST`
54         case $DST in
55         /*/include/$LEAF)
56                 END=`basename $DST`
57                 for i in $REF/*.h
58                 do
59                         NAME=`basename $i`
60                         echo "s/<$NAME>/<$END\/$NAME>/g" >> $TMPSED
61                 done
62                 ;;
63         *)
64                 echo "" >> $TMPSED
65                 ;;
66         esac
67         for name in `
68         egrep '^#define[        ][      ]*[_ABCDEFGHIJKLMNOPQRSTUVWXYZ]' $REF/$CONFIGH \
69                 | sed   -e 's/^#define[         ][      ]*//' \
70                         -e 's/[         ].*//' \
71                 | egrep -v "^${PACKAGE}_" \
72                 | sort -u \
73                 | egrep -v "^${PKGNAME}_"`
74         do
75                 echo "s/\\<$name\\>/${PKGNAME}_$name/g" >>$TMPSED
76         done
77 else
78         PRG=""
79         while test $# != 3
80         do
81                 PRG="$PRG $1"; shift
82         done
83
84         DST=$1
85         REF=$2
86         SRC=$3
87
88         SHOW=`basename $SRC`
89         TMPSRC=${TMPDIR-/tmp}/${SHOW}$$
90
91         echo "  ... $SHOW"
92         test -f $REF/$SRC && SRC="$REF/$SRC"
93
94         rm -f $TMPSRC
95         sed -f $TMPSED $SRC > $TMPSRC
96         NAME=`basename $SRC`
97
98         # Just in case someone gzip'd manpages, remove the conflicting copy.
99         test -f $DST/$NAME.gz && rm -f $DST/$NAME.gz
100
101         eval $PRG $TMPSRC $DST/$NAME
102         rm -f $TMPSRC
103 fi