name "Pascal bootstrap files"
dir lang/pc/pem
end
-name "C compiler makefile"
-dir lang/cem/cemcom
-action "cp AckMake makefile"
-end
name "LLgen bootstrap files"
dir util/LLgen
end
dir first
action "cp em_path.h.src ../h/em_path.h"
end
-name "create .distr file for interpreter"
-dir util/int
-end
-name "create .distr file for interpreter docs"
-dir doc/int
-end
name "m68k2/cg bootstrap files"
dir mach/m68k2/cg
+action "make EMHOME=/proj/em/Work distr"
end
name "vax4/cg bootstrap files"
dir mach/vax4/cg
+action "make EMHOME=/proj/em/Work distr"
end
name "m68020/ncg bootstrap files"
dir mach/m68020/ncg
+action "make EMHOME=/proj/em/Work distr"
end
When all this is correct, use the shell script mktree the extract
the distribution from the EM tree.
- cd ~em/Repositories ; sh ../Work/distr/mktree destination_tree >../Work/distr/f.attf 2>&1
+ cd ~em/Repositories ; sh ../Work/distr/mktree destination_tree Distr4 >../Work/distr/f.attf 2>&1
Make sure that the destination tree exists and is empty!
Failing to do that will almost certainly result in a welter of
error messages.
: ${CDIR=.}
-${DD-:} $CDIR
+if [ $# = 1 ]
+then
+ ${DD-:} $CDIR $1
+else
+ ${DD-:} $CDIR
+fi
${DF-:} $CDIR .distr
if test ! -r $DESTDIR/$CDIR/.distr
+then
+ ( cd $DESTDIR/$CDIR; make .distr ) >/dev/null 2>&1
+fi
+if test ! -r $DESTDIR/$CDIR/.distr
then
echo ++ no .distr in $CDIR
exit 0
then
CDIR=$CDIR/$i
export CDIR
- exec /proj/em/Work/distr/dwalk
+ exec /proj/em/Work/distr/dwalk $*
else
echo ++ Could not access $CDIR/$i
fi
--- /dev/null
+: Utility to make a tree of symbolic links to source tree.
+: Mount the source tree read-only, use this script, and then try installation.
+case $# in
+2) ;;
+*) echo "Usage: $0 <source-tree> <symlink-tree>" 1>&2
+ exit 1
+ ;;
+esac
+if [ -f $1/.distr ]
+then
+ for i in `cat $1/.distr`
+ do
+ if [ -d $1/$i ]
+ then
+ if mkdir $2/$i && $0 $1/$i $2/$i
+ then
+ :
+ else
+ exit 2
+ fi
+ else
+ if [ -f $1/$i ]
+ then
+ if ln -s $1/$i $2/$i
+ then
+ :
+ else
+ exit 3
+ fi
+ else
+ echo "Missing file $1/$i" 1>&2
+ exit 4
+ fi
+ fi
+ done
+else
+ echo "No .distr file in $1" 1>&2
+ exit 5
+fi
esac
p=`pwd`
cd $DESTDIR/$1
-if `RV $p $p/Distr4 > /dev/null 2>&1`
+if [ $# = 2 ] && [ -f $p/$2 ]
then
- :
+ RV $p $p/$2 > /dev/null 2>&1
else
- echo "-- $1 no Distr4 Save Record yet"
+ if [ $# = 2 ]
+ then
+ echo "-- $1 no $2 Save Record yet"
+ fi
if `CV $p > /dev/null 2>&1`
then
:
else
echo ++ $1/$2 not present
fi
-case $2 in
-LIST) if (test -r $DESTDIR/$1/`head -1 $DESTDIR/$1/LIST`) >/dev/null 2>&1
- then echo ++ LIST files must be in .distr before their libraries!!!
- fi ;;
-esac
case $# in
-1) ;;
-*) echo $0 directory ; exit 1 ;;
+1|2) ;;
+*) echo $0 directory [ SVrecord ] ; exit 1 ;;
esac
DDIR=/proj/em/Work/distr
case $1 in
DF=$DDIR/mkf
DA=$DDIR/mka
export DESTDIR DD DF DA
-$DDIR/dwalk
+$DDIR/dwalk $2