120 lines
2.7 KiB
Makefile
120 lines
2.7 KiB
Makefile
#
|
|
# baut das komplette Scanner Projekt
|
|
#
|
|
|
|
|
|
AUTOMATDIR = Automat
|
|
|
|
BUFFERDIR = Buffer
|
|
|
|
SYMBOLTABLEDIR = Symboltable
|
|
|
|
SCANNERDIR = Scanner
|
|
|
|
PARSERDIR = Parser
|
|
|
|
SHAREDLIB = sharedlib
|
|
|
|
INCLUDES = includes
|
|
|
|
|
|
all: empty-dirs automatLib bufferLib symboltableLib scanner
|
|
@echo "target all"
|
|
|
|
run:
|
|
@echo "Running ScannerTest\n\n=====BEGIN====="
|
|
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:sharedlib Scanner/debug/ScannerTest testfiles/Scanner/testFile
|
|
@echo "=====END====="
|
|
|
|
|
|
clean:
|
|
rm -rf $(AUTOMATDIR)/lib/*
|
|
rm -rf $(BUFFERDIR)/lib/*
|
|
rm -rf $(SYMBOLTABLEDIR)/lib/*
|
|
rm -rf $(SHAREDLIB)/*
|
|
rm -rf $(SCANNERDIR)/debug/*
|
|
rm -rf $(AUTOMATDIR)/debug/*
|
|
rm -rf $(BUFFERDIR)/debug/*
|
|
rm -rf $(SYMBOLTABLEDIR)/debug/*
|
|
|
|
empty-dirs:
|
|
test -d $(AUTOMATDIR)/lib || mkdir $(AUTOMATDIR)/lib
|
|
test -d $(AUTOMATDIR)/debug || mkdir $(AUTOMATDIR)/debug
|
|
test -d $(BUFFERDIR)/lib || mkdir $(BUFFERDIR)/lib
|
|
test -d $(BUFFERDIR)/debug || mkdir $(BUFFERDIR)/debug
|
|
test -d $(SYMBOLTABLEDIR)/lib || mkdir $(SYMBOLTABLEDIR)/lib
|
|
test -d $(SYMBOLTABLEDIR)/debug || mkdir $(SYMBOLTABLEDIR)/debug
|
|
test -d $(SCANNERDIR)/lib || mkdir $(SCANNERDIR)/lib
|
|
test -d $(SCANNERDIR)/debug || mkdir $(SCANNERDIR)/debug
|
|
test -d $(SCANNERDIR)/lib || mkdir $(SCANNERDIR)/lib
|
|
test -d $(SHAREDLIB) || mkdir $(SHAREDLIB)
|
|
|
|
|
|
parser:
|
|
$(MAKE) -C $(PARSERDIR) parser
|
|
|
|
scanner:
|
|
$(MAKE) -C $(SCANNERDIR) makeTestScanner
|
|
|
|
automatLib:
|
|
$(MAKE) -C $(AUTOMATDIR) AutomatLib
|
|
|
|
|
|
bufferLib:
|
|
$(MAKE) -C $(BUFFERDIR) BufferLib
|
|
|
|
# scannerLib wird erst fuer den Parser Teil benoetigt
|
|
#scannerLib:
|
|
#$(MAKE) -C $(SCANNERDIR) ScannerLib
|
|
|
|
symboltableLib:
|
|
$(MAKE) -C $(SYMBOLTABLEDIR) SymboltableLib
|
|
|
|
# stand-alone compiling and testing of some modules
|
|
testAutomat:
|
|
$(MAKE) -C $(AUTOMATDIR) makeTestAutomat
|
|
|
|
testBuffer:
|
|
$(MAKE) -C $(BUFFERDIR) makeTestBuffer
|
|
|
|
testSymtab:
|
|
$(MAKE) -C $(SYMBOLTABLEDIR) makeTestSymboltable
|
|
|
|
runTestAutomat:
|
|
@echo "Running runTestAutomat\n\n=====BEGIN====="
|
|
Automat/debug/AutomatTest
|
|
@echo "=====END====="
|
|
|
|
runTestBuffer:
|
|
@echo "Running runTestBuffer\n\n=====BEGIN====="
|
|
Buffer/debug/BufferTest testfiles/Scanner/testFile
|
|
@echo "=====END====="
|
|
|
|
runTestSymtab:
|
|
@echo "Running runTestSymtab\n\n=====BEGIN====="
|
|
Symboltable/debug/SymboltableTest
|
|
@echo "=====END====="
|
|
|
|
# compile object files
|
|
automatObj:
|
|
$(MAKE) -C $(AUTOMATDIR) AutomatLibTarget
|
|
|
|
bufferObj:
|
|
$(MAKE) -C $(BUFFERDIR) BufferLibTarget
|
|
|
|
symboltableObj:
|
|
$(MAKE) -C $(SYMBOLTABLEDIR) SymboltableLibTarget
|
|
|
|
scannerObj:
|
|
$(MAKE) -C $(SCANNERDIR) ScannerLibTarget
|
|
|
|
# build the scannerLib
|
|
scannerLib: empty-dirs automatObj bufferObj symboltableObj scannerObj
|
|
g++ -shared -o $(SHAREDLIB)/libScanner.so \
|
|
$(AUTOMATDIR)/lib/Automat.o \
|
|
$(BUFFERDIR)/lib/Buffer.o \
|
|
$(SYMBOLTABLEDIR)/lib/Symboltable.o \
|
|
$(SCANNERDIR)/lib/Scanner.o \
|
|
$(SCANNERDIR)/lib/Token.o
|
|
|