11.11Sriastrad# $NetBSD: Makefile,v 1.11 2024/11/23 13:41:01 riastradh Exp $
21.1Schristos
31.1Schristos.include <bsd.own.mk>
41.1Schristos
51.3SmattLIBEXECINFO_MACHINE_ARCH?= ${MACHINE_ARCH}
61.1SchristosUSE_UNWIND=yes
71.1SchristosWARNS?=4
81.1SchristosINCSDIR=/usr/include
91.8SjoergINCS=execinfo.h
101.8Sjoerg
111.1Schristos#CPPFLAGS+='-D__RCSID(a)=' -D_GNU_SOURCE '-D__printflike(a,b)='
121.1Schristos#CPPFLAGS+=-I/usr/include/libelf
131.1Schristos#COPTS+=-std=gnu99
141.1Schristos
151.5SchristosLIBDPLIBS+= elf	${NETBSDSRCDIR}/external/bsd/elftoolchain/lib/libelf
161.1Schristos
171.1SchristosLIB=execinfo
181.1SchristosSRCS=symtab.c backtrace.c
191.1SchristosMAN= backtrace.3
201.1Schristos
211.1Schristos.if ${USE_UNWIND} == "yes"
221.1SchristosSRCS+=unwind.c
231.4Smatt.if !empty(LIBEXECINFO_MACHINE_ARCH:Mearm*)
241.2SmattSRCS+=unwind_arm_ehabi_stub.c
251.2Smatt.endif
261.1Schristos.else
271.1SchristosSRCS+=builtin.c
281.1Schristos.endif
291.1Schristos
301.11SriastradEXPSYM_SRCS+=	execinfo.common.expsym
311.11Sriastrad
321.10Sskrll.if exists(${.CURDIR}/symbol_${LIBEXECINFO_MACHINE_ARCH}.c)
331.10SskrllSRCS+=symbol_${LIBEXECINFO_MACHINE_ARCH}.c
341.11SriastradEXPSYM_SRCS+=	execinfo.${LIBEXECINFO_MACHINE_ARCH}.expsym
351.10Sskrll.endif
361.10Sskrll
371.11SriastradLIB_EXPSYM=	execinfo.expsym
381.11Sriastradexecinfo.expsym: ${EXPSYM_SRCS}
391.11Sriastrad	${_MKTARGET_CREATE}
401.11Sriastrad	LC_ALL=C sort -m ${.ALLSRC} >${.TARGET}.tmp && \
411.11Sriastrad	${MV} ${.TARGET}.tmp ${.TARGET}
421.11SriastradCLEANFILES+=	execinfo.expsym execinfo.expsym.tmp
431.11Sriastrad
441.1SchristosMLINKS+= backtrace.3 backtrace_symbols.3
451.1SchristosMLINKS+= backtrace.3 backtrace_symbols_fmt.3
461.1SchristosMLINKS+= backtrace.3 backtrace_symbols_fd.3
471.1SchristosMLINKS+= backtrace.3 backtrace_symbols_fd_fmt.3
481.1Schristos
491.1Schristos.include <bsd.lib.mk>
50