xref: /kvm-unit-tests/s390x/snippets/Makefile (revision 1f08a91a41402b0e032ecce8ed1b5952cbfca0ea)
1# the asm/c snippets %.o have additional generated files as dependencies
2$(SNIPPET_DIR)/asm/%.o: $(SNIPPET_SRC_DIR)/asm/%.S $(asm-offsets)
3	$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
4
5$(SNIPPET_DIR)/c/%.o: SNIPPET_INCLUDE := $(SNIPPET_SRC_DIR)/lib
6$(SNIPPET_DIR)/c/%.o: $(SNIPPET_SRC_DIR)/c/%.c $(asm-offsets)
7	$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
8
9$(SNIPPET_DIR)/asm/%.elf: $(SNIPPET_DIR)/asm/%.o $(SNIPPET_DIR)/asm/flat.lds
10	$(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_SRC_DIR)/asm/flat.lds $<
11
12$(SNIPPET_DIR)/asm/%.gbin: $(SNIPPET_DIR)/asm/%.elf
13	$(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $< $@
14	truncate -s '%4096' $@
15
16$(SNIPPET_DIR)/c/%.elf: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPPET_DIR)/c/flat.lds
17	$(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/c/flat.lds $< $(snippet_lib) $(FLATLIBS)
18
19$(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.elf
20	$(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $< $@
21	truncate -s '%4096' $@
22
23%.hdr: %.gbin $(HOST_KEY_DOCUMENT)
24	$(GEN_SE_HEADER) -k $(HOST_KEY_DOCUMENT) -c $<,0x0,0x00000000000000420000000000000000 --psw-addr 0x4000 -o $@
25
26.SECONDARY:
27%.gobj: %.gbin
28	$(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@
29
30.SECONDARY:
31%.hdr.obj: %.hdr
32	$(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@
33
34snippet_clean:
35	$(RM) $(SNIPPET_DIR)/*/*.{o,elf,*bin,*obj,hdr,lds} $(SNIPPET_DIR)/asm/.*.d
36