| # -*- 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),) |
| |
| |