Makefile revision 1.311
11.311Sthorpej#	$NetBSD: Makefile,v 1.311 2025/12/22 03:11:05 thorpej Exp $
21.8Smycroft#	from: @(#)Makefile	5.25.1.1 (Berkeley) 5/7/91
31.21Scgd
41.62Sthorpej.include <bsd.own.mk>
51.62Sthorpej
61.188SjoergSUBDIR=		csu .WAIT
71.155Splunky
81.155Splunky.if (${MKGCC} != "no")
91.211SmrgSUBDIR+=	../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libgcc .WAIT
101.155Splunky.endif
111.155Splunky
121.155SplunkySUBDIR+=	libc
131.155SplunkySUBDIR+=	.WAIT
141.155Splunky
151.155Splunky#
161.155Splunky# The SUBDIRs above are included here for completeness but should be built
171.155Splunky# and installed prior to make(dependall) in this file, as libraries listed
181.155Splunky# below will depend on versions from DESTDIR only.
191.155Splunky#
201.155Splunky
211.158SplunkySUBDIR+=	i18n_module
221.158Splunky
231.158SplunkySUBDIR+=	libarch \
241.311Sthorpej		libbsdmalloc libbz2 \
251.184Smatt		libcompat libcrypt \
261.265Smartin		libintl libipsec libkvm libm \
271.259Smaxv		libossaudio libpci libposix libprop libpthread \
281.249Skamil		libpuffs libresolv librmt librpcsvc librt \
291.187Schristos		libtelnet libterminfo \
301.287Schristos		libusbhid libutil liby libz
311.158Splunky
321.206Smatt.if !defined(BSD_MK_COMPAT_FILE)
331.206SmattSUBDIR+=	libkern
341.206Smatt.endif
351.206Smatt
361.294Srin.if (${MACHINE} == "evbppc" && ${MACHINE_ARCH} == "powerpc")
371.294SrinSUBDIR+=	libc_aligned
381.294Srin.endif
391.226Smatt.if (${MACHINE_CPU} == "arm" || ${MACHINE_CPU} == "aarch64")
401.201SmattLIBC_MACHINE_ARCH?=${MACHINE_ARCH}
411.228SjoergLIBC_MACHINE_CPU?=${MACHINE_CPU}
421.228Sjoerg.if ${LIBC_MACHINE_CPU} == "arm" && empty(LIBC_MACHINE_ARCH:M*hf*)
431.197SmattSUBDIR+=	libc_vfp
441.197Smatt.endif
451.201Smatt.endif
461.292Schristos.if ${MACHINE_MIPS64}
471.247SmacallanSUBDIR+=	libc_fp
481.247Smacallan.endif
491.311Sthorpej.if (${MKBLUETOOTH} != "no")
501.311SthorpejSUBDIR+=	libbluetooth
511.311Sthorpej.endif
521.187Schristos.if (${MKRUMP} != "no")
531.187SchristosSUBDIR+=	librumpclient
541.187Schristos.endif
551.158Splunky.if (${MKSKEY} != "no")
561.158SplunkySUBDIR+=	libskey
571.158Splunky.endif
581.60Sthorpej
591.285Sjmcneill.if ${HAVE_NVMM:Uno} == "yes" && !defined(MLIBDIR)
601.265SmartinSUBDIR+=	libnvmm
611.265Smartin.endif
621.265Smartin
631.293Snia.if (${MKARGON2} != "no")
641.293SniaSUBDIR+=	../external/apache2/argon2/lib/libargon2
651.293Snia.endif
661.293Snia
671.155Splunky.if (${MKMDNS} != "no")
681.155SplunkySUBDIR+=	../external/apache2/mDNSResponder/lib
691.155Splunky.endif
701.155Splunky
711.155SplunkySUBDIR+=	../external/bsd/am-utils/lib
721.155Splunky
731.155SplunkySUBDIR+=	../external/bsd/flex/lib
741.180SchristosSUBDIR+=	../external/bsd/tre/lib
751.297SriastradELFTOOLCHAINLIB=../external/bsd/elftoolchain/lib/
761.297Sriastrad.include "${ELFTOOLCHAINLIB}Makefile.subdir"
771.163SmattSUBDIR+=	../external/bsd/liblzf/lib
781.158SplunkySUBDIR+=	../external/bsd/libpcap/lib
791.155Splunky
801.214Splunky.if ${MKSLJIT} != "no"
811.214SplunkySUBDIR+=	../external/bsd/sljit/lib
821.214SplunkySUBDIR+=	libbpfjit
831.214Splunky.endif
841.214Splunky
851.261SchristosSUBDIR+=	../external/bsd/libnv/lib
861.261Schristos
871.224Smatt.if (${MKZFS} != "no")
881.224SmattSUBDIR+=        ../external/cddl/osnet/lib/libavl
891.224SmattSUBDIR+=        ../external/cddl/osnet/lib/libnvpair
901.224SmattSUBDIR+=        ../external/cddl/osnet/lib/libumem
911.224SmattSUBDIR+=        ../external/cddl/osnet/lib/libuutil
921.224Smatt.endif
931.224Smatt
941.182StronSUBDIR+=	../external/mit/expat/lib
951.155Splunky
961.238SchristosSUBDIR+=	../external/gpl2/libmalloc
971.155Splunky
981.302SchristosSUBDIR+=	../external/bsd/${EXTERNAL_JEMALLOC_SUBDIR}/lib
991.269Schristos
1001.155Splunky.if (${MKGCC} != "no")
1011.211SmrgSUBDIR+=	../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libobjc
1021.211SmrgSUBDIR+=	../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libgomp
1031.155Splunky.endif
1041.144Schristos
1051.296Srin# GCC and GDB >= 13 require GMP.
1061.301Schristos# We don't build compat versions of these
1071.301Schristos.if !defined(MLIBDIR) && (${MKGCCCMDS} != "no" || ${MKGDB} != "no")
1081.301SchristosSUBDIR+=	../external/lgpl3/mpfr/lib/libmpfr
1091.301SchristosSUBDIR+=	../external/lgpl3/mpc/lib/libmpc
1101.296SrinSUBDIR+=	../external/lgpl3/gmp/lib/libgmp
1111.296Srin.endif
1121.296Srin
1131.89Slukem#
1141.89Slukem# Libraries that depend upon any listed previously
1151.93Slukem# (and those that depend upon these [and ...])
1161.89Slukem#
1171.97Schristos#==================== 1st library dependency barrier ====================
1181.97SchristosSUBDIR+=	.WAIT
1191.97Schristos
1201.235Schristos.if ${MKDTRACE} != "no"
1211.229SchristosSUBDIR+=	../external/bsd/librtld_db/lib		# depends on libutil
1221.234Schristos.endif
1231.229Schristos
1241.240Sriastrad.if ${MKCTF} != "no"
1251.227SchristosSUBDIR+=        ../external/cddl/osnet/lib/libctf
1261.227Schristos.endif
1271.227Schristos
1281.221SmrgSUBDIR+=	../external/public-domain/xz/lib	# depends on libpthread
1291.208SmrgSUBDIR+=	../crypto/external/bsd/netpgp/libmj
1301.208SmrgSUBDIR+=	../crypto/external/bsd/netpgp/lib/verify # depends on libz
1311.284SchristosSUBDIR+=	../external/bsd/blocklist/lib		# depends on libpthread
1321.208SmrgSUBDIR+=	../external/mit/lua/lib # depends on libm
1331.286SniaSUBDIR+=	../external/public-domain/sqlite/lib # depends on libm
1341.158SplunkySUBDIR+=	libcurses	# depends on libterminfo
1351.162ShaadSUBDIR+=	libdm		# depends on libprop
1361.158SplunkySUBDIR+=	libedit		# depends on libterminfo
1371.184SmattSUBDIR+=	libexecinfo 	# depends on libelf
1381.176SdyoungSUBDIR+=	libppath	# depends on libprop
1391.175SplunkySUBDIR+=	libperfuse	# depends on libpuffs
1401.165SbouyerSUBDIR+=	libquota	# depends on libprop and librpcsvc
1411.113SpookaSUBDIR+=	librefuse	# depends on libpuffs
1421.207SjoergSUBDIR+=	libisns 	# depends on libpthread
1431.187Schristos.if (${MKRUMP} != "no")
1441.253SchristosSUBDIR+=	librumphijack	# depends on librumpclient and libpthread
1451.253SchristosSUBDIR+=	librumpres	# depends on librumpclient
1461.126SpookaSUBDIR+=	librumpuser	# depends on libpthread
1471.187Schristos.endif
1481.126Spooka
1491.161Srmind.if (${MKNPF} != "no")
1501.261SchristosSUBDIR+=	libnpf		# depends on libnv
1511.161Srmind.endif
1521.161Srmind
1531.308SchristosOSSL=../crypto/external/${EXTERNAL_OPENSSL_SUBDIR}/lib/
1541.295Schristos.include "${.CURDIR}/${OSSL}Makefile.subdir" # depends on libcrypt
1551.155Splunky
1561.155Splunky.if (${MKISCSI} != "no")
1571.155SplunkySUBDIR+=	../external/bsd/iscsi/lib	# depends on libpthread
1581.155Splunky.endif
1591.155Splunky
1601.224Smatt.if (${MKZFS} != "no")
1611.257SchsSUBDIR+=        ../external/cddl/osnet/lib/libzfs_core
1621.224SmattSUBDIR+=        ../external/cddl/osnet/lib/libzpool
1631.224Smatt.endif
1641.224Smatt
1651.163Smatt.if (${MKLVM} != "no")
1661.163SmattSUBDIR+=	../external/gpl2/lvm2/lib	# depends on libprop
1671.163Smatt.endif
1681.163Smatt
1691.155Splunky.if (${MKBINUTILS} != "no")
1701.239SchristosSUBDIR+=	../external/gpl3/${EXTERNAL_BINUTILS_SUBDIR}/lib	# libbfd depends on libz
1711.155Splunky.endif
1721.155Splunky
1731.202Sjoerg.if (${MKLIBCXX} != "no")
1741.202SjoergSUBDIR+=	../external/bsd/libc++
1751.202Sjoerg.endif
1761.202Sjoerg
1771.203Sjoerg.if (${MKGCC} != "no" && ${MKCXX} != "no" && ${MKLIBSTDCXX} != "no")
1781.211SmrgSUBDIR+=	../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libstdc++-v3
1791.211SmrgSUBDIR+=	../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/libsupc++
1801.155Splunky.endif
1811.222Schristos
1821.271Snakayama.if (${MKLLVMRT} != "no" && (!defined(MLIBDIR) || ${MKCOMPATX11} != "no"))
1831.273SjoergSUBDIR+=	../external/apache2/llvm/include
1841.270Sjoerg.endif
1851.270Sjoerg
1861.275SchristosSUBDIR+=	../external/mit/libcbor/lib
1871.283Schristos
1881.304SmrgSUBDIR+=	../external/bsd/zstd/lib
1891.222Schristos#==================== 2nd library dependency barrier ====================
1901.222SchristosSUBDIR+=	.WAIT
1911.222Schristos
1921.287SchristosSUBDIR+=	libwrap
1931.287Schristos
1941.299Smrg.if (${MKGCC} != "no" && ${MKCXX} != "no" && ${MKLIBSTDCXX} != "no")
1951.300Smrg.if ${MKGCCCMDS} != "no"
1961.258Schristos.for sanitizer in asan lsan ubsan
1971.245Schristos.if exists(../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/lib${sanitizer})
1981.245SchristosSUBDIR+= ../external/gpl3/${EXTERNAL_GCC_SUBDIR}/lib/lib${sanitizer}
1991.245Schristos.endif
2001.245Schristos.endfor
2011.272Smrg.endif
2021.300Smrg.endif
2031.155Splunky
2041.271Snakayama.if (${MKLLVMRT} != "no" && (!defined(MLIBDIR) || ${MKCOMPATX11} != "no"))
2051.273SjoergSUBDIR+=	../external/apache2/llvm/librt
2061.270Sjoerg.endif
2071.270Sjoerg
2081.303SchristosSUBDIR+=	../external/bsd/libarchive/lib	# depends on libxz, zstd
2091.221Smrg
2101.304SmrgSUBDIR+=	../external/bsd/file/lib	# depends on libz, libbz2, libxz, zstd
2111.274Schristos
2121.208Smrg.if (${MKNPF} != "no")
2131.208SmrgSUBDIR+=	npf		# depends on libnpf
2141.208Smrg.endif
2151.208Smrg
2161.185Schristos.if (${MKATF} != "no")
2171.297SriastradATFLIB=	../external/bsd/atf/lib/
2181.297Sriastrad.include "${ATFLIB}Makefile.subdir"		# depends on libstdc++
2191.185Schristos.endif
2201.185Schristos
2211.198Sjmmv.if (${MKKYUA} != "no")
2221.198SjmmvSUBDIR+=	../external/bsd/lutok/lib	# depends on lua and libstdc++
2231.198Sjmmv.endif
2241.198Sjmmv
2251.158SplunkySUBDIR+=	libform		# depends on libcurses
2261.175SplunkySUBDIR+=	libmenu		# depends on libcurses
2271.236SkamilSUBDIR+=	libpanel	# depends on libcurses
2281.251SriastradSUBDIR+=	libradius	# depends on libcrypto
2291.187Schristos.if (${MKRUMP} != "no")
2301.175SplunkySUBDIR+=	librump		# depends on librumpuser
2311.187Schristos.endif
2321.158Splunky
2331.100Schristos.if (${MKKERBEROS} != "no")
2341.297Sriastrad# heimdal depends on libcrypto, libedit, libterminfo
2351.297SriastradHEIMDALLIB=	../crypto/external/bsd/heimdal/lib/
2361.297Sriastrad.include "${HEIMDALLIB}Makefile.subdir"			# depends on libcrypto
2371.166Selric							# libedit, libterminfo,
2381.100Schristos.endif
2391.100Schristos
2401.275SchristosSUBDIR+=	../external/bsd/libfido2/lib	# depends on libcbor
2411.297SriastradNETPGPLIB=	../crypto/external/bsd/netpgp/lib/
2421.297Sriastrad.include "${NETPGPLIB}Makefile.subdir"		# depends on libcrypto, ...
2431.297SriastradLIBEVENTLIB=	../external/bsd/libevent/lib/
2441.297Sriastrad.include "${LIBEVENTLIB}Makefile.subdir"	# depends on libcrypto
2451.235Schristos.if ${MKDTRACE} != "no"
2461.234SchristosSUBDIR+=	../external/bsd/libproc/lib	# depends on libstdc++, libctf
2471.234Schristos.endif
2481.158SplunkySUBDIR+=	../external/bsd/fetch/lib	# depends on libssl
2491.158Splunky
2501.158Splunky.if (${MKLDAP} != "no")
2511.297SriastradOPENLDAPLIB=	../external/bsd/openldap/lib/	# depends on libcrypto, ...
2521.297Sriastrad.include "${OPENLDAPLIB}Makefile.subdir"
2531.158Splunky.endif
2541.158Splunky
2551.257Schs.if (${MKZFS} != "no")
2561.257SchsSUBDIR+=        ../external/cddl/osnet/lib/libzfs
2571.257Schs.endif
2581.257Schs
2591.256SsevanSUBDIR+= 	../libexec/httpd/libbozohttpd 	# depends on libssl & libcrypto
2601.256Ssevan
2611.305SchristosSUBDIR+=	../external/mit/libuv/lib
2621.307SchristosSUBDIR+=	../external/lgpl2/userspace-rcu/lib
2631.305Schristos
2641.124Slukem#==================== 3rd library dependency barrier ====================
2651.124SlukemSUBDIR+=	.WAIT
2661.124Slukem
2671.275SchristosSUBDIR+=	../crypto/external/bsd/openssh/lib # depends on libcrypto, libz,
2681.275Schristos						   # libfido2
2691.255SchristosSUBDIR+=	../crypto/external/bsd/netpgp/bindings/lua  # depends on netpgp/lib
2701.260SchristosSUBDIR+=	../external/mpl/bind/lib	# depends on heimdal, libcrypto
2711.305Schristos						# libuv, userspace-rcu
2721.251Sriastrad.if ${MKUNBOUND} != "no"
2731.246SchristosSUBDIR+=	../external/bsd/unbound/lib	# depends on libcrypto
2741.246Schristos.endif
2751.204Sjoerg
2761.230Schristos.if ${MKDTRACE} != "no"
2771.230SchristosSUBDIR+=        ../external/cddl/osnet/lib/libdtrace	# depends on libproc
2781.230Schristos.endif
2791.230Schristos
2801.187Schristos.if (${MKRUMP} != "no")
2811.143SpookaSUBDIR+=	librumpdev	# depends on librump
2821.128SpookaSUBDIR+=	librumpnet	# depends on librump
2831.130SpookaSUBDIR+=	librumpvfs	# depends on librump
2841.187Schristos.endif
2851.126Spooka
2861.175SplunkySUBDIR+=	../crypto/external/bsd/libsaslc	# depends on heimdal, openssl
2871.181SjoergSUBDIR+=	../external/bsd/mdocml/lib
2881.181Sjoerg
2891.126Spooka#==================== 4th library dependency barrier ====================
2901.126SpookaSUBDIR+=	.WAIT
2911.158Splunky
2921.277Schristos.if (${MKPAM} != "no")
2931.278SrinSUBDIR+=	libpam		# depends on heimdal, libssh
2941.277Schristos.endif
2951.277Schristos
2961.277Schristos
2971.280Schristos.if (${MKRUMP} != "no")
2981.158SplunkySUBDIR+=	libukfs		# depends on librumpvfs, librump
2991.280Schristos.endif
3001.131Spooka
3011.190Schristos.if (${MKTPM} != "no")
3021.190SchristosSUBDIR+=	../crypto/external/cpl/trousers/lib
3031.190Schristos.endif
3041.190Schristos
3051.131Spooka#==================== 5th library dependency barrier ====================
3061.131SpookaSUBDIR+=	.WAIT
3071.158Splunky
3081.279Schristos.if (${MKPAM} != "no")
3091.279SchristosSUBDIR+=	../external/bsd/pam-u2f/lib	# depends on libpam
3101.279Schristos.endif
3111.279Schristos
3121.281Stnn.if (${MKRUMP} != "no")
3131.158SplunkySUBDIR+=	libp2k		# depends on libukfs, librumpvfs, libpuffs
3141.281Stnn.endif
3151.188Sjoerg
3161.192Schristos.if (${MKTPM} != "no")
3171.192SchristosSUBDIR+=	../crypto/external/cpl/tpm-tools/lib	# depends on trousers
3181.192Schristos.endif
3191.192Schristos
3201.280Schristos.if (${MKRUMP} != "no")
3211.188Sjoerg.if !defined(BSD_MK_COMPAT_FILE)
3221.188SjoergSUBDIR+=	../sys/rump/dev/lib
3231.188SjoergSUBDIR+=	../sys/rump/fs/lib
3241.188SjoergSUBDIR+=	../sys/rump/kern/lib
3251.188SjoergSUBDIR+=	../sys/rump/net/lib
3261.188Sjoerg.endif
3271.187Schristos.endif
3281.158Splunky
3291.178Smbalmer# Lua bindings come last, they might depend on anything
3301.178SmbalmerSUBDIR+=	lua
3311.178Smbalmer
3321.195Sjoerg.include <bsd.buildinstall.mk>
3331.1Scgd.include <bsd.subdir.mk>
334