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