view regexParser/Makefile @ 299:bdfe0a32c48f

grepWalk
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 03 Feb 2016 13:11:10 +0900
parents 63213964502a
children 4cb6eea3ab12
line wrap: on
line source

TARGET= regexParser test/ccMerge
CFLAGS= -Wall -O0 -g -I$(CERIUM)/include/TaskManager -I.
SEQCFLAGS= CFLAGS= -Wall -O -g -I$(CERIUM)/include/TaskManager -I.
CC= clang++
CERIUM= ../../Cerium
AR= libCeriumGrep.a

SRCS_TMP = $(wildcard *.cc)
SRCS_EXCLUDE = sequentialSearch.cc state.cc parallelSearch.cc taskInit.cc searchTask.cc main.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
	$(CC) $(CFLAGS) -o $@ $(OBJS) 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 -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
	cd test; rm -rf *.o *~ \#* *.gcda *.gcno *.gcov *.dSYM
	cd cerium; make clean
	touch state.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)

seqtest: sequentialSearch $(TESTFILE)
	./sequentialSearch -file $(TESTFILE) $(WC)

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

sequentialSearch: sequentialSearch.cc regexParser fileread.o
	./regexParser -seq -subset -regex $(REGEX)
	$(CC) $(CFLAGS)  -c sequentialSearch.cc 
	$(CC) $(SEQDFLAGS)  sequentialSearch.o $(OBJS) -o $@
	- ./$@ -file $(TESTFILE)


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]'