On Tue, 6 Aug 2024 08:42:27 +0000 Janosch Frank <frankja@xxxxxxxxxxxxx> wrote: > It's time to move the snippet related Makefile parts into a new file > to make s390x/Makefile less busy. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > --- > s390x/Makefile | 38 ++++---------------------------------- > s390x/snippets/Makefile | 34 ++++++++++++++++++++++++++++++++++ > 2 files changed, 38 insertions(+), 34 deletions(-) > create mode 100644 s390x/snippets/Makefile > > diff --git a/s390x/Makefile b/s390x/Makefile > index 784818b2..aa55b470 100644 > --- a/s390x/Makefile > +++ b/s390x/Makefile > @@ -119,9 +119,11 @@ asmlib = $(TEST_DIR)/cstart64.o $(TEST_DIR)/cpu.o > > FLATLIBS = $(libcflat) > > +# Snippets > SNIPPET_DIR = $(TEST_DIR)/snippets > snippet_asmlib = $(SNIPPET_DIR)/c/cstart.o > snippet_lib = $(snippet_asmlib) lib/auxinfo.o > +include $(SNIPPET_DIR)/Makefile > > # perquisites (=guests) for the snippet hosts. > # $(TEST_DIR)/<snippet-host>.elf: snippets = $(SNIPPET_DIR)/<c/asm>/<snippet>.gbin > @@ -146,38 +148,6 @@ else > snippet-hdr-obj = > endif > > -# the asm/c snippets %.o have additional generated files as dependencies > -$(SNIPPET_DIR)/asm/%.o: $(SNIPPET_DIR)/asm/%.S $(asm-offsets) > - $(CC) $(CFLAGS) -c -nostdlib -o $@ $< > - > -$(SNIPPET_DIR)/c/%.o: $(SNIPPET_DIR)/c/%.c $(asm-offsets) > - $(CC) $(CFLAGS) -c -nostdlib -o $@ $< > - > -$(SNIPPET_DIR)/asm/%.elf: $(SNIPPET_DIR)/asm/%.o $(SNIPPET_DIR)/asm/flat.lds > - $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/asm/flat.lds $< > - > -$(SNIPPET_DIR)/asm/%.gbin: $(SNIPPET_DIR)/asm/%.elf > - $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $< $@ > - truncate -s '%4096' $@ > - > -$(SNIPPET_DIR)/c/%.elf: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPPET_DIR)/c/flat.lds > - $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/c/flat.lds $< $(snippet_lib) $(FLATLIBS) > - > -$(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.elf > - $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $< $@ > - truncate -s '%4096' $@ > - > -%.hdr: %.gbin $(HOST_KEY_DOCUMENT) > - $(GEN_SE_HEADER) -k $(HOST_KEY_DOCUMENT) -c $<,0x0,0x00000000000000420000000000000000 --psw-addr 0x4000 -o $@ > - > -.SECONDARY: > -%.gobj: %.gbin > - $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ > - > -.SECONDARY: > -%.hdr.obj: %.hdr > - $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ > - > lds-autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d -MT $@ > %.lds: %.lds.S $(asm-offsets) > $(CPP) $(lds-autodepend-flags) $(CPPFLAGS) -P -C -o $@ $< > @@ -231,8 +201,8 @@ $(snippet_asmlib): $$(patsubst %.o,%.S,$$@) $(asm-offsets) > $(CC) $(CFLAGS) -c -nostdlib -o $@ $< > > > -arch_clean: asm_offsets_clean > - $(RM) $(TEST_DIR)/*.{o,elf,bin,lds} $(SNIPPET_DIR)/*/*.{o,elf,*bin,*obj,hdr,lds} $(SNIPPET_DIR)/asm/.*.d $(TEST_DIR)/.*.d lib/s390x/.*.d $(comm-key) > +arch_clean: asm_offsets_clean snippet_clean > + $(RM) $(TEST_DIR)/*.{o,elf,bin,lds} $(TEST_DIR)/.*.d lib/s390x/.*.d $(comm-key) > > generated-files = $(asm-offsets) > $(tests:.elf=.o) $(asmlib) $(cflatobjs): $(generated-files) > diff --git a/s390x/snippets/Makefile b/s390x/snippets/Makefile > new file mode 100644 > index 00000000..8d79165e > --- /dev/null > +++ b/s390x/snippets/Makefile > @@ -0,0 +1,34 @@ > +# the asm/c snippets %.o have additional generated files as dependencies > +$(SNIPPET_DIR)/asm/%.o: $(SNIPPET_DIR)/asm/%.S $(asm-offsets) > + $(CC) $(CFLAGS) -c -nostdlib -o $@ $< > + > +$(SNIPPET_DIR)/c/%.o: $(SNIPPET_DIR)/c/%.c $(asm-offsets) > + $(CC) $(CFLAGS) -c -nostdlib -o $@ $< > + > +$(SNIPPET_DIR)/asm/%.elf: $(SNIPPET_DIR)/asm/%.o $(SNIPPET_DIR)/asm/flat.lds > + $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/asm/flat.lds $< > + > +$(SNIPPET_DIR)/asm/%.gbin: $(SNIPPET_DIR)/asm/%.elf > + $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $< $@ > + truncate -s '%4096' $@ > + > +$(SNIPPET_DIR)/c/%.elf: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPPET_DIR)/c/flat.lds > + $(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/c/flat.lds $< $(snippet_lib) $(FLATLIBS) > + > +$(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.elf > + $(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $< $@ > + truncate -s '%4096' $@ > + > +%.hdr: %.gbin $(HOST_KEY_DOCUMENT) > + $(GEN_SE_HEADER) -k $(HOST_KEY_DOCUMENT) -c $<,0x0,0x00000000000000420000000000000000 --psw-addr 0x4000 -o $@ > + > +.SECONDARY: > +%.gobj: %.gbin > + $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ > + > +.SECONDARY: > +%.hdr.obj: %.hdr > + $(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@ > + > +snippet_clean: > + $(RM) $(SNIPPET_DIR)/*/*.{o,elf,*bin,*obj,hdr,lds} $(SNIPPET_DIR)/asm/.*.d