freebsd-dev/usr.bin/Makefile
Brooks Davis a4330302f2 libcompat: build 32-bit rtld and ldd as part of "everything"
Alter bsd.compat.mk to set MACHINE and MACHINE_ARCH when included
directly so MD paths in Makefiles work. In the process centralize
setting them in LIBCOMPATWMAKEENV.

Alter .PATH and CFLAGS settings in work when the Makefile is included.

While here only support LIB32 on supported platforms rather than always
enabling it and requiring users of MK_LIB32 to filter based
TARGET/MACHINE_ARCH.

The net effect of this change is to make Makefile.libcompat only build
compatability libraries.

Changes relative to r354449:

Correct detection of the compiler type when bsd.compat.mk is used
outside Makefile.libcompat.  Previously it always matched the clang
case.

Set LDFLAGS including the linker emulation for mips where -m32 seems to
be insufficent.

Reviewed by:	imp, kib (origional version in r354449)
Obtained from:	CheriBSD (conceptually)
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D22251
2019-11-07 22:58:10 +00:00

301 lines
4.6 KiB
Makefile

# From: @(#)Makefile 8.3 (Berkeley) 1/7/94
# $FreeBSD$
.include <src.opts.mk>
SUBDIR= alias \
apply \
asa \
awk \
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 \
elf2aout \
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 \
lastcomm \
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 \
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 \
tabs \
tail \
tar \
tcopy \
tee \
time \
timeout \
tip \
top \
touch \
tput \
tr \
true \
truncate \
tset \
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_AT}+= at
SUBDIR.${MK_ATM}+= atm
SUBDIR.${MK_BLUETOOTH}+= bluetooth
SUBDIR.${MK_BSD_CPIO}+= cpio
SUBDIR.${MK_CALENDAR}+= calendar
SUBDIR.${MK_CLANG}+= clang
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
.if ${MK_GPL_DTC} != "yes"
.if ${COMPILER_FEATURES:Mc++11}
SUBDIR+= dtc
.endif
.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}+= bc
SUBDIR.${MK_OPENSSL}+= chkey
SUBDIR.${MK_OPENSSL}+= dc
SUBDIR.${MK_OPENSSL}+= newkey
SUBDIR.${MK_QUOTAS}+= quota
SUBDIR.${MK_SENDMAIL}+= vacation
SUBDIR.${MK_TALK}+= talk
SUBDIR.${MK_TELNET}+= telnet
SUBDIR.${MK_TESTS}+= tests
SUBDIR.${MK_TEXTPROC}+= ul
SUBDIR.${MK_TFTP}+= tftp
SUBDIR.${MK_TOOLCHAIN}+= addr2line
SUBDIR.${MK_TOOLCHAIN}+= ar
SUBDIR.${MK_TOOLCHAIN}+= c89
SUBDIR.${MK_TOOLCHAIN}+= c99
SUBDIR.${MK_TOOLCHAIN}+= ctags
SUBDIR.${MK_TOOLCHAIN}+= cxxfilt
SUBDIR.${MK_TOOLCHAIN}+= objcopy
SUBDIR.${MK_TOOLCHAIN}+= file2c
# ARM64TODO gprof does not build
# RISCVTODO gprof does not build
.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_CPUARCH} != "riscv"
SUBDIR.${MK_TOOLCHAIN}+= gprof
.endif
SUBDIR.${MK_TOOLCHAIN}+= indent
SUBDIR.${MK_TOOLCHAIN}+= lex
SUBDIR.${MK_TOOLCHAIN}+= mkstr
SUBDIR.${MK_TOOLCHAIN}+= nm
SUBDIR.${MK_TOOLCHAIN}+= readelf
SUBDIR.${MK_TOOLCHAIN}+= rpcgen
SUBDIR.${MK_TOOLCHAIN}+= unifdef
SUBDIR.${MK_TOOLCHAIN}+= size
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_SVN}+= svn
SUBDIR.${MK_SVNLITE}+= svn
SUBDIR.${MK_OFED}+= ofed
# These are normally only handled for build-tools.
.if make(clean*)
SUBDIR+= mkcsmapper_static
SUBDIR+= mkesdb_static
.endif
.include <bsd.arch.inc.mk>
SUBDIR_PARALLEL=
.include <bsd.subdir.mk>