: This script creates a configuration tree. : Should be called with 3 parameters: the configuration root, the source : root, and a file containing the makefile definitions. set -e USAGE="Usage: $0 " case $# in 3) ;; *) echo $USAGE 1>&2 exit 1 ;; esac CONFIG=$1 SRC_HOME=$2 MACROS=$3 if [ -d $SRC_HOME ] then : else echo "$0: $SRC_HOME is not a directory" 1>&2 exit 2 fi if [ -f $MACROS ] then : else echo "$0: $MACROS not found" 1>&2 exit 3 fi case ${CONFIG}XX${MACROS}XX${SRC_HOME} in /*XX/*XX/*) ;; *) echo "$0: all arguments should be absolute path names" 1>&2 exit 4 ;; esac create_dir $CONFIG cd $SRC_HOME find . -type d -print > $CONFIG/dir_list cd $CONFIG for i in `cat dir_list` do create_dir $i if [ -f $SRC_HOME/$i/proto.make ] then mk_makefile $MACROS $SRC_HOME/$i/proto.make > $i/Makefile fi if [ -f $SRC_HOME/$i/Action ] then cp $SRC_HOME/$i/Action $i/Action fi done cd $SRC_HOME/util/ceg/util for i in make_* do mk_makefile $MACROS $i > $CONFIG/util/ceg/util/$i done cd $CONFIG for i in lang/cem/cemcom.ansi lang/cem/cemcom lang/m2/comp do cp $SRC_HOME/$i/BigPars $CONFIG/$i/Parameters done for i in lang/pc/comp lang/cem/cpp.ansi do cp $SRC_HOME/$i/Parameters $CONFIG/$i/Parameters done cd $CONFIG/mach for i in * do if [ -d $i ] then if [ -d $i/as ] then cd $i/as mk_makefile $MACROS $SRC_HOME/mach/proto/as/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile cd ../.. fi if [ -d $i/top ] then cd $i/top mk_makefile $MACROS $SRC_HOME/mach/proto/top/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile cd ../.. fi if [ -d $i/cg ] then cd $i/cg mk_makefile $MACROS $SRC_HOME/mach/proto/cg/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile cd ../.. fi if [ -d $i/ncg ] then cd $i/ncg mk_makefile $MACROS $SRC_HOME/mach/proto/ncg/proto.make | sed -e "/#MACH_DEFINE/,/^MACH/s/=.*/= $i/" > Makefile if [ -f $SRC_HOME/mach/$i/ncg/table_dir ] then ed - Makefile < Makefile cd ../.. fi done for j in libbsd4_1a libbsd4_2 libsysV_2 do if [ -d $i/$j ] then cd $i/$j mk_makefile $MACROS $SRC_HOME/mach/proto/libg/proto.libsys | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" -e "s/libsys/$j/g" > Makefile cd ../.. fi done for j in libcc libcc.ansi libm2 libpc libbc liboc libf77 do create_dir $i/$j cd $i/$j mk_makefile $MACROS $SRC_HOME/mach/proto/libg/proto.$j | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile cd ../.. done if [ $i = vax4 ] then : elif [ -d $i/libsys ] then : else create_dir $i/libsys cd $i/libsys mk_makefile $MACROS $SRC_HOME/mach/proto/libg/proto.sysmon | sed -e "/#MACH_PARAMS/r $SRC_HOME/mach/$i/mach_params" > Makefile cd ../.. fi fi done