# Makefile for the Sherlock Filter Language (c) 2001--2003 Martin Mares <mj@ucw.cz>

DIRS+=filter
PROGS+=obj/filter/filter-test

LIBFILTER_MODS=lex parse.tab filter prune builtin hashes tries trees dumper fconfig

obj/filter/libfilter.a: $(addsuffix .o,$(addprefix obj/filter/,$(LIBFILTER_MODS)) $(CUSTOM_FILTER_MODULES))
obj/filter/libfilter.so: $(addsuffix .oo,$(addprefix obj/filter/,$(LIBFILTER_MODS)) $(CUSTOM_FILTER_MODULES))

obj/filter/ftest: obj/filter/ftest.o $(LIBFILTER) $(LIBSH)
obj/filter/filter-test: obj/filter/filter-test.o $(LIBFILTER) $(LIBSH)

obj/filter/parse.tab.o obj/filter/parse.tab.oo: CWARNS+=-Wno-sign-compare -Wno-redundant-decls -Wno-undef
obj/filter/lex.o obj/filter/lex.oo: CWARNS+=-Wno-redundant-decls -Wno-missing-prototypes -Wno-unused-function -Wno-undef

$(addsuffix .o,$(addprefix obj/filter/,$(LIBFILTER_MODS))) \
$(addsuffix .oo,$(addprefix obj/filter/,$(LIBFILTER_MODS))): filter/parse.tab.h

filter/parse.tab.h: filter/parse.tab.c
	touch $@

filter/parse.tab.c: filter/parse.y
	bison -dv $^ -o $@

filter/lex.c: filter/lex.l
	flex -s -B -8 -o$@ $^

dust::
	cd filter && rm -f parse.tab.[ch] parse.output lex.c
