Makefile revision 1.3
101e04c3fSmrg#	$NetBSD: Makefile,v 1.3 2006/01/08 15:34:18 tsutsui Exp $
201e04c3fSmrg
37117f1b4SmrgNOMAN		=
47117f1b4Smrg
57117f1b4SmrgBINMODE		= 444
67117f1b4Smrg
77117f1b4SmrgS		= ${.CURDIR}/../../../..
87117f1b4SmrgCOMMON		= ${.CURDIR}/../common
97117f1b4Smrg
107117f1b4SmrgLIBSADIR	= ${S}/lib/libsa
117117f1b4SmrgSYSVBFSDIR	= ${S}/fs/sysvbfs
127117f1b4SmrgEWS4800MIPSDIR	= ${.CURDIR}/../../ews4800mips
137117f1b4SmrgDEVDIR		= ${.CURDIR}/../../dev
147117f1b4Smrg
157117f1b4Smrg.PATH:		${COMMON} ${LIBSADIR} ${SYSVBFSDIR}	\
167117f1b4Smrg		${EWS4800MIPSDIR} ${SBDDIR} ${DEVDIR}
177117f1b4Smrg
187117f1b4SmrgCOFFHDRFIX	= ${.OBJDIR}/coffhdrfix
197117f1b4Smrg
20c1f859d4SmrgPROG		= boot
21c1f859d4SmrgBOOT_KERNEL	= boot_kernel
2201e04c3fSmrgFILES		+= ${PROG}.coff ${BOOT_KERNEL}.gz # XXX hack to install these
2301e04c3fSmrgSRCS		= start.S boot.c prompt.c delay.c cmd.c loader.c
247ec681f3SmrgSRCS		+= bfs_subr.o disk.c diskutil.c
257ec681f3SmrgSRCS		+= devopen.c datafs.c bootfs.c ustarfs.c
267ec681f3SmrgSRCS		+= lance.c ether_if.c
277ec681f3SmrgSRCS		+= device_test.c cop0.c mem.c
287ec681f3SmrgSRCS		+= boot_device.c floppy_2d.c floppy_2hd_ibmpc.c
297ec681f3Smrg#SRCS		+= floppy_2hc.c
307ec681f3SmrgSRCS		+= console.c cons_rom.c cons_fb.c cons_zskbd.c cons_zs.c
317ec681f3SmrgBINKERNEL_C	= ${COMMON}/binkernel.c
327ec681f3SmrgBINKERNEL_SIZE	= '2 * 1024 * 1024'
337ec681f3SmrgBINKERNEL_O	= binkernel.o
347ec681f3SmrgBINKERNEL_DUMMY_O= binkernel_dummy.o
357ec681f3Smrg
367ec681f3Smrg# ${S}/lib/libsa
377ec681f3SmrgSRCS		+= dev_net.c
387ec681f3Smrg# ${S}/fs/sysvbfs
397ec681f3SmrgSRCS		+= bfs.c
407ec681f3Smrg# ../../dev
417ec681f3SmrgSRCS		+= ga.c
427ec681f3Smrg# ../../ews4800mips
437ec681f3SmrgSRCS		+= pdinfo.c vtoc.c
447ec681f3Smrg
457ec681f3Smrg.PHONY: vers.c
467ec681f3Smrgvers.c: version
477ec681f3Smrg	${HOST_SH} ${S}/conf/newvers_stand.sh ${.CURDIR}/version ${MACHINE}
487ec681f3Smrg
497ec681f3SmrgSRCS+=	vers.c
507ec681f3SmrgCLEANFILES+= vers.c
517ec681f3Smrg
527ec681f3SmrgTEXTADDR	= 0xa0a00000
537ec681f3SmrgLDFLAGS		= -T ${S}/arch/mips/conf/stand.ldscript -Ttext ${TEXTADDR} \
547ec681f3Smrg		  -e start -N
557ec681f3SmrgCOFFLDFLAGS	= -T ${COMMON}/coffboot.ldscript -N
567ec681f3Smrg
577ec681f3SmrgMIPSFLAGS	= -mips1 -G 0 -mno-abicalls
587ec681f3SmrgDEBUGFLAGS	= -Wall -Werror
597ec681f3SmrgDEBUGFLAGS	+= -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
607ec681f3SmrgDEBUGFLAGS	+= -Wno-format-zero-length -Wno-sign-compare
617ec681f3SmrgOPTFLAGS	= -Os -mmemcpy
627ec681f3SmrgFLAGS		= ${MIPSFLAGS} ${DEBUGFLAGS} ${OPTFLAGS}
637ec681f3SmrgAFLAGS		= -xassembler-with-cpp -D_LOCORE ${FLAGS}
647ec681f3SmrgCFLAGS		= ${FLAGS} -ffreestanding
657ec681f3Smrg
667ec681f3SmrgCPPFLAGS	+= -D_STANDALONE -DSUPPORT_BOOTP
677ec681f3SmrgCPPFLAGS	+= -nostdinc -I${.OBJDIR} -I${.CURDIR} -I${COMMON} -I${S}
687ec681f3SmrgCPPFLAGS	+= -D__daddr_t=int32_t
697ec681f3Smrg#CPPFLAGS	+= -DBOOTP_DEBUG -DNETIF_DEBUG -DETHER_DEBUG -DNFS_DEBUG
707ec681f3Smrg#CPPFLAGS	+= -DRPC_DEBUG -DRARP_DEBUG -DNET_DEBUG -DDEBUG -DPARANOID
717ec681f3Smrg
727ec681f3SmrgCLEANFILES	+= ${BINKERNEL_DUMMY_O} ${BINKERNEL_O}
737ec681f3SmrgCLEANFILES	+= ${PROG} ${PROG}.elf ${PROG}.coff ${PROG}.tmp ${PROG}.dis
747ec681f3SmrgCLEANFILES	+= ${COFFHDRFIX}
757ec681f3SmrgCLEANFILES	+= ${BOOT_KERNEL} ${BOOT_KERNEL}.elf ${BOOT_KERNEL}.tmp
767ec681f3SmrgCLEANFILES	+= ${BOOT_KERNEL}.gz ${BOOT_KERNEL}.gz.tmp
777ec681f3SmrgCLEANFILES	+= machine mips
787ec681f3Smrg
797ec681f3Smrg.include "${S}/lib/libkern/Makefile.inc"
807ec681f3SmrgLIBKERN=	${KERNLIB}
817ec681f3Smrg
827ec681f3Smrg.include "${S}/lib/libz/Makefile.inc"
837ec681f3SmrgLIBZ=		${ZLIB}
847ec681f3Smrg
857ec681f3SmrgSAMISCMAKEFLAGS= SA_USE_CREAD=yes SA_USE_LOADFILE=yes
867ec681f3Smrg.include "${S}/lib/libsa/Makefile.inc"
877ec681f3SmrgLIBSA=		${SALIB}
887ec681f3Smrg
897ec681f3SmrgLIBS		= ${LIBSA} ${LIBZ} ${LIBKERN}
907ec681f3Smrg
917ec681f3Smrg# fixup GNU binutils file offset error.
927ec681f3Smrgcoffhdrfix:	${COMMON}/coffhdrfix.c
937ec681f3Smrg	${HOST_CC} -o ${COFFHDRFIX} ${COMMON}/coffhdrfix.c
947ec681f3Smrg
957ec681f3Smrg.if !make(obj) && !make(clean) && !make(cleandir)
967ec681f3Smrg.BEGIN:
977ec681f3Smrg	@[ -h machine ] || ln -s $S/arch/${MACHINE}/include machine
987ec681f3Smrg	@[ -h mips ] || ln -s $S/arch/mips/include mips
997ec681f3Smrg.NOPATH: machine mips
1007ec681f3Smrg.endif
1017ec681f3Smrg
1027ec681f3Smrgclean cleandir distclean: cleanlibdir
1037ec681f3Smrg
1047ec681f3Smrgcleanlibdir:
1057ec681f3Smrg	-rm -rf lib
1067ec681f3Smrg
1077ec681f3Smrg${BINKERNEL_DUMMY_O}: ${BINKERNEL_C}
1087ec681f3Smrg	${COMPILE.c} -DKERNEL_SIZE=0 ${BINKERNEL_C} -o ${.TARGET}
1097ec681f3Smrg
1107ec681f3Smrg${BINKERNEL_O}: ${BINKERNEL_C}
1117ec681f3Smrg	${COMPILE.c} -DKERNEL_SIZE=${BINKERNEL_SIZE} ${BINKERNEL_C} \
1127ec681f3Smrg	    -o ${.TARGET}
1137ec681f3Smrg
1147ec681f3Smrgall realall: ${PROG}.coff ${BOOT_KERNEL}.gz
1157ec681f3Smrg
1167ec681f3Smrg${PROG}: ${BINKERNEL_DUMMY_O} ${OBJS} ${LIBS}
1177ec681f3Smrg	${LD} ${LDFLAGS} -S -o ${PROG}.elf ${OBJS} ${LIBS} ${BINKERNEL_DUMMY_O}
1187ec681f3Smrg	${OBJDUMP} -h ${PROG}.elf
1197ec681f3Smrg#	${OBJDUMP} -m mips:4000 -d ${PROG}.elf > ${PROG}.dis
1207ec681f3Smrg	mv ${PROG}.elf ${PROG}
1217ec681f3Smrg	ls -al ${PROG}
1227ec681f3Smrg
1237ec681f3Smrg.include <bsd.prog.mk>
1247ec681f3Smrg
1257ec681f3Smrg${PROG}.coff:	${PROG}
1267ec681f3Smrg	${ELF2ECOFF} ${PROG} ${.TARGET}.tmp
1277ec681f3Smrg	mv ${.TARGET}.tmp ${.TARGET}
1287ec681f3Smrg	
1297ec681f3Smrg${BOOT_KERNEL}.gz: ${BINKERNEL_O} ${OBJS} ${LIBS}
1307ec681f3Smrg	${LD} ${LDFLAGS} -o ${BOOT_KERNEL}.elf ${OBJS} ${LIBS} \
1317ec681f3Smrg	    ${BINKERNEL_O}
1327ec681f3Smrg	mv ${BOOT_KERNEL}.elf ${BOOT_KERNEL}
1337ec681f3Smrg	${OBJDUMP} -h ${BOOT_KERNEL}
1347ec681f3Smrg	gzip -9c ${BOOT_KERNEL} > ${.TARGET}.tmp
1357ec681f3Smrg	mv ${.TARGET}.tmp ${.TARGET}
1367ec681f3Smrg	ls -al ${.TARGET}
1377ec681f3Smrg