1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
prefix?=/usr
exec_prefix?=$(prefix)
DESTDIR?=
libexecdir?=$(exec_prefix)/libexec
archlibexecdir?=$(exec_prefix)/libexec/$(DEB_HOST_MULTIARCH)
INSTALL?=install
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
ISAS_ARCH_LIST:=$(shell cat isa-list | grep '^Architecture:' | cut -d ':' -f2 | sort -u)
ISAS_ARCH_FORUS:=$(call uniq, $(foreach isaarch, $(ISAS_ARCH_LIST), $(shell dpkg-architecture -a $(DEB_HOST_ARCH) -i $(isaarch) && echo $(isaarch))))
ISAS_ARCH_FORUS_GREP:=$(foreach isa, $(ISAS_ARCH_FORUS), -e '^Architecture:.*[[:space:]]$(isa)')
ISAS:= $(shell cat isa-list | grep -A1 ^Name | grep -B1 $(ISAS_ARCH_FORUS_GREP) -e 'FakeArchIsEmptySet' | grep ^Name | cut -d ' ' -f2)
TEST_BINARIES = $(foreach isa,$(ISAS),test-$(isa))
QEMU_BINARIES = $(foreach type,good bad,$(foreach isa,$(ISAS),qemu-$(type)-$(isa)))
TEST_SOURCES = $(foreach isa,$(ISAS),test-$(isa).c)
GENERATED_FILES += $(foreach isa,$(ISAS),debian/$(isa).docs)
GENERATED_FILES += $(foreach isa,$(ISAS),debian/$(isa).lintian-overrides)
GENERATED_FILES += $(foreach isa,$(ISAS),debian/$(isa).preinst)
GENERATED_FILES += $(foreach isa,$(ISAS),debian/$(isa).templates)
GENERATED_FILES += $(TEST_SOURCES)
ALL_GENERATED_FILES += $(GENERATED_FILES) debian/control
ALL_BINARIES = $(TEST_BINARIES) $(QEMU_BINARIES)
INPUT_FILES = $(wildcard debian/*.in)
CFLAGS ?=
CFLAGS += -Wall
CFLAGS += $(shell cat isa-list | sed -e 's/^Name: /Name: test-/' | grep $@ -A3 | grep '^CFLAGS:' | cut -d ' ' -f2-)
all: $(TEST_BINARIES)
@:
clean:
rm -f $(GENERATED_FILES)
rm -f $(ALL_BINARIES)
rm -f .last-refresh
install:
mkdir -p $(DESTDIR)/$(archlibexecdir)/isa-support
for bin in $(TEST_BINARIES); do $(INSTALL) $$bin $(DESTDIR)/$(archlibexecdir)/isa-support; done
for bin in $(QEMU_BINARIES); do if test -e $$bin; then $(INSTALL) $$bin $(DESTDIR)/$(archlibexecdir)/isa-support; fi; done
check:
set -e ;for isa in $(ISAS); do \
if test -e qemu-good-$$isa; then \
echo "Test $$isa"; \
echo "Test good"; \
sh ./qemu-good-$$isa ./test-$$isa && echo 'ok'; \
echo "Test bad"; \
sh ./qemu-bad-$$isa ./test-$$isa || echo 'ok'; \
fi; \
done;
refresh: $(ALL_GENERATED_FILES) $(TEST_SOURCES)
@:
$(GENERATED_FILES): .last-refresh
@:
.last-refresh: refresh-package $(INPUT_FILES)
./refresh-package
touch $@
.PHONY: all clean refresh
|