-#
-# Makefile for the Squid Object Cache server
-#
-# $Id: Makefile.am,v 1.6 2003/06/09 04:02:16 robertc Exp $
-#
+include $(top_srcdir)/src/Common.am
AUTOMAKE_OPTIONS = subdir-objects
-AM_CFLAGS = @SQUID_CFLAGS@
-AM_CXXFLAGS = @SQUID_CXXFLAGS@
+## we need our local files too (but avoid -I. at all costs)
+INCLUDES += -I$(srcdir)
-INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir)/src
+LDADD = \
+ $(top_builddir)/src/globals.o \
+ $(top_builddir)/src/time.o \
+ $(top_builddir)/lib/libmiscutil.la \
+ $(COMPAT_LIB) \
+ $(XTRA_LIBS)
-EXTRA_PROGRAMS = mem_node_test membanger splay tcp-banger2 rfc1738
+EXTRA_PROGRAMS = mem_node_test membanger splay tcp-banger2
-## Sort by dependencies - test lowest layers first
-TESTS = rfc1738 refcount splay mem_node_test http_range_test
+EXTRA_DIST = \
+ $(srcdir)/squidconf/* \
+ testheaders.sh
+
+ESI_ALL_TESTS = \
+ ESIExpressions
+
+if USE_ESI
+ ESI_TESTS = $(ESI_ALL_TESTS)
+else
+ ESI_TESTS =
+endif
## Sort by dependencies - test lowest layers first
-check_PROGRAMS= rfc1738 refcount splay mem_node_test http_range_test
+TESTS += debug \
+ syntheticoperators \
+ VirtualDeleteOperator \
+ StackTest \
+ splay\
+ MemPoolTest\
+ mem_node_test\
+ mem_hdr_test\
+ $(ESI_TESTS) \
+ squid-conf-tests
+
+## Sort by alpha - any build failures are significant.
+check_PROGRAMS += debug \
+ $(ESI_TESTS) \
+ MemPoolTest\
+ mem_node_test\
+ mem_hdr_test \
+ splay \
+ StackTest \
+ syntheticoperators \
+ VirtualDeleteOperator
+
+
+tcp_banger2_LDADD = $(top_builddir)/lib/libmiscutil.la
+
+
+DEBUG_SOURCE = test_tools.cc stub_debug.cc stub_tools.cc stub_fatal.cc
+
+stub_debug.cc: $(top_srcdir)/src/tests/stub_debug.cc
+ cp $(top_srcdir)/src/tests/stub_debug.cc .
+
+stub_tools.cc: $(top_srcdir)/src/tests/stub_tools.cc
+ cp $(top_srcdir)/src/tests/stub_tools.cc .
+
+stub_fatal.cc: $(top_srcdir)/src/tests/stub_fatal.cc
+ cp $(top_srcdir)/src/tests/stub_fatal.cc .
+
+CLEANFILES += stub_debug.cc stub_tools.cc stub_fatal.cc
+
+## XXX: somewhat broken. Its meant to test our debugs() implementation.
+## but it has never been linked to the actual src/debug.cc implementation !!
+## all it tests are the stream operators and macro in src/Debug.h
+debug_SOURCES = debug.cc $(DEBUG_SOURCE)
+
+ESIExpressions_SOURCES = ESIExpressions.cc $(DEBUG_SOURCE)
+ESIExpressions_LDADD = $(top_builddir)/src/esi/Expression.o \
+ $(LDADD)
-LDADD = -L$(top_builddir)/lib -lmiscutil
mem_node_test_SOURCES = mem_node_test.cc
mem_node_test_LDADD = $(top_builddir)/src/mem_node.o $(LDADD)
-refcount_SOURCES = refcount.cc
-DEBUG_OBJECTS = $(top_builddir)/src/debug.o\
- $(top_builddir)/src/globals.o
+mem_hdr_test_SOURCES = mem_hdr_test.cc $(DEBUG_SOURCE)
+mem_hdr_test_LDADD = \
+ $(top_builddir)/src/stmem.o \
+ $(top_builddir)/src/mem_node.o \
+ $(LDADD)
-http_range_test_SOURCES = http_range_test.cc
-http_range_test_LDADD = $(top_builddir)/src/HttpHdrRange.o \
- $(top_builddir)/src/HttpHeaderTools.o \
- $(top_builddir)/src/MemBuf.o \
- $(top_builddir)/src/Packer.o \
- $(top_builddir)/src/String.o \
- $(top_builddir)/src/mem.o \
- $(DEBUG_OBJECTS) $(LDADD)
+MemPoolTest_SOURCES = MemPoolTest.cc
splay_SOURCES = splay.cc
-rfc1738_SOURCES = rfc1738.cc
+StackTest_SOURCES = StackTest.cc $(DEBUG_SOURCE)
+
+syntheticoperators_SOURCES = syntheticoperators.cc $(DEBUG_SOURCE)
+
+VirtualDeleteOperator_SOURCES = VirtualDeleteOperator.cc $(DEBUG_SOURCE)
## membanger won't link today. Bitrot..
##CC = gcc
##
##$(TARGLIB): $(LIBOBJS)
## $(AR_R) $(TARGLIB) $(LIBOBJS)
+
+squid-conf-tests: $(top_builddir)/src/squid.conf.default $(srcdir)/squidconf/*
+ @failed=0; cfglist="$?"; rm -f $@ || $(TRUE); \
+ for cfg in $$cfglist ; do \
+ $(top_builddir)/src/squid -k parse -f $$cfg || \
+ { echo "FAIL: squid.conf test: $$cfg" | \
+ sed s%$(top_builddir)/src/%% | \
+ sed s%$(srcdir)/squidconf/%% ; \
+ failed=1; break; \
+ }; \
+ if test "$$failed" -eq 0; then \
+ echo "PASS: squid.conf test: $$cfg" | \
+ sed s%$(top_builddir)/src/%% | \
+ sed s%$(srcdir)/squidconf/%% ; \
+ else break; fi; \
+ done; \
+ if test "$$failed" -eq 0; then cp $(TRUE) $@ ; fi
+
+CLEANFILES += squid-conf-tests