| # -*- Makefile -*- |
| # |
| # $Id$ |
| # |
| ######################################################################## |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed |
| # with this work for additional information regarding copyright |
| # ownership. The ASF licenses this file to you under the Apache |
| # License, Version 2.0 (the "License"); you may not use this file |
| # except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
| # implied. See the License for the specific language governing |
| # permissions and limitations under the License. |
| # |
| # Copyright 1999-2007 Rogue Wave Software, Inc. |
| # |
| ######################################################################## |
| |
| 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),) |
| |
| |