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