2 SLOF_DIR
:= $(SRC_PATH
)/..
/..
/roms
/SLOF
4 NETOBJS
:= start.o sclp.o cio.o virtio.o virtio-net.o jump2ipl.o netmain.o
6 LIBC_INC
:= -nostdinc
-I
$(SLOF_DIR
)/lib
/libc
/include
7 LIBNET_INC
:= -I
$(SLOF_DIR
)/lib
/libnet
9 NETLDFLAGS
:= $(LDFLAGS
) -Wl
,-Ttext
=0x7800000
11 $(NETOBJS
): EXTRA_CFLAGS
+= $(LIBC_INC
) $(LIBNET_INC
)
13 s390-netboot.elf
: $(NETOBJS
) libnet.a libc.a
14 $(call quiet-command
,$(CC
) $(NETLDFLAGS
) -o
$@
$^
,"BUILD","$(TARGET_DIR)$@")
16 s390-netboot.img
: s390-netboot.elf
17 $(call quiet-command
,$(STRIP
) --strip-unneeded
$< -o
$@
,"STRIP","$(TARGET_DIR)$@")
19 # SLOF is GCC-only, so ignore warnings about GNU extensions with Clang here
20 NO_GNU_WARN
:= $(call cc-option
,-Werror
$(QEMU_CFLAGS
),-Wno-gnu
)
24 LIBC_CFLAGS
= $(EXTRA_CFLAGS
) $(CFLAGS
) $(NO_GNU_WARN
) $(LIBC_INC
) $(LIBNET_INC
) \
25 -MMD
-MP
-MT
$@
-MF
$(@
:%.o
=%.d
)
27 CTYPE_OBJS
= isdigit.o isxdigit.o toupper.o
28 %.o
: $(SLOF_DIR
)/lib
/libc
/ctype
/%.c
29 $(call quiet-command
,$(CC
) $(LIBC_CFLAGS
) -c
-o
$@
$<,"CC","$(TARGET_DIR)$@")
31 STRING_OBJS
= strcat.o strchr.o strrchr.o strcpy.o strlen.o strncpy.o \
32 strcmp.o strncmp.o strcasecmp.o strncasecmp.o strstr.o \
33 memset.o memcpy.o memmove.o memcmp.o
34 %.o
: $(SLOF_DIR
)/lib
/libc
/string
/%.c
35 $(call quiet-command
,$(CC
) $(LIBC_CFLAGS
) -c
-o
$@
$<,"CC","$(TARGET_DIR)$@")
37 STDLIB_OBJS
= atoi.o atol.o strtoul.o strtol.o rand.o malloc.o free.o
38 %.o
: $(SLOF_DIR
)/lib
/libc
/stdlib
/%.c
39 $(call quiet-command
,$(CC
) $(LIBC_CFLAGS
) -c
-o
$@
$<,"CC","$(TARGET_DIR)$@")
41 STDIO_OBJS
= sprintf.o snprintf.o vfprintf.o vsnprintf.o vsprintf.o fprintf.o \
42 printf.o putc.o puts.o putchar.o stdchnls.o fileno.o
43 %.o
: $(SLOF_DIR
)/lib
/libc
/stdio
/%.c
44 $(call quiet-command
,$(CC
) $(LIBC_CFLAGS
) -c
-o
$@
$<,"CC","$(TARGET_DIR)$@")
46 sbrk.o
: $(SLOF_DIR
)/slof
/sbrk.c
47 $(call quiet-command
,$(CC
) $(LIBC_CFLAGS
) -c
-o
$@
$<,"CC","$(TARGET_DIR)$@")
49 LIBCOBJS
:= $(STRING_OBJS
) $(CTYPE_OBJS
) $(STDLIB_OBJS
) $(STDIO_OBJS
) sbrk.o
52 $(call quiet-command
,$(AR
) -rc
$@
$^
,"AR","$(TARGET_DIR)$@")
56 LIBNETOBJS
:= args.o dhcp.o dns.o icmpv6.o ipv6.o tcp.o udp.o bootp.o \
57 dhcpv6.o ethernet.o ipv4.o ndp.o tftp.o pxelinux.o
58 LIBNETCFLAGS
= $(EXTRA_CFLAGS
) $(CFLAGS
) $(NO_GNU_WARN
) $(LIBC_INC
) $(LIBNET_INC
) \
59 -DDHCPARCH
=0x1F -MMD
-MP
-MT
$@
-MF
$(@
:%.o
=%.d
)
61 %.o
: $(SLOF_DIR
)/lib
/libnet
/%.c
62 $(call quiet-command
,$(CC
) $(LIBNETCFLAGS
) -c
-o
$@
$<,"CC","$(TARGET_DIR)$@")
64 libnet.a
: $(LIBNETOBJS
)
65 $(call quiet-command
,$(AR
) -rc
$@
$^
,"AR","$(TARGET_DIR)$@")