freebsd-skq/usr.bin/truss/Makefile
Ed Schouten 4be29fb3c5 Make truss work for CloudABI executables on i386.
The system call convention is different from i386 binaries running on
FreeBSD/amd64, but this is not noticeable by executables. On
FreeBSD/amd64, the vDSO already does padding of arguments and return
values to 64-bit values. On i386, it does not, meaning that system call
return values are simply stored in registers.
2017-12-21 09:21:40 +00:00

47 lines
969 B
Makefile

# $FreeBSD$
#NO_WERROR=
PROG= truss
SRCS= main.c setup.c syscalls.c
LIBADD= sysdecode
#CFLAGS+= -I${.CURDIR} -I. -I${SRCTOP}/sys
CFLAGS+= -I${SRCTOP}/sys
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+= cloudabi32
ABIS+= cloudabi64
.endif
.if ${MACHINE_CPUARCH} == "i386"
ABIS+= i386-linux
ABIS+= cloudabi32
.endif
.if ${MACHINE_CPUARCH} == "amd64"
ABIS+= amd64-linux
ABIS+= amd64-linux32
ABIS+= freebsd32
ABIS+= cloudabi32
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}
.endfor
.include <bsd.prog.mk>