Initial revision
This commit is contained in:
164
util/cpp/Makefile
Normal file
164
util/cpp/Makefile
Normal file
@@ -0,0 +1,164 @@
|
||||
# MAKEFILE FOR (STAND_ALONE) CEM PREPROCESSOR
|
||||
|
||||
EMHOME=../..
|
||||
MODULES=$(EMHOME)/modules
|
||||
MODULESLIB=$(MODULES)/lib
|
||||
BIN=$(EMHOME)/lib
|
||||
|
||||
# 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 =
|
||||
LFLAGS = -n
|
||||
|
||||
# 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 \
|
||||
maxincl.h nparams.h numsize.h obufsize.h \
|
||||
parbufsize.h pathlength.h strsize.h textsize.h \
|
||||
botch_free.h debug.h inputtype.h dobits.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
|
||||
./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: char.tab chtab
|
||||
chtab -fchar.tab > char.c
|
||||
|
||||
charoffset.h: chtab char.tab
|
||||
chtab -fchar.tab > /dev/null
|
||||
|
||||
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) $(LFLAGS) $(OBJ) $(LIBS) -o cpp
|
||||
size cpp
|
||||
|
||||
cfiles: hfiles LLfiles $(GSRC)
|
||||
@touch cfiles
|
||||
|
||||
install: all
|
||||
cp cpp $(CEMPP)
|
||||
|
||||
cmp: all
|
||||
cmp cpp $(CEMPP)
|
||||
|
||||
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
|
||||
|
||||
#AUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTOAUTO
|
||||
LLlex.o: LLlex.h Lpars.h bits.h charoffset.h class.h dobits.h file_info.h idf.h idfsize.h input.h inputtype.h numsize.h strsize.h
|
||||
LLmessage.o: LLlex.h Lpars.h file_info.h
|
||||
ch7bin.o: Lpars.h
|
||||
ch7mon.o: Lpars.h
|
||||
domacro.o: LLlex.h Lpars.h bits.h botch_free.h charoffset.h class.h debug.h dobits.h file_info.h idf.h idfsize.h ifdepth.h input.h inputtype.h interface.h macro.h nparams.h parbufsize.h textsize.h
|
||||
error.o: LLlex.h errout.h file_info.h
|
||||
idf.o: idf.h
|
||||
init.o: charoffset.h class.h idf.h interface.h macro.h
|
||||
input.o: file_info.h input.h inputtype.h
|
||||
main.o: file_info.h idfsize.h
|
||||
options.o: charoffset.h class.h idf.h idfsize.h macro.h maxincl.h
|
||||
preprocess.o: LLlex.h bits.h charoffset.h class.h dobits.h file_info.h idf.h idfsize.h input.h inputtype.h maxincl.h obufsize.h
|
||||
replace.o: LLlex.h charoffset.h class.h debug.h file_info.h idf.h input.h inputtype.h interface.h macro.h pathlength.h textsize.h
|
||||
scan.o: charoffset.h class.h idf.h input.h inputtype.h interface.h lapbuf.h macro.h nparams.h
|
||||
skip.o: LLlex.h charoffset.h class.h file_info.h input.h inputtype.h
|
||||
tokenname.o: LLlex.h Lpars.h file_info.h idf.h
|
||||
next.o: debug.h
|
||||
expr.o: Lpars.h
|
||||
tokenfile.o: Lpars.h
|
||||
expression.o: LLlex.h Lpars.h file_info.h
|
||||
Lpars.o: Lpars.h
|
||||
char.o: charoffset.h class.h
|
||||
symbol2str.o: Lpars.h
|
||||
Reference in New Issue
Block a user