123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- # $Header$
- # M A K E F I L E F O R A C K C - C O M P I L E R
- # Some paths
- BIN =/user1/$$USER/bin# # provisional ???
- EM = /usr/em# # where to find the ACK tree
- ACK = $(EM)/bin/ack# # old ACK C compiler
- EM_INCLUDES =$(EM)/h# # directory containing EM interface definition
- # Libraries
- SYSLIB = /user1/erikb/em/lib/libsystem.a
- LIBS = $(SYSLIB)
- LIB_INCLUDES = /user1/erikb/em/h
- # Where to install the compiler and its driver
- CEMCOM = $(BIN)/cemcom
- DRIVER = $(BIN)/cem
- # What C compiler to use and how
- CC = $(ACK) -.c
- CC = CC
- CC = /bin/cc
- COPTIONS =
- # What parser generator to use and how
- GEN = /user0/ceriel/bin/LLgen
- GENOPTIONS = -vv
- # Special #defines during compilation
- CDEFS = $(MAP) -I$(EM_INCLUDES) -I$(LIB_INCLUDES)
- CFLAGS = $(CDEFS) $(COPTIONS) -O# # we cannot pass the COPTIONS to lint!
- # Grammar files and their objects
- LSRC = tokenfile.g declar.g statement.g expression.g program.g
- LOBJ = tokenfile.o declar.o statement.o expression.o program.o Lpars.o
- # Objects of hand-written C files
- COBJ = main.o idf.o declarator.o decspecs.o struct.o \
- expr.o ch7.o ch7bin.o cstoper.o arith.o \
- alloc.o asm.o code.o dumpidf.o error.o field.o\
- tokenname.o LLlex.o LLmessage.o \
- input.o domacro.o replace.o init.o options.o \
- scan.o skip.o stack.o type.o ch7mon.o label.o eval.o \
- switch.o storage.o ival.o conversion.o \
- em.o blocks.o dataflow.o string.o
- # Objects of other generated C files
- GOBJ = char.o symbol2str.o next.o writeem.o
- # generated source files
- GSRC = char.c symbol2str.c next.c writeem.c \
- code.h declar.h decspecs.h def.h expr.h field.h \
- idf.h macro.h stack.h struct.h switch.h type.h \
- writeem.h
- # .h files generated by `make hfiles'; PLEASE KEEP THIS UP-TO-DATE!
- GHSRC = botch_free.h dataflow.h debug.h density.h errout.h \
- idepth.h idfsize.h ifdepth.h inputtype.h inumlength.h lapbuf.h \
- maxincl.h myalloc.h nobitfield.h nopp.h \
- nparams.h numsize.h parbufsize.h pathlength.h predefine.h \
- proc_intf.h strsize.h target_sizes.h textsize.h use_tmp.h \
- str_params.h spec_arith.h
- # Other generated files, for 'make clean' only
- GENERATED = tab tokenfile.g Lpars.h LLfiles LL.output lint.out \
- print Xref lxref hfiles cfiles
- # include files containing ALLOCDEF specifications
- NEXTFILES = code.str declar.str decspecs.str def.str expr.str field.str \
- idf.str macro.str stack.str struct.str switch.str type.str
- .SUFFIXES: .str .h
- .str.h:
- ./make.allocd <$*.str >$*.h
- all: cc
- cc:
- make hfiles
- make LLfiles
- make main
- cem: cem.c string.o
- $(CC) -O cem.c string.o $(SYSLIB) -o cem
- lint.cem: cem.c string.c
- lint -abx cem.c
- hfiles: Parameters
- ./make.hfiles Parameters
- @touch hfiles
- LLfiles: $(LSRC)
- $(GEN) $(GENOPTIONS) $(LSRC)
- @touch LLfiles
- tokenfile.g: tokenname.c make.tokfile
- <tokenname.c ./make.tokfile >tokenfile.g
- symbol2str.c: tokenname.c make.tokcase
- <tokenname.c ./make.tokcase >symbol2str.c
- char.c: tab char.tab
- tab -fchar.tab >char.c
- next.c: make.next $(NEXTFILES)
- ./make.next $(NEXTFILES) >next.c
- code.h: make.allocd
- declar.h: make.allocd
- decspecs.h: make.allocd
- def.h: make.allocd
- expr.h: make.allocd
- field.h: make.allocd
- idf.h: make.allocd
- macro.h: make.allocd
- stack.h: make.allocd
- struct.h: make.allocd
- switch.h: make.allocd
- type.h: make.allocd
- writeem.c: make.emfun emcode.def
- ./make.emfun emcode.def >writeem.c
- writeem.h: make.emmac emcode.def
- ./make.emmac emcode.def >writeem.h
- # Objects needed for 'main'
- OBJ = $(COBJ) $(LOBJ) $(GOBJ)
- main: $(OBJ) Makefile
- $(CC) $(COPTIONS) $(LFLAGS) $(OBJ) $(LIBS) -o main
- size main
- cfiles: hfiles LLfiles $(GSRC)
- @touch cfiles
- install: main cem
- cp main $(CEMCOM)
- cp cem $(DRIVER)
- print: files
- pr `cat files` > print
- tags: cfiles
- ctags `sources $(OBJ)`
- shar: files
- shar `cat files`
- listcfiles:
- @echo `sources $(OBJ)`
- listobjects:
- @echo $(OBJ)
- depend: cfiles
- sed '/^#AUTOAUTO/,$$d' Makefile >Makefile.new
- echo '#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO' >>Makefile.new
- /user1/erikb/bin/mkdep `sources $(OBJ)` | \
- sed 's/\.c:/.o:/' >>Makefile.new
- mv Makefile Makefile.old
- mv Makefile.new Makefile
-
- xref:
- ctags -x `grep "\.[ch]" files`|sed "s/).*/)/">Xref
-
- lxref:
- lxref $(OBJ) -lc >lxref
- lint: lint.main lint.cem lint.tab
- lint.main: cfiles
- lint -DNORCSID -bx $(CDEFS) `sources $(OBJ)` >lint.out
- cchk:
- cchk `sources $(COBJ)`
- clean:
- rm -f `sources $(LOBJ)` $(OBJ) $(GENERATED) $(GSRC) $(GHSRC)
- tab:
- $(CC) tab.c -o tab
- lint.tab:
- lint -abx tab.c
- sim: cfiles
- $(SIM) $(SIMFLAGS) `sources $(COBJ)` $(GSRC) $(LSRC)
- #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
- main.o: LLlex.h Lpars.h alloc.h arith.h debug.h declar.h idf.h input.h inputtype.h level.h maxincl.h myalloc.h nobitfield.h nopp.h spec_arith.h specials.h target_sizes.h tokenname.h type.h use_tmp.h
- idf.o: LLlex.h Lpars.h align.h alloc.h arith.h assert.h botch_free.h debug.h declar.h decspecs.h def.h idf.h idfsize.h label.h level.h nobitfield.h nopp.h sizes.h spec_arith.h specials.h stack.h storage.h struct.h type.h
- declarator.o: Lpars.h alloc.h arith.h botch_free.h declar.h expr.h idf.h label.h nobitfield.h nopp.h sizes.h spec_arith.h storage.h type.h
- decspecs.o: Lpars.h arith.h decspecs.h def.h level.h nobitfield.h spec_arith.h type.h
- struct.o: LLlex.h Lpars.h align.h arith.h assert.h botch_free.h debug.h def.h field.h idf.h level.h nobitfield.h nopp.h sizes.h spec_arith.h stack.h storage.h struct.h type.h
- expr.o: LLlex.h Lpars.h alloc.h arith.h botch_free.h declar.h decspecs.h def.h expr.h idf.h label.h nobitfield.h nopp.h sizes.h spec_arith.h storage.h type.h
- ch7.o: Lpars.h arith.h assert.h debug.h def.h expr.h idf.h label.h nobitfield.h nopp.h spec_arith.h struct.h type.h
- ch7bin.o: Lpars.h arith.h botch_free.h expr.h idf.h label.h nobitfield.h nopp.h spec_arith.h storage.h struct.h type.h
- cstoper.o: Lpars.h arith.h expr.h idf.h label.h nobitfield.h nopp.h sizes.h spec_arith.h target_sizes.h type.h
- arith.o: Lpars.h alloc.h arith.h botch_free.h expr.h field.h idf.h label.h mes.h nobitfield.h nopp.h spec_arith.h storage.h type.h
- alloc.o: alloc.h assert.h debug.h myalloc.h
- code.o: LLlex.h Lpars.h alloc.h arith.h assert.h atw.h botch_free.h code.h dataflow.h debug.h declar.h decspecs.h def.h em.h expr.h idf.h label.h level.h mes.h nobitfield.h nopp.h proc_intf.h sizes.h spec_arith.h specials.h stack.h storage.h type.h use_tmp.h writeem.h
- dumpidf.o: Lpars.h arith.h debug.h def.h expr.h field.h idf.h label.h nobitfield.h nopp.h spec_arith.h stack.h struct.h type.h
- error.o: LLlex.h arith.h debug.h em.h errout.h expr.h label.h nopp.h proc_intf.h spec_arith.h string.h tokenname.h use_tmp.h writeem.h
- field.o: Lpars.h arith.h assert.h code.h debug.h em.h expr.h field.h idf.h label.h nobitfield.h nopp.h proc_intf.h sizes.h spec_arith.h type.h writeem.h
- tokenname.o: LLlex.h Lpars.h arith.h idf.h nopp.h spec_arith.h tokenname.h
- LLlex.o: LLlex.h Lpars.h alloc.h arith.h assert.h class.h debug.h def.h idf.h idfsize.h input.h nopp.h numsize.h sizes.h spec_arith.h strsize.h
- LLmessage.o: LLlex.h Lpars.h alloc.h arith.h idf.h nopp.h spec_arith.h
- input.o: LLlex.h alloc.h arith.h assert.h debug.h idepth.h input.h inputtype.h interface.h nopp.h pathlength.h spec_arith.h
- domacro.o: LLlex.h Lpars.h alloc.h arith.h assert.h botch_free.h class.h debug.h idf.h idfsize.h ifdepth.h input.h interface.h macro.h nopp.h nparams.h parbufsize.h spec_arith.h storage.h textsize.h
- replace.o: LLlex.h alloc.h arith.h assert.h class.h debug.h idf.h input.h interface.h macro.h nopp.h pathlength.h spec_arith.h string.h strsize.h
- init.o: alloc.h class.h idf.h interface.h macro.h nopp.h predefine.h string.h
- options.o: align.h arith.h class.h idf.h idfsize.h macro.h maxincl.h nobitfield.h nopp.h sizes.h spec_arith.h storage.h
- scan.o: class.h idf.h input.h interface.h lapbuf.h macro.h nopp.h nparams.h
- skip.o: LLlex.h arith.h class.h input.h interface.h nopp.h spec_arith.h
- stack.o: Lpars.h alloc.h arith.h botch_free.h debug.h def.h em.h idf.h level.h mes.h nobitfield.h nopp.h proc_intf.h spec_arith.h stack.h storage.h struct.h type.h use_tmp.h writeem.h
- type.o: Lpars.h align.h alloc.h arith.h def.h idf.h nobitfield.h nopp.h sizes.h spec_arith.h type.h
- ch7mon.o: Lpars.h arith.h botch_free.h def.h expr.h idf.h label.h nobitfield.h nopp.h spec_arith.h storage.h type.h
- label.o: Lpars.h arith.h def.h idf.h label.h level.h nobitfield.h nopp.h spec_arith.h type.h
- eval.o: Lpars.h align.h arith.h assert.h atw.h code.h dataflow.h debug.h def.h em.h expr.h idf.h label.h level.h mes.h nobitfield.h nopp.h proc_intf.h sizes.h spec_arith.h stack.h string.h type.h writeem.h
- switch.o: arith.h assert.h botch_free.h code.h debug.h density.h em.h expr.h idf.h label.h nobitfield.h nopp.h proc_intf.h spec_arith.h storage.h switch.h type.h writeem.h
- storage.o: alloc.h assert.h botch_free.h debug.h storage.h
- ival.o: Lpars.h align.h arith.h assert.h class.h debug.h def.h em.h expr.h field.h idf.h label.h level.h nobitfield.h nopp.h proc_intf.h sizes.h spec_arith.h string.h struct.h type.h writeem.h
- conversion.o: Lpars.h arith.h em.h nobitfield.h proc_intf.h sizes.h spec_arith.h type.h writeem.h
- em.o: arith.h em.h label.h proc_intf.h spec_arith.h writeem.h
- blocks.o: arith.h atw.h em.h proc_intf.h sizes.h spec_arith.h writeem.h
- dataflow.o: dataflow.h
- string.o: arith.h nopp.h spec_arith.h str_params.h string.h
- tokenfile.o: Lpars.h
- declar.o: LLlex.h Lpars.h arith.h debug.h declar.h decspecs.h def.h expr.h field.h idf.h label.h nobitfield.h nopp.h sizes.h spec_arith.h struct.h type.h
- statement.o: LLlex.h Lpars.h arith.h botch_free.h code.h debug.h def.h em.h expr.h idf.h label.h nobitfield.h nopp.h proc_intf.h spec_arith.h stack.h storage.h type.h writeem.h
- expression.o: LLlex.h Lpars.h arith.h expr.h idf.h label.h nobitfield.h nopp.h spec_arith.h type.h
- program.o: LLlex.h Lpars.h alloc.h arith.h code.h declar.h decspecs.h def.h expr.h idf.h label.h nobitfield.h nopp.h spec_arith.h type.h
- Lpars.o: Lpars.h
- char.o: class.h
- symbol2str.o: Lpars.h
- writeem.o: arith.h em.h label.h proc_intf.h spec_arith.h writeem.h
|