1*4b3febd8Schristos# $NetBSD: Makefile,v 1.307 2025/01/18 20:54:52 christos Exp $ 2cda4f8f6Smycroft# from: @(#)Makefile 5.25.1.1 (Berkeley) 5/7/91 361f28255Scgd 4df83a2a3Sthorpej.include <bsd.own.mk> 5df83a2a3Sthorpej 6933525b9SjoergSUBDIR= csu .WAIT 7f33b316bSplunky 8f33b316bSplunky.if (${MKGCC} != "no") 9afa90f2bSmrgSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libgcc .WAIT 104791aafcSmrg.endif 11f33b316bSplunky 12f33b316bSplunkySUBDIR+= libc 13f33b316bSplunkySUBDIR+= .WAIT 14f33b316bSplunky 15f33b316bSplunky# 16f33b316bSplunky# The SUBDIRs above are included here for completeness but should be built 17f33b316bSplunky# and installed prior to make(dependall) in this file, as libraries listed 18f33b316bSplunky# below will depend on versions from DESTDIR only. 19f33b316bSplunky# 20f33b316bSplunky 2190c70dd2SplunkySUBDIR+= i18n_module 2290c70dd2Splunky 23f33b316bSplunkySUBDIR+= libarch \ 2490c70dd2Splunky libbluetooth libbsdmalloc libbz2 \ 25237bc153Smatt libcompat libcrypt \ 2653fe7907Smartin libintl libipsec libkvm libm \ 2718f65af8Smaxv libossaudio libpci libposix libprop libpthread \ 280892a29aSkamil libpuffs libresolv librmt librpcsvc librt \ 29b559c1ffSchristos libtelnet libterminfo \ 30d54a6e0cSchristos libusbhid libutil liby libz 31ab5476b2Sthorpej 32dcd5cab6Smatt.if !defined(BSD_MK_COMPAT_FILE) 33dcd5cab6SmattSUBDIR+= libkern 34dcd5cab6Smatt.endif 35dcd5cab6Smatt 36dd3ee07dSrin.if (${MACHINE} == "evbppc" && ${MACHINE_ARCH} == "powerpc") 37dd3ee07dSrinSUBDIR+= libc_aligned 38dd3ee07dSrin.endif 396fa466fcSmatt.if (${MACHINE_CPU} == "arm" || ${MACHINE_CPU} == "aarch64") 4036e3b717SmattLIBC_MACHINE_ARCH?=${MACHINE_ARCH} 417cd26696SjoergLIBC_MACHINE_CPU?=${MACHINE_CPU} 427cd26696Sjoerg.if ${LIBC_MACHINE_CPU} == "arm" && empty(LIBC_MACHINE_ARCH:M*hf*) 433c352395SmattSUBDIR+= libc_vfp 443c352395Smatt.endif 4536e3b717Smatt.endif 46e8ee02e0Schristos.if ${MACHINE_MIPS64} 478baff5f4SmacallanSUBDIR+= libc_fp 488baff5f4Smacallan.endif 49b559c1ffSchristos.if (${MKRUMP} != "no") 50b559c1ffSchristosSUBDIR+= librumpclient 51b559c1ffSchristos.endif 5290c70dd2Splunky.if (${MKSKEY} != "no") 5390c70dd2SplunkySUBDIR+= libskey 5490c70dd2Splunky.endif 5590c70dd2Splunky 56c9f4e317Sjmcneill.if ${HAVE_NVMM:Uno} == "yes" && !defined(MLIBDIR) 5753fe7907SmartinSUBDIR+= libnvmm 5853fe7907Smartin.endif 5953fe7907Smartin 601569bcc0Snia.if (${MKARGON2} != "no") 611569bcc0SniaSUBDIR+= ../external/apache2/argon2/lib/libargon2 621569bcc0Snia.endif 631569bcc0Snia 64f33b316bSplunky.if (${MKMDNS} != "no") 65f33b316bSplunkySUBDIR+= ../external/apache2/mDNSResponder/lib 66f33b316bSplunky.endif 67f33b316bSplunky 68f33b316bSplunkySUBDIR+= ../external/bsd/am-utils/lib 69f33b316bSplunky 70fb86afc5SchristosSUBDIR+= ../external/bsd/flex/lib 713f75ab31SchristosSUBDIR+= ../external/bsd/tre/lib 7240ca0b46SriastradhELFTOOLCHAINLIB=../external/bsd/elftoolchain/lib/ 7340ca0b46Sriastradh.include "${ELFTOOLCHAINLIB}Makefile.subdir" 745f886840SmattSUBDIR+= ../external/bsd/liblzf/lib 7590c70dd2SplunkySUBDIR+= ../external/bsd/libpcap/lib 76f33b316bSplunky 774a71bf0eSplunky.if ${MKSLJIT} != "no" 784a71bf0eSplunkySUBDIR+= ../external/bsd/sljit/lib 794a71bf0eSplunkySUBDIR+= libbpfjit 804a71bf0eSplunky.endif 814a71bf0eSplunky 823271408cSchristosSUBDIR+= ../external/bsd/libnv/lib 833271408cSchristos 846e6800cbSmatt.if (${MKZFS} != "no") 856e6800cbSmattSUBDIR+= ../external/cddl/osnet/lib/libavl 866e6800cbSmattSUBDIR+= ../external/cddl/osnet/lib/libnvpair 876e6800cbSmattSUBDIR+= ../external/cddl/osnet/lib/libumem 886e6800cbSmattSUBDIR+= ../external/cddl/osnet/lib/libuutil 896e6800cbSmatt.endif 906e6800cbSmatt 91df92d05dStronSUBDIR+= ../external/mit/expat/lib 92d4aeae3fSchristos 9326492c89SchristosSUBDIR+= ../external/gpl2/libmalloc 94f33b316bSplunky 9581b0ebe0SchristosSUBDIR+= ../external/bsd/${EXTERNAL_JEMALLOC_SUBDIR}/lib 96121f466aSchristos 97f33b316bSplunky.if (${MKGCC} != "no") 98afa90f2bSmrgSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libobjc 99afa90f2bSmrgSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libgomp 1003a3b951bSmrg.endif 101f33b316bSplunky 102c0141d3aSrin# GCC and GDB >= 13 require GMP. 1033fe1e851Schristos# We don't build compat versions of these 1043fe1e851Schristos.if !defined(MLIBDIR) && (${MKGCCCMDS} != "no" || ${MKGDB} != "no") 1053fe1e851SchristosSUBDIR+= ../external/lgpl3/mpfr/lib/libmpfr 1063fe1e851SchristosSUBDIR+= ../external/lgpl3/mpc/lib/libmpc 107c0141d3aSrinSUBDIR+= ../external/lgpl3/gmp/lib/libgmp 108c0141d3aSrin.endif 109c0141d3aSrin 110124613b2Slukem# 111124613b2Slukem# Libraries that depend upon any listed previously 11298a04f53Slukem# (and those that depend upon these [and ...]) 113124613b2Slukem# 11491168c6fSchristos#==================== 1st library dependency barrier ==================== 11591168c6fSchristosSUBDIR+= .WAIT 11691168c6fSchristos 1174a21fa14Schristos.if ${MKDTRACE} != "no" 11858ad14e8SchristosSUBDIR+= ../external/bsd/librtld_db/lib # depends on libutil 119c09ba22eSchristos.endif 12058ad14e8Schristos 12117ca604bSriastradh.if ${MKCTF} != "no" 122b5736113SchristosSUBDIR+= ../external/cddl/osnet/lib/libctf 123b5736113Schristos.endif 124b5736113Schristos 125422d8988SmrgSUBDIR+= ../external/public-domain/xz/lib # depends on libpthread 126e2079e26SmrgSUBDIR+= ../crypto/external/bsd/netpgp/libmj 127e2079e26SmrgSUBDIR+= ../crypto/external/bsd/netpgp/lib/verify # depends on libz 1282f0bfbf3SchristosSUBDIR+= ../external/bsd/blocklist/lib # depends on libpthread 129e2079e26SmrgSUBDIR+= ../external/mit/lua/lib # depends on libm 1300a229fd3SniaSUBDIR+= ../external/public-domain/sqlite/lib # depends on libm 13190c70dd2SplunkySUBDIR+= libcurses # depends on libterminfo 13283425a0fShaadSUBDIR+= libdm # depends on libprop 13390c70dd2SplunkySUBDIR+= libedit # depends on libterminfo 134237bc153SmattSUBDIR+= libexecinfo # depends on libelf 13599432646SdyoungSUBDIR+= libppath # depends on libprop 136342305c4SplunkySUBDIR+= libperfuse # depends on libpuffs 137d9210c24SbouyerSUBDIR+= libquota # depends on libprop and librpcsvc 138b4747228SpookaSUBDIR+= librefuse # depends on libpuffs 139975a152cSjoergSUBDIR+= libisns # depends on libpthread 140b559c1ffSchristos.if (${MKRUMP} != "no") 141342305c4SplunkySUBDIR+= librumphijack # depends on librumpclient and libpthread 142219944fbSchristosSUBDIR+= librumpres # depends on librumpclient 143219944fbSchristosSUBDIR+= librumpuser # depends on libpthread 144b559c1ffSchristos.endif 145bdf6e0b0Spooka 14607ac07d3Srmind.if (${MKNPF} != "no") 1473271408cSchristosSUBDIR+= libnpf # depends on libnv 14807ac07d3Srmind.endif 14907ac07d3Srmind 15085e497afSchristosOSSL=../crypto/external/bsd/${EXTERNAL_OPENSSL_SUBDIR}/lib/ 15185e497afSchristos.include "${.CURDIR}/${OSSL}Makefile.subdir" # depends on libcrypt 152f33b316bSplunky 153f33b316bSplunky.if (${MKISCSI} != "no") 154f33b316bSplunkySUBDIR+= ../external/bsd/iscsi/lib # depends on libpthread 155f33b316bSplunky.endif 156f33b316bSplunky 1576e6800cbSmatt.if (${MKZFS} != "no") 158ba2539a9SchsSUBDIR+= ../external/cddl/osnet/lib/libzfs_core 1596e6800cbSmattSUBDIR+= ../external/cddl/osnet/lib/libzpool 1606e6800cbSmatt.endif 1616e6800cbSmatt 1625f886840Smatt.if (${MKLVM} != "no") 1635f886840SmattSUBDIR+= ../external/gpl2/lvm2/lib # depends on libprop 1645f886840Smatt.endif 1655f886840Smatt 166f33b316bSplunky.if (${MKBINUTILS} != "no") 16722253bc3SchristosSUBDIR+= ../external/gpl3/${EXTERNAL_BINUTILS_SUBDIR}/lib # libbfd depends on libz 168f33b316bSplunky.endif 169f33b316bSplunky 170ecb06a3bSjoerg.if (${MKLIBCXX} != "no") 171ecb06a3bSjoergSUBDIR+= ../external/bsd/libc++ 172ecb06a3bSjoerg.endif 173ecb06a3bSjoerg 1742fa1d247Sjoerg.if (${MKGCC} != "no" && ${MKCXX} != "no" && ${MKLIBSTDCXX} != "no") 175afa90f2bSmrgSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libstdc++-v3 176afa90f2bSmrgSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libsupc++ 177f33b316bSplunky.endif 178440c00cdSchristos 179063ec26aSnakayama.if (${MKLLVMRT} != "no" && (!defined(MLIBDIR) || ${MKCOMPATX11} != "no")) 18076c7fc5fSjoergSUBDIR+= ../external/apache2/llvm/include 1810a0d4092Sjoerg.endif 1820a0d4092Sjoerg 18306535827SchristosSUBDIR+= ../external/mit/libcbor/lib 18456e4243bSchristos 18545707f09SmrgSUBDIR+= ../external/bsd/zstd/lib 186440c00cdSchristos#==================== 2nd library dependency barrier ==================== 187440c00cdSchristosSUBDIR+= .WAIT 188440c00cdSchristos 189d54a6e0cSchristosSUBDIR+= libwrap 190d54a6e0cSchristos 191ee803f23Smrg.if (${MKGCC} != "no" && ${MKCXX} != "no" && ${MKLIBSTDCXX} != "no") 192a5330f4cSmrg.if ${MKGCCCMDS} != "no" 1930fd9ea36Schristos.for sanitizer in asan lsan ubsan 194739a3124Schristos.if exists(../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/lib${sanitizer}) 195739a3124SchristosSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/lib${sanitizer} 196739a3124Schristos.endif 197739a3124Schristos.endfor 1981db21b1dSmrg.endif 199a5330f4cSmrg.endif 200f33b316bSplunky 201063ec26aSnakayama.if (${MKLLVMRT} != "no" && (!defined(MLIBDIR) || ${MKCOMPATX11} != "no")) 20276c7fc5fSjoergSUBDIR+= ../external/apache2/llvm/librt 2030a0d4092Sjoerg.endif 2040a0d4092Sjoerg 2057c5d5dfdSchristosSUBDIR+= ../external/bsd/libarchive/lib # depends on libxz, zstd 206422d8988Smrg 20745707f09SmrgSUBDIR+= ../external/bsd/file/lib # depends on libz, libbz2, libxz, zstd 2088282cab4Schristos 209e2079e26Smrg.if (${MKNPF} != "no") 210e2079e26SmrgSUBDIR+= npf # depends on libnpf 211e2079e26Smrg.endif 212e2079e26Smrg 21315203877Schristos.if (${MKATF} != "no") 21440ca0b46SriastradhATFLIB= ../external/bsd/atf/lib/ 21540ca0b46Sriastradh.include "${ATFLIB}Makefile.subdir" # depends on libstdc++ 21615203877Schristos.endif 21715203877Schristos 2187d3a48f1Sjmmv.if (${MKKYUA} != "no") 2197d3a48f1SjmmvSUBDIR+= ../external/bsd/lutok/lib # depends on lua and libstdc++ 2207d3a48f1Sjmmv.endif 2217d3a48f1Sjmmv 22290c70dd2SplunkySUBDIR+= libform # depends on libcurses 223342305c4SplunkySUBDIR+= libmenu # depends on libcurses 22415fb689cSkamilSUBDIR+= libpanel # depends on libcurses 225ef315f79SriastradhSUBDIR+= libradius # depends on libcrypto 226b559c1ffSchristos.if (${MKRUMP} != "no") 227342305c4SplunkySUBDIR+= librump # depends on librumpuser 228b559c1ffSchristos.endif 22990c70dd2Splunky 230d3e8815aSchristos.if (${MKKERBEROS} != "no") 23140ca0b46Sriastradh# heimdal depends on libcrypto, libedit, libterminfo 23240ca0b46SriastradhHEIMDALLIB= ../crypto/external/bsd/heimdal/lib/ 23340ca0b46Sriastradh.include "${HEIMDALLIB}Makefile.subdir" # depends on libcrypto 23498fbe74fSelric # libedit, libterminfo, 235d3e8815aSchristos.endif 236d3e8815aSchristos 23706535827SchristosSUBDIR+= ../external/bsd/libfido2/lib # depends on libcbor 23840ca0b46SriastradhNETPGPLIB= ../crypto/external/bsd/netpgp/lib/ 23940ca0b46Sriastradh.include "${NETPGPLIB}Makefile.subdir" # depends on libcrypto, ... 24040ca0b46SriastradhLIBEVENTLIB= ../external/bsd/libevent/lib/ 24140ca0b46Sriastradh.include "${LIBEVENTLIB}Makefile.subdir" # depends on libcrypto 2424a21fa14Schristos.if ${MKDTRACE} != "no" 243c09ba22eSchristosSUBDIR+= ../external/bsd/libproc/lib # depends on libstdc++, libctf 244c09ba22eSchristos.endif 24590c70dd2SplunkySUBDIR+= ../external/bsd/fetch/lib # depends on libssl 24690c70dd2Splunky 24790c70dd2Splunky.if (${MKLDAP} != "no") 24840ca0b46SriastradhOPENLDAPLIB= ../external/bsd/openldap/lib/ # depends on libcrypto, ... 24940ca0b46Sriastradh.include "${OPENLDAPLIB}Makefile.subdir" 25090c70dd2Splunky.endif 25190c70dd2Splunky 252ba2539a9Schs.if (${MKZFS} != "no") 253ba2539a9SchsSUBDIR+= ../external/cddl/osnet/lib/libzfs 254ba2539a9Schs.endif 255ba2539a9Schs 2564e0254f1SsevanSUBDIR+= ../libexec/httpd/libbozohttpd # depends on libssl & libcrypto 2574e0254f1Ssevan 258f6b23865SchristosSUBDIR+= ../external/mit/libuv/lib 259*4b3febd8SchristosSUBDIR+= ../external/lgpl2/userspace-rcu/lib 260f6b23865Schristos 2618f975a40Slukem#==================== 3rd library dependency barrier ==================== 2628f975a40SlukemSUBDIR+= .WAIT 2638f975a40Slukem 26406535827SchristosSUBDIR+= ../crypto/external/bsd/openssh/lib # depends on libcrypto, libz, 26506535827Schristos # libfido2 2667351a5d2SchristosSUBDIR+= ../crypto/external/bsd/netpgp/bindings/lua # depends on netpgp/lib 267491e7745SchristosSUBDIR+= ../external/mpl/bind/lib # depends on heimdal, libcrypto 268f6b23865Schristos # libuv, userspace-rcu 269ef315f79Sriastradh.if ${MKUNBOUND} != "no" 270c90b9921SchristosSUBDIR+= ../external/bsd/unbound/lib # depends on libcrypto 271c90b9921Schristos.endif 2721419f289Sjoerg 27346e2ed0dSchristos.if ${MKDTRACE} != "no" 27446e2ed0dSchristosSUBDIR+= ../external/cddl/osnet/lib/libdtrace # depends on libproc 27546e2ed0dSchristos.endif 27646e2ed0dSchristos 277b559c1ffSchristos.if (${MKRUMP} != "no") 278de4fa6c5SpookaSUBDIR+= librumpdev # depends on librump 27946b5f75dSpookaSUBDIR+= librumpnet # depends on librump 280e10fef6cSpookaSUBDIR+= librumpvfs # depends on librump 281b559c1ffSchristos.endif 282bdf6e0b0Spooka 283342305c4SplunkySUBDIR+= ../crypto/external/bsd/libsaslc # depends on heimdal, openssl 284410d0f43SjoergSUBDIR+= ../external/bsd/mdocml/lib 285410d0f43Sjoerg 286bdf6e0b0Spooka#==================== 4th library dependency barrier ==================== 287bdf6e0b0SpookaSUBDIR+= .WAIT 28890c70dd2Splunky 289e54fad50Schristos.if (${MKPAM} != "no") 2901bdcb77cSrinSUBDIR+= libpam # depends on heimdal, libssh 291e54fad50Schristos.endif 292e54fad50Schristos 293e54fad50Schristos 294a3dab7b6Schristos.if (${MKRUMP} != "no") 29590c70dd2SplunkySUBDIR+= libukfs # depends on librumpvfs, librump 296a3dab7b6Schristos.endif 2970b7df1d2Spooka 29894c130b2Schristos.if (${MKTPM} != "no") 29994c130b2SchristosSUBDIR+= ../crypto/external/cpl/trousers/lib 30094c130b2Schristos.endif 30194c130b2Schristos 3020b7df1d2Spooka#==================== 5th library dependency barrier ==================== 3030b7df1d2SpookaSUBDIR+= .WAIT 30490c70dd2Splunky 30566ab3c9cSchristos.if (${MKPAM} != "no") 30666ab3c9cSchristosSUBDIR+= ../external/bsd/pam-u2f/lib # depends on libpam 30766ab3c9cSchristos.endif 30866ab3c9cSchristos 30915173c72Stnn.if (${MKRUMP} != "no") 31090c70dd2SplunkySUBDIR+= libp2k # depends on libukfs, librumpvfs, libpuffs 31115173c72Stnn.endif 312933525b9Sjoerg 313c168a883Schristos.if (${MKTPM} != "no") 314c168a883SchristosSUBDIR+= ../crypto/external/cpl/tpm-tools/lib # depends on trousers 315c168a883Schristos.endif 316c168a883Schristos 317a3dab7b6Schristos.if (${MKRUMP} != "no") 318933525b9Sjoerg.if !defined(BSD_MK_COMPAT_FILE) 319933525b9SjoergSUBDIR+= ../sys/rump/dev/lib 320933525b9SjoergSUBDIR+= ../sys/rump/fs/lib 321933525b9SjoergSUBDIR+= ../sys/rump/kern/lib 322933525b9SjoergSUBDIR+= ../sys/rump/net/lib 323933525b9Sjoerg.endif 324b559c1ffSchristos.endif 32590c70dd2Splunky 326540bd6bdSmbalmer# Lua bindings come last, they might depend on anything 327540bd6bdSmbalmerSUBDIR+= lua 328540bd6bdSmbalmer 32954f191bfSjoerg.include <bsd.buildinstall.mk> 33061f28255Scgd.include <bsd.subdir.mk> 331