view regexParser/Makefile @ 323:672c1be4eec7

add OPT flag
author mir3636
date Thu, 26 May 2016 20:03:07 +0900
parents fa590a7272ae
children 879dc5d1cb6a
line wrap: on
line source

TARGET= regexParser test/ccMerge 
OPT= -O2 
CFLAGS= -Wall $(OPT) -g -I$(CERIUM)/include/TaskManager -I.
SEQCFLAGS=  -Wall $(OPT) -g -I$(CERIUM)/include/TaskManager -I.
CC= clang++
CbC= /usr/local/Cellar/cbc/llvm3.8/bin/clang
CERIUM= ../../Cerium
AR= libCeriumGrep.a

SRCS_TMP = $(wildcard *.cc)
SRCS_EXCLUDE = sequentialSearch.cc state.cc parallelSearch.cc taskInit.cc searchTask.cc main.cc stateCbC.cc sequentialSearchCbC.cc 
SRCS = $(filter-out $(SRCS_EXCLUDE),$(SRCS_TMP))
OBJS = $(SRCS:.cc=.o)

# REGEX = '[A-Z][A-Za-z0-9_]*'
# REGEX = '(a|b)*a(a|b)(a|b)'
REGEX = '(mil|hav)[A-Za-z]'

SUBST = -subset

TESTFILE = test/c.txt
WC = | wc
# WC = 

.cc.o:
	$(CC) $(CFLAGS) -c $< -o $@

all: $(TARGET)

regexParser: $(OBJS) main.o  $(AR)
	$(CC) $(CFLAGS) -o $@ $(AR) main.o 

test/searchBit: test/searchBit.cc
	$(CC) $(CFLAGS)  $< bitVector.cc -o $@

test/ccMerge: test/ccMerge.o subsetConstruction.o regexParser.o node.o error.o bitVector.o
	$(CC) $(CFLAGS)  $< subsetConstruction.o regexParser.o node.o error.o bitVector.o CharClass.o -o $@

parallelSearch: $(AR)
	cd cerium ; $(MAKE) -f Makefile.macosx CERIUM=../$(CERIUM)

$(AR): $(OBJS)
	ar crus $@ $(OBJS)

gcov:
	make CFLAGS="-Wall -O0 -g -coverage"
	make test1
	make merge_test
	gcov *.gcda

test/c.txt : test/c.txt.gz
	gunzip < $< > $@

clean:
	rm -f $(TARGET) $(OBJS) $(AR)
	rm -rf *~ \#* *.gcda *.gcno *.gcov state.cc  sequentialSearch *.dSYM *.o stateCbC.cc sequentialCbC
	cd test; rm -rf *.o *~ \#* *.gcda *.gcno *.gcov *.dSYM
	cd cerium; make clean
	touch state.cc stateCbC.cc

.SUFFIXES: .cc .o

tSearch: regexParser $(TESTFILE)
	./regexParser $(SUBSET) -regex $(REGEX) -ts -file $(TESTFILE) $(WC)

testParallel : parallelSearch $(TESTFILE)
	./cerium/ceriumGrep $(SUBSET) -regex $(REGEX) -file $(TESTFILE) $(WC)

test2: regexParser $(TESTFILE)
	./regexParser $(SUBSET) -regex $(REGEX) -file $(TESTFILE) $(WC)

grepWalk: regexParser $(TESTFILE)
	./regexParser $(SUBSET)  -regex $(REGEX) -file $(TESTFILE) $(WC)

sequentialSearch: sequentialSearch.cc regexParser $(AR) $(TESTFILE)
	./regexParser -seq -subset -regex $(REGEX)
	$(CC) $(SEQCFLAGS)  -c sequentialSearch.cc 
	$(CC) $(SEQDFLAGS)  sequentialSearch.o $(AR) -o $@
	- ./$@ -file $(TESTFILE) $(WC)

sequentialLoop: sequentialSearch.cc regexParser $(AR) $(TESTFILE)
	./regexParser -loop -subset -regex $(REGEX)
	$(CC) $(SEQCFLAGS)  -c sequentialSearch.cc 
	$(CC) $(SEQDFLAGS)  sequentialSearch.o $(AR) -o $@
	- ./$@ -file $(TESTFILE) $(WC)


sequentialCbC: sequentialSearchCbC.cc regexParser $(AR) $(TESTFILE)
	./regexParserCbC -cbc -subset -regex $(REGEX)
	$(CbC) $(SEQCFLAGS)  -O1 -c sequentialSearchCbC.cc 
	$(CbC) $(SEQDFLAGS)  sequentialSearchCbC.o $(AR)  -o $@
	- ./$@ -file $(TESTFILE) $(WC)

