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