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