mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Sync all install targets implementations. Some did quote the target directories some don't. Remove all quotations. This fixes wrong install locations of install paths that have a '~'. With quotes '~' is interpreted literally instead of using the home dir. Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com> Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
112 lines
3.0 KiB
Makefile
112 lines
3.0 KiB
Makefile
# Common definitions
|
|
include ../../common.mak
|
|
|
|
FILES := stage3a.bin stage3b.bin stage3b_reloc.bin
|
|
DEBUG_FILES := $(addsuffix .debug,$(FILES))
|
|
|
|
ifeq ($(HOST_ARCH),s390x)
|
|
ZIPL_DIR := $(rootdir)/zipl
|
|
ZIPL_BOOT_DIR := $(ZIPL_DIR)/boot
|
|
PKGDATADIR := $(TOOLS_DATADIR)/genprotimg
|
|
|
|
INCLUDE_PATHS := $(ZIPL_BOOT_DIR) $(ZIPL_DIR)/include $(rootdir)/include
|
|
INCLUDE_PARMS := $(addprefix -I,$(INCLUDE_PATHS))
|
|
|
|
ALL_CFLAGS := $(NO_PIE_CFLAGS) -Os -g \
|
|
$(INCLUDE_PARMS) \
|
|
-DENABLE_SCLP_ASCII=1 \
|
|
-DS390_TOOLS_RELEASE=$(S390_TOOLS_RELEASE) \
|
|
-fno-builtin -ffreestanding -fno-asynchronous-unwind-tables \
|
|
-fno-delete-null-pointer-checks -fno-stack-protector \
|
|
-fexec-charset=IBM1047 -m64 -mpacked-stack \
|
|
-mstack-size=4096 -mstack-guard=128 -msoft-float \
|
|
-Wall -Wformat-security -Wextra \
|
|
-Wno-array-bounds
|
|
|
|
ZIPL_SRCS_C := libc.c ebcdic.c ebcdic_conv.c sclp.c
|
|
ZIPL_SRCS_ASM := entry.S
|
|
|
|
ZIPL_OBJS_C := $(ZIPL_SRCS_C:%.c=%.o)
|
|
ZIPL_OBJS_ASM := $(ZIPL_SRCS_ASM:%.S=%.o)
|
|
ZIPL_OBJS := $(ZIPL_OBJS_C) $(ZIPL_OBJS_ASM)
|
|
|
|
# Prevent make from using some default rules...
|
|
%: %.S
|
|
|
|
%.o: %.S Makefile
|
|
$(CC) $(ALL_CFLAGS) -c -o $@ $<
|
|
|
|
%.o: %.c Makefile
|
|
$(CC) $(ALL_CFLAGS) -c -o $@ $<
|
|
|
|
|
|
# Dependencies for the .lds generation
|
|
sources_lds_S = $(wildcard *.lds.S)
|
|
dependencies_lds_S = $(sources_lds_S:%.lds.S=.%.lds.d)
|
|
# Include all ".lds.d" dependency files for all make targets except for "clean"
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(dependencies_lds_S)
|
|
endif
|
|
|
|
%.lds: %.lds.S Makefile
|
|
$(CPP) -Wp,-MD,.$@.d,-MT,$@ $(INCLUDE_PARMS) -P -C -o $@ $<
|
|
|
|
# Special rules for zipl object files
|
|
$(ZIPL_OBJS_C): %.o : $(ZIPL_BOOT_DIR)/%.c
|
|
$(CC) $(ALL_CFLAGS) -c -o $@ $<
|
|
|
|
$(ZIPL_OBJS_ASM): %.o : $(ZIPL_BOOT_DIR)/%.S
|
|
$(CC) $(ALL_CFLAGS) -c -o $@ $<
|
|
|
|
dependencies_zipl_c := $(ZIPL_SRCS_C:%.c=.%.o.d)
|
|
|
|
$(dependencies_zipl_c): .%.o.d : $(ZIPL_BOOT_DIR)/%.c
|
|
$(CC_SILENT) -MM $(ALL_CPPFLAGS) $(ALL_CFLAGS) $< > $@
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(dependencies_zipl_c)
|
|
endif
|
|
|
|
stage3b_reloc.o: stage3b.bin
|
|
|
|
stage3a.elf: head.o stage3a_init.o $(ZIPL_OBJS)
|
|
stage3b.elf: head.o $(ZIPL_OBJS)
|
|
|
|
.SECONDARY: $(FILES:.bin=.lds)
|
|
%.elf: %.lds %.o
|
|
$(LINK) $(NO_PIE_LDFLAGS) $(NO_WARN_RWX_SEGMENTS_LDFLAGS) -Wl,-T,$< -Wl,--build-id=none -m64 -static -nostdlib $(filter %.o, $^) -o $@
|
|
@chmod a-x $@
|
|
|
|
%.bin.debug: %.elf
|
|
$(OBJCOPY) --only-keep-debug $< $@
|
|
@chmod a-x $@
|
|
|
|
%.bin: %.elf
|
|
$(OBJCOPY) -O binary $< $@
|
|
@chmod a-x $@
|
|
|
|
install: stage3a.bin stage3b_reloc.bin
|
|
$(INSTALL) -d -m 755 $(DESTDIR)$(PKGDATADIR)
|
|
$(INSTALL) -g $(GROUP) -o $(OWNER) -m 644 stage3a.bin $(DESTDIR)$(PKGDATADIR)
|
|
$(INSTALL) -g $(GROUP) -o $(OWNER) -m 644 stage3b_reloc.bin $(DESTDIR)$(PKGDATADIR)
|
|
|
|
else
|
|
# Don't generate the dependency files (see `common.mak` for the
|
|
# `-include $(dependencies_c)` statement).
|
|
.PHONY: $(dependencies_c)
|
|
|
|
$(FILES) $(DEBUG_FILES):
|
|
echo " SKIP $@ due to HOST_ARCH != s390x"
|
|
|
|
install:
|
|
echo " SKIP Bootloader installation due to HOST_ARCH != s390x"
|
|
endif
|
|
|
|
.DEFAULT_GOAL := all
|
|
all: $(FILES) $(DEBUG_FILES)
|
|
|
|
clean:
|
|
rm -f -- *.o *.elf *.bin *.map .*.d *.lds *.debug
|
|
|
|
.PHONY: all clean
|