📄 makefile
字号:
# TINY & TM Makefile for lcc
#
# Compiler Construction: Principles and Practice
# Kenneth C. Louden
# 编译原理及实践
# (美) Kenneth C. Louden 著
# 冯博琴 冯岚 等译
# 机械工业出版社 IBSN 7-111-07703-2
# 源代码:zwf编辑并修订
# Code Modify: Larry Li 2001.11
# use -DCHINESE in CFLAGS open Chinese(GB2312) Support
# use -DNO_PARSE in CFLAGS to get a scanner-only compiler
# use -DNO_ANALYZE in CFLAGS to get a parser-only compiler
# use -DNO_CODE in CFALGS to get a compiler that does not generate code
# and does not use this four optiosn to get a compiler in English
CFLAGS=-IE:\lcc\include -O
CC=E:\lcc\bin\lcc.exe
LINKER=E:\lcc\bin\lcclnk.exe
ECHO=@echo
OBJS=\
analyze.obj \
cgen.obj \
code.obj \
main.obj \
parse.obj \
scan.obj \
symtab.obj \
util.obj
go: tm.exe tiny.exe
$(ECHO) Notes: use 'make help' to get a help
tiny.exe: $(OBJS) Makefile
$(LINKER) -s -subsystem console -o tiny.exe $(OBJS)
# Build ANALYZE.C
ANALYZE_C=\
globals.h\
symtab.h\
analyze.h\
analyze.obj: $(ANALYZE_C) analyze.c Makefile
$(CC) -c $(CFLAGS) $(flag) analyze.c
# Build CGEN.C
CGEN_C=\
globals.h\
symtab.h\
code.h\
cgen.h\
cgen.obj: $(CGEN_C) cgen.c Makefile
$(CC) -c $(CFLAGS) $(flag) cgen.c
# Build CODE.C
CODE_C=\
globals.h\
code.h\
code.obj: $(CODE_C) code.c Makefile
$(CC) -c $(CFLAGS) $(flag) code.c
# Build MAIN.C
MAIN_C=\
globals.h\
util.h\
parse.h\
analyze.h\
cgen.h\
main.obj: $(MAIN_C) main.c Makefile
$(CC) -c $(CFLAGS) $(flag) main.c
# Build PARSE.C
PARSE_C=\
globals.h\
util.h\
scan.h\
parse.h\
parse.obj: $(PARSE_C) parse.c Makefile
$(CC) -c $(CFLAGS) $(flag) parse.c
# Build SCAN.C
SCAN_C=\
globals.h\
util.h\
scan.h\
scan.obj: $(SCAN_C) scan.c Makefile
$(CC) -c $(CFLAGS) $(flag) scan.c
# Build SYMTAB.C
SYMTAB_C=\
symtab.h\
symtab.obj: $(SYMTAB_C) symtab.c Makefile
$(CC) -c $(CFLAGS) $(flag) symtab.c
# Build UTIL.C
UTIL_C=\
globals.h\
util.h\
util.obj: $(UTIL_C) util.c Makefile
$(CC) -c $(CFLAGS) $(flag) util.c
tm.obj: tm.c Makefile
$(CC) -c $(CFLAGS) $(flag) tm.c
tm.exe: tm.obj Makefile
$(LINKER) -s -subsystem console -o tm.exe tm.obj
tm: tm.exe
tiny: tiny.exe
all: tm.exe tiny.exe
DEl *.obj
clean:
del *.obj
cleantm:
del tm.exe
cleantiny:
del tiny.exe
cleanall: clean cleantm cleantiny
help:
$(ECHO) Make TINY compiler & TM Simulation for lcc
$(ECHO) Written by Larry Li, 2001.11
$(ECHO) Usage: make [flag=] [all] - to make executable files
$(ECHO) make [flag=] tm[.exe] - to make tm.exe
$(ECHO) make [flag=] tiny[.exe] - to make tiny.exe
$(ECHO) make clean[tm/tiny/all] - clean
$(ECHO) make help - to get this help
$(ECHO) Notes:
$(ECHO) flag=-DNO_PARSE - to get a scanner-only compiler (TINY only)
$(ECHO) flag=-DNO_ANALYZE - to get a parser-only compiler (TINY only)
$(ECHO) flag=-DNO_CODE - to get a compiler that does not generate (TINY only)
$(ECHO) flag=-DCHINESE - use Chinese(GB2312) support, may be with other flags
$(ECHO) e.g.:
$(ECHO) make flag="-DCHINESE -DNO_PARSE" tiny
$(ECHO) It be used to make a scanner-only compiler with Chinese support.
$(ECHO) Thank you to use this Makefile. Larry, 1994 - 2001
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -