256 lines
5.6 KiB
Makefile
256 lines
5.6 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)/ncpp
|
|
|
|
TABGEN = $(EMHOME)/bin/tabgen
|
|
|
|
# What C compiler to use and how
|
|
CC = cc
|
|
COPTIONS = -O
|
|
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 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
|
|
|
|
# .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 line_prefix.h
|
|
|
|
# Other generated files, for 'make clean' only
|
|
GENERATED = tokenfile.g Lpars.h LLfiles LL.output lint.out \
|
|
Xref hfiles cfiles next.c tags Makefile.old
|
|
|
|
all: cc
|
|
|
|
cc: hfiles LLfiles
|
|
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)/ncpp.6
|
|
cp ncpp.6 $(MANDIR)/ncpp.6
|
|
|
|
cmp: all
|
|
-cmp ncpp $(CEMPP)
|
|
-cmp ncpp.6 $(MANDIR)/ncpp.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: 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: 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: 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: idfsize.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: 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: macro.h
|
|
preprocess.o: obufsize.h
|
|
replace.o: LLlex.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: 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
|
|
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
|