# $Id$ #PARAMS do not remove this line! SRC_DIR = $(SRC_HOME)/util/cpp MODULES=$(TARGET_HOME)/modules UMODULES=$(UTIL_HOME)/modules MODULESLIB=$(MODULES)/lib UMODULESLIB=$(UMODULES)/lib BIN=$(TARGET_HOME)/lib.bin # Libraries SYSLIB = $(MODULESLIB)/libsystem.$(LIBSUF) STRLIB = $(MODULESLIB)/libstring.$(LIBSUF) PRTLIB = $(MODULESLIB)/libprint.$(LIBSUF) ALLOCLIB = $(MODULESLIB)/liballoc.$(LIBSUF) ASSERTLIB = $(MODULESLIB)/libassert.$(LIBSUF) MALLOC = $(MODULESLIB)/malloc.$(SUF) LIBS = $(PRTLIB) $(STRLIB) $(ALLOCLIB) $(MALLOC) $(ASSERTLIB) $(SYSLIB) LINTLIBS = \ $(UMODULESLIB)/$(LINTPREF)print.$(LINTSUF) \ $(UMODULESLIB)/$(LINTPREF)string.$(LINTSUF) \ $(UMODULESLIB)/$(LINTPREF)alloc.$(LINTSUF) \ $(UMODULESLIB)/$(LINTPREF)assert.$(LINTSUF) \ $(UMODULESLIB)/$(LINTPREF)system.$(LINTSUF) INCLUDES = -I$(MODULES)/h -I$(MODULES)/pkg -I. -I$(SRC_DIR) CFLAGS = $(INCLUDES) $(COPTIONS) LDFLAGS = $(LDOPTIONS) LINTFLAGS = $(INCLUDES) $(LINTOPTIONS) # Where to install the preprocessor CEMPP = $(BIN)/cpp # Grammar files and their objects LSRC = tokenfile.g $(SRC_DIR)/expression.g LCSRC = tokenfile.c expression.c Lpars.c LOBJ = tokenfile.$(SUF) expression.$(SUF) Lpars.$(SUF) # Objects of hand-written C files CSRC = $(SRC_DIR)/LLlex.c $(SRC_DIR)/LLmessage.c $(SRC_DIR)/ch7bin.c \ $(SRC_DIR)/ch7mon.c $(SRC_DIR)/domacro.c $(SRC_DIR)/error.c \ $(SRC_DIR)/idf.c $(SRC_DIR)/init.c $(SRC_DIR)/input.c \ $(SRC_DIR)/main.c $(SRC_DIR)/options.c \ $(SRC_DIR)/preprocess.c $(SRC_DIR)/replace.c $(SRC_DIR)/scan.c \ $(SRC_DIR)/skip.c $(SRC_DIR)/tokenname.c $(SRC_DIR)/next.c \ $(SRC_DIR)/expr.c COBJ = LLlex.$(SUF) LLmessage.$(SUF) ch7bin.$(SUF) ch7mon.$(SUF) \ domacro.$(SUF) error.$(SUF) idf.$(SUF) init.$(SUF) input.$(SUF) \ main.$(SUF) options.$(SUF) \ preprocess.$(SUF) replace.$(SUF) scan.$(SUF) skip.$(SUF) \ tokenname.$(SUF) next.$(SUF) expr.$(SUF) PRFILES = $(SRC_DIR)/proto.make $(SRC_DIR)/Parameters \ $(SRC_DIR)/make.hfiles $(SRC_DIR)/make.tokcase $(SRC_DIR)/make.tokfile \ $(SRC_DIR)/LLlex.h $(SRC_DIR)/bits.h $(SRC_DIR)/file_info.h \ $(SRC_DIR)/idf.h $(SRC_DIR)/input.h $(SRC_DIR)/interface.h \ $(SRC_DIR)/macro.h \ $(SRC_DIR)/class.h $(SRC_DIR)/char.tab $(SRC_DIR)/expression.g $(CSRC) # Objects of other generated C files GOBJ = char.$(SUF) symbol2str.$(SUF) # 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 all: cc cc: hfiles LLfiles make cpp hfiles: Parameters char.c $(SRC_DIR)/make.hfiles Parameters @touch hfiles Parameters: $(SRC_DIR)/Parameters cp $(SRC_DIR)/Parameters Parameters char.c: $(SRC_DIR)/char.tab tabgen -f$(SRC_DIR)/char.tab > char.c LLfiles: $(LSRC) LLgen $(LLGENOPTIONS) $(LSRC) @touch LLfiles tokenfile.g: $(SRC_DIR)/tokenname.c $(SRC_DIR)/make.tokfile <$(SRC_DIR)/tokenname.c $(SRC_DIR)/make.tokfile >tokenfile.g symbol2str.c: $(SRC_DIR)/tokenname.c $(SRC_DIR)/make.tokcase <$(SRC_DIR)/tokenname.c $(SRC_DIR)/make.tokcase >symbol2str.c # Objects needed for 'cpp' OBJ = $(COBJ) $(LOBJ) $(GOBJ) SRC = $(CSRC) $(LCSRC) $(GSRC) cpp: $(OBJ) $(CC) $(LDFLAGS) $(OBJ) $(LIBS) -o cpp cfiles: hfiles LLfiles $(GSRC) @touch cfiles install: all cp cpp $(CEMPP) if [ $(DO_MACHINE_INDEP) = y ] ; \ then mk_manpage $(SRC_DIR)/cpp.6 $(TARGET_HOME) ; \ fi cmp: all -cmp cpp $(CEMPP) pr: @pr $(PRFILES) opr: make pr | opr tags: cfiles ctags $(SRC) depend: cfiles rm_deps Makefile >Makefile.new for i in $(SRC) ; do \ echo "`basename $$i .c`.$$(SUF): $$i" >> Makefile.new ; \ echo ' $$(CC) -c $$(CFLAGS)' $$i >> Makefile.new ; \ $(UTIL_HOME)/lib.bin/cpp -d $(INCLUDES) $$i | sed "s/^/`basename $$i .c`.$$(SUF): /" >> Makefile.new ; \ done mv Makefile Makefile.old mv Makefile.new Makefile lint: cfiles $(LINT) $(LINTFLAGS) $(INCLUDES) $(SRC) $(LINTLIBS) clean: rm -f $(LCSRC) $(OBJ) $(GENERATED) $(GSRC) $(GHSRC) cpp Out # do not remove the next line. It is used for generating dependencies. #DEPENDENCIES LLlex.$(SUF): $(SRC_DIR)/LLlex.c $(CC) -c $(CFLAGS) $(SRC_DIR)/LLlex.c LLlex.$(SUF): ./dobits.h LLlex.$(SUF): $(SRC_DIR)/bits.h LLlex.$(SUF): $(SRC_DIR)/class.h LLlex.$(SUF): ./Lpars.h LLlex.$(SUF): $(SRC_DIR)/file_info.h LLlex.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h LLlex.$(SUF): $(SRC_DIR)/LLlex.h LLlex.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec LLlex.$(SUF): $(SRC_DIR)/idf.h LLlex.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec LLlex.$(SUF): ./inputtype.h LLlex.$(SUF): $(SRC_DIR)/input.h LLlex.$(SUF): $(TARGET_HOME)/modules/h/alloc.h LLlex.$(SUF): ./strsize.h LLlex.$(SUF): ./numsize.h LLlex.$(SUF): ./idfsize.h LLmessage.$(SUF): $(SRC_DIR)/LLmessage.c $(CC) -c $(CFLAGS) $(SRC_DIR)/LLmessage.c LLmessage.$(SUF): ./Lpars.h LLmessage.$(SUF): $(SRC_DIR)/file_info.h LLmessage.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h LLmessage.$(SUF): $(SRC_DIR)/LLlex.h ch7bin.$(SUF): $(SRC_DIR)/ch7bin.c $(CC) -c $(CFLAGS) $(SRC_DIR)/ch7bin.c ch7bin.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h ch7bin.$(SUF): ./Lpars.h ch7mon.$(SUF): $(SRC_DIR)/ch7mon.c $(CC) -c $(CFLAGS) $(SRC_DIR)/ch7mon.c ch7mon.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h ch7mon.$(SUF): ./Lpars.h domacro.$(SUF): $(SRC_DIR)/domacro.c $(CC) -c $(CFLAGS) $(SRC_DIR)/domacro.c domacro.$(SUF): ./dobits.h domacro.$(SUF): $(SRC_DIR)/bits.h domacro.$(SUF): $(SRC_DIR)/macro.h domacro.$(SUF): $(SRC_DIR)/class.h domacro.$(SUF): $(TARGET_HOME)/modules/h/alloc.h domacro.$(SUF): $(TARGET_HOME)/modules/h/assert.h domacro.$(SUF): ./idfsize.h domacro.$(SUF): ./textsize.h domacro.$(SUF): ./parbufsize.h domacro.$(SUF): ./nparams.h domacro.$(SUF): ./botch_free.h domacro.$(SUF): ./ifdepth.h domacro.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec domacro.$(SUF): ./inputtype.h domacro.$(SUF): $(SRC_DIR)/input.h domacro.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec domacro.$(SUF): $(SRC_DIR)/idf.h domacro.$(SUF): ./debug.h domacro.$(SUF): ./Lpars.h domacro.$(SUF): $(SRC_DIR)/file_info.h domacro.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h domacro.$(SUF): $(SRC_DIR)/LLlex.h domacro.$(SUF): $(SRC_DIR)/interface.h error.$(SUF): $(SRC_DIR)/error.c $(CC) -c $(CFLAGS) $(SRC_DIR)/error.c error.$(SUF): $(SRC_DIR)/file_info.h error.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h error.$(SUF): $(SRC_DIR)/LLlex.h error.$(SUF): ./errout.h error.$(SUF): $(TARGET_HOME)/modules/h/system.h idf.$(SUF): $(SRC_DIR)/idf.c $(CC) -c $(CFLAGS) $(SRC_DIR)/idf.c idf.$(SUF): $(TARGET_HOME)/modules/h/alloc.h idf.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.body idf.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec idf.$(SUF): $(SRC_DIR)/idf.h init.$(SUF): $(SRC_DIR)/init.c $(CC) -c $(CFLAGS) $(SRC_DIR)/init.c init.$(SUF): $(SRC_DIR)/interface.h init.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec init.$(SUF): $(SRC_DIR)/idf.h init.$(SUF): $(SRC_DIR)/macro.h init.$(SUF): $(SRC_DIR)/class.h init.$(SUF): $(TARGET_HOME)/modules/h/alloc.h init.$(SUF): $(TARGET_HOME)/modules/h/system.h input.$(SUF): $(SRC_DIR)/input.c $(CC) -c $(CFLAGS) $(SRC_DIR)/input.c input.$(SUF): $(TARGET_HOME)/modules/h/system.h input.$(SUF): $(TARGET_HOME)/modules/h/alloc.h input.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.body input.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec input.$(SUF): ./inputtype.h input.$(SUF): $(SRC_DIR)/input.h input.$(SUF): $(SRC_DIR)/file_info.h main.$(SUF): $(SRC_DIR)/main.c $(CC) -c $(CFLAGS) $(SRC_DIR)/main.c main.$(SUF): $(SRC_DIR)/macro.h main.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec main.$(SUF): $(SRC_DIR)/idf.h main.$(SUF): ./idfsize.h main.$(SUF): $(SRC_DIR)/file_info.h main.$(SUF): $(TARGET_HOME)/modules/h/system.h main.$(SUF): $(TARGET_HOME)/modules/h/assert.h main.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h main.$(SUF): $(TARGET_HOME)/modules/h/alloc.h options.$(SUF): $(SRC_DIR)/options.c $(CC) -c $(CFLAGS) $(SRC_DIR)/options.c options.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec options.$(SUF): $(SRC_DIR)/idf.h options.$(SUF): $(SRC_DIR)/macro.h options.$(SUF): $(SRC_DIR)/class.h options.$(SUF): ./idfsize.h options.$(SUF): $(TARGET_HOME)/modules/h/alloc.h preprocess.$(SUF): $(SRC_DIR)/preprocess.c $(CC) -c $(CFLAGS) $(SRC_DIR)/preprocess.c preprocess.$(SUF): ./line_prefix.h preprocess.$(SUF): ./dobits.h preprocess.$(SUF): $(SRC_DIR)/bits.h preprocess.$(SUF): ./idfsize.h preprocess.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec preprocess.$(SUF): $(SRC_DIR)/idf.h preprocess.$(SUF): $(SRC_DIR)/class.h preprocess.$(SUF): $(SRC_DIR)/file_info.h preprocess.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h preprocess.$(SUF): $(SRC_DIR)/LLlex.h preprocess.$(SUF): ./obufsize.h preprocess.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec preprocess.$(SUF): ./inputtype.h preprocess.$(SUF): $(SRC_DIR)/input.h preprocess.$(SUF): $(TARGET_HOME)/modules/h/system.h replace.$(SUF): $(SRC_DIR)/replace.c $(CC) -c $(CFLAGS) $(SRC_DIR)/replace.c replace.$(SUF): $(SRC_DIR)/interface.h replace.$(SUF): $(SRC_DIR)/class.h replace.$(SUF): $(SRC_DIR)/file_info.h replace.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h replace.$(SUF): $(SRC_DIR)/LLlex.h replace.$(SUF): $(SRC_DIR)/macro.h replace.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec replace.$(SUF): ./inputtype.h replace.$(SUF): $(SRC_DIR)/input.h replace.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec replace.$(SUF): $(SRC_DIR)/idf.h replace.$(SUF): $(TARGET_HOME)/modules/h/assert.h replace.$(SUF): $(TARGET_HOME)/modules/h/alloc.h replace.$(SUF): ./textsize.h replace.$(SUF): ./pathlength.h replace.$(SUF): ./debug.h scan.$(SUF): $(SRC_DIR)/scan.c $(CC) -c $(CFLAGS) $(SRC_DIR)/scan.c scan.$(SUF): $(SRC_DIR)/file_info.h scan.$(SUF): $(SRC_DIR)/interface.h scan.$(SUF): $(SRC_DIR)/macro.h scan.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec scan.$(SUF): $(SRC_DIR)/idf.h scan.$(SUF): $(SRC_DIR)/class.h scan.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec scan.$(SUF): ./inputtype.h scan.$(SUF): $(SRC_DIR)/input.h scan.$(SUF): ./nparams.h scan.$(SUF): ./lapbuf.h skip.$(SUF): $(SRC_DIR)/skip.c $(CC) -c $(CFLAGS) $(SRC_DIR)/skip.c skip.$(SUF): $(TARGET_HOME)/modules/pkg/inp_pkg.spec skip.$(SUF): ./inputtype.h skip.$(SUF): $(SRC_DIR)/input.h skip.$(SUF): $(SRC_DIR)/class.h skip.$(SUF): $(SRC_DIR)/file_info.h skip.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h skip.$(SUF): $(SRC_DIR)/LLlex.h tokenname.$(SUF): $(SRC_DIR)/tokenname.c $(CC) -c $(CFLAGS) $(SRC_DIR)/tokenname.c tokenname.$(SUF): ./Lpars.h tokenname.$(SUF): $(SRC_DIR)/file_info.h tokenname.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h tokenname.$(SUF): $(SRC_DIR)/LLlex.h tokenname.$(SUF): $(TARGET_HOME)/modules/pkg/idf_pkg.spec tokenname.$(SUF): $(SRC_DIR)/idf.h next.$(SUF): $(SRC_DIR)/next.c $(CC) -c $(CFLAGS) $(SRC_DIR)/next.c next.$(SUF): ./debug.h expr.$(SUF): $(SRC_DIR)/expr.c $(CC) -c $(CFLAGS) $(SRC_DIR)/expr.c expr.$(SUF): ./Lpars.h tokenfile.$(SUF): tokenfile.c $(CC) -c $(CFLAGS) tokenfile.c tokenfile.$(SUF): Lpars.h expression.$(SUF): expression.c $(CC) -c $(CFLAGS) expression.c expression.$(SUF): $(SRC_DIR)/file_info.h expression.$(SUF): $(TARGET_HOME)/modules/h/em_arith.h expression.$(SUF): $(SRC_DIR)/LLlex.h expression.$(SUF): Lpars.h Lpars.$(SUF): Lpars.c $(CC) -c $(CFLAGS) Lpars.c Lpars.$(SUF): Lpars.h char.$(SUF): char.c $(CC) -c $(CFLAGS) char.c char.$(SUF): $(SRC_DIR)/class.h symbol2str.$(SUF): symbol2str.c $(CC) -c $(CFLAGS) symbol2str.c symbol2str.$(SUF): Lpars.h