Makefile revision 1.50
1#	$NetBSD: Makefile,v 1.50 2023/11/22 02:01:07 thorpej Exp $
2
3PROG=		crash
4MAN=		crash.8
5RUMPKERNEL=	yes	# XXX: Avoid -mcmodel=kernel
6
7CWARNFLAGS.clang+=	-Wno-format
8
9LDADD+=	-lutil -lkvm -ledit -lterminfo
10DPADD+=	${LIBUTIL} ${LIBKVM} ${LIBEDIT} ${LIBTERMINFO}
11
12.include <bsd.own.mk>
13
14# some ddb kernel components need limited modifications.  for now,
15# punt if not noted as implemented here.
16.if    ${MACHINE} == "amd64" \
17    || ${MACHINE} == "hppa" \
18    || ${MACHINE} == "i386" \
19    || ${MACHINE} == "sparc" \
20    || ${MACHINE} == "sparc64" \
21    || ${MACHINE_CPU} == "arm" \
22    || ${MACHINE_CPU} == "aarch64" \
23    || ${MACHINE_CPU} == "mips" \
24    || ${MACHINE_ARCH} == "alpha" \
25    || ${MACHINE_ARCH} == "m68k" \
26    || ${MACHINE_ARCH} == "powerpc" \
27    || ${MACHINE_ARCH} == "powerpc64"
28SRCS+=	db_trace.c
29.if ${MACHINE_ARCH} == "alpha"
30SRCS+=	db_interface.c
31.elif ${MACHINE_CPU} == "mips"
32SRCS+=	db_interface.c mips_stacktrace.c
33CPPFLAGS+=	-DDDB
34.elif ${MACHINE_ARCH} != "m68k" \
35   && ${MACHINE_ARCH} != "powerpc" \
36   && ${MACHINE_ARCH} != "powerpc64"
37SRCS+=	db_machdep.c
38.endif
39REALCRASH=yes
40.else
41REALCRASH=no
42.endif
43
44.if ${REALCRASH} != "no"	# {
45
46S=		${.CURDIR}/../../sys
47
48CPPFLAGS+=	-I${.CURDIR} -I${.OBJDIR} -I${S} -fno-strict-aliasing
49CPPFLAGS+=	-DDDB_VERBOSE_HELP -DDB_MAX_LINE=10000000 -D_KMEMUSER
50CPPFLAGS+=	-UDB_MACHINE_COMMANDS
51
52# XXX
53.if ${MACHINE} == "evbppc"
54CPPFLAGS+=	-DPPC_INTR_IMPL="<powerpc/intr.h>"
55.endif
56
57# ddb files from kernel
58.PATH:	$S/ddb
59SRCS+=	db_command.c db_lwp.c db_proc.c db_xxx.c db_cpu.c
60SRCS+=  db_autoconf.c
61SRCS+=	db_access.c db_elf.c db_examine.c
62SRCS+=	db_expr.c db_lex.c db_output.c db_print.c
63SRCS+=	db_sym.c db_syncobj.c db_variables.c db_write_cmd.c
64
65.PATH:	${S}/arch/${MACHINE}/${MACHINE}
66.PATH:	${S}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
67SRCS+=	db_disasm.c
68
69.PATH:  $S/kern
70SRCS+=	kern_timeout.c
71CPPFLAGS.kern_timeout.c += -DCRASH -DDDB
72
73CPPFLAGS +=-DLOCKDEBUG
74SRCS += subr_lockdebug.c
75CPPFLAGS.subr_lockdebug.c += -DCRASH -DDDB
76
77CPPFLAGS+=	-I${S}/arch
78
79. if    ${MACHINE} == "amd64" \
80     || ${MACHINE} == "i386"
81MACHINE_FAMILY = x86
82. elif  ${MACHINE} == "sparc64"
83MACHINE_FAMILY = sparc
84. else
85MACHINE_FAMILY = ${MACHINE_CPU}
86. endif
87
88.if ${MACHINE_CPU} == "arm"
89.PATH:	${S}/arch/arm/arm32
90SRCS+=disassem.c cpufunc_asm.S
91.endif
92.if ${MACHINE_CPU} == "aarch64"
93SRCS+=disasm.c
94.endif
95
96.PATH:	${S}/arch/${MACHINE_FAMILY}/${MACHINE_FAMILY}
97
98# crash main source
99SRCS+=	crash.c
100
101# arch.c
102.PATH:	${.CURDIR}/arch
103. if (exists(${.CURDIR}/arch/${MACHINE_FAMILY}.c))
104SRCS+=	${MACHINE_FAMILY}.c
105. else
106SRCS+=	generic.c
107. endif
108
109COPTS.db_output.c += -Wno-format-nonliteral
110
111.if ${MKREPRO} == "yes"
112.       if ${MKREPRO_TIMESTAMP:U0} != 0
113NVFLAGS+=-r ${MKREPRO_TIMESTAMP}
114.       else
115NVFLAGS+=-R
116.       endif
117.endif
118
119# vers.c
120SRCS+=	vers.c
121vers.c:	${S}/conf/newvers.sh ${_NETBSD_VERSION_DEPENDS}
122	${HOST_SH} ${S}/conf/newvers.sh ${NVFLAGS} -n -m ${MACHINE} -i CRASH
123CLEANFILES+=	vers.c version
124
125.else				# } {
126
127SRCS+=	unsupported.c
128
129.endif				# }
130
131.if  ${MACHINE} == "sparc" \
132    || ${MACHINE} == "sparc64"
133COPTS.kern_timeout.c += -Wno-stack-protector
134.endif
135
136.include "../../compat/exec.mk"
137
138COPTS.db_command.c+=	${CC_WNO_CAST_FUNCTION_TYPE}
139
140COPTS+=		-fcommon
141
142.include <bsd.prog.mk>
143.include <bsd.klinks.mk>
144