# Copyright (c) 2015-2025 Paul Mattes.
# All rights reserved.
# 
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in the
#       documentation and/or other materials provided with the distribution.
#     * Neither the name of Paul Mattes nor his contributors may be used
#       to endorse or promote products derived from this software without
#       specific prior written permission.
# 
# THIS SOFTWARE IS PROVIDED BY PAUL MATTES "AS IS" AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
# NO EVENT SHALL PAUL MATTES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Top-level Makefile for suite3270.
# Everything redirects to the mode-specific Makefile.

# 'all' is the default.
all:
	@$(MAKE) -f Makefile.@MODE@ $@
.PHONY: all

# Define an explicit rule for the directories.
# If we don't do this, then even though the directories are marked as .PHONY,
# 'make' will still say there is 'nothing to be done' for them and not execute
# the .DEFAULT rule.
# They still need to be marked as .PHONY, otherwise make will say they are
# 'up to date'.
dirs := $(shell ls -d */ | sed s-/--)
$(dirs):
	@$(MAKE) -f Makefile.@MODE@ $@
.PHONY: $(dirs)

# Define a rule for 'targets' that doesn't display the directory name.
targets:
	@$(MAKE) --no-print-directory -f Makefile.@MODE@ $@
.PHONY: targets

# Define a default rule for everything else.
.DEFAULT:
	@$(MAKE) -f Makefile.@MODE@ $@
