Added mechanism for generating fast compilers
This commit is contained in:
parent
654715cf8a
commit
257b4847bf
2 changed files with 51 additions and 26 deletions
|
@ -4,30 +4,57 @@ MDIR = $(EMHOME)/modules
|
||||||
MHDIR = $(MDIR)/h
|
MHDIR = $(MDIR)/h
|
||||||
PKGDIR = $(MDIR)/pkg
|
PKGDIR = $(MDIR)/pkg
|
||||||
LIBDIR = $(MDIR)/lib
|
LIBDIR = $(MDIR)/lib
|
||||||
OBJECTCODE = $(LIBDIR)/libemk.a
|
|
||||||
LLGEN = $(EMHOME)/bin/LLgen
|
LLGEN = $(EMHOME)/bin/LLgen
|
||||||
MKDEP = $(EMHOME)/bin/mkdep
|
MKDEP = $(EMHOME)/bin/mkdep
|
||||||
PRID = $(EMHOME)/bin/prid
|
PRID = $(EMHOME)/bin/prid
|
||||||
CID = $(EMHOME)/bin/cid
|
CID = $(EMHOME)/bin/cid
|
||||||
|
OPR = opr
|
||||||
CURRDIR =
|
CURRDIR =
|
||||||
CC = fcc
|
CC = fcc
|
||||||
CC = cc
|
CC = cc
|
||||||
PRINTER = vu45
|
|
||||||
LINT = lint
|
LINT = lint
|
||||||
|
MACH = sun3
|
||||||
|
|
||||||
INCLUDES = -I$(MHDIR) -I$(EMHOME)/h -I$(PKGDIR)
|
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
|
||||||
|
|
||||||
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
|
LIBS = $(EMKLIB) $(MODLIB)
|
||||||
|
CELIBS = $(EMCELIB) $(MODLIB)
|
||||||
|
OLIBS = $(EMOCELIB) $(MODLIB)
|
||||||
|
|
||||||
GFILES = tokenfile.g declar.g expression.g program.g statement.g
|
GFILES = tokenfile.g declar.g expression.g program.g statement.g
|
||||||
LLGENOPTIONS =
|
LLGENOPTIONS =
|
||||||
PROFILE =
|
PROFILE =
|
||||||
COPTIONS =
|
COPTIONS =
|
||||||
|
INCLUDES = -I$(MHDIR) -I$(EMHOME)/h -I$(PKGDIR)
|
||||||
OPTIM= -O
|
OPTIM= -O
|
||||||
CFLAGS = $(PROFILE) $(INCLUDES) $(OPTIM) $(COPTIONS) -DSTATIC=
|
CFLAGS = $(PROFILE) $(INCLUDES) $(OPTIM) $(COPTIONS) -DSTATIC=
|
||||||
LINTFLAGS = -DSTATIC= -DNORCSID
|
LINTFLAGS = -DSTATIC= -DNORCSID
|
||||||
MALLOC = $(LIBDIR)/malloc.o
|
|
||||||
LDFLAGS = -i $(PROFILE)
|
LDFLAGS = -i $(PROFILE)
|
||||||
|
|
||||||
LSRC = declar.c expression.c program.c statement.c tokenfile.c
|
LSRC = declar.c expression.c program.c statement.c tokenfile.c
|
||||||
LOBJ = declar.o expression.o program.o statement.o tokenfile.o
|
LOBJ = declar.o expression.o program.o statement.o tokenfile.o
|
||||||
CSRC = LLlex.c LLmessage.c body.c chk_expr.c code.c\
|
CSRC = LLlex.c LLmessage.c body.c chk_expr.c code.c\
|
||||||
|
@ -62,15 +89,13 @@ all: Cfiles
|
||||||
|
|
||||||
Omain: Cfiles
|
Omain: Cfiles
|
||||||
rm -f *.o
|
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
|
@rm -f nmclash.o a.out
|
||||||
mv *.o PEEPHOLE
|
|
||||||
|
|
||||||
CEmain: Cfiles
|
CEmain: Cfiles
|
||||||
rm -f *.o
|
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
|
@rm -f nmclash.o a.out
|
||||||
mv *.o CODE_EXPANDER
|
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
cp $(CURRDIR)main $(EMHOME)/lib/em_pc
|
cp $(CURRDIR)main $(EMHOME)/lib/em_pc
|
||||||
|
@ -79,7 +104,7 @@ cmp: all
|
||||||
-cmp $(CURRDIR)main $(EMHOME)/lib/em_pc
|
-cmp $(CURRDIR)main $(EMHOME)/lib/em_pc
|
||||||
|
|
||||||
opr:
|
opr:
|
||||||
make pr | opr
|
make pr | $(OPR)
|
||||||
|
|
||||||
pr:
|
pr:
|
||||||
@pr Makefile Resolve Parameters $(GFILES) *.H $(HFILES) *.C $(CSRC)
|
@pr Makefile Resolve Parameters $(GFILES) *.H $(HFILES) *.C $(CSRC)
|
||||||
|
@ -146,7 +171,7 @@ depend: Cfiles
|
||||||
mv Makefile.new Makefile
|
mv Makefile.new Makefile
|
||||||
|
|
||||||
print: $(CSRC) $(GFILES) $(HFILES) # print recently changed files
|
print: $(CSRC) $(GFILES) $(HFILES) # print recently changed files
|
||||||
pr -t $? | rpr $(PRINTER)
|
pr -t $? | $(OPR)
|
||||||
@touch print
|
@touch print
|
||||||
|
|
||||||
xref:
|
xref:
|
||||||
|
@ -167,17 +192,17 @@ Xlint:
|
||||||
|
|
||||||
$(CURRDIR)main: $(OBJ) $(CURRDIR)Makefile
|
$(CURRDIR)main: $(OBJ) $(CURRDIR)Makefile
|
||||||
-mv $(CURRDIR)main $(CURRDIR)main.old
|
-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.old
|
||||||
size $(CURRDIR)main
|
size $(CURRDIR)main
|
||||||
|
|
||||||
$(CURRDIR)omain: $(OBJ) #$(CURRDIR)Makefile
|
$(CURRDIR)omain: $(OBJ) #$(CURRDIR)Makefile
|
||||||
# #$(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)omain
|
$(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)omain
|
||||||
# #size $(CURRDIR)omain
|
-size $(CURRDIR)omain
|
||||||
|
|
||||||
$(CURRDIR)cemain: $(OBJ) #$(CURRDIR)Makefile
|
$(CURRDIR)cemain: $(OBJ) #$(CURRDIR)Makefile
|
||||||
# #$(CC) $(LDFLAGS) $(OBJ) $(OLIBS) -o $(CURRDIR)cemain
|
$(CC) $(LDFLAGS) $(OBJ) $(CELIBS) -o $(CURRDIR)cemain
|
||||||
# # #size $(CURRDIR)cemain
|
-size $(CURRDIR)cemain
|
||||||
|
|
||||||
#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
|
#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
|
||||||
LLlex.o: LLlex.h
|
LLlex.o: LLlex.h
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
: create a directory Xsrc with name clashes resolved
|
: create a directory Xsrc with name clashes resolved
|
||||||
: and run make in that directory
|
: and run make in that directory
|
||||||
|
: '$Header$'
|
||||||
|
|
||||||
case $# in
|
case $# in
|
||||||
1)
|
1)
|
||||||
|
@ -8,14 +9,14 @@ case $# in
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
currdir=`pwd`
|
PW=`pwd`
|
||||||
case $1 in
|
case $1 in
|
||||||
main) target=$currdir/$1
|
main) target=$PW/$1
|
||||||
;;
|
;;
|
||||||
omain) target=$currdir/$1
|
omain) target=$PW/$1
|
||||||
options=-DPEEPHOLE
|
options=-DPEEPHOLE
|
||||||
;;
|
;;
|
||||||
cemain) target=$currdir/$1
|
cemain) target=$PW/$1
|
||||||
options=-DCODE_EXPANDER
|
options=-DCODE_EXPANDER
|
||||||
;;
|
;;
|
||||||
Xlint) target=$1
|
Xlint) target=$1
|
||||||
|
@ -35,7 +36,6 @@ make EMHOME=$EMHOME longnames
|
||||||
sed '/^C_/d' < longnames > tmp$$
|
sed '/^C_/d' < longnames > tmp$$
|
||||||
cclash -c -l7 tmp$$ > ../Xsrc/Xclashes
|
cclash -c -l7 tmp$$ > ../Xsrc/Xclashes
|
||||||
rm -f tmp$$
|
rm -f tmp$$
|
||||||
PW=`pwd`
|
|
||||||
cd ../Xsrc
|
cd ../Xsrc
|
||||||
if cmp -s Xclashes clashes
|
if cmp -s Xclashes clashes
|
||||||
then
|
then
|
||||||
|
@ -57,4 +57,4 @@ $i: clashes $PW/$i
|
||||||
\$(CID) -Fclashes < $PW/$i > $i
|
\$(CID) -Fclashes < $PW/$i > $i
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
make EMHOME=$EMHOME CURRDIR=$currdir/ COPTIONS=$options $target
|
make EMHOME=$EMHOME COPTIONS=$options MACH=$MACH CURRDIR=$PW/ $target
|
||||||
|
|
Loading…
Add table
Reference in a new issue