test1: regexParser
	./regexParser -regex 'a'
	./regexParser -regex 'ab'
	./regexParser -regex 'a*b'
	./regexParser -regex 'ab*'
	./regexParser -regex '(ab)*'
	./regexParser -regex '(ab)*c'
	./regexParser -regex '(ab)c'
	./regexParser -regex '(a|b)c'
	./regexParser -regex 'a(bc)*d'
	./regexParser -regex 'abc*d'
	./regexParser -regex '(ab)c*d'
	./regexParser -regex 'a(b)c'
	./regexParser -regex '(a|b|c)d'
	./regexParser -regex '(a|b|c)*d'
	./regexParser -regex '[a]'
	./regexParser -regex '[ab]'
	./regexParser -regex '[a-z]'
	./regexParser -regex '[a-zA-Z]'
	./regexParser -regex '[a-zA-Z]*'
	./regexParser -regex 'a[a-zA-Z]*'
	./regexParser -regex 'a([a-z])'
	./regexParser -regex 'a|[a-z]'
	./regexParser -regex 'a|[a-z]*'
	./regexParser -regex 'a*|[a-z]'
	./regexParser -regex '[d-ga-c]'
	./regexParser -regex '[d-ga-d]'
	./regexParser -regex '[d-ga-e]'
	./regexParser -regex '[d-ga-f]'
	./regexParser -regex '[d-ga-h]'
	./regexParser -regex '[d-gd-e]'
	./regexParser -regex '[d-gd-f]'
	./regexParser -regex '[d-gd-h]'
	./regexParser -regex '[d-ge-f]'
	./regexParser -regex '[d-ge-g]'
	./regexParser -regex '[d-ge-i]'
	./regexParser -regex '[d-gg-i]'
	./regexParser -regex '[d-gh-i]'
	./regexParser -regex '[d-ga-cx-z]'
	./regexParser -regex '[d-ga-de-d]'
	./regexParser -regex '[d-ga-db-e]'
	./regexParser -regex '[d-gh-ja-e]'
	./regexParser -regex 'abcd'
	./regexParser -regex '([a-c]x|[d-f]y)'

merge_test: test/ccMerge
	./test/ccMerge -regex '[f-i]' -regex 'e'
	./test/ccMerge -regex '[f-i]' -regex 'f'
	./test/ccMerge -regex '[f-i]' -regex 'g'
	./test/ccMerge -regex '[f-i]' -regex 'i'
	./test/ccMerge -regex '[f-i]' -regex 'j'
	./test/ccMerge -regex 'e' -regex '[f-i]'
	./test/ccMerge -regex 'f' -regex '[f-i]'
	./test/ccMerge -regex 'g' -regex '[f-i]'
	./test/ccMerge -regex 'i' -regex '[f-i]'
	./test/ccMerge -regex 'j' -regex '[f-i]'
	./test/ccMerge -regex '[f-i]' -regex '[d-e]'
	./test/ccMerge -regex '[f-i]' -regex '[d-f]'
	./test/ccMerge -regex '[f-i]' -regex '[d-g]'
	./test/ccMerge -regex '[f-i]' -regex '[d-i]'
	./test/ccMerge -regex '[f-i]' -regex '[d-k]'
	./test/ccMerge -regex '[f-i]' -regex '[f-g]'
	./test/ccMerge -regex '[f-i]' -regex '[f-i]'
	./test/ccMerge -regex '[f-i]' -regex '[f-k]'
	./test/ccMerge -regex '[f-i]' -regex '[g-h]'
	./test/ccMerge -regex '[f-i]' -regex '[g-i]'
	./test/ccMerge -regex '[f-i]' -regex '[g-k]'
	./test/ccMerge -regex '[f-i]' -regex '[i-k]'
	./test/ccMerge -regex '[f-i]' -regex '[j-k]'
	./test/ccMerge -regex '[c-ef-i]' -regex '[d-e]'
	./test/ccMerge -regex '[c-ef-i]' -regex '[d-f]'
	./test/ccMerge -regex '[c-ef-i]' -regex '[d-g]'
	./test/ccMerge -regex '[c-ef-i]' -regex '[d-i]'
	./test/ccMerge -regex '[c-ef-ij-m]' -regex '[d-k]'
	./test/ccMerge -regex '[f-ij-m]' -regex '[f-k]'
	./test/ccMerge -regex '[f-ij-m]' -regex '[g-k]'
	./test/ccMerge -regex '[f-ij-m]' -regex '[i-k]'
	./test/ccMerge -regex '[f-ij-m]' -regex '[j-k]'