1#	$NetBSD: Makefile,v 1.10 2023/03/21 16:54:43 christos Exp $
2
3NOCTF=
4.include <bsd.own.mk>
5.include "../Makefile.inc"
6
7GDBARCHDIR=${.CURDIR}/../../lib/libgdb/arch/${GDB_MACHINE_ARCH}
8.include "${GDBARCHDIR}/defs.mk"
9
10PROG=		gdb
11
12SRCS=		gdb.c
13CPPFLAGS+=	-I${.CURDIR} \
14		-I${.CURDIR}/../../lib/libgnulib/arch/${GDB_MACHINE_ARCH}/gnulib \
15		-I${DIST}/gdb \
16		-I${DIST}/gdbsupport \
17		-I${DIST}/gdb/config \
18		-I${DIST}/gnulib/import \
19		-I${DIST}/include/opcode \
20		-I${DIST}/readline \
21		-I${DIST}/libdecnumber \
22		-I${DIST} \
23		-I${.CURDIR}/../../lib/libbfd/arch/${GDB_MACHINE_ARCH} \
24		-I${.CURDIR}/../../lib/libgdbsupport/arch/${GDB_MACHINE_ARCH} \
25		-I${.CURDIR}/../../lib/libgnulib/arch/${GDB_MACHINE_ARCH} \
26		-I${.CURDIR}/../../lib/libgnulib/arch/${GDB_MACHINE_ARCH}/gnulib/import \
27		-I${DIST}/bfd \
28		-I${DIST}/include \
29		${GCPPFLAGS:M-D*}
30
31TEXINFO=	gdb.texinfo stabs.texinfo
32INFOFLAGS=	-I${DIST}/gdb/doc -I${DIST}/gdb/mi \
33		-I${DIST}/readline/readline/doc -I${.CURDIR}/.. -DGDBN=${GDBN}
34
35GDBvn.texi: ${DIST}/gdb/version.in
36	echo "@set GDBVN $$(${TOOL_CAT} ${.ALLSRC})" > ${.TARGET}
37
38gdb-cfg.texi: ${DIST}/gdb/doc/all-cfg.texi
39	${TOOL_CAT} ${.ALLSRC} > ${.TARGET}
40
41CLEANFILES+= GDBvn.texi 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
50LIBCTFDIR!=	     cd ${.CURDIR}/../../lib/libctf	   && ${PRINTOBJDIR}
51LIBGNULIBDIR!=	     cd ${.CURDIR}/../../lib/libgnulib	   && ${PRINTOBJDIR}
52LIBGDBSUPPORTDIR!=   cd ${.CURDIR}/../../lib/libgdbsupport && ${PRINTOBJDIR}
53LIBOPCODESDIR!=	     cd ${.CURDIR}/../../lib/libopcodes	   && ${PRINTOBJDIR}
54LIBBFDDIR!=	     cd ${.CURDIR}/../../lib/libbfd	   && ${PRINTOBJDIR}
55LIBIBERTYDIR!=	     cd ${.CURDIR}/../../lib/libiberty	   && ${PRINTOBJDIR}
56LIBGDBDIR!=	     cd ${.CURDIR}/../../lib/libgdb	   && ${PRINTOBJDIR}
57LIBDECNUMBERDIR!=    cd ${.CURDIR}/../../lib/libdecnumber  && ${PRINTOBJDIR}
58
59.if ${USE_LIBEDIT} == yes
60LIBRL=-ledit
61LIBRLDP=${LIBEDIT}
62.else
63LIBRLDIR!=  cd ${.CURDIR}/../../lib/libreadline && ${PRINTOBJDIR}
64LIBRL=      -L${LIBRLDIR} -lreadline
65LIBRLDP=    ${LIBRLDIR}/libreadline.a
66.endif
67
68LDADD+= -L${LIBGDBDIR} -lgdb
69DPADD+= ${LIBGDBDIR}/libgdb.a
70
71# Simulator support
72.if ${GDB_MACHINE_ARCH} == powerpc || ${GDB_MACHINE_ARCH} == powerpcle || \
73    ${GDB_MACHINE_ARCH} == powerpc64
74SIMOBJ!=	cd ${.CURDIR}/../../lib/libsim && ${PRINTOBJDIR}
75LDADD+=		-L${SIMOBJ} -lsim
76DPADD+=		${SIMOBJ}/libsim.a
77.elif ${MACHINE_CPU} == xxmips
78SIMOBJ!=	cd ${.CURDIR}/../../lib/libsim && ${PRINTOBJDIR}
79LDADD+=		-L${SIMOBJ} -lsim
80DPADD+=		${SIMOBJ}/libsim.a
81.endif
82
83LDADD+= -L${LIBOPCODESDIR} -lopcodes \
84	-L${LIBBFDDIR} -lbfd \
85	-L${LIBDECNUMBERDIR} -ldecnumber \
86	-L${LIBGDBSUPPORTDIR} -lgdbsupport \
87	-L${LIBCTFDIR} -lctf \
88	-L${LIBGNULIBDIR} -lgnulib \
89	${LIBRL} \
90	-lterminfo \
91	-L${LIBIBERTYDIR} -liberty
92
93DPADD+=	${LIBOPCODESDIR}/libopcodes.a \
94	${LIBBFDDIR}/libbfd.a \
95	${LIBDECNUMBERDIR}/libdecnumber.a \
96	${LIBGDBSUPPORTDIR}/libgdbsupport.a \
97	${LIBCTFDIR}/libctf.a \
98	${LIBGNULIBDIR}/libgnulib.a \
99	${LIBRLDP} \
100	${LIBTERMINFO} \
101	${LIBIBERTYDIR}/libiberty.a
102
103LDADD+=		-lexpat -llzma -lz -lcurses -lintl -lm -lkvm -lutil -lpthread
104DPADD+=		${LIBEXPAT} ${LIBLZMA} ${LIBZ} ${LIBCURSES} ${LIBINTL} ${LIBM} ${LIBKVM} ${LIBUTIL} ${LIBPTHREAD}
105
106.include <bsd.prog.mk>
107
108# Force c++
109CWARNFLAGS.clang+=	-Wno-deprecated
110HOST_CC:=		${HOST_CXX}
111HOST_CFLAGS+=		${HOST_CXXFLAGS}
112CC:=			${CXX}
113CFLAGS:=		${CXXFLAGS} -std=gnu++11 -Wno-error=stack-protector
114
115.PATH: ${DIST}/gdb ${DIST}/gdb/mi ${DIST}/gdb/cli ${DIST}/gdb/tui \
116    ${DIST}/gdb/signals ${DIST}/gdb/syscalls ${DIST}/gdb/doc \
117    ${.CURDIR}/../arch/${GDB_MACHINE_ARCH}
118