zipl/boot: compile the bootloaders only if HOST_ARCH is s390x

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 <seiden@linux.ibm.com>
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
Marc Hartmayer
2023-09-21 16:45:46 +02:00
committed by Jan Höppner
parent 54937495e2
commit 65222d03b9

View File

@@ -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