Home | History | Annotate | Line # | Download | only in scripts
genLocInfo revision 1.1.1.1
      1 #! /bin/sh
      2 
      3 args=`getopt d:f:v $*`
      4 set -- $args
      5 
      6 LF=
      7 V=": "
      8 
      9 for i
     10 do
     11     case "$i" in
     12      -d) sdir="$2" ; shift 2 ;;
     13      -f) locfile="$2" ; shift 2 ;;
     14      -v) V= ; shift ;;
     15      --) shift ; break ;;
     16     esac
     17 done
     18 
     19 case "$sdir" in
     20  '')
     21     sdir=.
     22 esac
     23 
     24 case "$locfile" in
     25  */*)
     26     LF=$locfile
     27     ;;
     28  '')
     29     ;;
     30  *)
     31     lf=loc/$locfile
     32     if test -f $lf
     33     then
     34 	LF=$lf
     35     fi
     36     ;;
     37 esac
     38 
     39 # If we have a file to use (ie, LF is not empty) then look for one.
     40 case "$LF" in
     41  '')
     42     PATH=$PATH:libevent/build-aux
     43     export PATH
     44     set `scripts/cvo.sh @osname@ @osver@` || exit 1
     45 
     46     CVO_OSNAME=$1
     47     CVO_OSVER=$2
     48 
     49     x=$CVO_OSVER
     50 
     51     while true
     52     do
     53 	case "$x" in
     54 	 '') break ;;
     55 	esac
     56 lf=loc/$CVO_OSNAME$x
     57 ${V}echo "Looking for <$lf>" >&2
     58 	if test -f $lf
     59 	then
     60 	    LF=$lf
     61 	    break
     62 	fi
     63 	case "$x" in
     64 	 *.*) x=`echo $x | sed -e 's/\.[^.]*$//'` ;;
     65 	 *) x= ;;
     66 	esac
     67     done
     68     case "$LF" in
     69      '')
     70 	lf=loc/$CVO_OSNAME
     71 ${V}echo "Looking for <$lf>" >&2
     72 	if test -f $lf
     73 	then
     74 	    LF=$lf
     75 	fi
     76 	;;
     77     esac
     78     # Handle some "aliases"
     79     case "$LF" in
     80      '')
     81 	case "$CVO_OSNAME" in
     82 	 redhat* | fedora*)
     83 	    lf=loc/redhat
     84 ${V}echo "Looking for <$lf>" >&2
     85 	    if test -f $lf
     86 	    then
     87 		LF=$lf
     88 	    fi
     89 	    ;;
     90 	esac
     91 	;;
     92     esac
     93 
     94     # This might be a good place to see if uname returns "Linux",
     95     # and if so, use a generic file for that.
     96     case "$LF" in
     97      '')
     98 	case "`uname`" in
     99 	 Linux)
    100 	    lf=loc/linux
    101 ${V}echo "Looking for <$lf>" >&2
    102 	    if test -f $lf
    103 	    then
    104 		LF=$lf
    105 	    fi
    106 	    ;;
    107 	esac
    108 	;;
    109     esac
    110 
    111     # Finally, 'legacy'
    112     case "$LF" in
    113      '')
    114 	lf=loc/legacy
    115 ${V}echo "Looking for <$lf>" >&2
    116 	if test -f $lf
    117 	then
    118 	    LF=$lf
    119 	fi
    120 	;;
    121     esac
    122 
    123     case "$LF" in
    124      '')
    125 	echo "No loc/XXX file found!" >&2
    126 	exit 1
    127 	;;
    128     esac
    129     ;;
    130 esac
    131 
    132 ${V}echo "Using <$LF>" >&2
    133 echo "GENLOCINFOFILE=$LF"
    134 
    135 ###
    136 
    137 rm -f $sdir/genLocInfo.rc?
    138 
    139 oIFS=$IFS
    140 IFS=","
    141 
    142 while true
    143 do
    144     if read c d s x
    145     then
    146 	# echo "Got <$c><$d><$s><$x>" >&2
    147 	case "$c" in
    148 	 \#*) continue ;;
    149 	esac
    150 	case "$x" in
    151 	 '') ;;
    152 	 *) echo "Unrecognized input: <$c,$d,$s,$x>" >&2
    153 	    touch $sdir/genLocInfo.rc1
    154 	    continue
    155 	    ;;
    156 	esac
    157 	case "$c,$d,$s" in
    158 	 [Mm][Aa][Nn],,)
    159 	    echo "MANTAGFMT=man"
    160 	    continue
    161 	    ;;
    162 	 [Mm][Dd][Oo][Cc],,)
    163 	    echo "MANTAGFMT=mdoc"
    164 	    continue
    165 	    ;;
    166 	esac
    167 
    168 	case "$c,$d,$s" in
    169 	 *,bin,*)  DB=bin ; DL= ; DS= ;;
    170 	 *,libexec,*)  DB= ; DL=libexec ; DS= ;;
    171 	 *,sbin,*) DB= ; DL= ; DS=sbin ;;
    172 	 *) echo "Unrecognized input: <$c,$d,$s>" >&2
    173 	    touch $sdir/genLocInfo.rc1
    174 	    continue
    175 	    ;;
    176 	esac
    177 	case "$c,$d,$s" in
    178 	 *,*,1) ;;
    179 	 *,*,1m) ;;
    180 	 *,*,1M) ;;
    181 	 *,*,8) ;;
    182 	 *) echo "Unrecognized input: <$c,$d,$s>" >&2
    183 	    touch $sdir/genLocInfo.rc1
    184 	    continue
    185 	    ;;
    186 	esac
    187 
    188 	# Should be OK, mostly...
    189 	C=`echo $c | sed -e 'y/abcdefghijklmnopqrstuvwxyz-/ABCDEFGHIJKLMNOPQRSTUVWXYZ_/'`
    190 	# echo "c: <$c>, C: <$C>, DB: <$DB>, DL: <$DL>, DS: <$DS>" >&2
    191 
    192 	case "$d" in
    193 	 bin)
    194 	    eval ${C}_DB=$c
    195 	    eval ${C}_DL=
    196 	    eval ${C}_DS=
    197 	    ;;
    198 	 libexec)
    199 	    eval ${C}_DB=
    200 	    eval ${C}_DL=$c
    201 	    eval ${C}_DS=
    202 	    ;;
    203 	 sbin)
    204 	    eval ${C}_DB=
    205 	    eval ${C}_DL=
    206 	    eval ${C}_DS=$c
    207 	    ;;
    208 	 *) echo "$0: installdir <$d> must be bin, sbin, or libexec" >&2
    209 	    exit 1
    210 	    ;;
    211 	esac
    212 	eval ${C}_MS=$s
    213 
    214 	# echo "<$c> gets installed in <$d> with a <$s> manpage suffix" >&2
    215 	# echo "${C}_DB is <`eval echo '$'${C}_DB`>" >&2
    216 	# echo "${C}_DL is <`eval echo '$'${C}_DL`>" >&2
    217 	# echo "${C}_DS is <`eval echo '$'${C}_DS`>" >&2
    218 	# echo "${C}_MS is <`eval echo '$'${C}_MS`>" >&2
    219 	echo "${C}_DB=`eval echo '$'${C}_DB`"
    220 	echo "${C}_DL=`eval echo '$'${C}_DL`"
    221 	echo "${C}_DS=`eval echo '$'${C}_DS`"
    222 	echo "${C}_MS=`eval echo '$'${C}_MS`"
    223 
    224 	touch $sdir/genLocInfo.rc0
    225     else
    226 	break
    227     fi
    228 done < $LF
    229 IFS=$oIFS
    230 
    231 if test -f $sdir/genLocInfo.rc1
    232 then
    233     rm $sdir/genLocInfo.rc?
    234     exit 1
    235 fi
    236 
    237 if test -f $sdir/genLocInfo.rc0
    238 then
    239     rm $sdir/genLocInfo.rc?
    240     echo 'GENLOCINFO=OK'
    241     exit 0
    242 fi
    243 
    244 exit 1
    245