From 65222d03b94b177479965d82b2aef7d921be1089 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Thu, 21 Sep 2023 16:45:46 +0200 Subject: [PATCH] zipl/boot: compile the bootloaders only if HOST_ARCH is s390x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The zipl bootloaders are s390x specific, so only build them if the `HOST_ARCH' is set to s390x. While at it, rename `INC_FILES` to `EMBEDDED_BOOTLOADERS`. Also introduce `EXTERNAL_BOOTLOADERS` variable and use it in the `install` Makefile target. Reviewed-by: Steffen Eiden Signed-off-by: Marc Hartmayer Signed-off-by: Jan Höppner --- zipl/boot/Makefile | 53 +++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/zipl/boot/Makefile b/zipl/boot/Makefile index 92d7d63a..a0fc82b5 100644 --- a/zipl/boot/Makefile +++ b/zipl/boot/Makefile @@ -1,6 +1,27 @@ # Common definitions include ../../common.mak +EMBEDDED_BOOTLOADERS := fba0.bin fba1b.bin fba2.bin \ + eckd0_ldl.bin eckd0_cdl.bin \ + eckd1.bin eckd1b.bin eckd2.bin \ + tape0.bin \ + eckd2dump_sv.bin tape2dump.bin fba2dump.bin eckd2dump_mv.bin +DEBUG_EMBEDDED_BOOTLOADERS := $(addsuffix .debug,$(EMBEDDED_BOOTLOADERS)) +EXTERNAL_BOOTLOADERS := stage3.bin +DEBUG_EXTERNAL_BOOTLOADERS := $(addsuffix .debug,$(EXTERNAL_BOOTLOADERS)) + +.loaders: $(EMBEDDED_BOOTLOADERS) $(DEBUG_EMBEDDED_BOOTLOADERS) + touch .loaders + +.DEFAULT_GOAL := all +all: .loaders $(EXTERNAL_BOOTLOADERS) $(DEBUG_EXTERNAL_BOOTLOADERS) + +clean: + rm -f -- ./**/*.o *.o *.exec *.bin *.lds .*.lds.d .loaders *.debug + +.PHONY: all clean + +ifeq ($(HOST_ARCH),s390x) INCLUDE_PATHS := $(rootdir)/zipl/include $(rootdir)/include INCLUDE_PARMS := $(addprefix -I,$(INCLUDE_PATHS)) @@ -13,23 +34,6 @@ ALL_CFLAGS = $(NO_PIE_CFLAGS) -Os -g $(INCLUDE_PARMS) \ -W -Wall -Wformat-security -fno-sanitize=all -Wno-array-bounds ALL_LDFLAGS += -fno-sanitize=all -INC_FILES := fba0.bin fba1b.bin fba2.bin \ - eckd0_ldl.bin eckd0_cdl.bin \ - eckd1.bin eckd1b.bin eckd2.bin \ - tape0.bin \ - eckd2dump_sv.bin tape2dump.bin fba2dump.bin eckd2dump_mv.bin -FILES := $(INC_FILES) stage3.bin -DEBUG_FILES := $(addsuffix .debug,$(FILES)) - -all: .loaders $(FILES) $(DEBUG_FILES) - -.loaders: $(INC_FILES) - touch .loaders - -install: stage3.bin - $(INSTALL) -d -m 755 "$(DESTDIR)$(TOOLS_LIBDIR)" - $(INSTALL) -g $(GROUP) -o $(OWNER) -m 644 stage3.bin "$(DESTDIR)$(TOOLS_LIBDIR)" - # Prevent make from using some default rules... %: %.S @@ -91,8 +95,17 @@ stage3.exec: head.o stage3.o kdump3.o libc.o ebcdic.o ebcdic_conv.o sclp.o \ $(OBJCOPY) -O binary $< $@ @chmod a-x $@ +install: $(EXTERNAL_BOOTLOADERS) + $(INSTALL) -d -m 755 "$(DESTDIR)$(TOOLS_LIBDIR)" + $(INSTALL) -g $(GROUP) -o $(OWNER) -m 644 $(EXTERNAL_BOOTLOADERS) "$(DESTDIR)$(TOOLS_LIBDIR)" +else +# Don't generate the dependency files (see `common.mak` for the +# `-include $(dependencies_c)` statement). +.PHONY: $(dependencies_c) -clean: - rm -f -- ./**/*.o *.o *.exec *.bin *.lds .*.lds.d .loaders *.debug +$(EMBEDDED_BOOTLOADERS) $(DEBUG_EMBEDDED_BOOTLOADERS) $(EXTERNAL_BOOTLOADERS) $(DEBUG_EXTERNAL_BOOTLOADERS): + echo " SKIP $@ due to HOST_ARCH != s390x" -.PHONY: all clean +install: + echo " SKIP Bootloader installation due to HOST_ARCH != s390x" +endif