253 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			253 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # 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 = -i
 | |
| 
 | |
| # 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 \
 | |
| 	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 \
 | |
| 	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 chtab.c 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:	chtab char.tab
 | |
| 	chtab -fchar.tab > char.c
 | |
| 
 | |
| 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
 | |
| 
 | |
| chtab:	chtab.o
 | |
| 	$(CC) -o chtab chtab.o
 | |
| 
 | |
| # 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) chtab.o chtab 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: idfsize.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
 |