Pristine Ack-5.5
[Ack-5.5.git] / first / mk_config
1 set -e
2
3 create_dir $CONFIG
4
5 create_dir $CONFIG/bin
6 echo "echo $SYSNAME" > $CONFIG/bin/ack_sys
7 chmod +x $CONFIG/bin/ack_sys
8
9 cd $SRC_HOME
10 find . -type d -perm -555 -print > $CONFIG/dir_list
11
12 cd $CONFIG
13 for i in mach/*/libsys
14 do
15         rm -rf $i
16 done
17
18 for i in `cat dir_list`
19 do
20         create_dir $i
21         rm -f $i/No*
22         if [ -f $i/Makefile ]
23         then
24                 ( cd $i ; if make clean ; then exit 0 ; else exit 0 ; fi ) > /dev/null 2>&1 
25         fi
26         if [ -f $SRC_HOME/$i/proto.make ]
27         then mk_makefile $SRC_HOME/$i/proto.make > $i/Makefile
28         fi
29         if [ -f $SRC_HOME/$i/Action ]
30         then
31                 cd $SRC_HOME/$i
32                 cp Action* $CONFIG/$i
33                 chmod +w $CONFIG/$i/Action*
34                 cd $CONFIG
35         fi
36 done
37
38 cd $CONFIG
39
40 for i in lang/cem/cemcom.ansi lang/cem/cemcom lang/m2/comp
41 do
42         cp $SRC_HOME/$i/BigPars $CONFIG/$i/Parameters
43         chmod +w $CONFIG/$i/Parameters
44 done
45 for i in lang/pc/comp lang/cem/cpp.ansi
46 do
47         cp $SRC_HOME/$i/Parameters $CONFIG/$i/Parameters
48         chmod +w $CONFIG/$i/Parameters
49 done
50
51 cd $CONFIG/mach
52 for i in *
53 do
54     if [ -d $i ]
55     then
56         if [ -d $i/as ]
57         then
58                 cd $i/as
59                 mk_makefile $SRC_HOME/mach/proto/as/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
60                 cd ../..
61         fi
62         if [ -d $i/top ]
63         then
64                 cd $i/top
65                 mk_makefile $SRC_HOME/mach/proto/top/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
66                 cd ../..
67         fi
68         if [ -d $i/cg ]
69         then
70                 cd $i/cg
71                 mk_makefile $SRC_HOME/mach/proto/cg/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
72                 cd ../..
73         fi
74         if [ -d $i/ncg ]
75         then
76                 cd $i/ncg
77                 mk_makefile $SRC_HOME/mach/proto/ncg/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile
78                 if [ -f $SRC_HOME/mach/$i/ncg/table_dir ]
79                 then
80                         ed -s Makefile <<EOF
81 /^#TABLE_DEFINE/+1r $SRC_HOME/mach/$i/ncg/table_dir
82 w
83 q
84 EOF
85                 fi
86                 cd ../..
87         fi
88         if [ -f $SRC_HOME/mach/$i/mach_params ]
89         then    :
90         else    continue
91         fi
92         for j in libem libend libmon libfp libsys libdb
93         do
94             if [ -d $i/$j ]
95             then
96                 cd $i/$j
97                 mk_makefile $SRC_HOME/mach/proto/libg/proto.$j | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile
98                 cd ../..
99             fi
100         done
101         for j in libbsd4_1a libbsd4_2 libsysV_2
102         do
103             if [ -d $i/$j ]
104             then
105                 cd $i/$j
106                 mk_makefile $SRC_HOME/mach/proto/libg/proto.libsys | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" -e "s/libsys/$j/g" > Makefile
107                 cd ../..
108             fi
109         done
110         for j in libcc libcc.ansi libm2 libpc libbc liboc libf77
111         do
112             create_dir $i/$j
113             rm -f $i/$j/No*
114             cd $i/$j
115             mk_makefile $SRC_HOME/mach/proto/libg/proto.$j | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile
116             cd ../..
117         done
118         if [ $i = vax4 ]
119         then :
120         elif [ -d $i/libsys ]
121         then :
122         else 
123                 create_dir $i/libsys
124                 rm -f $i/libsys/No*
125                 cd $i/libsys
126                 mk_makefile $SRC_HOME/mach/proto/libg/proto.sysmon | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile
127                 cd ../..
128         fi
129     fi
130 done