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