freebsd-dev/usr.bin/Makefile
Alex Richardson 021385aba5 Add WITH_LLVM_BINUTILS to install LLVM binutils instead of Elftoolchain
When WITH_LLVM_BINUTILS is set, we will install the LLVM binutils as
ar/ranlib/nm/objcopy/etc. instead of the elftoolchain ones.
Having the LLVM binutils instead of the elftoolchain ones allows us to use
features such as LTO that depend on binutils that understand LLVM IR.
Another benefit will be an improved user-experience when compiling with
AddressSanitizer, since ASAN does not symbolize backtraces correctly if
addr2line is elftoolchain addr2line instead of llvm-symbolizer.
See https://lists.freebsd.org/archives/freebsd-toolchain/2021-July/000062.html
for more details.

This is currently off by default but will be turned on by default at some
point in the near future.

Reviewed By:	emaste

Differential Revision: https://reviews.freebsd.org/D31060
2021-09-06 09:49:49 +01:00

297 lines
4.6 KiB
Makefile

# From: @(#)Makefile 8.3 (Berkeley) 1/7/94
# $FreeBSD$
.include <src.opts.mk>
SUBDIR= alias \
apply \
asa \
awk \
backlight \
banner \
basename \
brandelf \
bsdcat \
bsdiff \
bzip2 \
bzip2recover \
cap_mkdb \
chat \
chpass \
cksum \
cmp \
col \
colrm \
column \
comm \
compress \
cpuset \
csplit \
ctlstat \
cut \
diff \
dirname \
du \
elfctl \
elfdump \
enigma \
env \
etdump \
expand \
false \
fetch \
find \
fmt \
fold \
fstat \
fsync \
gcore \
gencat \
getaddrinfo \
getconf \
getent \
getopt \
grep \
gzip \
head \
hexdump \
id \
ident \
ipcrm \
ipcs \
join \
jot \
keylogin \
keylogout \
killall \
ktrace \
ktrdump \
lam \
ldd \
leave \
less \
lessecho \
lesskey \
limits \
locale \
localedef \
lock \
lockf \
logger \
login \
logins \
logname \
look \
lorder \
lsvfs \
lzmainfo \
m4 \
mandoc \
mesg \
minigzip \
ministat \
mkdep \
mkfifo \
mkimg \
mktemp \
mkuzip \
mt \
ncal \
ncurses \
netstat \
newgrp \
nfsstat \
nice \
nl \
nohup \
opieinfo \
opiekey \
opiepasswd \
pagesize \
passwd \
paste \
patch \
pathchk \
perror \
posixshmcontrol \
pr \
printenv \
printf \
proccontrol \
procstat \
protect \
rctl \
renice \
resizewin \
rev \
revoke \
rpcinfo \
rs \
rup \
ruptime \
rusers \
rwall \
rwho \
script \
sdiff \
sed \
seq \
shar \
showmount \
sockstat \
soelim \
sort \
split \
stat \
stdbuf \
strings \
su \
systat \
tail \
tar \
tcopy \
tee \
time \
timeout \
tip \
top \
touch \
tr \
true \
truncate \
tsort \
tty \
uname \
unexpand \
uniq \
unzip \
units \
unvis \
uudecode \
uuencode \
vis \
vmstat \
w \
wall \
wc \
what \
whereis \
which \
whois \
write \
xargs \
xinstall \
xo \
xz \
xzdec \
yes \
zstd
# NB: keep these sorted by MK_* knobs
SUBDIR.${MK_ACCT}+= lastcomm
SUBDIR.${MK_AT}+= at
SUBDIR.${MK_ATM}+= atm
SUBDIR.${MK_BLUETOOTH}+= bluetooth
SUBDIR.${MK_BSD_CPIO}+= cpio
SUBDIR.${MK_CALENDAR}+= calendar
.if ${MK_CLANG} != "no" || ${MK_LLVM_BINUTILS} != "no" || \
${MK_LLD} != "no" || ${MK_LLDB} != "no"
SUBDIR+= clang
.endif
SUBDIR.${MK_DIALOG}+= dpv
SUBDIR.${MK_EE}+= ee
SUBDIR.${MK_FILE}+= file
SUBDIR.${MK_FINGER}+= finger
SUBDIR.${MK_FTP}+= ftp
SUBDIR.${MK_GAMES}+= caesar
SUBDIR.${MK_GAMES}+= factor
SUBDIR.${MK_GAMES}+= fortune
SUBDIR.${MK_GAMES}+= grdc
SUBDIR.${MK_GAMES}+= morse
SUBDIR.${MK_GAMES}+= number
SUBDIR.${MK_GAMES}+= pom
SUBDIR.${MK_GAMES}+= primes
SUBDIR.${MK_GAMES}+= random
SUBDIR.${MK_CXX}+= dtc
.if ${MK_GH_BC} == "yes"
SUBDIR+= gh-bc
.else
SUBDIR.${MK_OPENSSL}+= bc
SUBDIR.${MK_OPENSSL}+= dc
.endif
SUBDIR.${MK_HESIOD}+= hesinfo
SUBDIR.${MK_ICONV}+= iconv
SUBDIR.${MK_ICONV}+= mkcsmapper
SUBDIR.${MK_ICONV}+= mkesdb
SUBDIR.${MK_ISCSI}+= iscsictl
SUBDIR.${MK_KDUMP}+= kdump
SUBDIR.${MK_KDUMP}+= truss
SUBDIR.${MK_KERBEROS_SUPPORT}+= compile_et
SUBDIR.${MK_LDNS_UTILS}+= drill
SUBDIR.${MK_LDNS_UTILS}+= host
SUBDIR.${MK_LIB32}+= ldd32
SUBDIR.${MK_LOCATE}+= locate
# XXX msgs?
SUBDIR.${MK_MAIL}+= biff
SUBDIR.${MK_MAIL}+= from
SUBDIR.${MK_MAIL}+= mail
SUBDIR.${MK_MAIL}+= msgs
SUBDIR.${MK_MAKE}+= bmake
SUBDIR.${MK_MAN_UTILS}+= man
SUBDIR.${MK_NETCAT}+= nc
SUBDIR.${MK_NIS}+= ypcat
SUBDIR.${MK_NIS}+= ypmatch
SUBDIR.${MK_NIS}+= ypwhich
SUBDIR.${MK_OPENSSH}+= ssh-copy-id
SUBDIR.${MK_OPENSSL}+= chkey
SUBDIR.${MK_OPENSSL}+= newkey
SUBDIR.${MK_QUOTAS}+= quota
SUBDIR.${MK_SENDMAIL}+= vacation
SUBDIR.${MK_TALK}+= talk
SUBDIR.${MK_TELNET}+= telnet
SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+= kyua
SUBDIR.${MK_TESTS}+= tests
SUBDIR.${MK_TEXTPROC}+= ul
SUBDIR.${MK_TFTP}+= tftp
.if ${MK_LLVM_BINUTILS} == "no"
# Only build the elftoolchain tools if we aren't using the LLVM ones.
SUBDIR.${MK_TOOLCHAIN}+= addr2line
SUBDIR.${MK_TOOLCHAIN}+= ar
SUBDIR.${MK_TOOLCHAIN}+= nm
SUBDIR.${MK_TOOLCHAIN}+= objcopy
SUBDIR.${MK_TOOLCHAIN}+= readelf
SUBDIR.${MK_TOOLCHAIN}+= size
.endif
SUBDIR.${MK_TOOLCHAIN}+= c89
SUBDIR.${MK_TOOLCHAIN}+= c99
SUBDIR.${MK_TOOLCHAIN}+= ctags
.if ${MK_LLVM_CXXFILT} == "no"
SUBDIR.${MK_TOOLCHAIN}+= cxxfilt
.endif
SUBDIR.${MK_TOOLCHAIN}+= file2c
SUBDIR.${MK_TOOLCHAIN}+= gprof
SUBDIR.${MK_TOOLCHAIN}+= indent
SUBDIR.${MK_TOOLCHAIN}+= lex
SUBDIR.${MK_TOOLCHAIN}+= mkstr
SUBDIR.${MK_TOOLCHAIN}+= rpcgen
SUBDIR.${MK_TOOLCHAIN}+= unifdef
SUBDIR.${MK_TOOLCHAIN}+= xstr
SUBDIR.${MK_TOOLCHAIN}+= yacc
SUBDIR.${MK_VI}+= vi
SUBDIR.${MK_VT}+= vtfontcvt
SUBDIR.${MK_USB}+= usbhidaction
SUBDIR.${MK_USB}+= usbhidctl
SUBDIR.${MK_UTMPX}+= last
.if ${MK_CXX} != "no"
SUBDIR.${MK_UTMPX}+= users
.endif
SUBDIR.${MK_UTMPX}+= who
SUBDIR.${MK_OFED}+= ofed
.include <bsd.arch.inc.mk>
SUBDIR_PARALLEL=
.include <bsd.subdir.mk>