summaryrefslogtreecommitdiff
path: root/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
blob: e9def824af4fac2ffb7220728e0910849f66504b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/sh
#
# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.4 2000/12/14 21:50:09 dawes Exp $
#

Usage()
{
  echo `basename $0` [-l] [prefix] from-dir to-dir
  exit 1
}

createlist=NO

case $1 in
  -l)
    createlist=YES
    shift
    ;;
esac

case $# in
3)
    PRE=$1
    shift
    ;;
2)
    PRE=X
    ;;
*)
    Usage
    ;;
esac
    
FROMDIR=$1
TODIR=$2

if [ ! -d $FROMDIR ]; then
  echo No such dir $FROMDIR
  exit 2
fi

if [ ! -d $TODIR ]; then
  echo No such dir $TODIR
  exit 2
fi

cd $TODIR
SUBDIRS="`find . -type d ! -name bindist -print`"

DIRFILE=dir
BINDIR=bindist
EXTRASFILE=extras
TAR="gnu-tar"
TAROPTS="-c -v -z"
TARLOPTS="-t -v -z -i"
CKSUM=md5
SUMFILE=SUMS.md5
LISTFILE=FILES

GenList()
{
  (cd $TODIR/$BINDIR
    rm -f $SUMFILE $LISTFILE
    for i in *.tgz; do
      echo $i
      $CKSUM $i >> $SUMFILE
      echo $i >> $LISTFILE
      echo "------------" >> $LISTFILE
      $TAR $TARLOPTS -f $i >> $LISTFILE
      echo "" >> $LISTFILE
    done
    if [ -f $TODIR/$EXTRASFILE ]; then
      for i in `cat $TODIR/$EXTRASFILE`; do
	$CKSUM `basename $i` >> $SUMFILE
      done
    fi
  )
}

if [ ! -d $TODIR/$BINDIR ]; then
  mkdir $TODIR/$BINDIR
fi

if [ $createlist = YES ]; then
  GenList
  exit 0;
fi

for d in $SUBDIRS; do
  if [ ! -d $TODIR/$d ]; then
    echo No such dir $TODIR/$d
    exit 2
  fi
  (cd $TODIR/$d;
    if [ ! -f $DIRFILE ]; then
      echo No file $DIRFILE in $TODIR/$d
#      exit 3
    else
      DEFPREFIX=`cat $DIRFILE`
      for i in *-list; do
        name=`basename $i -list`
        tarball=$PRE$name.tgz
        echo creating $tarball
        lfile="-T $TODIR/$d/$i"
        if [ -f $name-excl ]; then
          xfile="-X $TODIR/$d/$name-excl"
        else
          xfile=""
        fi
	if [ -f $name-dir ]; then
	  PREFIX=`cat $name-dir`
	else
	  PREFIX=$DEFPREFIX
	fi
        (cd $FROMDIR/$PREFIX
          $TAR $TAROPTS -f $TODIR/$BINDIR/$tarball $lfile $xfile
        )
      done
    fi
    if [ -f $EXTRASFILE ]; then
      for i in `cat $EXTRASFILE`; do
	rm -f $TODIR/$BINDIR/`basename $i`
        cp $FROMDIR/$PREFIX/$i $TODIR/$BINDIR
      done
    fi
  )
done

# GenList

exit 0