Makefile revision 1.52
11.52Sskrll#	$NetBSD: Makefile,v 1.52 2024/11/19 18:15:29 skrll Exp $
21.1Sad
31.7SchristosPROG=		crash
41.7SchristosMAN=		crash.8
51.3SchristosRUMPKERNEL=	yes	# XXX: Avoid -mcmodel=kernel
61.1Sad
71.12SjoergCWARNFLAGS.clang+=	-Wno-format
81.12Sjoerg
91.14SskrllLDADD+=	-lutil -lkvm -ledit -lterminfo
101.7SchristosDPADD+=	${LIBUTIL} ${LIBKVM} ${LIBEDIT} ${LIBTERMINFO}
111.1Sad
121.27Sskrll.include <bsd.own.mk>
131.27Sskrll
141.1Sad# some ddb kernel components need limited modifications.  for now,
151.1Sad# punt if not noted as implemented here.
161.52Sskrll.if \
171.52Sskrll       ${MACHINE_CPU} == "aarch64" \
181.38Sskrll    || ${MACHINE_CPU} == "arm" \
191.45Smrg    || ${MACHINE_CPU} == "mips" \
201.50Sthorpej    || ${MACHINE_ARCH} == "alpha" \
211.47Sriastrad    || ${MACHINE_ARCH} == "m68k" \
221.47Sriastrad    || ${MACHINE_ARCH} == "powerpc" \
231.52Sskrll    || ${MACHINE_ARCH} == "powerpc64" \
241.52Sskrll    || ${MACHINE} == "amd64" \
251.52Sskrll    || ${MACHINE} == "hppa" \
261.52Sskrll    || ${MACHINE} == "i386" \
271.52Sskrll    || ${MACHINE} == "sparc" \
281.52Sskrll    || ${MACHINE} == "sparc64"
291.17SchristosSRCS+=	db_trace.c
301.50Sthorpej.if ${MACHINE_ARCH} == "alpha"
311.50SthorpejSRCS+=	db_interface.c
321.50Sthorpej.elif ${MACHINE_CPU} == "mips"
331.45SmrgSRCS+=	db_interface.c mips_stacktrace.c
341.45SmrgCPPFLAGS+=	-DDDB
351.47Sriastrad.elif ${MACHINE_ARCH} != "m68k" \
361.47Sriastrad   && ${MACHINE_ARCH} != "powerpc" \
371.47Sriastrad   && ${MACHINE_ARCH} != "powerpc64"
381.17SchristosSRCS+=	db_machdep.c
391.21Schristos.endif
401.10SmrgREALCRASH=yes
411.1Sad.else
421.10SmrgREALCRASH=no
431.10Smrg.endif
441.10Smrg
451.10Smrg.if ${REALCRASH} != "no"	# {
461.1Sad
471.7SchristosS=		${.CURDIR}/../../sys
481.1Sad
491.1SadCPPFLAGS+=	-I${.CURDIR} -I${.OBJDIR} -I${S} -fno-strict-aliasing
501.1SadCPPFLAGS+=	-DDDB_VERBOSE_HELP -DDB_MAX_LINE=10000000 -D_KMEMUSER
511.31SchristosCPPFLAGS+=	-UDB_MACHINE_COMMANDS
521.1Sad
531.49Sriastrad# XXX
541.49Sriastrad.if ${MACHINE} == "evbppc"
551.49SriastradCPPFLAGS+=	-DPPC_INTR_IMPL="<powerpc/intr.h>"
561.49Sriastrad.endif
571.49Sriastrad
581.1Sad# ddb files from kernel
591.1Sad.PATH:	$S/ddb
601.1SadSRCS+=	db_command.c db_lwp.c db_proc.c db_xxx.c db_cpu.c
611.39SmlelstvSRCS+=  db_autoconf.c
621.1SadSRCS+=	db_access.c db_elf.c db_examine.c
631.1SadSRCS+=	db_expr.c db_lex.c db_output.c db_print.c
641.49SriastradSRCS+=	db_sym.c db_syncobj.c db_variables.c db_write_cmd.c
651.1Sad
661.7Schristos.PATH:	${S}/arch/${MACHINE}/${MACHINE}
671.15Sskrll.PATH:	${S}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
681.10SmrgSRCS+=	db_disasm.c
691.7Schristos
701.28Schristos.PATH:  $S/kern
711.28SchristosSRCS+=	kern_timeout.c
721.29SchristosCPPFLAGS.kern_timeout.c += -DCRASH -DDDB
731.28Schristos
741.44SrinCPPFLAGS +=-DLOCKDEBUG
751.44SrinSRCS += subr_lockdebug.c
761.44SrinCPPFLAGS.subr_lockdebug.c += -DCRASH -DDDB
771.44Srin
781.17SchristosCPPFLAGS+=	-I${S}/arch
791.17Schristos
801.10Smrg. if    ${MACHINE} == "amd64" \
811.10Smrg     || ${MACHINE} == "i386"
821.11SchristosMACHINE_FAMILY = x86
831.32Smrg. elif  ${MACHINE} == "sparc64"
841.24SchristosMACHINE_FAMILY = sparc
851.11Schristos. else
861.27SskrllMACHINE_FAMILY = ${MACHINE_CPU}
871.10Smrg. endif
881.10Smrg
891.27Sskrll.if ${MACHINE_CPU} == "arm"
901.17Schristos.PATH:	${S}/arch/arm/arm32
911.22SskrllSRCS+=disassem.c cpufunc_asm.S
921.17Schristos.endif
931.41Sjakllsch.if ${MACHINE_CPU} == "aarch64"
941.41SjakllschSRCS+=disasm.c
951.41Sjakllsch.endif
961.1Sad
971.17Schristos.PATH:	${S}/arch/${MACHINE_FAMILY}/${MACHINE_FAMILY}
981.16Smlelstv
991.1Sad# crash main source
1001.1SadSRCS+=	crash.c
1011.1Sad
1021.1Sad# arch.c
1031.1Sad.PATH:	${.CURDIR}/arch
1041.11Schristos. if (exists(${.CURDIR}/arch/${MACHINE_FAMILY}.c))
1051.11SchristosSRCS+=	${MACHINE_FAMILY}.c
1061.7Schristos. else
1071.1SadSRCS+=	generic.c
1081.7Schristos. endif
1091.1Sad
1101.13SchristosCOPTS.db_output.c += -Wno-format-nonliteral
1111.13Schristos
1121.40Schristos.if ${MKREPRO} == "yes"
1131.40Schristos.       if ${MKREPRO_TIMESTAMP:U0} != 0
1141.40SchristosNVFLAGS+=-r ${MKREPRO_TIMESTAMP}
1151.40Schristos.       else
1161.40SchristosNVFLAGS+=-R
1171.40Schristos.       endif
1181.40Schristos.endif
1191.40Schristos
1201.1Sad# vers.c
1211.1SadSRCS+=	vers.c
1221.23Sapbvers.c:	${S}/conf/newvers.sh ${_NETBSD_VERSION_DEPENDS}
1231.51Schristos	TOOL_DATE=${TOOL_DATE} ${HOST_SH} ${S}/conf/newvers.sh ${NVFLAGS} -n -m ${MACHINE} -i CRASH
1241.1SadCLEANFILES+=	vers.c version
1251.1Sad
1261.10Smrg.else				# } {
1271.10Smrg
1281.10SmrgSRCS+=	unsupported.c
1291.10Smrg
1301.10Smrg.endif				# }
1311.1Sad
1321.36Schristos.if  ${MACHINE} == "sparc" \
1331.36Schristos    || ${MACHINE} == "sparc64"
1341.34SchristosCOPTS.kern_timeout.c += -Wno-stack-protector
1351.36Schristos.endif
1361.34Schristos
1371.33Smrg.include "../../compat/exec.mk"
1381.33Smrg
1391.48SlukemCOPTS.db_command.c+=	${CC_WNO_CAST_FUNCTION_TYPE}
1401.42Smrg
1411.46SmrgCOPTS+=		-fcommon
1421.46Smrg
1431.1Sad.include <bsd.prog.mk>
1441.1Sad.include <bsd.klinks.mk>
145