+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
+
+subdirs:
+ for dir in $(SUBDIRS); do \
+ echo ""; \
+ echo "MAKE $$dir"; \
+ $(MAKE) -C $$dir; \
+ done
+
+loglevels.h:
+ echo "LOGLEVELS"
+ for file in $$(ls src/*.c src/*.y src/*.l | grep -v 'cfgparse.\(tab\|yy\).c'); \
+ do \
+ echo $$(basename $$file .c); \
+ done > loglevels.tmp
+ (echo "char *loglevels[] = {"; for file in $$(cat loglevels.tmp); \
+ do \
+ echo "\"$$file\", "; \
+ done; \
+ echo "};") > include/loglevels.h;
+
+src/cfgparse.yy.o: src/cfgparse.l src/cfgparse.y.o ${HEADERS}
+ echo "LEX $<"
+ flex -i -o$(@:.o=.c) $<
+ $(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="(1 << $(shell awk '/cfgparse.l/ { print NR }' loglevels.tmp))" -c -o $@ $(@:.o=.c)
+
+src/cmdparse.yy.o: src/cmdparse.l src/cmdparse.y.o ${HEADERS}
+ echo "LEX $<"
+ flex -Pcmdyy -i -o$(@:.o=.c) $<
+ $(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="(1 << $(shell awk '/cmdparse.l/ { print NR }' loglevels.tmp))" -c -o $@ $(@:.o=.c)
+
+
+src/cfgparse.y.o: src/cfgparse.y ${HEADERS}
+ echo "YACC $<"
+ bison --debug --verbose -b $(basename $< .y) -d $<
+ $(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="(1 << $(shell awk '/cfgparse.y/ { print NR }' loglevels.tmp))" -c -o $@ $(<:.y=.tab.c)
+
+src/cmdparse.y.o: src/cmdparse.y ${HEADERS}
+ echo "YACC $<"
+ bison -p cmdyy --debug --verbose -b $(basename $< .y) -d $<
+ $(CC) $(CPPFLAGS) $(CFLAGS) -DLOGLEVEL="(1 << $(shell awk '/cmdparse.y/ { print NR }' loglevels.tmp))" -c -o $@ $(<:.y=.tab.c)
+