BSD 4 release
[unix-history] / usr / src / cmd / MAKE
CommitLineData
af2b3dc1
BJ
1trap "" 1
2DESTDIR=${DESTDIR-/4bsd}
3CC=cc
4
5: make sure directory hierarchy exists
6( cd $DESTDIR
7 for i in bin etc lib sys usr
8 do if [ ! -d $i ]
9 then rm -f $i; mkdir $i
10 fi
11 done
12 cd $DESTDIR/usr
13 for i in bin dict games lib net spool ucb vpd
14 do if [ ! -d $i ]
15 then rm -f $i; mkdir $i
16 fi
17 done
18 cd $DESTDIR/usr/lib
19 for i in learn lex lisp lint refer struct term tmac uucp
20 do if [ ! -d $i ]
21 then rm -f $i; mkdir $i
22 fi
23 done
24 cd $DESTDIR/usr/net
25 for i in bin network
26 do if [ ! -d $i ]
27 then rm -f $i; mkdir $i
28 fi
29 done
30 cd $DESTDIR/usr/spool
31 for i in lpd mail secretmail uucp uucppublic vpd
32 do if [ ! -d $i ]
33 then rm -f $i; mkdir $i
34 fi
35 done
36)
37
38for i in $*
39do echo " ======== $i"
40
41 CFLAGS='-O -d2'
42 case $i in
43 512restor.c|analyze.c|colcrt.c|dump.c|dumpdir.c|egrep.y|fgrep.c|\
44 ld.c|ndump.c|ncheck.c|ps.c|quot.c|ranlib.c|restor.c|sa.c|sort.c|\
45 tar.c|w.c|wc.c)\
46 CFLAGS='-O';;
47 esac
48
49 case $i in
50
51 clean) rm -f *.o core y.tab.c lex.yy.c ;: Clean unwanted files.
52 ;;
53
54 *.y) B=`basename $i .y`
55 eval D=`grep " $B\$" DESTINATIONS`
56 yacc $B.y \
57 && $CC $CFLAGS -o $B y.tab.c -lln \
58 && install -s $B $DESTDIR$D/$B
59 rm -f y.tab.[co] $B
60 ;;
61
62 *.l) B=`basename $i .l`
63 eval D=`grep " $B\$" DESTINATIONS`
64 lex $B.l \
65 && $CC $CFLAGS -o $B lex.yy.c -lln \
66 && install -s $B $DESTDIR$D/$B
67 rm -f lex.yy.[co] $B
68 ;;
69
70 clear.c|more.c|ul.c)
71 B=`basename $i .c`
72 eval D=`grep " $B\$" DESTINATIONS`
73 $CC $CFLAGS -o $B $B.c -ltermlib \
74 && install -s $B $DESTDIR$D/$B
75 rm -f $B.o $B
76 ;;
77
78 comsat.c)
79 B=`basename $i .c`
80 eval D=`grep " $B\$" DESTINATIONS`
81 $CC $CFLAGS -o $B $B.c -ljobs \
82 && install -s $B $DESTDIR$D/$B
83 rm -f $B.o $B
84 ;;
85
86 *.c) B=`basename $i .c`
87 eval D=`grep " $B\$" DESTINATIONS`
88 $CC $CFLAGS -o $B $B.c -lm \
89 && install -s $B $DESTDIR$D/$B
90 rm -f $B.o $B
91 ;;
92
93 mklost+found.s|*.sh) B=`basename $i .sh`
94 eval D=`grep " $B\$" DESTINATIONS`
95 install -c $B.sh $DESTDIR$D/$B
96 ;;
97
98 *.s) B=`basename $i .s`
99 eval D=`grep " $B\$" DESTINATIONS`
100 as -o $B.o $B.s \
101 && $CC -o $B $B.o \
102 && install -s $B $DESTDIR$D/$B
103 rm -f $B.o $B
104 ;;
105
106 MAKE|DESTINATIONS|SCCS)
107 echo Do nothing.
108 ;;
109
110 MODES)
111 BINF=" df login mail mkdir mv passwd rmdir su"
112 UBINF=" at newgrp"
113 UCBF=" chfn chsh netrm netq net"
114 LIBF=" atrun ex3.5preserve ex3.5recover rvcat"
115 UULIBF="uucp/uuxqt uucp/uucico uucp/uuclean uucp/uusub"
116 UUBINF="uucp uux uulog uuname"
117 TMPF=" /tmp /usr/tmp /usr/lib/uucp/.XQTDIR /usr/msgs"
118 TSPOOL="lpd mail secretmail uucp uucppublic"
119 ATDIR="at at/past"
120 BNETBF="net v6mail"
121 cd $DESTDIR/bin; chown root $BINF; chmod 4755 $BINF
122 cd $DESTDIR/usr/bin; chown root $UBINF; chmod 4755 $UBINF
123 cd $DESTDIR/usr/ucb; chown root $UCBF; chmod 4755 $UCBF
124 cd $DESTDIR/usr/lib; chown root $LIBF; chmod 4755 $LIBF
125 cd $DESTDIR/usr/lib; chown uucp $UULIBF; chmod 4755 $UULIBF
126 cd $DESTDIR/usr/bin; chown uucp $UUBINF; chmod 4755 $UUBINF
127 cd $DESTDIR/usr/net/bin; chown root $BNETBF; chmod 4755 $BNETBF
128 chmod 777 $DESTDIR/$TMPF
129 cd $DESTDIR/usr/spool; chmod 777 $TSPOOL; chmod 755 $ATDIR;\
130 chown root $ATDIR
131
132 ;;
133
134 ALIASES) echo Establish alias names.
135 rm -f $DESTDIR/bin/[
136 ln $DESTDIR/bin/test $DESTDIR/bin/[
137 rm -f $DESTDIR/usr/ucb/l $DESTDIR/usr/ucb/f $DESTDIR/usr/ucb/u
138 rm -f $DESTDIR/usr/ucb/page
139 ln $DESTDIR/usr/ucb/ls $DESTDIR/usr/ucb/l
140 ln $DESTDIR/usr/ucb/finger $DESTDIR/usr/ucb/f
141 ln $DESTDIR/usr/ucb/users $DESTDIR/usr/ucb/u
142 ln $DESTDIR/usr/ucb/more $DESTDIR/usr/ucb/page
143 cp $DESTDIR/usr/ucb/ls $DESTDIR/bin/ucbls
144 rm $DESTDIR/usr/bin/uuclean
145 ln $DESTDIR/usr/lib/uucp/uuclean $DESTDIR/usr/bin/uuclean
146 rm -f $DESTDIR/usr/ucb/uptime
147 ln $DESTDIR/usr/ucb/w $DESTDIR/usr/ucb/uptime
148 (cd $DESTDIR/usr/ucb ; rm vi view edit e ../bin/ex)
149 (cd $DESTDIR/usr/ucb ; ln ex vi ; ln ex view ; ln ex edit )
150 (cd $DESTDIR/usr/ucb ; ln ex e ; ln ex ../bin/ex)
151 (cd $DESTDIR/usr/ucb ; rm -f mail ; ln Mail mail)
152 (cd $DESTDIR/usr/ucb ; rm -f net ; ln $DESTDIR/usr/net/bin/net)
153 (cd $DESTDIR/usr/ucb ; rm -f netcp ; ln $DESTDIR/usr/net/bin/netcp)
154 ;;
155
156 *) if [ ! -d $i ]
157 then echo "Don't know what to do with $i."
158 else
159 date
160 cd $i
161 make CC=$CC DESTDIR=$DESTDIR \
162 && make install DESTDIR=$DESTDIR \
163 && make clean
164 date
165 cd ..
166 fi
167
168 esac
169done