1#	$NetBSD: Makefile,v 1.26 2023/08/13 12:16:14 christos Exp $
2
3NOCTF=
4.include <bsd.own.mk>
5.include "../Makefile.inc"
6
7GDBLIBDIR=${.CURDIR}/../../lib
8GDBARCHDIR=${GDBLIBDIR}/libgdb/arch/${GDB_MACHINE_ARCH}
9.include "${GDBARCHDIR}/defs.mk"
10
11PROG=		gdb
12
13SRCS=		gdb.c 
14CPPFLAGS+=	-I${.CURDIR} \
15		-I${GNULIBDIR}/libgnulib/arch/${GDB_MACHINE_ARCH}/gnulib \
16		-I${DIST}/gdb \
17		-I${DIST}/gdbsupport \
18		-I${DIST}/gdb/config \
19		-I${DIST}/gnulib/import \
20		-I${DIST}/include/opcode \
21		-I${DIST}/readline \
22		-I${DIST}/libdecnumber \
23		-I${DIST} \
24		-I${GDBLIBDIR}/libgdbsupport/arch/${GDB_MACHINE_ARCH} \
25		-I${GDBLIBDIR}/libgdbsupport/arch/${GDB_MACHINE_ARCH}/gdbsupport \
26		-I${GDBLIBDIR}/libbfd/arch/${GDB_MACHINE_ARCH} \
27		-I${GDBLIBDIR}/libgnulib/arch/${GDB_MACHINE_ARCH} \
28		-I${GDBLIBDIR}/libgnulib/arch/${GDB_MACHINE_ARCH}/gnulib/import \
29		-I${DIST}/bfd \
30		-I${DIST}/include \
31		${GCPPFLAGS:M-D*}
32
33
34TEXINFO=	gdb.texinfo stabs.texinfo
35INFOFLAGS=	-I${DIST}/gdb/doc -I${DIST}/gdb/mi \
36		-I${DIST}/readline/readline/doc -I${.CURDIR}/.. -DGDBN=${GDBN}
37
38gdb-cfg.texi: ${DIST}/gdb/doc/all-cfg.texi
39	${TOOL_CAT} ${.ALLSRC} > ${.TARGET}
40
41CLEANFILES+= gdb-cfg.texi
42stabs.info gdb.info: gdb-cfg.texi GDBvn.texi
43
44FILES=		netbsd.xml
45FILESDIR=	/usr/share/gdb/syscalls
46
47.include "../../Makefile.inc"
48.include <bsd.info.mk>
49
50PROGDPLIBS+= gdb ${GDBLIBDIR}/libgdb
51# XXX: modula2 won't load otherwise, since nothing brings the m2-objs in.
52LIBGDBDIR!=	cd ${GDBLIBDIR}/libgdb && ${PRINTOBJDIR}
53LDADD+=		${LIBGDBDIR}/m2-lang.o
54
55# Simulator support
56.if ${GDB_MACHINE_ARCH} == powerpc || ${GDB_MACHINE_ARCH} == powerpcle || \
57    ${GDB_MACHINE_ARCH} == powerpc64
58PROGDPLIBS+= sim ${GDBLIBDIR}/libsim
59.elif ${MACHINE_CPU} == xxmips
60PROGDPLIBS+= sim ${GDBLIBDIR}/libsim
61.endif
62
63PROGDPLIBS+= opcodes ${GDBLIBDIR}/libopcodes \
64    bfd ${GDBLIBDIR}/libbfd \
65    decnumber ${GDBLIBDIR}/libdecnumber \
66    gdbsupport ${GDBLIBDIR}/libgdbsupport \
67    backtrace ${GDBLIBDIR}/libbacktrace \
68    sframe ${GDBLIBDIR}/libsframe \
69    ctf ${GDBLIBDIR}/libctf \
70    gnulib ${GDBLIBDIR}/libgnulib \
71    iberty ${GDBLIBDIR}/libiberty
72
73.if ${USE_LIBEDIT} == yes
74LDADD+= -ledit
75DPADD+= ${LIBEDIT}
76.else
77PROGDPLIBS+= readline ${GDBLIBDIR}/libreadline
78.endif
79
80.include <bsd.prog.mk>
81
82LIBGMP!=	cd ${.CURDIR}/../../../../lgpl3/gmp/lib/libgmp && ${PRINTOBJDIR}
83LDADD+= -L${LIBGMP} -lgmp
84DPADD+= ${LIBGMP}/libgmp.a
85
86LDADD+=	-lexpat -llzma -lz -lcurses -lterminfo -lintl -lm -lkvm -lutil -lpthread
87DPADD+=	${LIBEXPAT} ${LIBLZMA} ${LIBZ} ${LIBCURSES} ${LIBTERMINFO} ${LIBINTL} \
88    ${LIBM} ${LIBKVM} ${LIBUTIL} ${LIBPTHREAD}
89
90# Force c++
91CWARNFLAGS.clang+=	-Wno-deprecated
92HOST_CC:=		${HOST_CXX}
93HOST_CFLAGS+=		${HOST_CXXFLAGS}
94CC:=			${CXX}
95CFLAGS:=		${CXXFLAGS} -std=gnu++11 -Wno-error=stack-protector
96
97.PATH: ${DIST}/gdb ${DIST}/gdb/mi ${DIST}/gdb/cli ${DIST}/gdb/tui \
98    ${DIST}/gdb/signals ${DIST}/gdb/syscalls ${DIST}/gdb/doc \
99    ${.CURDIR}/../arch/${GDB_MACHINE_ARCH}
100