summaryrefslogtreecommitdiffstats
path: root/usr.bin/truss/Makefile
blob: e78436513c6cfb1b2f0ad268da33644b6d39f16a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# $FreeBSD$

NO_WERROR=
PROG=	truss
SRCS=	cloudabi.c ioctl.c main.c setup.c syscalls.c

.PATH:	${.CURDIR:H}/kdump
SRCS+=	utrace.c

CFLAGS+= -I${.CURDIR} -I. -I${.CURDIR}/../../sys
CLEANFILES= ioctl.c

ioctl.c: ${.CURDIR}/../kdump/mkioctls
	env MACHINE=${MACHINE} CPP="${CPP}" \
		/bin/sh ${.CURDIR}/../kdump/mkioctls return ${DESTDIR}${INCLUDEDIR} > ${.TARGET}

# Define where to generate syscalls for each ABI.
ABI_SYSPATH.freebsd=		sys/kern
ABI_SYSPATH.freebsd32=		sys/compat/freebsd32
ABI_SYSPATH.cloudabi64=		sys/compat/cloudabi64
ABI_SYSPATH.i386-linux=		sys/i386/linux
ABI_SYSPATH.amd64-linux32=	sys/amd64/linux32

ABIS+=		freebsd
# Each ABI is expected to have an ABI.c, MACHINE_ARCH-ABI.c or
# MACHINE_CPUARCH-ABI.c file that will be used to map the syscall arguments.
.if ${MACHINE_ARCH} == "aarch64"
ABIS+=		cloudabi64
.endif
.if ${MACHINE_CPUARCH} == "i386"
ABIS+=		i386-linux
.endif
.if ${MACHINE_CPUARCH} == "amd64"
ABIS+=		amd64-linux32
ABIS+=		freebsd32
ABIS+=		cloudabi64
.endif
.if ${MACHINE_ARCH} == "powerpc64"
ABIS+=		freebsd32
.endif

.for abi in ${ABIS}
# Find the right file to handle this ABI.
abi_src=
ABI_SRCS=	${abi}.c ${MACHINE_ARCH}-${abi}.c ${MACHINE_CPUARCH}-${abi}.c
.for f in ${ABI_SRCS}
.if exists(${.CURDIR}/${f}) && empty(abi_src)
abi_src=	${f}
.endif
.endfor
SRCS:=		${SRCS} ${abi_src} ${abi}_syscalls.h
CLEANFILES+=	${abi}_syscalls.conf ${abi}_syscalls.master ${abi}_syscalls.h
${abi}_syscalls.conf: ${.CURDIR}/makesyscallsconf.sh
	/bin/sh ${.CURDIR}/makesyscallsconf.sh ${abi} ${.TARGET}

${abi}_syscalls.master:	${.CURDIR:H:H}/${ABI_SYSPATH.${abi}}/syscalls.master
	cp -f ${.ALLSRC} ${.TARGET}

${abi}_syscalls.h:	${abi}_syscalls.master ${abi}_syscalls.conf \
			${.CURDIR:H:H}/sys/kern/makesyscalls.sh
	/bin/sh ${.CURDIR:H:H}/sys/kern/makesyscalls.sh \
	    ${abi}_syscalls.master ${abi}_syscalls.conf
# Eliminate compiler warning about non-static global.
	sed -i '' '/^const char \*/s/^/static /' ${.TARGET}.tmp
	mv ${.TARGET}.tmp ${.TARGET}
.endfor

.include <bsd.prog.mk>
OpenPOWER on IntegriCloud