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