freebsd-dev/usr.bin/Makefile
Stefan Eßer 252884ae7e Import new 2-clause BSD licenced implementation of the bc and dc commands
These implementations of the bc and dc programs offer a number of advantages
compared to the current implementations in the FreeBSD base system:

- They do not depend on external large number functions (i.e. no dependency
  on OpenSSL or any other large number library)

- They implements all features found in GNU bc/dc (with the exception of
  the forking of sub-processes, which the author of this version considers
  as a security issue).

- They are significantly faster than the current code in base (more than
  2 orders of magnitude in some of my tests, e.g. for 12345^100000).

- They should be fully compatible with all features and the behavior of the
  current implementations in FreeBSD (not formally verified).

- They support POSIX message catalogs and come with localized messages in
  Chinese, Dutch, English, French, German, Japanese, Polish, Portugueze,
  and Russian.

- They offer very detailed man-pages that provide far more information than
  the current ones.

The upstream sources contain a large number of tests, which are not
imported with this commit. They could be integrated into our test
framework at a latter time.

Installation of this version is controlled by the option "MK_GH_BC=yes".
This option will be set to yes by default in 13-CURRENT, but will be off
by default in 12-STABLE.

Approved by:	imp
Obtained from:	https://git.yzena.com/gavin/bc
MFC after:	4 weeks
Relnotes:	yes
Differential Revision:	https://reviews.freebsd.org/D19982
2020-06-27 12:02:01 +00:00

304 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 \
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 \
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 ${COMPILER_FEATURES:Mc++11}
SUBDIR+= dtc
.endif
.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
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"
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>