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