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