123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- # 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.ansi
- TABGEN = $(EMHOME)/bin/tabgen
- # What C compiler to use and how
- CC = cc
- COPTIONS = -O
- LDFLAGS =
- # What parser generator to use and how
- GEN = $(EMHOME)/bin/LLgen
- GENOPTIONS =
- # Special #defines during compilation
- CDEFS = $(LIB_INCLUDES)
- CFLAGS = $(CDEFS) $(COPTIONS)# # 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 ch3bin.c ch3mon.c domacro.c \
- error.c idf.c init.c input.c main.c options.c \
- preprocess.c replace.c skip.c tokenname.c expr.c
- COBJ = LLlex.o LLmessage.o ch3bin.o ch3mon.o domacro.o \
- error.o idf.o init.o input.o main.o options.o \
- preprocess.o replace.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.str replace.str \
- 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 next.c
- # .h files generated by `make.allod'
- STRSRC = macro.str replace.str
- GSTRSRC = macro.h replace.h
- # .h files generated by `make hfiles'; PLEASE KEEP THIS UP-TO-DATE!
- GHSRC = errout.h idfsize.h ifdepth.h macbuf.h \
- nparams.h numsize.h obufsize.h \
- parbufsize.h pathlength.h strsize.h textsize.h \
- botch_free.h debug.h inputtype.h dobits.h ln_prefix.h
- # Other generated files, for 'make clean' only
- GENERATED = tokenfile.g Lpars.h LLfiles LL.output lint.out \
- Xref hfiles cfiles tags Makefile.old
- all: cc
- cc: cfiles
- make "EMHOME="$(EMHOME) "CC=$(CC)" ncpp
- hfiles: Parameters char.c
- ./make.hfiles Parameters
- @touch hfiles
- .SUFFIXES: .str .h
- .str.h:
- ./make.allocd <$*.str >$*.h
- char.c: char.tab
- $(TABGEN) -fchar.tab > char.c
- next.c: make.next $(STRSRC)
- ./make.next $(STRSRC) >next.c
- macro.h: make.allocd
- replace.h: make.allocd
- 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
- # Objects needed for 'ncpp'
- OBJ = $(COBJ) $(LOBJ) $(GOBJ)
- SRC = $(CSRC) $(LCSRC) $(GSRC)
- ncpp: $(OBJ) Makefile
- $(CC) $(COPTIONS) $(LDFLAGS) $(OBJ) $(LIBS) -o ncpp
- -size ncpp
- cfiles: hfiles LLfiles $(GSRC) $(GSTRSRC)
- @touch cfiles
- install: all
- rm -f $(CEMPP)
- cp ncpp $(CEMPP)
- rm -f $(MANDIR)/cpp.ansi.6
- cp ncpp.6 $(MANDIR)/cpp.ansi.6
- cmp: all
- -cmp ncpp $(CEMPP)
- -cmp ncpp.6 $(MANDIR)/cpp.ansi.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) $(GSTRSRC) ncpp Out
- #AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
- LLlex.o: LLlex.h
- LLlex.o: Lpars.h
- LLlex.o: arith.h
- LLlex.o: bits.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: macro.h
- LLlex.o: numsize.h
- LLlex.o: strsize.h
- LLmessage.o: LLlex.h
- LLmessage.o: Lpars.h
- LLmessage.o: arith.h
- LLmessage.o: file_info.h
- ch3bin.o: Lpars.h
- ch3bin.o: arith.h
- ch3mon.o: Lpars.h
- ch3mon.o: arith.h
- domacro.o: LLlex.h
- domacro.o: Lpars.h
- domacro.o: arith.h
- domacro.o: bits.h
- domacro.o: botch_free.h
- domacro.o: class.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: macbuf.h
- domacro.o: macro.h
- domacro.o: nparams.h
- domacro.o: parbufsize.h
- domacro.o: replace.h
- domacro.o: textsize.h
- error.o: LLlex.h
- error.o: arith.h
- error.o: errout.h
- error.o: file_info.h
- idf.o: idf.h
- init.o: class.h
- init.o: idf.h
- init.o: macro.h
- input.o: file_info.h
- input.o: input.h
- input.o: inputtype.h
- main.o: arith.h
- main.o: file_info.h
- main.o: idf.h
- main.o: idfsize.h
- main.o: macro.h
- options.o: class.h
- options.o: idf.h
- options.o: idfsize.h
- options.o: macro.h
- preprocess.o: LLlex.h
- preprocess.o: arith.h
- preprocess.o: bits.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: ln_prefix.h
- preprocess.o: macro.h
- preprocess.o: obufsize.h
- preprocess.o: textsize.h
- replace.o: LLlex.h
- replace.o: arith.h
- replace.o: class.h
- replace.o: file_info.h
- replace.o: idf.h
- replace.o: idfsize.h
- replace.o: input.h
- replace.o: inputtype.h
- replace.o: macbuf.h
- replace.o: macro.h
- replace.o: nparams.h
- replace.o: numsize.h
- replace.o: pathlength.h
- replace.o: replace.h
- replace.o: strsize.h
- skip.o: LLlex.h
- skip.o: arith.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: arith.h
- tokenname.o: file_info.h
- tokenname.o: idf.h
- expr.o: Lpars.h
- tokenfile.o: Lpars.h
- expression.o: LLlex.h
- expression.o: Lpars.h
- expression.o: arith.h
- expression.o: file_info.h
- Lpars.o: Lpars.h
- char.o: class.h
- symbol2str.o: Lpars.h
|