xref: /netbsd-src/usr.sbin/crash/Makefile (revision 7d3af8c6a2070d16ec6d1aef203d052d6683100d)
1#	$NetBSD: Makefile,v 1.24 2013/03/04 20:10:50 christos 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# some ddb kernel components need limited modifications.  for now,
13# punt if not noted as implemented here.
14.if    ${MACHINE} == "amd64" \
15    || ${MACHINE} == "hp700" \
16    || ${MACHINE} == "i386" \
17    || ${MACHINE} == "sparc64" \
18    || (${MACHINE_ARCH} == "arm" && ${MACHINE} != "acorn26") \
19    || ${MACHINE_ARCH} == "m68k"
20SRCS+=	db_trace.c
21.if ${MACHINE_ARCH} != "m68k"
22SRCS+=	db_machdep.c
23.endif
24REALCRASH=yes
25.else
26REALCRASH=no
27.endif
28
29.if ${REALCRASH} != "no"	# {
30
31S=		${.CURDIR}/../../sys
32
33CPPFLAGS+=	-I${.CURDIR} -I${.OBJDIR} -I${S} -fno-strict-aliasing
34CPPFLAGS+=	-DDDB_VERBOSE_HELP -DDB_MAX_LINE=10000000 -D_KMEMUSER
35CPPFLAGS+=	-UDB_MACHINE_COMMANDS
36
37# ddb files from kernel
38.PATH:	$S/ddb
39SRCS+=	db_command.c db_lwp.c db_proc.c db_xxx.c db_cpu.c
40SRCS+=	db_access.c db_elf.c db_examine.c
41SRCS+=	db_expr.c db_lex.c db_output.c db_print.c
42SRCS+=	db_sym.c db_variables.c db_write_cmd.c
43
44.PATH:	${S}/arch/${MACHINE}/${MACHINE}
45.PATH:	${S}/arch/${MACHINE_ARCH}/${MACHINE_ARCH}
46SRCS+=	db_disasm.c
47
48CPPFLAGS+=	-I${S}/arch
49
50. if    ${MACHINE} == "amd64" \
51     || ${MACHINE} == "i386"
52MACHINE_FAMILY = x86
53. elif  ${MACHINE_ARCH} == "m68k" \
54     || ${MACHINE_ARCH} == "arm"
55MACHINE_FAMILY = ${MACHINE_ARCH}
56. elif    ${MACHINE} == "sparc64" \
57     || ${MACHINE} == "sparc64"
58MACHINE_FAMILY = sparc
59. else
60MACHINE_FAMILY = ${MACHINE}
61. endif
62
63.if ${MACHINE_ARCH} == "arm"
64.PATH:	${S}/arch/arm/arm32
65SRCS+=disassem.c cpufunc_asm.S
66.endif
67
68.PATH:	${S}/arch/${MACHINE_FAMILY}/${MACHINE_FAMILY}
69
70# crash main source
71SRCS+=	crash.c
72
73# arch.c
74.PATH:	${.CURDIR}/arch
75. if (exists(${.CURDIR}/arch/${MACHINE_FAMILY}.c))
76SRCS+=	${MACHINE_FAMILY}.c
77. else
78SRCS+=	generic.c
79. endif
80
81COPTS.db_output.c += -Wno-format-nonliteral
82
83# vers.c
84SRCS+=	vers.c
85vers.c:	${S}/conf/newvers.sh ${_NETBSD_VERSION_DEPENDS}
86	${HOST_SH} ${S}/conf/newvers.sh -r -n
87CLEANFILES+=	vers.c version
88
89.else				# } {
90
91SRCS+=	unsupported.c
92
93.endif				# }
94
95.include <bsd.prog.mk>
96.include <bsd.klinks.mk>
97