| |
| HOST_ARCH := $(shell $(MK)/../bin/archtype) |
| |
| ifndef ARCHITECTURE |
| ifdef ARCH |
| ARCHITECTURE = $(ARCH) |
| else |
| ARCHITECTURE := $(HOST_ARCH) |
| endif |
| endif |
| |
| TEMPLATE_WANTED := $(MK)/$(ARCHITECTURE)_$(TOOLSET)_$(WHAT).mak |
| TEMPLATE_FOUND := $(wildcard $(TEMPLATE_WANTED)) |
| |
| PACKAGES_WANTED := $(PACKAGES:%=$(MK)/%.pkg) |
| PACKAGES_FOUND := $(wildcard $(PACKAGES_WANTED)) |
| PACKAGES_MISSING := $(filter-out $(PACKAGES_FOUND),$(PACKAGES_WANTED)) |
| |
| ALL_WANTED := $(TEMPLATE_WANTED) $(PACKAGES_WANTED) |
| ALL_FOUND := $(TEMPLATE_FOUND) $(PACKAGES_FOUND) |
| |
| # |
| # If everything we need to include was found, we're in great shape. |
| # |
| ifeq ($(ALL_WANTED),$(ALL_FOUND)) |
| |
| include $(PACKAGES_FOUND) $(TEMPLATE_FOUND) |
| |
| # |
| # Otherwise, try to figure out what's wrong |
| # |
| else |
| |
| default: show-it |
| |
| |
| something-went-wrong:: |
| @echo Something's afoul |
| |
| ERRS=err-intro |
| |
| err-intro:: |
| @echo "I can't figure out how to build your target because..." 2>&1 |
| |
| no-arch:: |
| @echo " -- There are no templates for the \`$(ARCHITECTURE)'" \ |
| "architecture" 2>&1 |
| |
| no-toolset:: |
| @echo " -- There are no templates for the \`$(TOOLSET)' toolset" 2>&1 |
| |
| no-what:: |
| @echo " -- I don't know what a \`$(WHAT)' is" 2>&1 |
| |
| no-packages:: |
| @echo " -- I can't find support for the following packages:" |
| @echo " " $(PACKAGES_MISSING:$(MK)/%.pkg=%) |
| |
| |
| ifeq ($(wildcard $(MK)/$(ARCHITECTURE)_*_*.mak),) |
| ERRS+=no-arch |
| else |
| ifeq ($(wildcard $(MK)/$(ARCHITECTURE)_$(TOOLSET)_*.mak),) |
| ERRS+=no-toolset |
| else |
| ifeq ($(wildcard $(MK)/$(ARCHITECTURE)_$(TOOLSET)_$(WHAT).mak),) |
| ERRS+=no-what |
| endif |
| endif |
| endif |
| |
| |
| |
| ifneq ($(PACKAGES_MISSING),) |
| ERRS+=no-packages |
| endif |
| |
| show-it: $(ERRS) |
| |
| #.DEFAULT: $(ERRS) |
| |
| endif |