Makefile revision 1.26
11.26Stsutsui#	$NetBSD: Makefile,v 1.26 2025/04/27 04:44:44 tsutsui Exp $
21.1Stsutsui
31.4StsutsuiWARNS		?= 1
41.1StsutsuiNOMAN		=
51.20SchristosNOPIE		=
61.1Stsutsui
71.1StsutsuiBINMODE		= 444
81.1Stsutsui
91.1StsutsuiS		= ${.CURDIR}/../../../..
101.1StsutsuiCOMMON		= ${.CURDIR}/../common
111.1Stsutsui
121.1StsutsuiLIBSADIR	= ${S}/lib/libsa
131.1StsutsuiSYSVBFSDIR	= ${S}/fs/sysvbfs
141.1StsutsuiEWS4800MIPSDIR	= ${.CURDIR}/../../ews4800mips
151.1StsutsuiDEVDIR		= ${.CURDIR}/../../dev
161.1Stsutsui
171.9Stsutsui# XXX SHOULD NOT NEED TO DEFINE THESE!
181.9StsutsuiLIBCRT0=
191.16StsutsuiLIBCRTI=
201.9StsutsuiLIBC=
211.9StsutsuiLIBCRTBEGIN=
221.9StsutsuiLIBCRTEND=
231.9Stsutsui
241.1Stsutsui.PATH:		${COMMON} ${LIBSADIR} ${SYSVBFSDIR}	\
251.1Stsutsui		${EWS4800MIPSDIR} ${SBDDIR} ${DEVDIR}
261.1Stsutsui
271.1StsutsuiCOFFHDRFIX	= ${.OBJDIR}/coffhdrfix
281.1Stsutsui
291.1StsutsuiPROG		= boot
301.1StsutsuiBOOT_KERNEL	= boot_kernel
311.3StsutsuiFILES		+= ${PROG}.coff ${BOOT_KERNEL}.gz # XXX hack to install these
321.1StsutsuiSRCS		= start.S boot.c prompt.c delay.c cmd.c loader.c
331.1StsutsuiSRCS		+= bfs_subr.o disk.c diskutil.c
341.1StsutsuiSRCS		+= devopen.c datafs.c bootfs.c ustarfs.c
351.1StsutsuiSRCS		+= lance.c ether_if.c
361.1StsutsuiSRCS		+= device_test.c cop0.c mem.c
371.1StsutsuiSRCS		+= boot_device.c floppy_2d.c floppy_2hd_ibmpc.c
381.1Stsutsui#SRCS		+= floppy_2hc.c
391.1StsutsuiSRCS		+= console.c cons_rom.c cons_fb.c cons_zskbd.c cons_zs.c
401.1StsutsuiBINKERNEL_C	= ${COMMON}/binkernel.c
411.24SchristosBINKERNEL_SIZE	= 2143232	# '2 * 1024 * 1024 + 45 * 1024'
421.1StsutsuiBINKERNEL_O	= binkernel.o
431.1StsutsuiBINKERNEL_DUMMY_O= binkernel_dummy.o
441.1Stsutsui
451.1Stsutsui# ${S}/lib/libsa
461.1StsutsuiSRCS		+= dev_net.c
471.1Stsutsui# ${S}/fs/sysvbfs
481.1StsutsuiSRCS		+= bfs.c
491.1Stsutsui# ../../dev
501.1StsutsuiSRCS		+= ga.c
511.1Stsutsui# ../../ews4800mips
521.1StsutsuiSRCS		+= pdinfo.c vtoc.c
531.1Stsutsui
541.22Schristos.include "${S}/conf/newvers_stand.mk"
551.1Stsutsui
561.1StsutsuiTEXTADDR	= 0xa0a00000
571.5SlukemLINKFLAGS	= -T ${S}/arch/mips/conf/stand.ldscript -Ttext ${TEXTADDR} \
581.1Stsutsui		  -e start -N
591.1StsutsuiCOFFLDFLAGS	= -T ${COMMON}/coffboot.ldscript -N
601.1Stsutsui
611.1StsutsuiMIPSFLAGS	= -mips1 -G 0 -mno-abicalls
621.1StsutsuiDEBUGFLAGS	= -Wall -Werror
631.1StsutsuiDEBUGFLAGS	+= -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
641.1StsutsuiDEBUGFLAGS	+= -Wno-format-zero-length -Wno-sign-compare
651.25StsutsuiOPTFLAGS	= -Os -mmemcpy -fno-unwind-tables
661.1StsutsuiFLAGS		= ${MIPSFLAGS} ${DEBUGFLAGS} ${OPTFLAGS}
671.1StsutsuiAFLAGS		= -xassembler-with-cpp -D_LOCORE ${FLAGS}
681.1StsutsuiCFLAGS		= ${FLAGS} -ffreestanding
691.1Stsutsui
701.1StsutsuiCPPFLAGS	+= -D_STANDALONE -DSUPPORT_BOOTP
711.1StsutsuiCPPFLAGS	+= -nostdinc -I${.OBJDIR} -I${.CURDIR} -I${COMMON} -I${S}
721.1StsutsuiCPPFLAGS	+= -D__daddr_t=int32_t
731.2Stsutsui#CPPFLAGS	+= -DBOOTP_DEBUG -DNETIF_DEBUG -DETHER_DEBUG -DNFS_DEBUG
741.2Stsutsui#CPPFLAGS	+= -DRPC_DEBUG -DRARP_DEBUG -DNET_DEBUG -DDEBUG -DPARANOID
751.1Stsutsui
761.1StsutsuiCLEANFILES	+= ${BINKERNEL_DUMMY_O} ${BINKERNEL_O}
771.3StsutsuiCLEANFILES	+= ${PROG} ${PROG}.elf ${PROG}.coff ${PROG}.tmp ${PROG}.dis
781.1StsutsuiCLEANFILES	+= ${COFFHDRFIX}
791.3StsutsuiCLEANFILES	+= ${BOOT_KERNEL} ${BOOT_KERNEL}.elf ${BOOT_KERNEL}.tmp
801.1StsutsuiCLEANFILES	+= ${BOOT_KERNEL}.gz ${BOOT_KERNEL}.gz.tmp
811.1Stsutsui
821.1Stsutsui.include "${S}/lib/libkern/Makefile.inc"
831.1StsutsuiLIBKERN=	${KERNLIB}
841.1Stsutsui
851.1Stsutsui.include "${S}/lib/libz/Makefile.inc"
861.1StsutsuiLIBZ=		${ZLIB}
871.1Stsutsui
881.15StsutsuiCPPFLAGS+= -DLIBSA_ENABLE_LS_OP
891.15StsutsuiSAMISCMAKEFLAGS= SA_USE_CREAD=yes SA_USE_LOADFILE=yes SA_ENABLE_LS_OP=yes
901.1Stsutsui.include "${S}/lib/libsa/Makefile.inc"
911.1StsutsuiLIBSA=		${SALIB}
921.1Stsutsui
931.1StsutsuiLIBS		= ${LIBSA} ${LIBZ} ${LIBKERN}
941.1Stsutsui
951.1Stsutsui# fixup GNU binutils file offset error.
961.1Stsutsuicoffhdrfix:	${COMMON}/coffhdrfix.c
971.1Stsutsui	${HOST_CC} -o ${COFFHDRFIX} ${COMMON}/coffhdrfix.c
981.1Stsutsui
991.18Stsutsuicleandir distclean: .WAIT cleanlibdir
1001.1Stsutsui
1011.1Stsutsuicleanlibdir:
1021.1Stsutsui	-rm -rf lib
1031.1Stsutsui
1041.1Stsutsui${BINKERNEL_DUMMY_O}: ${BINKERNEL_C}
1051.6Slukem	${_MKTARGET_COMPILE}
1061.1Stsutsui	${COMPILE.c} -DKERNEL_SIZE=0 ${BINKERNEL_C} -o ${.TARGET}
1071.1Stsutsui
1081.1Stsutsui${BINKERNEL_O}: ${BINKERNEL_C}
1091.6Slukem	${_MKTARGET_COMPILE}
1101.2Stsutsui	${COMPILE.c} -DKERNEL_SIZE=${BINKERNEL_SIZE} ${BINKERNEL_C} \
1111.2Stsutsui	    -o ${.TARGET}
1121.1Stsutsui
1131.3Stsutsuiall realall: ${PROG}.coff ${BOOT_KERNEL}.gz
1141.1Stsutsui
1151.1Stsutsui${PROG}: ${BINKERNEL_DUMMY_O} ${OBJS} ${LIBS}
1161.6Slukem	${_MKTARGET_LINK}
1171.5Slukem	${LD} ${LINKFLAGS} -S -o ${PROG}.elf ${OBJS} ${LIBS} \
1181.5Slukem	    ${BINKERNEL_DUMMY_O}
1191.1Stsutsui	${OBJDUMP} -h ${PROG}.elf
1201.3Stsutsui#	${OBJDUMP} -m mips:4000 -d ${PROG}.elf > ${PROG}.dis
1211.1Stsutsui	mv ${PROG}.elf ${PROG}
1221.1Stsutsui	ls -al ${PROG}
1231.1Stsutsui
1241.9Stsutsui.include <bsd.klinks.mk>
1251.2Stsutsui.include <bsd.prog.mk>
1261.2Stsutsui
1271.3Stsutsui${PROG}.coff:	${PROG}
1281.6Slukem	${_MKTARGET_CREATE}
1291.23Schristos	${MIPS_ELF2ECOFF} ${PROG} ${.TARGET}.tmp
1301.3Stsutsui	mv ${.TARGET}.tmp ${.TARGET}
1311.26Stsutsui
1321.3Stsutsui${BOOT_KERNEL}.gz: ${BINKERNEL_O} ${OBJS} ${LIBS}
1331.6Slukem	${_MKTARGET_LINK}
1341.5Slukem	${LD} ${LINKFLAGS} -o ${BOOT_KERNEL}.elf ${OBJS} ${LIBS} \
1351.1Stsutsui	    ${BINKERNEL_O}
1361.3Stsutsui	mv ${BOOT_KERNEL}.elf ${BOOT_KERNEL}
1371.3Stsutsui	${OBJDUMP} -h ${BOOT_KERNEL}
1381.19Sapb	${TOOL_GZIP_N} -9c ${BOOT_KERNEL} > ${.TARGET}.tmp
1391.1Stsutsui	mv ${.TARGET}.tmp ${.TARGET}
1401.3Stsutsui	ls -al ${.TARGET}
1411.13Smrg
1421.13SmrgCOPTS.ustarfs.c+=	-fno-strict-aliasing
143