blob: dbf4161131a35db743017de031f05d8a94ea57e3 [file] [log] [blame]
# -*- 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),)