From: ceriel Date: Fri, 13 Oct 1989 10:48:07 +0000 (+0000) Subject: Added mechanism for generating fast compilers X-Git-Tag: release-5-5~2221 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=257b4847bf2a78a3e7b7695f6ae72fcc8f8685f0;p=ack.git Added mechanism for generating fast compilers --- diff --git a/lang/pc/comp/Makefile b/lang/pc/comp/Makefile index 22e9d4fe4..efd3fec55 100644 --- a/lang/pc/comp/Makefile +++ b/lang/pc/comp/Makefile @@ -4,30 +4,57 @@ 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 +OPR = opr CURRDIR = CC = fcc CC = cc -PRINTER = vu45 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 +MACH = sun3 + +MALLOC = $(LIBDIR)/malloc.o +EMELIB = $(LIBDIR)/libem_mes.a \ + $(LIBDIR)/libeme.a \ + $(EMHOME)/lib/em_data.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) GFILES = tokenfile.g declar.g expression.g program.g statement.g LLGENOPTIONS = PROFILE = COPTIONS = -OPTIM= -O -CFLAGS = $(PROFILE) $(INCLUDES) $(OPTIM) $(COPTIONS) -DSTATIC= -LINTFLAGS = -DSTATIC= -DNORCSID -MALLOC = $(LIBDIR)/malloc.o -LDFLAGS = -i $(PROFILE) +INCLUDES = -I$(MHDIR) -I$(EMHOME)/h -I$(PKGDIR) +OPTIM= -O +CFLAGS = $(PROFILE) $(INCLUDES) $(OPTIM) $(COPTIONS) -DSTATIC= +LINTFLAGS = -DSTATIC= -DNORCSID +LDFLAGS = -i $(PROFILE) + LSRC = declar.c expression.c program.c statement.c tokenfile.c LOBJ = declar.o expression.o program.o statement.o tokenfile.o CSRC = LLlex.c LLmessage.c body.c chk_expr.c code.c\ @@ -62,15 +89,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_pc @@ -79,7 +104,7 @@ cmp: all -cmp $(CURRDIR)main $(EMHOME)/lib/em_pc opr: - make pr | opr + make pr | $(OPR) pr: @pr Makefile Resolve Parameters $(GFILES) *.H $(HFILES) *.C $(CSRC) @@ -146,7 +171,7 @@ depend: Cfiles mv Makefile.new Makefile print: $(CSRC) $(GFILES) $(HFILES) # print recently changed files - pr -t $? | rpr $(PRINTER) + pr -t $? | $(OPR) @touch print xref: @@ -167,17 +192,17 @@ Xlint: $(CURRDIR)main: $(OBJ) $(CURRDIR)Makefile -mv $(CURRDIR)main $(CURRDIR)main.old - $(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)main + $(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o $(CURRDIR)main -size $(CURRDIR)main.old 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 LLlex.o: LLlex.h diff --git a/lang/pc/comp/Resolve b/lang/pc/comp/Resolve index a551de292..e64381d5e 100755 --- a/lang/pc/comp/Resolve +++ b/lang/pc/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