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