From 654715cf8aeda24387263b4a449dfe0b46e7e7c5 Mon Sep 17 00:00:00 2001 From: ceriel Date: Fri, 13 Oct 1989 09:59:54 +0000 Subject: [PATCH] Added mechanism for generating fast compilers --- lang/m2/comp/Makefile | 82 ++++++++++++++++++++++++++++--------------- lang/m2/comp/Resolve | 12 +++---- 2 files changed, 59 insertions(+), 35 deletions(-) diff --git a/lang/m2/comp/Makefile b/lang/m2/comp/Makefile index 183ee1c17..8dffda1df 100644 --- a/lang/m2/comp/Makefile +++ b/lang/m2/comp/Makefile @@ -4,28 +4,54 @@ MDIR = $(EMHOME)/modules MHDIR = $(MDIR)/h PKGDIR = $(MDIR)/pkg LIBDIR = $(MDIR)/lib -OBJECTCODE = $(LIBDIR)/libemk.a LLGEN = $(EMHOME)/bin/LLgen MKDEP = $(EMHOME)/bin/mkdep PRID = $(EMHOME)/bin/prid CID = $(EMHOME)/bin/cid CURRDIR = LINT = lint - -INCLUDES = -I$(MHDIR) -I$(EMHOME)/h -I$(PKGDIR) -OLIBS = $(LIBDIR)/libem_mes.a $(OBJECTCODE) $(LIBDIR)/libinput.a $(LIBDIR)/libassert.a $(LIBDIR)/liballoc.a $(MALLOC) $(LIBDIR)/libprint.a $(LIBDIR)/libstring.a $(LIBDIR)/libsystem.a - -GF = program.g declar.g expression.g statement.g +MACH = sun3 + +MALLOC = $(LIBDIR)/malloc.o +EMELIB = $(LIBDIR)/libem_mes.a $(LIBDIR)/libeme.a +EMKLIB = $(LIBDIR)/libem_mes.a $(LIBDIR)/libemk.a +MODLIB = $(LIBDIR)/libinput.a \ + $(LIBDIR)/libassert.a \ + $(LIBDIR)/liballoc.a \ + $(MALLOC) \ + $(LIBDIR)/libprint.a \ + $(LIBDIR)/libstring.a \ + $(LIBDIR)/libsystem.a +EMCELIB = $(LIBDIR)/libem_mesCE.a \ + $(EMHOME)/lib/$(MACH)/ce.a \ + $(EMHOME)/lib/$(MACH)/back.a \ + $(LIBDIR)/libflt.a \ + $(LIBDIR)/libobject.a \ + $(EMHOME)/lib/em_data.a +EMOCELIB = $(LIBDIR)/libem_mesO.a \ + $(LIBDIR)/libCEopt.a \ + $(EMHOME)/lib/$(MACH)/ce.a \ + $(EMHOME)/lib/$(MACH)/back.a \ + $(LIBDIR)/libflt.a \ + $(LIBDIR)/libobject.a \ + $(EMHOME)/lib/em_data.a + +LIBS = $(EMKLIB) $(MODLIB) +CELIBS = $(EMCELIB) $(MODLIB) +OLIBS = $(EMOCELIB) $(MODLIB) + +GF = program.g declar.g expression.g statement.g GENGFILES= tokenfile.g -GFILES =$(GENGFILES) $(GF) -LLGENOPTIONS = -v +GFILES = $(GENGFILES) $(GF) +LLGENOPTIONS = -v PROFILE = -COPTIONS= -OPTIM=-O -CFLAGS = $(PROFILE) $(INCLUDES) $(COPTIONS) $(OPTIM) -DSTATIC= -LINTFLAGS = -DSTATIC= -DNORCSID -MALLOC = $(LIBDIR)/malloc.o -LDFLAGS = -i $(PROFILE) +COPTIONS = +INCLUDES = -I$(MHDIR) -I$(EMHOME)/h -I$(PKGDIR) +OPTIM = -O +CFLAGS = $(PROFILE) $(INCLUDES) $(COPTIONS) $(OPTIM) -DSTATIC= +LINTFLAGS = -DSTATIC= -DNORCSID +LDFLAGS = -i $(PROFILE) + LSRC = tokenfile.c program.c declar.c expression.c statement.c LOBJ = tokenfile.o program.o declar.o expression.o statement.o CSRC = LLlex.c LLmessage.c error.c main.c \ @@ -42,17 +68,17 @@ GENC= $(LSRC) symbol2str.c char.c Lpars.c casestat.c tmpvar.c scope.c next.c SRC = $(CSRC) $(GENC) OBJ = $(COBJ) $(LOBJ) Lpars.o -GENH= errout.h\ +GENH = errout.h \ idfsize.h numsize.h strsize.h target_sizes.h bigparam.h bigresult.h \ inputtype.h density.h squeeze.h nocross.h nostrict.h \ def.h debugcst.h type.h Lpars.h node.h desig.h strict3rd.h -HFILES= LLlex.h\ - chk_expr.h class.h const.h debug.h f_info.h idf.h\ - input.h main.h misc.h scope.h standards.h tokenname.h\ +HFILES =LLlex.h \ + chk_expr.h class.h const.h debug.h f_info.h idf.h \ + input.h main.h misc.h scope.h standards.h tokenname.h \ walk.h warning.h SYSTEM.h $(GENH) # -GENFILES = $(GENGFILES) $(GENC) $(GENH) -NEXTFILES = def.H type.H node.H desig.H scope.C tmpvar.C casestat.C +GENFILES = $(GENGFILES) $(GENC) $(GENH) +NEXTFILES = def.H type.H node.H desig.H scope.C tmpvar.C casestat.C #EXCLEXCLEXCLEXCL @@ -62,15 +88,13 @@ all: Cfiles Omain: Cfiles rm -f *.o - sh -c 'if $(CC) nmclash.c > /dev/null 2>&1 ; then make "EMHOME="$(EMHOME) "COPTIONS="-DPEEPHOLE $(CURRDIR)omain ; else EMHOME=$(EMHOME); export EMHOME; ./Resolve omain ; fi' + sh -c 'if $(CC) nmclash.c > /dev/null 2>&1 ; then make "MACH="$(MACH) "EMHOME="$(EMHOME) "COPTIONS="-DPEEPHOLE $(CURRDIR)omain ; else MACH=$(MACH); export MACH; EMHOME=$(EMHOME); export EMHOME; ./Resolve omain ; fi' @rm -f nmclash.o a.out - mv *.o PEEPHOLE CEmain: Cfiles rm -f *.o - sh -c 'if $(CC) nmclash.c > /dev/null 2>&1 ; then make "EMHOME="$(EMHOME) "COPTIONS="-DCODE_EXPANDER $(CURRDIR)cemain ; else EMHOME=$(EMHOME); export EMHOME; ./Resolve cemain ; fi' + sh -c 'if $(CC) nmclash.c > /dev/null 2>&1 ; then make "MACH="$(MACH) "EMHOME="$(EMHOME) "COPTIONS="-DCODE_EXPANDER $(CURRDIR)cemain ; else MACH=$(MACH); export MACH; EMHOME=$(EMHOME); export EMHOME; ./Resolve cemain ; fi' @rm -f nmclash.o a.out - mv *.o CODE_EXPANDER install: all cp $(CURRDIR)main $(EMHOME)/lib/em_m2 @@ -163,16 +187,16 @@ Xlint: $(LIBDIR)/llib-lsystem.ln $(CURRDIR)main: $(OBJ) $(CURRDIR)Makefile - $(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)main + $(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o $(CURRDIR)main -size $(CURRDIR)main $(CURRDIR)omain: $(OBJ) #$(CURRDIR)Makefile - #$(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)omain - #size $(CURRDIR)omain + $(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)omain + -size $(CURRDIR)omain $(CURRDIR)cemain: $(OBJ) #$(CURRDIR)Makefile - #$(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)cemain - #size $(CURRDIR)cemain + $(CC) $(LDFLAGS) $(OBJ) $(CELIBS) -o $(CURRDIR)cemain + -size $(CURRDIR)cemain #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO diff --git a/lang/m2/comp/Resolve b/lang/m2/comp/Resolve index a551de292..e64381d5e 100755 --- a/lang/m2/comp/Resolve +++ b/lang/m2/comp/Resolve @@ -1,5 +1,6 @@ : create a directory Xsrc with name clashes resolved : and run make in that directory +: '$Header$' case $# in 1) @@ -8,14 +9,14 @@ case $# in exit 1 ;; esac -currdir=`pwd` +PW=`pwd` case $1 in -main) target=$currdir/$1 +main) target=$PW/$1 ;; -omain) target=$currdir/$1 +omain) target=$PW/$1 options=-DPEEPHOLE ;; -cemain) target=$currdir/$1 +cemain) target=$PW/$1 options=-DCODE_EXPANDER ;; Xlint) target=$1 @@ -35,7 +36,6 @@ make EMHOME=$EMHOME longnames sed '/^C_/d' < longnames > tmp$$ cclash -c -l7 tmp$$ > ../Xsrc/Xclashes rm -f tmp$$ -PW=`pwd` cd ../Xsrc if cmp -s Xclashes clashes then @@ -57,4 +57,4 @@ $i: clashes $PW/$i \$(CID) -Fclashes < $PW/$i > $i EOF done -make EMHOME=$EMHOME CURRDIR=$currdir/ COPTIONS=$options $target +make EMHOME=$EMHOME COPTIONS=$options MACH=$MACH CURRDIR=$PW/ $target -- 2.34.1