11.54Snat# $NetBSD: Makefile,v 1.54 2025/10/20 14:31:40 nat 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.53Sskrll || ${MACHINE_CPU} == "riscv" \ 211.50Sthorpej || ${MACHINE_ARCH} == "alpha" \ 221.54Snat || ${MACHINE_ARCH:S/m68ksf/m68k/} == "m68k" \ 231.47Sriastrad || ${MACHINE_ARCH} == "powerpc" \ 241.52Sskrll || ${MACHINE_ARCH} == "powerpc64" \ 251.52Sskrll || ${MACHINE} == "amd64" \ 261.52Sskrll || ${MACHINE} == "hppa" \ 271.52Sskrll || ${MACHINE} == "i386" \ 281.52Sskrll || ${MACHINE} == "sparc" \ 291.52Sskrll || ${MACHINE} == "sparc64" 301.17SchristosSRCS+= db_trace.c 311.53Sskrll.if \ 321.53Sskrll ${MACHINE_ARCH} == "alpha" \ 331.53Sskrll || ${MACHINE_CPU} == "riscv" 341.50SthorpejSRCS+= db_interface.c 351.50Sthorpej.elif ${MACHINE_CPU} == "mips" 361.45SmrgSRCS+= db_interface.c mips_stacktrace.c 371.45SmrgCPPFLAGS+= -DDDB 381.54Snat.elif ${MACHINE_ARCH:S/m68ksf/m68k/} != "m68k" \ 391.47Sriastrad && ${MACHINE_ARCH} != "powerpc" \ 401.47Sriastrad && ${MACHINE_ARCH} != "powerpc64" 411.17SchristosSRCS+= db_machdep.c 421.21Schristos.endif 431.10SmrgREALCRASH=yes 441.1Sad.else 451.10SmrgREALCRASH=no 461.10Smrg.endif 471.10Smrg 481.10Smrg.if ${REALCRASH} != "no" # { 491.1Sad 501.7SchristosS= ${.CURDIR}/../../sys 511.1Sad 521.1SadCPPFLAGS+= -I${.CURDIR} -I${.OBJDIR} -I${S} -fno-strict-aliasing 531.1SadCPPFLAGS+= -DDDB_VERBOSE_HELP -DDB_MAX_LINE=10000000 -D_KMEMUSER 541.31SchristosCPPFLAGS+= -UDB_MACHINE_COMMANDS 551.1Sad 561.49Sriastrad# XXX 571.49Sriastrad.if ${MACHINE} == "evbppc" 581.49SriastradCPPFLAGS+= -DPPC_INTR_IMPL="<powerpc/intr.h>" 591.49Sriastrad.endif 601.49Sriastrad 611.1Sad# ddb files from kernel 621.1Sad.PATH: $S/ddb 631.1SadSRCS+= db_command.c db_lwp.c db_proc.c db_xxx.c db_cpu.c 641.39SmlelstvSRCS+= db_autoconf.c 651.1SadSRCS+= db_access.c db_elf.c db_examine.c 661.1SadSRCS+= db_expr.c db_lex.c db_output.c db_print.c 671.49SriastradSRCS+= db_sym.c db_syncobj.c db_variables.c db_write_cmd.c 681.1Sad 691.7Schristos.PATH: ${S}/arch/${MACHINE}/${MACHINE} 701.15Sskrll.PATH: ${S}/arch/${MACHINE_ARCH}/${MACHINE_ARCH} 711.10SmrgSRCS+= db_disasm.c 721.7Schristos 731.28Schristos.PATH: $S/kern 741.28SchristosSRCS+= kern_timeout.c 751.29SchristosCPPFLAGS.kern_timeout.c += -DCRASH -DDDB 761.28Schristos 771.44SrinCPPFLAGS +=-DLOCKDEBUG 781.44SrinSRCS += subr_lockdebug.c 791.44SrinCPPFLAGS.subr_lockdebug.c += -DCRASH -DDDB 801.44Srin 811.17SchristosCPPFLAGS+= -I${S}/arch 821.17Schristos 831.10Smrg. if ${MACHINE} == "amd64" \ 841.10Smrg || ${MACHINE} == "i386" 851.11SchristosMACHINE_FAMILY = x86 861.32Smrg. elif ${MACHINE} == "sparc64" 871.24SchristosMACHINE_FAMILY = sparc 881.11Schristos. else 891.27SskrllMACHINE_FAMILY = ${MACHINE_CPU} 901.10Smrg. endif 911.10Smrg 921.27Sskrll.if ${MACHINE_CPU} == "arm" 931.17Schristos.PATH: ${S}/arch/arm/arm32 941.22SskrllSRCS+=disassem.c cpufunc_asm.S 951.17Schristos.endif 961.41Sjakllsch.if ${MACHINE_CPU} == "aarch64" 971.41SjakllschSRCS+=disasm.c 981.41Sjakllsch.endif 991.1Sad 1001.17Schristos.PATH: ${S}/arch/${MACHINE_FAMILY}/${MACHINE_FAMILY} 1011.16Smlelstv 1021.1Sad# crash main source 1031.1SadSRCS+= crash.c 1041.1Sad 1051.1Sad# arch.c 1061.1Sad.PATH: ${.CURDIR}/arch 1071.11Schristos. if (exists(${.CURDIR}/arch/${MACHINE_FAMILY}.c)) 1081.11SchristosSRCS+= ${MACHINE_FAMILY}.c 1091.7Schristos. else 1101.1SadSRCS+= generic.c 1111.7Schristos. endif 1121.1Sad 1131.13SchristosCOPTS.db_output.c += -Wno-format-nonliteral 1141.13Schristos 1151.40Schristos.if ${MKREPRO} == "yes" 1161.40Schristos. if ${MKREPRO_TIMESTAMP:U0} != 0 1171.40SchristosNVFLAGS+=-r ${MKREPRO_TIMESTAMP} 1181.40Schristos. else 1191.40SchristosNVFLAGS+=-R 1201.40Schristos. endif 1211.40Schristos.endif 1221.40Schristos 1231.1Sad# vers.c 1241.1SadSRCS+= vers.c 1251.23Sapbvers.c: ${S}/conf/newvers.sh ${_NETBSD_VERSION_DEPENDS} 1261.51Schristos TOOL_DATE=${TOOL_DATE} ${HOST_SH} ${S}/conf/newvers.sh ${NVFLAGS} -n -m ${MACHINE} -i CRASH 1271.1SadCLEANFILES+= vers.c version 1281.1Sad 1291.10Smrg.else # } { 1301.10Smrg 1311.10SmrgSRCS+= unsupported.c 1321.10Smrg 1331.10Smrg.endif # } 1341.1Sad 1351.36Schristos.if ${MACHINE} == "sparc" \ 1361.36Schristos || ${MACHINE} == "sparc64" 1371.34SchristosCOPTS.kern_timeout.c += -Wno-stack-protector 1381.36Schristos.endif 1391.34Schristos 1401.33Smrg.include "../../compat/exec.mk" 1411.33Smrg 1421.48SlukemCOPTS.db_command.c+= ${CC_WNO_CAST_FUNCTION_TYPE} 1431.42Smrg 1441.46SmrgCOPTS+= -fcommon 1451.46Smrg 1461.1Sad.include <bsd.prog.mk> 1471.1Sad.include <bsd.klinks.mk> 148