Added mechanism for generating fast compilers
authorceriel <none@none>
Fri, 13 Oct 1989 09:59:54 +0000 (09:59 +0000)
committerceriel <none@none>
Fri, 13 Oct 1989 09:59:54 +0000 (09:59 +0000)
lang/m2/comp/Makefile
lang/m2/comp/Resolve

index 183ee1c..8dffda1 100644 (file)
@@ -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
index a551de2..e64381d 100755 (executable)
@@ -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