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
297 lines
4.6 KiB
Makefile
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>
|