1# $NetBSD: Makefile,v 1.25 2020/06/07 03:02:42 tsutsui Exp $ 2 3WARNS ?= 1 4NOMAN = 5NOPIE = 6 7BINMODE = 444 8 9S = ${.CURDIR}/../../../.. 10COMMON = ${.CURDIR}/../common 11 12LIBSADIR = ${S}/lib/libsa 13SYSVBFSDIR = ${S}/fs/sysvbfs 14EWS4800MIPSDIR = ${.CURDIR}/../../ews4800mips 15DEVDIR = ${.CURDIR}/../../dev 16 17# XXX SHOULD NOT NEED TO DEFINE THESE! 18LIBCRT0= 19LIBCRTI= 20LIBC= 21LIBCRTBEGIN= 22LIBCRTEND= 23 24.PATH: ${COMMON} ${LIBSADIR} ${SYSVBFSDIR} \ 25 ${EWS4800MIPSDIR} ${SBDDIR} ${DEVDIR} 26 27COFFHDRFIX = ${.OBJDIR}/coffhdrfix 28 29PROG = boot 30BOOT_KERNEL = boot_kernel 31FILES += ${PROG}.coff ${BOOT_KERNEL}.gz # XXX hack to install these 32SRCS = start.S boot.c prompt.c delay.c cmd.c loader.c 33SRCS += bfs_subr.o disk.c diskutil.c 34SRCS += devopen.c datafs.c bootfs.c ustarfs.c 35SRCS += lance.c ether_if.c 36SRCS += device_test.c cop0.c mem.c 37SRCS += boot_device.c floppy_2d.c floppy_2hd_ibmpc.c 38#SRCS += floppy_2hc.c 39SRCS += console.c cons_rom.c cons_fb.c cons_zskbd.c cons_zs.c 40BINKERNEL_C = ${COMMON}/binkernel.c 41BINKERNEL_SIZE = 2143232 # '2 * 1024 * 1024 + 45 * 1024' 42BINKERNEL_O = binkernel.o 43BINKERNEL_DUMMY_O= binkernel_dummy.o 44 45# ${S}/lib/libsa 46SRCS += dev_net.c 47# ${S}/fs/sysvbfs 48SRCS += bfs.c 49# ../../dev 50SRCS += ga.c 51# ../../ews4800mips 52SRCS += pdinfo.c vtoc.c 53 54.include "${S}/conf/newvers_stand.mk" 55 56TEXTADDR = 0xa0a00000 57LINKFLAGS = -T ${S}/arch/mips/conf/stand.ldscript -Ttext ${TEXTADDR} \ 58 -e start -N 59COFFLDFLAGS = -T ${COMMON}/coffboot.ldscript -N 60 61MIPSFLAGS = -mips1 -G 0 -mno-abicalls 62DEBUGFLAGS = -Wall -Werror 63DEBUGFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith 64DEBUGFLAGS += -Wno-format-zero-length -Wno-sign-compare 65OPTFLAGS = -Os -mmemcpy -fno-unwind-tables 66FLAGS = ${MIPSFLAGS} ${DEBUGFLAGS} ${OPTFLAGS} 67AFLAGS = -xassembler-with-cpp -D_LOCORE ${FLAGS} 68CFLAGS = ${FLAGS} -ffreestanding 69 70CPPFLAGS += -D_STANDALONE -DSUPPORT_BOOTP 71CPPFLAGS += -nostdinc -I${.OBJDIR} -I${.CURDIR} -I${COMMON} -I${S} 72CPPFLAGS += -D__daddr_t=int32_t 73#CPPFLAGS += -DBOOTP_DEBUG -DNETIF_DEBUG -DETHER_DEBUG -DNFS_DEBUG 74#CPPFLAGS += -DRPC_DEBUG -DRARP_DEBUG -DNET_DEBUG -DDEBUG -DPARANOID 75 76CLEANFILES += ${BINKERNEL_DUMMY_O} ${BINKERNEL_O} 77CLEANFILES += ${PROG} ${PROG}.elf ${PROG}.coff ${PROG}.tmp ${PROG}.dis 78CLEANFILES += ${COFFHDRFIX} 79CLEANFILES += ${BOOT_KERNEL} ${BOOT_KERNEL}.elf ${BOOT_KERNEL}.tmp 80CLEANFILES += ${BOOT_KERNEL}.gz ${BOOT_KERNEL}.gz.tmp 81 82.include "${S}/lib/libkern/Makefile.inc" 83LIBKERN= ${KERNLIB} 84 85.include "${S}/lib/libz/Makefile.inc" 86LIBZ= ${ZLIB} 87 88CPPFLAGS+= -DLIBSA_ENABLE_LS_OP 89SAMISCMAKEFLAGS= SA_USE_CREAD=yes SA_USE_LOADFILE=yes SA_ENABLE_LS_OP=yes 90.include "${S}/lib/libsa/Makefile.inc" 91LIBSA= ${SALIB} 92 93LIBS = ${LIBSA} ${LIBZ} ${LIBKERN} 94 95# fixup GNU binutils file offset error. 96coffhdrfix: ${COMMON}/coffhdrfix.c 97 ${HOST_CC} -o ${COFFHDRFIX} ${COMMON}/coffhdrfix.c 98 99cleandir distclean: .WAIT cleanlibdir 100 101cleanlibdir: 102 -rm -rf lib 103 104${BINKERNEL_DUMMY_O}: ${BINKERNEL_C} 105 ${_MKTARGET_COMPILE} 106 ${COMPILE.c} -DKERNEL_SIZE=0 ${BINKERNEL_C} -o ${.TARGET} 107 108${BINKERNEL_O}: ${BINKERNEL_C} 109 ${_MKTARGET_COMPILE} 110 ${COMPILE.c} -DKERNEL_SIZE=${BINKERNEL_SIZE} ${BINKERNEL_C} \ 111 -o ${.TARGET} 112 113all realall: ${PROG}.coff ${BOOT_KERNEL}.gz 114 115${PROG}: ${BINKERNEL_DUMMY_O} ${OBJS} ${LIBS} 116 ${_MKTARGET_LINK} 117 ${LD} ${LINKFLAGS} -S -o ${PROG}.elf ${OBJS} ${LIBS} \ 118 ${BINKERNEL_DUMMY_O} 119 ${OBJDUMP} -h ${PROG}.elf 120# ${OBJDUMP} -m mips:4000 -d ${PROG}.elf > ${PROG}.dis 121 mv ${PROG}.elf ${PROG} 122 ls -al ${PROG} 123 124.include <bsd.klinks.mk> 125.include <bsd.prog.mk> 126 127${PROG}.coff: ${PROG} 128 ${_MKTARGET_CREATE} 129 ${MIPS_ELF2ECOFF} ${PROG} ${.TARGET}.tmp 130 mv ${.TARGET}.tmp ${.TARGET} 131 132${BOOT_KERNEL}.gz: ${BINKERNEL_O} ${OBJS} ${LIBS} 133 ${_MKTARGET_LINK} 134 ${LD} ${LINKFLAGS} -o ${BOOT_KERNEL}.elf ${OBJS} ${LIBS} \ 135 ${BINKERNEL_O} 136 mv ${BOOT_KERNEL}.elf ${BOOT_KERNEL} 137 ${OBJDUMP} -h ${BOOT_KERNEL} 138 ${TOOL_GZIP_N} -9c ${BOOT_KERNEL} > ${.TARGET}.tmp 139 mv ${.TARGET}.tmp ${.TARGET} 140 ls -al ${.TARGET} 141 142COPTS.ustarfs.c+= -fno-strict-aliasing 143