# -*- Makefile -*- ############################################################################## # # $Id$ # ############################################################################## include ../makefile.in ######################################################### # if PHDIR isn't set, don't try to build anything ######################################################### ifeq ($(PHDIR),) all: .DEFAULT listtarget: @echo .DEFAULT: @echo "PHDIR not set; skipping Plum Hall tests" ######################################################### # end of makefile if PHDIR isn't set ######################################################### else # ifneq ($(PHDIR),) SRCDIRS = $(PHDIR)/conform # do not compile these sources... # exclude files beginning with '_' or 0-9 OMIT_SRCS += $(notdir $(shell $(FIND) $(SRCDIRS) \ -name "[_0-9]*.cpp" -print)) linkwith.cpp include ../makefile.common INCLUDES += -I$(TOPDIR)/include/ansi -I$(PHDIR)/conform -I$(PHDIR)/dst.3 WARNFLAGS += $(PHWARNFLAGS) # add --ph to RUNFLAGS to indicate that these are plumhall tests RUNFLAGS += --ph -X "-C $(CXX)-$(CCVER)" # override the runtarget set in makefile.common RUNTARGET = $(shell $(MAKE) -s listtarget listsubtests | sed "s/ / .\//g") ifneq ($(RPATH),) LDFLAGS += $(RPATH)$(LIBDIR) endif ############################################################################## # TARGETS ############################################################################## # first try to build all tests, then build subtests for # those tests that didn't compile all: $(LIBDIR)/$(LIBNAME) maintests subtests $(LIBDIR)/$(LIBNAME): @$(MAKE) -C $(LIBDIR) # TARGET variable contains the names of all the main tests # (does not contain subtests) maintests: $(TARGET) # call make recursively to get a list of all subtests that should be deleted realclean: clean dependclean rm -f `$(MAKE) -s listsubtests` # call make recursively to get a list of all subtests that need to be # built because the main test didn't compile subtests: @$(MAKE) -r -s `$(MAKE) -s listsubtests` # print out the names of all subtests that need to be compiled # because the corresponding main test didn't compile listsubtests: @(for test in $(TARGET); do \ if [ ! -x ./$$test ]; then \ $(FIND) $(PHDIR)/conform/$${test}.dir \ -name "[_0-9]*.cpp" -print \ | sed "s:.*/\(.*\)\.cpp:\1:" ; \ fi; \ done) include ../makefile.rules endif # ifeq ($(PHDIR),)