]>
Commit | Line | Data |
---|---|---|
b462fcd5 AG |
1 | all: build-all |
2 | # Dummy command so that make thinks it has done something | |
3 | @true | |
4 | ||
5 | include ../../config-host.mak | |
49b7d744 | 6 | CFLAGS = -O2 -g |
b462fcd5 | 7 | |
22fb2ab0 | 8 | quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1)) |
3462ff35 TH |
9 | cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \ |
10 | >/dev/null 2>&1 && echo OK),$2,$3) | |
22fb2ab0 TH |
11 | |
12 | VPATH_SUFFIXES = %.c %.h %.S %.m %.mak %.sh %.rc Kconfig% %.json.in | |
13 | set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1))) | |
b462fcd5 AG |
14 | $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw) |
15 | ||
22fb2ab0 TH |
16 | # Flags for dependency generation |
17 | QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d | |
18 | ||
19 | %.o: %.c | |
20 | $(call quiet-command,$(CC) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) \ | |
21 | -c -o $@ $<,"CC","$(TARGET_DIR)$@") | |
22 | ||
23 | %.o: %.S | |
24 | $(call quiet-command,$(CCAS) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) \ | |
25 | -c -o $@ $<,"CCAS","$(TARGET_DIR)$@") | |
26 | ||
b462fcd5 AG |
27 | .PHONY : all clean build-all |
28 | ||
9a848adf | 29 | OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \ |
efa47d36 | 30 | virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o |
9a848adf | 31 | |
49b7d744 | 32 | QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS)) |
da231910 | 33 | QEMU_CFLAGS += $(call cc-option,-Werror $(QEMU_CFLAGS),-Wno-stringop-overflow) |
4f6a1eb8 TH |
34 | QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -fno-common -fPIE |
35 | QEMU_CFLAGS += -fwrapv -fno-strict-aliasing -fno-asynchronous-unwind-tables | |
c86c03cf | 36 | QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS), -fno-stack-protector) |
a5b2afd5 TH |
37 | QEMU_CFLAGS += -msoft-float |
38 | QEMU_CFLAGS += $(call cc-option, $(QEMU_CFLAGS),-march=z900,-march=z10) | |
4f6a1eb8 | 39 | QEMU_CFLAGS += -std=gnu99 |
d884c86d | 40 | LDFLAGS += -Wl,-pie -nostdlib |
b462fcd5 | 41 | |
3e4415a7 | 42 | build-all: s390-ccw.img s390-netboot.img |
b462fcd5 AG |
43 | |
44 | s390-ccw.elf: $(OBJECTS) | |
0bdb12c7 | 45 | $(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(OBJECTS),"BUILD","$(TARGET_DIR)$@") |
b462fcd5 | 46 | |
c68f4503 GK |
47 | STRIP ?= strip |
48 | ||
b462fcd5 | 49 | s390-ccw.img: s390-ccw.elf |
c68f4503 | 50 | $(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,"STRIP","$(TARGET_DIR)$@") |
d884c86d TH |
51 | |
52 | $(OBJECTS): Makefile | |
b462fcd5 | 53 | |
3e4415a7 TH |
54 | ifneq ($(wildcard $(SRC_PATH)/roms/SLOF/lib/libnet),) |
55 | include $(SRC_PATH)/pc-bios/s390-ccw/netboot.mak | |
56 | else | |
57 | s390-netboot.img: | |
58 | @echo "s390-netboot.img not built since roms/SLOF/ is not available." | |
59 | endif | |
60 | ||
1c9f6550 TH |
61 | ALL_OBJS = $(sort $(OBJECTS) $(NETOBJS) $(LIBCOBJS) $(LIBNETOBJS)) |
62 | -include $(ALL_OBJS:%.o=%.d) | |
63 | ||
b462fcd5 | 64 | clean: |
88b3739a | 65 | rm -f *.o *.d *.img *.elf *~ *.a |