VPATH:=@srcdir@ srcdir:=@srcdir@ topdir:=@top_srcdir@ include ../common.make TARGETS=udp-preload.so check TESTSCRIPTS ?= $(shell echo $(srcdir)/t-*[0-9a-z]) TESTNAMES := $(patsubst t-%,%,$(notdir $(TESTSCRIPTS))) all: $(TARGETS) CFLAGS += -D_REENTRANT -fPIC udp-preload.so: udp-preload.o $(CC) -shared -Wl,-soname,$@.1 $^ -o $@ -ldl # These test scripts use little cpu but contain sleeps etc. So when # there are several, we are going to want to run *loads* in parallel. # # Ideally we would do something like "every one of these counts for a # tenth of a job" but make can't do that. So bodge it: we treat all the # tests as a single job, and disconnect the parent's jobserver. # # make.info says $(MAKE) causes special handling of the rule but only # if it's written literally like that in the rule, hence this # indirection. We need no squash MAKEFLAGS and MFLAGS too. # MAKELEVEL seems like it will be fine to pass on. MAKE_NOTSPECIAL:=$(MAKE) check: env -u MAKEFLAGS -u MFLAGS \ $(MAKE_NOTSPECIAL) -j$(shell nproc || 1)0 check-real check-real: $(foreach t,$(TESTNAMES),d-$t/ok) d-%/ok: $(srcdir)/t-% udp-preload.so $(srcdir)/common.tcl \ ../secnet ../test-example/sites.conf @rm -rf d-$*; mkdir d-$* export STEST_BUILDDIR=$(topbuilddir); \ cd $(topdir) && stest/t-$* >$(topbuilddir)/stest/d-$*/log 2>&1 @printf "$* " @touch $@ clean: $(RM) -f *.o *.so $(RM) -rf tmp