#
# $Id: Makefile,v 1.2 2000/12/16 21:41:35 simsong Exp $
#

OBJS=parse_address.o parse_company.o parse_case.o match.o nxatom.o hashtable.o

LIB=libsbook.a
FLEX=flex
SED=sed

QTLIB=$(QTDIR)/lib/libqt-mt.a

FLEXOPTS=-tL8B 
FLEXCASE=-i

CFLAGS=	-pthread -I. -I$(QTDIR)/include -Wall -DUNIX -I../../sand/slib

all: $(LIB) tester

tester: tester.o $(LIB)
	    g++ -o tester tester.o $(LIB) $(QTLIB)

$(LIB): $(OBJS)
	ar -r $(LIB) $(OBJS)
	ranlib $(LIB)

clean:
	rm parse_address.cpp
	rm parse_company.cpp
	rm parse_case.cpp
	rm *.o
	rm *.lib

#
# These parsers are case-insensetive
#
parse_address.cpp: parse_address.flex $(MAKEFILE) flexhdr.h
	$(FLEX) $(FLEXOPTS) $(FLEXCASE) parse_address.flex  | $(SED) s/yy/yyaddress/g | grep -v unistd.h > parse_address.cpp

parse_company.cpp: parse_company.flex $(MAKEFILE) flexhdr.h
	$(FLEX) $(FLEXOPTS) $(FLEXCASE) parse_company.flex  | $(SED) s/yy/yycompany/g | grep -v unistd.h >  parse_company.cpp

#
# Case is the case-sensetive parser
#
parse_case.cpp: parse_case.flex $(MAKEFILE) flexhdr.h
	$(FLEX) $(FLEXOPTS) parse_case.flex  | $(SED) s/yy/yycase/g | grep -v unistd.h >  parse_case.cpp


.SUFFIXES: .cpp
.cpp.o:
	$(CXX) -c $(CFLAGS) $(INCPATH) $<

