Subversion Repositories wimsdev

Rev

Rev 11566 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
20 reyssat 1
#! /bin/sh
2
 
3
thisdir=`pwd`
4
lastdir=$thisdir
5
if [ -z "$wims_home" ]; then wims_home=$w_wims_home; fi
6
 
7
while [ -z "$wims_home" ] && [ "$lastdir" != "/" ]
8
do
9
 wims_home=`cat $lastdir/.wimshome 2>/dev/null`
10
 lastdir=`dirname $lastdir`
11
done
12
if [ -z "$wims_home" ]; then
13
 echo WIMS home directory not found.
14
 exit;
15
fi
16
proc=$wims_home/public_html/scripts/deduc
17
 
18
if [ ! -d def ]; then exit; fi
19
if [ ! -d src ]; then exit; fi
20
 
21
deff=`cd def; ls *.def 2>/dev/null`
22
for i in $deff
23
do
24
 dd=`echo $i | sed 's!\.def!.ded!g'`
25
 if [ ! -f src/$dd ]; then 
26
  echo Removing def/$i.
27
  rm -f def/$i >/dev/null;
28
 fi
29
done
30
 
31
sext=ded
32
cd src
33
if [ -d cpp ]; then
34
 cd cpp
35
 incf=`ls *.inc 2>/dev/null`
36
 for i in $incf
37
 do
38
  list=`egrep -l '#[[:blank:]]*include[[:blank:]]+"'$i'"' *.cpp`
39
  for j in $list
40
  do
41
   if [ $i -nt $j ]; then touch $j; fi
42
  done
43
 done
44
 pref=`ls *.cpp 2>/dev/null`
45
 for i in $pref
46
 do
47
  list=`grep . $i | head -1 | grep target \
48
	| tr ',:;./?*#~$\\ ' '                  ' \
49
	| awk -F'=' '{print $2}'`
50
  test=`grep -E '^[[:blank:]]*#[[:blank:]]*include' $i \
51
	| grep -E -v '^[[:blank:]]*#[[:blank:]]*include[[:blank:]]*"[[:alnum:]_]+.inc"'`
52
  if [ ! -z "$test" ]; then
53
   echo $i: include violation.
54
   list=
55
  fi
56
  grep . $i | awk 'BEGIN {l=0}; {l++}; l>1 {print}' >cpp.tmp
57
  for j in $list
58
  do
59
   if [ ! -f ../$j.$sext ] || [ $i -nt ../$j.$sext ]; then
60
    echo "Preprocessing: $i -> ../$j.$sext"
61
    cat <<@ >../$j.$sext
62
%% This file is generated by preprocessor!
63
%% Do not edit it by hand.
64
%% Edit the source file cpp/$i.
65
 
66
@
67
    cpp -P -C -nostdinc -A- -D TARGET_$j -A "TARGET($j)" cpp.tmp >>../$j.$sext
68
   fi
69
  done
70
  rm -f cpp.tmp
71
 done
72
 cd ..
73
fi
74
 
75
srcf=`ls *.ded 2>/dev/null`
76
cd ..
77
oef2wims_mdef="methods variables context environ equivalence startname goal newobject minsteps options"
78
export oef2wims_mdef
79
for i in $srcf
80
do
81
 dd=`echo $i | sed 's!\.ded!.def!g'`
82
 if [ ! -f def/$dd ] || [ src/$i -nt def/$dd ]; then 
83
  # echo $dd
84
  rm -f def/$dd 2>/dev/null
85
  $wims_home/bin/oef2wims src/$i def/$dd
86
 fi
87
done
88
 
89
rm -f Exindex Extitles >/dev/null
90
list=`cd def; ls *.def 2>/dev/null | sed 's/\.def//g'`
91
 
92
if [ -z "$list" ]; then exit; fi
93
titlist=
94
for i in $list
95
do
96
 tit=`awk -F= 'NF>=2 {print $2; exit}' def/$i.def | tr ',\11' '; '`
97
 echo "$i:$tit" >>Extitles
98
 titlist="$titlist$tit
99
"
100
done
101
$wims_home/bin/dicsort Extitles
102
if [ -s Extitles.sorted ]; then
103
 mv Extitles.sorted Extitles
104
fi
105
 
106
echo "$titlist" >tmp1
107
echo "$list" >tmp2
108
llist=`paste tmp1 tmp2 | sort -t '	' -f -k 1,1`
109
list=`echo "$llist" | awk -F'\11' 'length()>2 {print $2}' | tr '\n' ','`
110
titlist=`echo "$llist" | awk -F'\11' 'length()>2 {print $1}' | tr '\n' ','`
111
 
112
cat >Exindex <<@
113
!set exolist  =!char 1 to -2 of $list
114
!set titlelist=!char 1 to -2 of $titlist
115
!set exototal =!itemcnt \$exolist
116
 
117
@
118
 
119
rm -f tmp1 tmp2
120