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

DIRS+=filter
PROGS+=$(o)/filter/filter-test

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

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

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

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

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

$(o)/filter/parse.tab.h: $(o)/filter/parse.tab.c
	touch $@

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

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