]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/mkfile
9bootfat: rename open() to fileinit and make it static as its really a internal funct...
[plan9front.git] / sys / src / cmd / mkfile
1 </$objtype/mkfile
2
3 TARG=`{ls *.[cy] | sed '/\.tab\.c$/d;s/..$//'}
4 HFILES=/$objtype/include/u.h /sys/include/libc.h /sys/include/bio.h
5 BIN=/$objtype/bin
6 PROGS=${TARG:%=$O.%}
7 LDFLAGS=
8 YFLAGS=-d
9
10 NOTSYS=sml|dup|.+\..+
11 BUGGERED=unix
12 OUTOFDATE=old
13
14 NOMK=$NOTSYS|$BUGGERED|$OUTOFDATE
15
16 cpuobjtype=`{sed -n 's/^O=//p' /$cputype/mkfile}
17 DIRS=`{ls -l | sed '/^d/!d; s/.* //; /^('$NOMK')$/d'}
18 APEDIRS=awk bzip2 compress cvs eqn grap gs links-ape lp pic postscript spin \
19         tex troff
20
21 none:VQ:
22         echo usage: mk cmds, dirs, all, install, installall, '$O'.cmd, cmd.install, or cmd.installall
23
24 cmds:V: $PROGS
25
26 ape:V: $APE
27         for(i in $APEDIRS) @{
28                 cd $i
29                 echo mk $i
30                 mk $MKFLAGS all
31         }
32
33 dirs:V:
34         for(i in cc $DIRS) @{
35                 cd $i
36                 echo mk $i
37                 mk $MKFLAGS all
38         }
39
40 all:V:  $PROGS dirs
41
42 ^([$OS])\.(.*):R:       \2.\1
43         $stem1^l $LDFLAGS -o $target $stem2.$stem1
44
45 .*\.[$OS]:R:    $HFILES
46
47 (.*)\.([$OS])'$':R:     \1.c
48         $stem2^c $CFLAGS $stem1.c
49
50 &:n:    $O.&
51         mv $O.$stem $stem
52
53 %.tab.h %.tab.c:        %.y
54         $YACC $YFLAGS -s $stem $prereq
55
56 %.install:V: $BIN/%
57
58 $cpuobjtype._cp:        /bin/cp
59         cp $prereq $target
60
61 %.safeinstall:  $O.% $cpuobjtype._cp
62         test -e $BIN/$stem && mv $BIN/$stem $BIN/_$stem
63         $cpuobjtype._cp $O.$stem $BIN/$stem
64
65 %.safeinstallall:
66         for(objtype in $CPUS)
67                 mk $stem.safeinstall
68         mk $stem.clean
69
70 $BIN/%: $O.% $cpuobjtype._cp
71         $cpuobjtype._cp $O.$stem $BIN/$stem
72
73 %.directories:V:
74         for(i in $DIRS) @{
75                 cd $i
76                 echo mk $i
77                 mk $MKFLAGS $stem
78         }
79
80 clean:V:        cleanfiles clean.directories
81
82 nuke:V:         cleanfiles nuke.directories
83
84 directories:V:  install.directories
85
86 cleanfiles:V:
87         rm -f [$OS].out *.[$OS] y.tab.? y.debug y.output [$OS].$TARG [$OS].units.tab $TARG bc.c bc.tab.h units.tab.h units.c [$OS]._cp
88
89 %.clean:V:
90         rm -f [$OS].$stem $stem.[$OS]
91
92 install:V:
93         test -e $cpuobjtype._cp || cp /bin/cp $cpuobjtype._cp
94         mk $MKFLAGS $TARG.install
95         mk $MKFLAGS directories
96
97 installall:V:
98         for(objtype in $CPUS)
99                 mk $MKFLAGS install
100
101 %.installall:   %.c
102         test -e $cpuobjtype._cp || cp /bin/cp $cpuobjtype._cp
103         for (objtype in $CPUS) {
104                 rfork e
105                 mk $stem.install &
106         }
107         wait
108         rm -f $stem.[$OS] y.tab.? $stem.tab.? y.debug y.output [$OS].$stem bc.c bc.tab.h units.c
109
110 %.acid: %.$O $HFILES
111         $CC $CFLAGS -a $stem.c >$target
112
113 (bc|units).c:R: \1.tab.c
114         mv $stem1.tab.c $stem1.c
115
116 $BIN/init:      $O.init
117         cp $prereq /$objtype/init
118
119 $O.cj:  cj.$O
120         $LD $LDFLAGS -o $O.cj cj.$O /$objtype/lib/libjpg.a
121
122 %.update:V:
123         update $stem.c /386/bin/$stem
124
125 compilers:V:
126         for(i in ?c)
127                 if(! ~ $i cc rc) @{
128                         cd $i
129                         mk clean
130                         objtype=$cputype mk install
131                         mk clean
132                 }
133         for(i in ?c)
134                 if(! ~ $i cc rc) @{
135                         cd $i
136                         mk clean
137                         mk installall
138                         mk clean
139                 }