# MAKEFILE FOR (STAND_ALONE) CEM PREPROCESSOR EMHOME=../.. MODULES=$(EMHOME)/modules MODULESLIB=$(MODULES)/lib BIN=$(EMHOME)/lib MANDIR=$(EMHOME)/man # Some paths # Libraries SYSLIB = $(MODULESLIB)/libsystem.a STRLIB = $(MODULESLIB)/libstring.a PRTLIB = $(MODULESLIB)/libprint.a ALLOCLIB = $(MODULESLIB)/liballoc.a ASSERTLIB = $(MODULESLIB)/libassert.a MALLOC = $(MODULESLIB)/malloc.o LIBS = $(PRTLIB) $(STRLIB) $(ALLOCLIB) $(MALLOC) $(ASSERTLIB) $(SYSLIB) LIB_INCLUDES = -I$(MODULES)/h -I$(MODULES)/pkg # Where to install the preprocessor CEMPP = $(BIN)/cpp # What C compiler to use and how CC = cc COPTIONS = LDFLAGS = # What parser generator to use and how GEN = $(EMHOME)/bin/LLgen GENOPTIONS = # Special #defines during compilation CDEFS = $(LIB_INCLUDES) CFLAGS = $(CDEFS) $(COPTIONS) -O# # we cannot pass the COPTIONS to lint! # Grammar files and their objects LSRC = tokenfile.g expression.g LCSRC = tokenfile.c expression.c Lpars.c LOBJ = tokenfile.o expression.o Lpars.o # Objects of hand-written C files CSRC = LLlex.c LLmessage.c ch7bin.c ch7mon.c domacro.c \ error.c idf.c init.c input.c main.c options.c Version.c \ preprocess.c replace.c scan.c skip.c tokenname.c next.c expr.c COBJ = LLlex.o LLmessage.o ch7bin.o ch7mon.o domacro.o \ error.o idf.o init.o input.o main.o options.o Version.o \ preprocess.o replace.o scan.o skip.o tokenname.o next.o expr.o PRFILES = Makefile Parameters \ make.hfiles make.tokcase make.tokfile LLlex.h bits.h file_info.h \ idf.h input.h interface.h macro.h \ class.h char.tab expression.g $(CSRC) # Objects of other generated C files GOBJ = char.o symbol2str.o # generated source files GSRC = char.c symbol2str.c # .h files generated by `make hfiles'; PLEASE KEEP THIS UP-TO-DATE! GHSRC = errout.h idfsize.h ifdepth.h lapbuf.h \ nparams.h numsize.h obufsize.h \ parbufsize.h pathlength.h strsize.h textsize.h \ botch_free.h debug.h inputtype.h dobits.h line_prefix.h # Other generated files, for 'make clean' only GENERATED = tokenfile.g Lpars.h LLfiles LL.output lint.out \ Xref hfiles cfiles charoffset.h all: cc cc: hfiles LLfiles make "EMHOME="$(EMHOME) cpp hfiles: Parameters char.c charoffset.h ./make.hfiles Parameters @touch hfiles charoffset.h char.c: char.tab $(EMHOME)/bin/tabgen -fchar.tab > char.c LLfiles: $(LSRC) $(GEN) $(GENOPTIONS) $(LSRC) @touch LLfiles tokenfile.g: tokenname.c make.tokfile tokenfile.g symbol2str.c: tokenname.c make.tokcase symbol2str.c # Objects needed for 'cpp' OBJ = $(COBJ) $(LOBJ) $(GOBJ) SRC = $(CSRC) $(LCSRC) $(GSRC) cpp: $(OBJ) Makefile $(CC) $(COPTIONS) $(LDFLAGS) $(OBJ) $(LIBS) -o cpp -size cpp cfiles: hfiles LLfiles $(GSRC) @touch cfiles install: all rm -f $(CEMPP) cp cpp $(CEMPP) rm -f $(MANDIR)/cpp.6 cp cpp.6 $(MANDIR)/cpp.6 cmp: all -cmp cpp $(CEMPP) -cmp cpp.6 $(MANDIR)/cpp.6 pr: @pr $(PRFILES) opr: make pr | opr tags: cfiles ctags $(SRC) depend: cfiles sed '/^#AUTOAUTO/,$$d' Makefile >Makefile.new echo '#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO' >>Makefile.new $(EMHOME)/bin/mkdep $(SRC) | \ sed 's/\.c:/.o:/' >>Makefile.new mv Makefile Makefile.old mv Makefile.new Makefile xref: ctags -x `grep "\.[ch]" Files`|sed "s/).*/)/">Xref lint: cfiles lint -bx $(CDEFS) $(SRC) >lint.out clean: rm -f $(LCSRC) $(OBJ) $(GENERATED) $(GSRC) $(GHSRC) cpp Out #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO LLlex.o: LLlex.h LLlex.o: Lpars.h LLlex.o: bits.h LLlex.o: charoffset.h LLlex.o: class.h LLlex.o: dobits.h LLlex.o: file_info.h LLlex.o: idf.h LLlex.o: idfsize.h LLlex.o: input.h LLlex.o: inputtype.h LLlex.o: numsize.h LLlex.o: strsize.h LLmessage.o: LLlex.h LLmessage.o: Lpars.h LLmessage.o: file_info.h ch7bin.o: Lpars.h ch7mon.o: Lpars.h domacro.o: LLlex.h domacro.o: Lpars.h domacro.o: bits.h domacro.o: botch_free.h domacro.o: charoffset.h domacro.o: class.h domacro.o: debug.h domacro.o: dobits.h domacro.o: file_info.h domacro.o: idf.h domacro.o: idfsize.h domacro.o: ifdepth.h domacro.o: input.h domacro.o: inputtype.h domacro.o: interface.h domacro.o: macro.h domacro.o: nparams.h domacro.o: parbufsize.h domacro.o: textsize.h error.o: LLlex.h error.o: errout.h error.o: file_info.h idf.o: idf.h init.o: charoffset.h init.o: class.h init.o: idf.h init.o: interface.h init.o: macro.h input.o: file_info.h input.o: input.h input.o: inputtype.h main.o: file_info.h main.o: idf.h main.o: idfsize.h main.o: macro.h options.o: charoffset.h options.o: class.h options.o: idf.h options.o: idfsize.h options.o: macro.h preprocess.o: LLlex.h preprocess.o: bits.h preprocess.o: charoffset.h preprocess.o: class.h preprocess.o: dobits.h preprocess.o: file_info.h preprocess.o: idf.h preprocess.o: idfsize.h preprocess.o: input.h preprocess.o: inputtype.h preprocess.o: line_prefix.h preprocess.o: obufsize.h replace.o: LLlex.h replace.o: charoffset.h replace.o: class.h replace.o: debug.h replace.o: file_info.h replace.o: idf.h replace.o: input.h replace.o: inputtype.h replace.o: interface.h replace.o: macro.h replace.o: pathlength.h replace.o: textsize.h scan.o: charoffset.h scan.o: class.h scan.o: file_info.h scan.o: idf.h scan.o: input.h scan.o: inputtype.h scan.o: interface.h scan.o: lapbuf.h scan.o: macro.h scan.o: nparams.h skip.o: LLlex.h skip.o: charoffset.h skip.o: class.h skip.o: file_info.h skip.o: input.h skip.o: inputtype.h tokenname.o: LLlex.h tokenname.o: Lpars.h tokenname.o: file_info.h tokenname.o: idf.h next.o: debug.h expr.o: Lpars.h tokenfile.o: Lpars.h expression.o: LLlex.h expression.o: Lpars.h expression.o: file_info.h Lpars.o: Lpars.h char.o: charoffset.h char.o: class.h symbol2str.o: Lpars.h