CC=@CC@
@SET_MAKE@

top_builddir=@top_builddir@
top_srcdir=@top_srcdir@
srcdir=@srcdir@
VPATH=@srcdir@

include $(top_builddir)/Make.rules

EXEEXT=@EXEEXT@

TEST_API_DEPS=\
  $(top_builddir)/src/pool.o \
  $(top_builddir)/src/privs.o \
  $(top_builddir)/src/str.o \
  $(top_builddir)/src/sets.o \
  $(top_builddir)/src/timers.o \
  $(top_builddir)/src/table.o \
  $(top_builddir)/src/support.o \
  $(top_builddir)/src/var.o \
  $(top_builddir)/src/event.o \
  $(top_builddir)/src/env.o \
  $(top_builddir)/src/random.o \
  $(top_builddir)/src/version.o \
  $(top_builddir)/src/feat.o \
  $(top_builddir)/src/netaddr.o \
  $(top_builddir)/src/netacl.o \
  $(top_builddir)/src/class.o \
  $(top_builddir)/src/regexp.o \
  $(top_builddir)/src/expr.o \
  $(top_builddir)/src/scoreboard.o \
  $(top_builddir)/src/stash.o \
  $(top_builddir)/src/modules.o \
  $(top_builddir)/src/cmd.o \
  $(top_builddir)/src/response.o \
  $(top_builddir)/src/rlimit.o \
  $(top_builddir)/src/fsio.o \
  $(top_builddir)/src/netio.o \
  $(top_builddir)/src/encode.o \
  $(top_builddir)/src/trace.o \
  $(top_builddir)/src/parser.o \
  $(top_builddir)/src/pidfile.o \
  $(top_builddir)/src/configdb.o \
  $(top_builddir)/src/auth.o \
  $(top_builddir)/src/filter.o \
  $(top_builddir)/src/inet.o \
  $(top_builddir)/src/data.o \
  $(top_builddir)/src/ascii.o \
  $(top_builddir)/src/help.o \
  $(top_builddir)/src/display.o \
  $(top_builddir)/src/json.o \
  $(top_builddir)/src/jot.o \
  $(top_builddir)/src/redis.o \
  $(top_builddir)/src/error.o

TEST_API_LIBS=-lcheck -lm

TEST_API_OBJS=\
  api/pool.o \
  api/array.o \
  api/str.o \
  api/sets.o \
  api/timers.o \
  api/table.o \
  api/var.o \
  api/event.o \
  api/env.o \
  api/random.o \
  api/version.o \
  api/feat.o \
  api/netaddr.o \
  api/netacl.o \
  api/class.o \
  api/regexp.o \
  api/expr.o \
  api/scoreboard.o \
  api/stash.o \
  api/modules.o \
  api/cmd.o \
  api/response.o \
  api/fsio.o \
  api/netio.o \
  api/trace.o \
  api/parser.o \
  api/pidfile.o \
  api/configdb.o \
  api/auth.o \
  api/filter.o \
  api/inet.o \
  api/data.o \
  api/ascii.o \
  api/help.o \
  api/rlimit.o \
  api/encode.o \
  api/privs.o \
  api/display.o \
  api/misc.o \
  api/json.o \
  api/jot.o \
  api/redis.o \
  api/error.o \
  api/stubs.o \
  api/tests.o

all:
	@echo "Running make from top level directory."
	cd ../; $(MAKE) all

dummy:

Makefile: Makefile.in ../config.status
	cd ../ && ./config.status

api.d:
	-mkdir -p api/

api/.c.o:
	$(CC) $(CPPFLAGS) $(CFLAGS) -c $<

api-tests$(EXEEXT): api.d $(TEST_API_OBJS) $(TEST_API_DEPS)
	$(LIBTOOL) --mode=link --tag=CC $(CC) $(LDFLAGS) -o $@ $(TEST_API_DEPS) $(TEST_API_OBJS) $(TEST_API_LIBS) $(LIBS)
	./$@

running-tests:
	perl tests.pl

check-api: dummy api-tests$(EXEEXT)

check-commands:
	perl tests.pl --file-pattern '^t\/(commands\/|logins\.t)'

check-configs:
	perl tests.pl --file-pattern '^t\/config\/'

check-logging:
	perl tests.pl --file-pattern '^t\/logging\/'

check-modules:
	perl tests.pl --file-pattern '^t\/logging\/'

check-utils:
	perl tests.pl --file-pattern '^t\/utils\/'

check: check-api running-tests

clean:
	$(LIBTOOL) --mode=clean $(RM) *.o *.gcda *.gcno api/*.o api-tests$(EXEEXT) api-tests.log
