makefile

来自「C-Talk is interpreted scripting language」· 代码 · 共 74 行

TXT
74
字号
CC = g++
CCFLAGS = -c -g $(SYSDEFS) -Wall
LD = g++
LDFLAGS = $(SYSDEFS) -g

YACC = bison -d
INCS = ctalk.h sync.h stdtp.h ctkparser.h scanner.h compiler.h memmgr.h
SYSLIBS = 
SYSDEFS =  -D_REENTRANT -fpic 
ifeq ($(OSTYPE),solaris2.6)
SYSLIBS = -lpthread -ldl
else
ifeq ($(OSTYPE),solaris2.7)
SYSLIBS = -lpthread -ldl
else 
SYSDEFS = -pthread
SYSLIBS = -ldl
endif
endif

ctalk: ctalk.o memmgr.o syslib.o scanner.o ctkparser.o compiler.o sync.o
	$(LD) $(LDFLAGS) -o ctalk ctalk.o memmgr.o syslib.o scanner.o ctkparser.o compiler.o sync.o $(SYSLIBS)

ctkparser.cpp ctkparser.h: parser.y 
	$(YACC) parser.y 
	mv parser.tab.c ctkparser.cpp
	mv parser.tab.h ctkparser.h

ctalk.o: ctalk.cpp  $(INCS)
	$(CC) $(CCFLAGS) ctalk.cpp

ctkparser.o: ctkparser.cpp $(INCS)
	$(CC) $(CCFLAGS) ctkparser.cpp

sync.o: sync.cpp $(INCS)
	$(CC) $(CCFLAGS) sync.cpp

memmgr.o: memmgr.cpp $(INCS)
	$(CC) $(CCFLAGS) memmgr.cpp

compiler.o: compiler.cpp $(INCS) trampoline.h
	$(CC) $(CCFLAGS) compiler.cpp

scanner.o: scanner.cpp $(INCS)
	$(CC) $(CCFLAGS) scanner.cpp

syslib.o: syslib.cpp $(INCS)
	$(CC) $(CCFLAGS) syslib.cpp

mydll.so: mydll.cpp
	$(CC) -g $(SYSDEFS) -Wall -shared -o mydll.so mydll.cpp

clean:
	rm -f *.o ctalk *~

tgz: clean
	cd ..; tar cvzf ctalk.tgz ctalk

check: Hello Module Tasks Test mydll

Hello: Hello.ctk
	ctalk $@

Module: Module.ctk
	ctalk $@

Tasks: Tasks.ctk
	ctalk $@

Test: Test.ctk
	ctalk $@

mydll: mydll.ctk mdll.so
	ctalk $@

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?