1# $FreeBSD$ 2# 3# The include file <src.libnames.mk> define library names suitable 4# for INTERNALLIB and PRIVATELIB definition 5 6.if !target(__<bsd.init.mk>__) 7.error src.libnames.mk cannot be included directly. 8.endif 9 10.if !target(__<src.libnames.mk>__) 11__<src.libnames.mk>__: 12 13.include <src.opts.mk> 14 15_PRIVATELIBS= \ 16 atf_c \ 17 atf_cxx \ 18 auditd \ 19 bsddialog \ 20 bsdstat \ 21 cbor \ 22 devdctl \ 23 event1 \ 24 fido2 \ 25 gmock \ 26 gtest \ 27 gmock_main \ 28 gtest_main \ 29 heimipcc \ 30 heimipcs \ 31 ldns \ 32 sqlite3 \ 33 ssh \ 34 ucl \ 35 unbound \ 36 zstd 37 38_INTERNALLIBS= \ 39 amu \ 40 bsnmptools \ 41 c_nossp_pic \ 42 cron \ 43 elftc \ 44 fifolog \ 45 ifconfig \ 46 ipf \ 47 iscsiutil \ 48 lpr \ 49 lua \ 50 lutok \ 51 netbsd \ 52 ntp \ 53 ntpevent \ 54 openbsd \ 55 opts \ 56 parse \ 57 pe \ 58 pfctl \ 59 pmcstat \ 60 sl \ 61 sm \ 62 smdb \ 63 smutil \ 64 telnet \ 65 vers \ 66 wpaap \ 67 wpacommon \ 68 wpacrypto \ 69 wpadrivers \ 70 wpaeap_common \ 71 wpaeap_peer \ 72 wpaeap_server \ 73 wpaeapol_auth \ 74 wpaeapol_supp \ 75 wpal2_packet \ 76 wparadius \ 77 wparsn_supp \ 78 wpatls \ 79 wpautils \ 80 wpawps 81 82_LIBRARIES= \ 83 ${_PRIVATELIBS} \ 84 ${_INTERNALLIBS} \ 85 ${LOCAL_LIBRARIES} \ 86 80211 \ 87 9p \ 88 alias \ 89 archive \ 90 asn1 \ 91 avl \ 92 be \ 93 begemot \ 94 bluetooth \ 95 bsdxml \ 96 bsm \ 97 bsnmp \ 98 bz2 \ 99 c \ 100 c_pic \ 101 calendar \ 102 cam \ 103 casper \ 104 cap_dns \ 105 cap_fileargs \ 106 cap_grp \ 107 cap_net \ 108 cap_netdb \ 109 cap_pwd \ 110 cap_sysctl \ 111 cap_syslog \ 112 com_err \ 113 compiler_rt \ 114 crypt \ 115 crypto \ 116 ctf \ 117 cuse \ 118 cxxrt \ 119 devctl \ 120 devdctl \ 121 devinfo \ 122 devstat \ 123 dialog \ 124 dl \ 125 dpv \ 126 dtrace \ 127 dwarf \ 128 edit \ 129 efivar \ 130 elf \ 131 execinfo \ 132 fetch \ 133 figpar \ 134 formw \ 135 geom \ 136 gpio \ 137 gssapi \ 138 gssapi_krb5 \ 139 hdb \ 140 heimbase \ 141 heimntlm \ 142 heimsqlite \ 143 hx509 \ 144 icp \ 145 ipsec \ 146 ipt \ 147 jail \ 148 kadm5clnt \ 149 kadm5srv \ 150 kafs5 \ 151 kdc \ 152 kiconv \ 153 krb5 \ 154 kvm \ 155 l \ 156 lzma \ 157 m \ 158 magic \ 159 md \ 160 memstat \ 161 mp \ 162 mt \ 163 ncursesw \ 164 netgraph \ 165 netmap \ 166 ngatm \ 167 nv \ 168 nvpair \ 169 opencsd \ 170 opie \ 171 pam \ 172 panel \ 173 panelw \ 174 pcap \ 175 pcsclite \ 176 pjdlog \ 177 pmc \ 178 proc \ 179 procstat \ 180 pthread \ 181 radius \ 182 regex \ 183 roken \ 184 rpcsec_gss \ 185 rpcsvc \ 186 rt \ 187 rtld_db \ 188 sbuf \ 189 sdp \ 190 sm \ 191 smb \ 192 spl \ 193 ssl \ 194 ssp_nonshared \ 195 stats \ 196 stdthreads \ 197 supcplusplus \ 198 sysdecode \ 199 tacplus \ 200 termcapw \ 201 tinfow \ 202 tpool \ 203 ufs \ 204 ugidfw \ 205 ulog \ 206 umem \ 207 usb \ 208 usbhid \ 209 util \ 210 uutil \ 211 vmmapi \ 212 wind \ 213 wrap \ 214 xo \ 215 y \ 216 ypclnt \ 217 z \ 218 zfs_core \ 219 zfs \ 220 zfsbootenv \ 221 zpool \ 222 zutil 223 224.if ${MK_BLACKLIST} != "no" 225_LIBRARIES+= \ 226 blacklist \ 227 228.endif 229 230.if ${MK_OFED} != "no" 231_LIBRARIES+= \ 232 cxgb4 \ 233 ibcm \ 234 ibmad \ 235 ibnetdisc \ 236 ibumad \ 237 ibverbs \ 238 mlx4 \ 239 mlx5 \ 240 rdmacm \ 241 osmcomp \ 242 opensm \ 243 osmvendor 244.endif 245 246.if ${MK_BEARSSL} == "yes" 247_LIBRARIES+= \ 248 bearssl \ 249 secureboot \ 250 251LIBBEARSSL?= ${LIBBEARSSLDIR}/libbearssl.a 252LIBSECUREBOOT?= ${LIBSECUREBOOTDIR}/libsecureboot.a 253.endif 254 255.if ${MK_VERIEXEC} == "yes" 256_LIBRARIES+= veriexec 257 258LIBVERIEXEC?= ${LIBVERIEXECDIR}/libveriexec.a 259.endif 260 261# Each library's LIBADD needs to be duplicated here for static linkage of 262# 2nd+ order consumers. Auto-generating this would be better. 263_DP_80211= sbuf bsdxml 264_DP_9p= sbuf 265# XXX: Not bootstrapped so uses host version on non-FreeBSD, so don't use a 266# FreeBSD-specific dependency list 267.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) 268_DP_archive= z bz2 lzma bsdxml zstd 269.endif 270_DP_avl= spl 271_DP_bsddialog= formw ncursesw tinfow 272_DP_zstd= pthread 273.if ${MK_BLACKLIST} != "no" 274_DP_blacklist+= pthread 275.endif 276_DP_crypto= pthread 277# See comment by _DP_archive above 278.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) 279.if ${MK_OPENSSL} != "no" 280_DP_archive+= crypto 281.else 282_DP_archive+= md 283.endif 284.endif 285_DP_sqlite3= pthread 286_DP_ssl= crypto 287_DP_ssh= crypto crypt z 288.if ${MK_LDNS} != "no" 289_DP_ssh+= ldns 290.endif 291_DP_edit= tinfow 292.if ${MK_OPENSSL} != "no" 293_DP_bsnmp= crypto 294.endif 295_DP_geom= bsdxml sbuf 296_DP_cam= sbuf 297_DP_kvm= elf 298_DP_casper= nv 299_DP_cap_dns= nv 300_DP_cap_fileargs= nv 301_DP_cap_grp= nv 302_DP_cap_pwd= nv 303_DP_cap_sysctl= nv 304_DP_cap_syslog= nv 305.if ${MK_OFED} != "no" 306_DP_pcap= ibverbs mlx5 307.endif 308_DP_pjdlog= util 309_DP_opie= md 310_DP_usb= pthread 311_DP_unbound= ssl crypto pthread 312_DP_rt= pthread 313.if ${MK_OPENSSL} == "no" 314_DP_radius= md 315.else 316_DP_radius= crypto 317.endif 318_DP_rtld_db= elf procstat 319_DP_procstat= kvm util elf 320.if ${MK_CXX} == "yes" 321_DP_proc= cxxrt 322.endif 323.if ${MK_CDDL} != "no" 324_DP_proc+= ctf 325.endif 326_DP_proc+= elf procstat rtld_db util 327_DP_mp= crypto 328_DP_memstat= kvm 329_DP_magic= z 330_DP_mt= sbuf bsdxml 331_DP_ldns= ssl crypto 332_DP_lua= m 333_DP_lutok= lua 334.if ${MK_OPENSSL} != "no" 335_DP_fetch= ssl crypto 336.else 337_DP_fetch= md 338.endif 339_DP_execinfo= elf 340_DP_dwarf= elf z 341_DP_dpv= dialog figpar util tinfow ncursesw 342_DP_dialog= tinfow ncursesw m 343_DP_cuse= pthread 344_DP_atf_cxx= atf_c 345_DP_gtest= pthread regex 346_DP_gmock= gtest 347_DP_gmock_main= gmock 348_DP_gtest_main= gtest 349_DP_devstat= kvm 350_DP_pam= radius tacplus opie md util 351.if ${MK_KERBEROS} != "no" 352_DP_pam+= krb5 353.endif 354.if ${MK_OPENSSH} != "no" 355_DP_fido2+= crypto z 356_DP_pam+= ssh 357.endif 358.if ${MK_NIS} != "no" 359_DP_pam+= ypclnt 360.endif 361_DP_roken= crypt 362_DP_kadm5clnt= com_err krb5 roken 363_DP_kadm5srv= com_err hdb krb5 roken 364_DP_heimntlm= crypto com_err krb5 roken 365_DP_hx509= asn1 com_err crypto roken wind 366_DP_hdb= asn1 com_err krb5 roken sqlite3 367_DP_asn1= com_err roken 368_DP_kdc= roken hdb hx509 krb5 heimntlm asn1 crypto 369_DP_wind= com_err roken 370_DP_heimbase= pthread 371_DP_heimipcc= heimbase roken pthread 372_DP_heimipcs= heimbase roken pthread 373_DP_kafs5= asn1 krb5 roken 374_DP_krb5+= asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc 375_DP_gssapi_krb5+= gssapi krb5 crypto roken asn1 com_err 376_DP_lzma= md pthread 377_DP_ucl= m 378_DP_vmmapi= util 379_DP_opencsd= cxxrt 380_DP_ctf= spl z 381_DP_dtrace= ctf elf proc pthread rtld_db 382_DP_xo= util 383_DP_ztest= geom m nvpair umem zpool pthread avl zfs_core spl zutil zfs uutil icp 384# The libc dependencies are not strictly needed but are defined to make the 385# assert happy. 386_DP_c= compiler_rt 387.if ${MK_SSP} != "no" && \ 388 (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "") 389_DP_c+= ssp_nonshared 390.endif 391_DP_stats= sbuf pthread 392_DP_stdthreads= pthread 393_DP_tacplus= md 394_DP_ncursesw= tinfow 395_DP_formw= ncursesw 396_DP_nvpair= spl 397_DP_panelw= ncursesw 398_DP_rpcsec_gss= gssapi 399_DP_smb= kiconv 400_DP_ulog= md 401_DP_fifolog= z 402_DP_ipf= kvm 403_DP_tpool= spl 404_DP_uutil= avl spl 405_DP_zfs= md pthread umem util uutil m avl bsdxml crypto geom nvpair \ 406 z zfs_core zutil 407_DP_zfsbootenv= zfs nvpair 408_DP_zfs_core= nvpair spl zutil 409_DP_zpool= md pthread z icp spl nvpair avl umem 410_DP_zutil= avl geom m tpool 411_DP_be= zfs spl nvpair zfsbootenv 412_DP_netmap= 413_DP_ifconfig= m 414_DP_pfctl= nv 415 416# OFED support 417.if ${MK_OFED} != "no" 418_DP_cxgb4= ibverbs pthread 419_DP_ibcm= ibverbs 420_DP_ibmad= ibumad 421_DP_ibnetdisc= osmcomp ibmad ibumad 422_DP_ibumad= 423_DP_ibverbs= 424_DP_mlx4= ibverbs pthread 425_DP_mlx5= ibverbs pthread 426_DP_rdmacm= ibverbs 427_DP_osmcomp= pthread 428_DP_opensm= pthread 429_DP_osmvendor= ibumad pthread 430.endif 431 432# Define special cases 433LDADD_supcplusplus= -lsupc++ 434LIBATF_C= ${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c.a 435LIBATF_CXX= ${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c++.a 436LDADD_atf_c= -lprivateatf-c 437LDADD_atf_cxx= -lprivateatf-c++ 438 439LIBGMOCK= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock.a 440LIBGMOCK_MAIN= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock_main.a 441LIBGTEST= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest.a 442LIBGTEST_MAIN= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest_main.a 443LDADD_gmock= -lprivategmock 444LDADD_gtest= -lprivategtest 445LDADD_gmock_main= -lprivategmock_main 446LDADD_gtest_main= -lprivategtest_main 447 448.for _l in ${_PRIVATELIBS} 449LIB${_l:tu}?= ${LIBDESTDIR}${LIBDIR_BASE}/libprivate${_l}.a 450.endfor 451 452.if ${MK_PIE} != "no" 453PIE_SUFFIX= _pie 454.endif 455 456.for _l in ${_LIBRARIES} 457.if ${_INTERNALLIBS:M${_l}} || !defined(SYSROOT) 458LDADD_${_l}_L+= -L${LIB${_l:tu}DIR} 459.endif 460DPADD_${_l}?= ${LIB${_l:tu}} 461.if ${_PRIVATELIBS:M${_l}} 462LDADD_${_l}?= -lprivate${_l} 463.elif ${_INTERNALLIBS:M${_l}} 464LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l:S/${PIE_SUFFIX}//}${PIE_SUFFIX} 465.else 466LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l} 467.endif 468# Add in all dependencies for static linkage. 469# Bootstrapping from non-FreeBSD needs special handling, since it overrides 470# NO_SHARED back to yes despite only building static versions of bootstrap 471# libraries (see tools/build/mk/Makefile.boot.pre). 472.if defined(_DP_${_l}) && (${_INTERNALLIBS:M${_l}} || \ 473 (defined(NO_SHARED) && ${NO_SHARED:tl} != "no") || \ 474 (defined(BOOTSTRAPPING) && ${.MAKE.OS} != "FreeBSD")) 475.for _d in ${_DP_${_l}} 476DPADD_${_l}+= ${DPADD_${_d}} 477LDADD_${_l}+= ${LDADD_${_d}} 478.endfor 479.endif 480.endfor 481 482# These are special cases where the library is broken and anything that uses 483# it needs to add more dependencies. Broken usually means that it has a 484# cyclic dependency and cannot link its own dependencies. This is bad, please 485# fix the library instead. 486# Unless the library itself is broken then the proper place to define 487# dependencies is _DP_* above. 488 489# libatf-c++ exposes libatf-c abi hence we need to explicit link to atf_c for 490# atf_cxx 491DPADD_atf_cxx+= ${DPADD_atf_c} 492LDADD_atf_cxx+= ${LDADD_atf_c} 493 494DPADD_gmock+= ${DPADD_gtest} 495LDADD_gmock+= ${LDADD_gtest} 496 497DPADD_gmock_main+= ${DPADD_gmock} 498LDADD_gmock_main+= ${LDADD_gmock} 499 500DPADD_gtest_main+= ${DPADD_gtest} 501LDADD_gtest_main+= ${LDADD_gtest} 502 503# Detect LDADD/DPADD that should be LIBADD, before modifying LDADD here. 504_BADLDADD= 505.for _l in ${LDADD:M-l*:N-l*/*:C,^-l,,} 506.if ${_LIBRARIES:M${_l}} && !${_PRIVATELIBS:M${_l}} 507_BADLDADD+= ${_l} 508.endif 509.endfor 510.if !empty(_BADLDADD) 511.error ${.CURDIR}: These libraries should be LIBADD+=foo rather than DPADD/LDADD+=-lfoo: ${_BADLDADD} 512.endif 513 514.for _l in ${LIBADD} 515DPADD+= ${DPADD_${_l}} 516LDADD+= ${LDADD_${_l}} 517.endfor 518 519_LIB_OBJTOP?= ${OBJTOP} 520# INTERNALLIB definitions. 521LIBELFTCDIR= ${_LIB_OBJTOP}/lib/libelftc 522LIBELFTC?= ${LIBELFTCDIR}/libelftc${PIE_SUFFIX}.a 523 524LIBLUADIR= ${_LIB_OBJTOP}/lib/liblua 525LIBLUA?= ${LIBLUADIR}/liblua${PIE_SUFFIX}.a 526 527LIBLUTOKDIR= ${_LIB_OBJTOP}/lib/liblutok 528LIBLUTOK?= ${LIBLUTOKDIR}/liblutok${PIE_SUFFIX}.a 529 530LIBPEDIR= ${_LIB_OBJTOP}/lib/libpe 531LIBPE?= ${LIBPEDIR}/libpe${PIE_SUFFIX}.a 532 533LIBOPENBSDDIR= ${_LIB_OBJTOP}/lib/libopenbsd 534LIBOPENBSD?= ${LIBOPENBSDDIR}/libopenbsd${PIE_SUFFIX}.a 535 536LIBSMDIR= ${_LIB_OBJTOP}/lib/libsm 537LIBSM?= ${LIBSMDIR}/libsm${PIE_SUFFIX}.a 538 539LIBSMDBDIR= ${_LIB_OBJTOP}/lib/libsmdb 540LIBSMDB?= ${LIBSMDBDIR}/libsmdb${PIE_SUFFIX}.a 541 542LIBSMUTILDIR= ${_LIB_OBJTOP}/lib/libsmutil 543LIBSMUTIL?= ${LIBSMUTILDIR}/libsmutil${PIE_SUFFIX}.a 544 545LIBNETBSDDIR?= ${_LIB_OBJTOP}/lib/libnetbsd 546LIBNETBSD?= ${LIBNETBSDDIR}/libnetbsd${PIE_SUFFIX}.a 547 548LIBVERSDIR?= ${_LIB_OBJTOP}/kerberos5/lib/libvers 549LIBVERS?= ${LIBVERSDIR}/libvers${PIE_SUFFIX}.a 550 551LIBSLDIR= ${_LIB_OBJTOP}/kerberos5/lib/libsl 552LIBSL?= ${LIBSLDIR}/libsl${PIE_SUFFIX}.a 553 554LIBIFCONFIGDIR= ${_LIB_OBJTOP}/lib/libifconfig 555LIBIFCONFIG?= ${LIBIFCONFIGDIR}/libifconfig${PIE_SUFFIX}.a 556 557LIBIPFDIR= ${_LIB_OBJTOP}/sbin/ipf/libipf 558LIBIPF?= ${LIBIPFDIR}/libipf${PIE_SUFFIX}.a 559 560LIBISCSIUTILDIR= ${_LIB_OBJTOP}/lib/libiscsiutil 561LIBISCSIUTIL?= ${LIBISCSIUTILDIR}/libiscsiutil${PIE_SUFFIX}.a 562 563LIBTELNETDIR= ${_LIB_OBJTOP}/lib/libtelnet 564LIBTELNET?= ${LIBTELNETDIR}/libtelnet${PIE_SUFFIX}.a 565 566LIBCRONDIR= ${_LIB_OBJTOP}/usr.sbin/cron/lib 567LIBCRON?= ${LIBCRONDIR}/libcron${PIE_SUFFIX}.a 568 569LIBNTPDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libntp 570LIBNTP?= ${LIBNTPDIR}/libntp${PIE_SUFFIX}.a 571 572LIBNTPEVENTDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libntpevent 573LIBNTPEVENT?= ${LIBNTPEVENTDIR}/libntpevent${PIE_SUFFIX}.a 574 575LIBOPTSDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libopts 576LIBOPTS?= ${LIBOPTSDIR}/libopts${PIE_SUFFIX}.a 577 578LIBPARSEDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libparse 579LIBPARSE?= ${LIBPARSEDIR}/libparse${PIE_SUFFIX}.a 580 581LIBPFCTL= ${_LIB_OBJTOP}/lib/libpfctl 582LIBPFCTL?= ${LIBPFCTLDIR}/libpfctl${PIE_SUFFIX}.a 583 584LIBLPRDIR= ${_LIB_OBJTOP}/usr.sbin/lpr/common_source 585LIBLPR?= ${LIBLPRDIR}/liblpr${PIE_SUFFIX}.a 586 587LIBFIFOLOGDIR= ${_LIB_OBJTOP}/usr.sbin/fifolog/lib 588LIBFIFOLOG?= ${LIBFIFOLOGDIR}/libfifolog${PIE_SUFFIX}.a 589 590LIBBSNMPTOOLSDIR= ${_LIB_OBJTOP}/usr.sbin/bsnmpd/tools/libbsnmptools 591LIBBSNMPTOOLS?= ${LIBBSNMPTOOLSDIR}/libbsnmptools${PIE_SUFFIX}.a 592 593LIBBE?= ${LIBBEDIR}/libbe${PIE_SUFFIX}.a 594 595LIBPMCSTATDIR= ${_LIB_OBJTOP}/lib/libpmcstat 596LIBPMCSTAT?= ${LIBPMCSTATDIR}/libpmcstat${PIE_SUFFIX}.a 597 598LIBWPAAPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/ap 599LIBWPAAP?= ${LIBWPAAPDIR}/libwpaap${PIE_SUFFIX}.a 600 601LIBWPACOMMONDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/common 602LIBWPACOMMON?= ${LIBWPACOMMONDIR}/libwpacommon${PIE_SUFFIX}.a 603 604LIBWPACRYPTODIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/crypto 605LIBWPACRYPTO?= ${LIBWPACRYPTODIR}/libwpacrypto${PIE_SUFFIX}.a 606 607LIBWPADRIVERSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/drivers 608LIBWPADRIVERS?= ${LIBWPADRIVERSDIR}/libwpadrivers${PIE_SUFFIX}.a 609 610LIBWPAEAP_COMMONDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_common 611LIBWPAEAP_COMMON?= ${LIBWPAEAP_COMMONDIR}/libwpaeap_common${PIE_SUFFIX}.a 612 613LIBWPAEAP_PEERDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_peer 614LIBWPAEAP_PEER?= ${LIBWPAEAP_PEERDIR}/libwpaeap_peer${PIE_SUFFIX}.a 615 616LIBWPAEAP_SERVERDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_server 617LIBWPAEAP_SERVER?= ${LIBWPAEAP_SERVERDIR}/libwpaeap_server${PIE_SUFFIX}.a 618 619LIBWPAEAPOL_AUTHDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_auth 620LIBWPAEAPOL_AUTH?= ${LIBWPAEAPOL_AUTHDIR}/libwpaeapol_auth${PIE_SUFFIX}.a 621 622LIBWPAEAPOL_SUPPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_supp 623LIBWPAEAPOL_SUPP?= ${LIBWPAEAPOL_SUPPDIR}/libwpaeapol_supp${PIE_SUFFIX}.a 624 625LIBWPAL2_PACKETDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/l2_packet 626LIBWPAL2_PACKET?= ${LIBWPAL2_PACKETDIR}/libwpal2_packet${PIE_SUFFIX}.a 627 628LIBWPARADIUSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/radius 629LIBWPARADIUS?= ${LIBWPARADIUSDIR}/libwparadius${PIE_SUFFIX}.a 630 631LIBWPARSN_SUPPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/rsn_supp 632LIBWPARSN_SUPP?= ${LIBWPARSN_SUPPDIR}/libwparsn_supp${PIE_SUFFIX}.a 633 634LIBWPATLSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/tls 635LIBWPATLS?= ${LIBWPATLSDIR}/libwpatls${PIE_SUFFIX}.a 636 637LIBWPAUTILSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/utils 638LIBWPAUTILS?= ${LIBWPAUTILSDIR}/libwpautils${PIE_SUFFIX}.a 639 640LIBWPAWPSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/wps 641LIBWPAWPS?= ${LIBWPAWPSDIR}/libwpawps${PIE_SUFFIX}.a 642 643LIBC_NOSSP_PICDIR= ${_LIB_OBJTOP}/lib/libc 644LIBC_NOSSP_PIC?= ${LIBC_NOSSP_PICDIR}/libc_nossp_pic.a 645 646# Define a directory for each library. This is useful for adding -L in when 647# not using a --sysroot or for meta mode bootstrapping when there is no 648# Makefile.depend. These are sorted by directory. 649LIBAVLDIR= ${OBJTOP}/cddl/lib/libavl 650LIBCTFDIR= ${OBJTOP}/cddl/lib/libctf 651LIBDTRACEDIR= ${OBJTOP}/cddl/lib/libdtrace 652LIBICPDIR= ${OBJTOP}/cddl/lib/libicp 653LIBNVPAIRDIR= ${OBJTOP}/cddl/lib/libnvpair 654LIBUMEMDIR= ${OBJTOP}/cddl/lib/libumem 655LIBUUTILDIR= ${OBJTOP}/cddl/lib/libuutil 656LIBZFSDIR= ${OBJTOP}/cddl/lib/libzfs 657LIBZFS_COREDIR= ${OBJTOP}/cddl/lib/libzfs_core 658LIBZFSBOOTENVDIR= ${OBJTOP}/cddl/lib/libzfsbootenv 659LIBZPOOLDIR= ${OBJTOP}/cddl/lib/libzpool 660LIBZUTILDIR= ${OBJTOP}/cddl/lib/libzutil 661LIBTPOOLDIR= ${OBJTOP}/cddl/lib/libtpool 662 663# OFED support 664LIBCXGB4DIR= ${OBJTOP}/lib/ofed/libcxgb4 665LIBIBCMDIR= ${OBJTOP}/lib/ofed/libibcm 666LIBIBMADDIR= ${OBJTOP}/lib/ofed/libibmad 667LIBIBNETDISCDIR=${OBJTOP}/lib/ofed/libibnetdisc 668LIBIBUMADDIR= ${OBJTOP}/lib/ofed/libibumad 669LIBIBVERBSDIR= ${OBJTOP}/lib/ofed/libibverbs 670LIBMLX4DIR= ${OBJTOP}/lib/ofed/libmlx4 671LIBMLX5DIR= ${OBJTOP}/lib/ofed/libmlx5 672LIBRDMACMDIR= ${OBJTOP}/lib/ofed/librdmacm 673LIBOSMCOMPDIR= ${OBJTOP}/lib/ofed/complib 674LIBOPENSMDIR= ${OBJTOP}/lib/ofed/libopensm 675LIBOSMVENDORDIR=${OBJTOP}/lib/ofed/libvendor 676 677LIBDIALOGDIR= ${OBJTOP}/gnu/lib/libdialog 678LIBSSPDIR= ${OBJTOP}/lib/libssp 679LIBSSP_NONSHAREDDIR= ${OBJTOP}/lib/libssp_nonshared 680LIBASN1DIR= ${OBJTOP}/kerberos5/lib/libasn1 681LIBGSSAPI_KRB5DIR= ${OBJTOP}/kerberos5/lib/libgssapi_krb5 682LIBGSSAPI_NTLMDIR= ${OBJTOP}/kerberos5/lib/libgssapi_ntlm 683LIBGSSAPI_SPNEGODIR= ${OBJTOP}/kerberos5/lib/libgssapi_spnego 684LIBHDBDIR= ${OBJTOP}/kerberos5/lib/libhdb 685LIBHEIMBASEDIR= ${OBJTOP}/kerberos5/lib/libheimbase 686LIBHEIMIPCCDIR= ${OBJTOP}/kerberos5/lib/libheimipcc 687LIBHEIMIPCSDIR= ${OBJTOP}/kerberos5/lib/libheimipcs 688LIBHEIMNTLMDIR= ${OBJTOP}/kerberos5/lib/libheimntlm 689LIBHX509DIR= ${OBJTOP}/kerberos5/lib/libhx509 690LIBKADM5CLNTDIR= ${OBJTOP}/kerberos5/lib/libkadm5clnt 691LIBKADM5SRVDIR= ${OBJTOP}/kerberos5/lib/libkadm5srv 692LIBKAFS5DIR= ${OBJTOP}/kerberos5/lib/libkafs5 693LIBKDCDIR= ${OBJTOP}/kerberos5/lib/libkdc 694LIBKRB5DIR= ${OBJTOP}/kerberos5/lib/libkrb5 695LIBROKENDIR= ${OBJTOP}/kerberos5/lib/libroken 696LIBWINDDIR= ${OBJTOP}/kerberos5/lib/libwind 697LIBATF_CDIR= ${OBJTOP}/lib/atf/libatf-c 698LIBATF_CXXDIR= ${OBJTOP}/lib/atf/libatf-c++ 699LIBGMOCKDIR= ${OBJTOP}/lib/googletest/gmock 700LIBGMOCK_MAINDIR= ${OBJTOP}/lib/googletest/gmock_main 701LIBGTESTDIR= ${OBJTOP}/lib/googletest/gtest 702LIBGTEST_MAINDIR= ${OBJTOP}/lib/googletest/gtest_main 703LIBALIASDIR= ${OBJTOP}/lib/libalias/libalias 704LIBBLACKLISTDIR= ${OBJTOP}/lib/libblacklist 705LIBBLOCKSRUNTIMEDIR= ${OBJTOP}/lib/libblocksruntime 706LIBBSNMPDIR= ${OBJTOP}/lib/libbsnmp/libbsnmp 707LIBCASPERDIR= ${OBJTOP}/lib/libcasper/libcasper 708LIBCAP_DNSDIR= ${OBJTOP}/lib/libcasper/services/cap_dns 709LIBCAP_GRPDIR= ${OBJTOP}/lib/libcasper/services/cap_grp 710LIBCAP_NETDIR= ${OBJTOP}/lib/libcasper/services/cap_net 711LIBCAP_PWDDIR= ${OBJTOP}/lib/libcasper/services/cap_pwd 712LIBCAP_SYSCTLDIR= ${OBJTOP}/lib/libcasper/services/cap_sysctl 713LIBCAP_SYSLOGDIR= ${OBJTOP}/lib/libcasper/services/cap_syslog 714LIBCBORDIR= ${OBJTOP}/lib/libcbor 715LIBBSDXMLDIR= ${OBJTOP}/lib/libexpat 716LIBFIDO2DIR= ${OBJTOP}/lib/libfido2 717LIBKVMDIR= ${OBJTOP}/lib/libkvm 718LIBPTHREADDIR= ${OBJTOP}/lib/libthr 719LIBMDIR= ${OBJTOP}/lib/msun 720LIBFORMWDIR= ${OBJTOP}/lib/ncurses/form 721LIBMENUWDIR= ${OBJTOP}/lib/ncurses/menu 722LIBNCURSESWDIR= ${OBJTOP}/lib/ncurses/ncurses 723LIBTINFOWDIR= ${OBJTOP}/lib/ncurses/tinfo 724LIBPANELWDIR= ${OBJTOP}/lib/ncurses/panel 725LIBCRYPTODIR= ${OBJTOP}/secure/lib/libcrypto 726LIBSPLDIR= ${OBJTOP}/cddl/lib/libspl 727LIBSSHDIR= ${OBJTOP}/secure/lib/libssh 728LIBSSLDIR= ${OBJTOP}/secure/lib/libssl 729LIBTEKENDIR= ${OBJTOP}/sys/teken/libteken 730LIBEGACYDIR= ${OBJTOP}/tools/build 731LIBLNDIR= ${OBJTOP}/usr.bin/lex/lib 732 733LIBTERMCAPWDIR= ${LIBTINFOWDIR} 734 735# Default other library directories to lib/libNAME. 736.for lib in ${_LIBRARIES} 737LIB${lib:tu}DIR?= ${OBJTOP}/lib/lib${lib} 738.endfor 739 740# Validate that listed LIBADD are valid. 741.for _l in ${LIBADD} 742.if empty(_LIBRARIES:M${_l}) 743_BADLIBADD+= ${_l} 744.endif 745.endfor 746.if !empty(_BADLIBADD) 747.error ${.CURDIR}: Invalid LIBADD used which may need to be added to ${_this:T}: ${_BADLIBADD} 748.endif 749 750# Sanity check that libraries are defined here properly when building them. 751.if defined(LIB) && ${_LIBRARIES:M${LIB}} != "" 752.if !empty(LIBADD) && \ 753 (!defined(_DP_${LIB}) || ${LIBADD:O:u} != ${_DP_${LIB}:O:u}) 754.error ${.CURDIR}: Missing or incorrect _DP_${LIB} entry in ${_this:T}. Should match LIBADD for ${LIB} ('${LIBADD}' vs '${_DP_${LIB}}') 755.endif 756# Note that OBJTOP is not yet defined here but for the purpose of the check 757# it is fine as it resolves to the SRC directory. 758.if !defined(LIB${LIB:tu}DIR) || !exists(${SRCTOP}/${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,}) 759.error ${.CURDIR}: Missing or incorrect value for LIB${LIB:tu}DIR in ${_this:T}: ${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,} 760.endif 761.if ${_INTERNALLIBS:M${LIB}} != "" && !defined(LIB${LIB:tu}) 762.error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}. Likely should be: LIB${LIB:tu}?= $${LIB${LIB:tu}DIR}/lib${LIB}.a 763.endif 764.endif 765 766.endif # !target(__<src.libnames.mk>__) 767