freebsd-dev/usr.bin/truss/Makefile
Ed Schouten b0e787276b Make truss work for CloudABI processes on aarch64.
This change copies over amd64-cloudabi64.c to aarch64-cloudabi.c and
adjusts it to fetch the proper registers on aarch64. To reduce the
amount of shared code, the errno conversion function is moved into a
separate source file.

Reviewed by:	jhb, andrew
Differential Revision:	https://reviews.freebsd.org/D4023
2015-10-30 08:11:37 +00:00

69 lines
2.0 KiB
Makefile

# $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>