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 krb5profile \ 63 krb5ss \ 64 lpr \ 65 lua \ 66 lutok \ 67 netbsd \ 68 ntp \ 69 ntpevent \ 70 nvmf \ 71 openbsd \ 72 opts \ 73 parse \ 74 pe \ 75 pfctl \ 76 pkgecc \ 77 pmcstat \ 78 sl \ 79 sm \ 80 smdb \ 81 smutil \ 82 telnet \ 83 util++ \ 84 vers \ 85 wpaap \ 86 wpacommon \ 87 wpacrypto \ 88 wpadrivers \ 89 wpaeap_common \ 90 wpaeap_peer \ 91 wpaeap_server \ 92 wpaeapol_auth \ 93 wpaeapol_supp \ 94 wpal2_packet \ 95 wpapasn \ 96 wparadius \ 97 wparsn_supp \ 98 wpatls \ 99 wpautils \ 100 wpawps 101 102# Let projects based on FreeBSD append to _INTERNALLIBS 103# by maintaining their own LOCAL_INTERNALLIBS list. 104_INTERNALLIBS+= ${LOCAL_INTERNALLIBS} 105 106_LIBRARIES= \ 107 ${_PRIVATELIBS} \ 108 ${_INTERNALLIBS} \ 109 ${LOCAL_LIBRARIES} \ 110 80211 \ 111 9p \ 112 alias \ 113 archive \ 114 asn1 \ 115 avl \ 116 BlocksRuntime \ 117 be \ 118 begemot \ 119 bluetooth \ 120 bsdxml \ 121 bsm \ 122 bsnmp \ 123 bz2 \ 124 c \ 125 c_pic \ 126 calendar \ 127 cam \ 128 casper \ 129 cap_dns \ 130 cap_fileargs \ 131 cap_grp \ 132 cap_net \ 133 cap_netdb \ 134 cap_pwd \ 135 cap_sysctl \ 136 cap_syslog \ 137 com_err \ 138 compiler_rt \ 139 crypt \ 140 crypto \ 141 ctf \ 142 cuse \ 143 cxxrt \ 144 devctl \ 145 devdctl \ 146 devinfo \ 147 devstat \ 148 dialog \ 149 dl \ 150 dpv \ 151 dtrace \ 152 dwarf \ 153 edit \ 154 efivar \ 155 elf \ 156 execinfo \ 157 fetch \ 158 figpar \ 159 formw \ 160 geom \ 161 gpio \ 162 gssapi \ 163 gssapi_krb5 \ 164 gssrpc \ 165 hdb \ 166 heimbase \ 167 heimntlm \ 168 heimsqlite \ 169 hx509 \ 170 icp \ 171 ipsec \ 172 ipt \ 173 jail \ 174 k5crypto \ 175 kadm5 \ 176 kadmin_common \ 177 kafs5 \ 178 kdb5 \ 179 kdc \ 180 kiconv \ 181 krad \ 182 krb5 \ 183 krb5profile \ 184 krb5support \ 185 kvm \ 186 l \ 187 lzma \ 188 m \ 189 magic \ 190 md \ 191 memstat \ 192 mp \ 193 mt \ 194 ncursesw \ 195 netgraph \ 196 netmap \ 197 ngatm \ 198 nv \ 199 nvpair \ 200 opencsd \ 201 pam \ 202 panel \ 203 panelw \ 204 pcap \ 205 pcsclite \ 206 pjdlog \ 207 pmc \ 208 proc \ 209 procstat \ 210 pthread \ 211 radius \ 212 regex \ 213 roken \ 214 rpcsec_gss \ 215 rpcsvc \ 216 rt \ 217 rtld_db \ 218 sbuf \ 219 sdp \ 220 sm \ 221 smb \ 222 spl \ 223 ssl \ 224 ssp_nonshared \ 225 stats \ 226 stdthreads \ 227 supcplusplus \ 228 sys \ 229 sysdecode \ 230 tacplus \ 231 termcapw \ 232 tinfow \ 233 ufs \ 234 ugidfw \ 235 ulog \ 236 umem \ 237 usb \ 238 usbhid \ 239 util \ 240 uvmem \ 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 bnxtre \ 288 rdmacm \ 289 osmcomp \ 290 opensm \ 291 osmvendor 292.endif 293 294.if ${MK_BEARSSL} == "yes" 295_LIBRARIES+= \ 296 bearssl \ 297 secureboot \ 298 299LIBBEARSSL?= ${LIBBEARSSLDIR}/libbearssl.a 300LIBSECUREBOOT?= ${LIBSECUREBOOTDIR}/libsecureboot.a 301.endif 302 303.if ${MK_VERIEXEC} == "yes" 304_LIBRARIES+= veriexec 305 306LIBVERIEXEC?= ${LIBVERIEXECDIR}/libveriexec.a 307.endif 308 309# Each library's LIBADD needs to be duplicated here for static linkage of 310# 2nd+ order consumers. Auto-generating this would be better. 311_DP_80211= sbuf bsdxml 312_DP_9p= sbuf 313.if ${MK_CASPER} != "no" 314_DP_9p+= casper cap_pwd cap_grp 315.endif 316 317# XXX: Not bootstrapped so uses host version on non-FreeBSD, so don't use a 318# FreeBSD-specific dependency list 319.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) 320_DP_archive= z bz2 lzma bsdxml zstd 321.endif 322_DP_avl= spl 323_DP_bsddialog= ncursesw tinfow 324_DP_zstd= pthread 325.if ${MK_BLACKLIST} != "no" 326_DP_blacklist+= pthread 327.endif 328.if ${MK_BLOCKLIST} != "no" 329_DP_blocklist+= pthread 330.endif 331_DP_crypto= pthread 332# See comment by _DP_archive above 333.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) 334.if ${MK_OPENSSL} != "no" 335_DP_archive+= crypto 336.else 337_DP_archive+= md 338.endif 339.endif 340_DP_sqlite3= pthread 341_DP_ssl= pthread crypto 342_DP_ssh= crypto crypt z 343.if ${MK_LDNS} != "no" 344_DP_ssh+= ldns 345.endif 346_DP_edit= tinfow 347.if ${MK_OPENSSL} != "no" 348_DP_bsnmp= crypto 349.endif 350_DP_geom= bsdxml sbuf 351_DP_cam= sbuf 352_DP_kldelf= elf 353_DP_kvm= elf 354_DP_casper= nv 355_DP_cap_dns= nv 356_DP_cap_fileargs= nv 357_DP_cap_grp= nv 358_DP_cap_pwd= nv 359_DP_cap_sysctl= nv 360_DP_cap_syslog= nv 361_DP_crypt= md 362.if ${MK_OFED} != "no" 363_DP_pcap= ibverbs mlx5 bnxtre 364.endif 365_DP_pjdlog= util 366_DP_usb= pthread 367_DP_unbound= ssl crypto pthread 368_DP_rt= pthread 369.if ${MK_OPENSSL} == "no" 370_DP_radius= md 371.else 372_DP_radius= crypto 373.endif 374_DP_rtld_db= elf procstat 375_DP_procstat= kvm util elf 376_DP_proc= cxxrt 377.if ${MK_CDDL} != "no" 378_DP_proc+= ctf 379.endif 380_DP_proc+= elf procstat rtld_db util z 381_DP_mp= crypto 382_DP_memstat= kvm 383_DP_magic= z 384_DP_mt= sbuf bsdxml 385_DP_nvmf= nv 386_DP_ldns= ssl crypto 387_DP_lua= m 388_DP_lutok= lua 389.if ${MK_OPENSSL} != "no" 390_DP_fetch= ssl crypto 391.else 392_DP_fetch= md 393.endif 394_DP_execinfo= elf 395_DP_dwarf= elf z 396_DP_dpv= dialog figpar util tinfow ncursesw 397_DP_dialog= tinfow ncursesw m 398_DP_cuse= pthread 399_DP_atf_cxx= atf_c 400_DP_gtest= pthread regex 401_DP_gmock= gtest 402_DP_gmock_main= gmock 403_DP_gtest_main= gtest 404_DP_devstat= kvm 405_DP_pam= radius tacplus md util 406.if ${MK_KERBEROS} != "no" && ${MK_MITKRB5} != "no" 407_DP_pam+= krb5 408.endif 409.if ${MK_OPENSSH} != "no" 410_DP_fido2+= crypto z 411_DP_pam+= ssh 412.endif 413.if ${MK_NIS} != "no" 414_DP_pam+= ypclnt 415.endif 416.if ${MK_KERBEROS} != "no" 417.if ${MK_MITKRB5} != "no" 418# _DP_krb5support= no dependencies except for libc 419# _DP_verto= no dependencies except for libc 420# _DP_apputils= no dependencies except for libc 421_DP_com_err= krb5support 422_DP_k5crypto= com_err krb5support crypto 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 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_uvmem= pthread 493_DP_zfs= md pthread rt umem util m avl bsdxml crypto geom nvpair \ 494 z zfs_core zutil 495_DP_zfsbootenv= zfs nvpair 496_DP_zfs_core= nvpair spl zutil 497_DP_zpool= md pthread z icp spl nvpair avl umem 498_DP_zutil= avl geom m 499_DP_be= zfs spl nvpair zfsbootenv 500_DP_netmap= 501_DP_ifconfig= m 502_DP_pfctl= nv 503_DP_krb5ss= edit 504 505# OFED support 506.if ${MK_OFED} != "no" 507_DP_cxgb4= ibverbs pthread 508_DP_ibcm= ibverbs 509_DP_ibmad= ibumad 510_DP_ibnetdisc= osmcomp ibmad ibumad 511_DP_ibumad= 512_DP_ibverbs= 513_DP_irdma= ibverbs pthread 514_DP_mlx4= ibverbs pthread 515_DP_mlx5= ibverbs pthread 516_DP_bnxtre= 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 770LIBUVMEMDIR= ${OBJTOP}/lib/libuvmem 771LIBUVMEM?= ${LIBUVMEMDIR}/libuvmem${PIE_SUFFIX}.a 772 773# Define a directory for each library. This is useful for adding -L in when 774# not using a --sysroot or for meta mode bootstrapping when there is no 775# Makefile.depend. These are sorted by directory. 776LIBAVLDIR= ${_LIB_OBJTOP}/cddl/lib/libavl 777LIBCTFDIR= ${_LIB_OBJTOP}/cddl/lib/libctf 778LIBDTRACEDIR= ${_LIB_OBJTOP}/cddl/lib/libdtrace 779LIBICPDIR= ${_LIB_OBJTOP}/cddl/lib/libicp 780LIBICP?= ${LIBICPDIR}/libicp${PIE_SUFFIX}.a 781LIBICP_RESCUEDIR= ${_LIB_OBJTOP}/cddl/lib/libicp_rescue 782LIBICP_RESCUE?= ${LIBICP_RESCUEDIR}/libicp_rescue${PIE_SUFFIX}.a 783LIBNVPAIRDIR= ${_LIB_OBJTOP}/cddl/lib/libnvpair 784LIBNVPAIR?= ${LIBNVPAIRDIR}/libnvpair${PIE_SUFFIX}.a 785LIBUMEMDIR= ${_LIB_OBJTOP}/cddl/lib/libumem 786LIBZDBDIR= ${_LIB_OBJTOP}/cddl/lib/libzdb 787LIBZDB?= ${LIBZDBDIR}/libzdb${PIE_SUFFIX}.a 788LIBZFSDIR= ${_LIB_OBJTOP}/cddl/lib/libzfs 789LIBZFS?= ${LIBZFSDIR}/libzfs${PIE_SUFFIX}.a 790LIBZFS_COREDIR= ${_LIB_OBJTOP}/cddl/lib/libzfs_core 791LIBZFS_CORE?= ${LIBZFS_COREDIR}/libzfs_core${PIE_SUFFIX}.a 792LIBZFSBOOTENVDIR= ${_LIB_OBJTOP}/cddl/lib/libzfsbootenv 793LIBZFSBOOTENV?= ${LIBZFSBOOTENVDIR}/libzfsbootenv${PIE_SUFFIX}.a 794LIBZPOOLDIR= ${_LIB_OBJTOP}/cddl/lib/libzpool 795LIBZPOOL?= ${LIBZPOOLDIR}/libzpool${PIE_SUFFIX}.a 796LIBZUTILDIR= ${_LIB_OBJTOP}/cddl/lib/libzutil 797LIBZUTIL?= ${LIBZUTILDIR}/libzutil${PIE_SUFFIX}.a 798 799# OFED support 800LIBCXGB4DIR= ${_LIB_OBJTOP}/lib/ofed/libcxgb4 801LIBIBCMDIR= ${_LIB_OBJTOP}/lib/ofed/libibcm 802LIBIBMADDIR= ${_LIB_OBJTOP}/lib/ofed/libibmad 803LIBIBNETDISCDIR=${_LIB_OBJTOP}/lib/ofed/libibnetdisc 804LIBIBUMADDIR= ${_LIB_OBJTOP}/lib/ofed/libibumad 805LIBIBVERBSDIR= ${_LIB_OBJTOP}/lib/ofed/libibverbs 806LIBIRDMADIR= ${_LIB_OBJTOP}/lib/ofed/libirdma 807LIBMLX4DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx4 808LIBMLX5DIR= ${_LIB_OBJTOP}/lib/ofed/libmlx5 809LIBBNXTREDIR= ${_LIB_OBJTOP}/lib/ofed/libbnxtre 810LIBRDMACMDIR= ${_LIB_OBJTOP}/lib/ofed/librdmacm 811LIBOSMCOMPDIR= ${_LIB_OBJTOP}/lib/ofed/complib 812LIBOPENSMDIR= ${_LIB_OBJTOP}/lib/ofed/libopensm 813LIBOSMVENDORDIR=${_LIB_OBJTOP}/lib/ofed/libvendor 814 815LIBDIALOGDIR= ${_LIB_OBJTOP}/gnu/lib/libdialog 816LIBSSPDIR= ${_LIB_OBJTOP}/lib/libssp 817LIBSSP_NONSHAREDDIR= ${_LIB_OBJTOP}/lib/libssp_nonshared 818.if ${MK_MITKRB5} != "no" 819LIBAPPUTILSDIR= ${_LIB_OBJTOP}/krb5/lib/apputils 820LIBAPPUTILS?= ${LIBAPPUTILSDIR}/libapputils${PIE_SUFFIX}.a 821LIBGSSAPI_KRB5DIR= ${_LIB_OBJTOP}/krb5/lib/gssapi 822LIBGSSAPI_KRB5?= ${LIBGSSAPI_KRB5DIR}/libgssapi_krb5${PIE_SUFFIX}.a 823LIBGSSRPCDIR= ${_LIB_OBJTOP}/krb5/lib/rpc 824LIBGSSRPC?= ${LIBGSSRPCDIR}/libgssrpc${PIE_SUFFIX}.a 825LIBK5CRYPTODIR= ${_LIB_OBJTOP}/krb5/lib/crypto 826LIBK5CRYPTO?= ${LIBK5CRYPTODIR}/libk5crypto${PIE_SUFFIX}.a 827LIBK5GSSRPCDIR= ${_LIB_OBJTOP}/krb5/lib/rpc 828LIBK5GSSRPC?= ${LIBK5GSSRPCDIR}/libgssrpc${PIE_SUFFIX}.a 829LIBKADM5CLNT_MITDIR= ${_LIB_OBJTOP}/krb5/lib/kadm5clnt 830LIBKADM5CLNT_MIT?= ${LIBKADM5CLNT_MITDIR}/libkadm5clnt_mit${PIE_SUFFIX}.a 831LIBKADM5SRV_MITDIR= ${_LIB_OBJTOP}/krb5/lib/kadm5srv 832LIBKADM5SRV_MIT?= ${LIBKADM5SRV_MITDIR}/libkadm5srv_mit${PIE_SUFFIX}.a 833LIBKADMIN_COMMONDIR= ${_LIB_OBJTOP}/krb5/lib/kadmin_common 834LIBKADMIN_COMMON?= ${LIBKADMIN_COMMONDIR}/libkadmin_common${PIE_SUFFIX}.a 835LIBKDB5DIR= ${_LIB_OBJTOP}/krb5/lib/kdb 836LIBKDB5?= ${LIBKDB5DIR}/libkdb5${PIE_SUFFIX}.a 837LIBKPROP_UTILDIR= ${_LIB_OBJTOP}/krb5/lib/kprop_util 838LIBKPROP_UTIL?= ${LIBKPROP_UTILDIR}/libkprop_util${PIE_SUFFIX}.a 839LIBKRADDIR= ${_LIB_OBJTOP}/krb5/lib/krad 840LIBKRAD?= ${LIBKRADDIR}/libkrad${PIE_SUFFIX}.a 841LIBKRB5DIR= ${_LIB_OBJTOP}/krb5/lib/krb5 842LIBKRB5?= ${LIBKRB5DIR}/libkrb5${PIE_SUFFIX}.a 843LIBKRB5SSDIR= ${_LIB_OBJTOP}/krb5/util/ss 844LIBKRB5SS?= ${LIBKRB5SUPPORTDIR}/libkrb5ss${PIE_SUFFIX}.a 845LIBKRB5SUPPORTDIR= ${_LIB_OBJTOP}/krb5/util/support 846LIBKRB5SUPPORT?= ${LIBKRB5SUPPORTDIR}/libkrb5support${PIE_SUFFIX}.a 847LIBKRB5PROFILEDIR= ${_LIB_OBJTOP}/krb5/util/profile 848LIBKRB5PROFILE?= ${LIBPROFILEDIR}/libkrb5profile${PIE_SUFFIX}.a 849LIBVERTODIR= ${_LIB_OBJTOP}/krb5/util/verto 850LIBVERTO?= ${LIBVERTODIR}/libverto${PIE_SUFFIX}.a 851.else 852LIBASN1DIR= ${_LIB_OBJTOP}/kerberos5/lib/libasn1 853LIBGSSAPI_KRB5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_krb5 854LIBGSSAPI_NTLMDIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_ntlm 855LIBGSSAPI_SPNEGODIR= ${_LIB_OBJTOP}/kerberos5/lib/libgssapi_spnego 856LIBHDBDIR= ${_LIB_OBJTOP}/kerberos5/lib/libhdb 857LIBHEIMBASEDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimbase 858LIBHEIMIPCCDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimipcc 859LIBHEIMIPCSDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimipcs 860LIBHEIMNTLMDIR= ${_LIB_OBJTOP}/kerberos5/lib/libheimntlm 861LIBHX509DIR= ${_LIB_OBJTOP}/kerberos5/lib/libhx509 862LIBKADM5CLNTDIR= ${_LIB_OBJTOP}/kerberos5/lib/libkadm5clnt 863LIBKADM5SRVDIR= ${_LIB_OBJTOP}/kerberos5/lib/libkadm5srv 864LIBKAFS5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libkafs5 865LIBKDCDIR= ${_LIB_OBJTOP}/kerberos5/lib/libkdc 866LIBKRB5DIR= ${_LIB_OBJTOP}/kerberos5/lib/libkrb5 867LIBROKENDIR= ${_LIB_OBJTOP}/kerberos5/lib/libroken 868LIBWINDDIR= ${_LIB_OBJTOP}/kerberos5/lib/libwind 869.endif 870LIBATF_CDIR= ${_LIB_OBJTOP}/lib/atf/libatf-c 871LIBATF_CXXDIR= ${_LIB_OBJTOP}/lib/atf/libatf-c++ 872LIBGMOCKDIR= ${_LIB_OBJTOP}/lib/googletest/gmock 873LIBGMOCK_MAINDIR= ${_LIB_OBJTOP}/lib/googletest/gmock_main 874LIBGTESTDIR= ${_LIB_OBJTOP}/lib/googletest/gtest 875LIBGTEST_MAINDIR= ${_LIB_OBJTOP}/lib/googletest/gtest_main 876LIBALIASDIR= ${_LIB_OBJTOP}/lib/libalias/libalias 877LIBBLACKLISTDIR= ${_LIB_OBJTOP}/lib/libblacklist 878LIBBLOCKLISTDIR= ${_LIB_OBJTOP}/lib/libblocklist 879LIBBLOCKSRUNTIMEDIR= ${_LIB_OBJTOP}/lib/libblocksruntime 880LIBBSNMPDIR= ${_LIB_OBJTOP}/lib/libbsnmp/libbsnmp 881LIBCASPERDIR= ${_LIB_OBJTOP}/lib/libcasper/libcasper 882LIBCAP_DNSDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_dns 883LIBCAP_GRPDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_grp 884LIBCAP_NETDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_net 885LIBCAP_PWDDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_pwd 886LIBCAP_SYSCTLDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_sysctl 887LIBCAP_SYSLOGDIR= ${_LIB_OBJTOP}/lib/libcasper/services/cap_syslog 888LIBCBORDIR= ${_LIB_OBJTOP}/lib/libcbor 889LIBBSDXMLDIR= ${_LIB_OBJTOP}/lib/libexpat 890LIBFIDO2DIR= ${_LIB_OBJTOP}/lib/libfido2 891LIBKVMDIR= ${_LIB_OBJTOP}/lib/libkvm 892LIBPTHREADDIR= ${_LIB_OBJTOP}/lib/libthr 893LIBMDIR= ${_LIB_OBJTOP}/lib/msun 894LIBFORMWDIR= ${_LIB_OBJTOP}/lib/ncurses/form 895LIBMENUWDIR= ${_LIB_OBJTOP}/lib/ncurses/menu 896LIBNCURSESWDIR= ${_LIB_OBJTOP}/lib/ncurses/ncurses 897LIBTINFOWDIR= ${_LIB_OBJTOP}/lib/ncurses/tinfo 898LIBPANELWDIR= ${_LIB_OBJTOP}/lib/ncurses/panel 899LIBCRYPTODIR= ${_LIB_OBJTOP}/secure/lib/libcrypto 900LIBSPLDIR= ${_LIB_OBJTOP}/cddl/lib/libspl 901LIBSSHDIR= ${_LIB_OBJTOP}/secure/lib/libssh 902LIBSSLDIR= ${_LIB_OBJTOP}/secure/lib/libssl 903LIBTEKENDIR= ${_LIB_OBJTOP}/sys/teken/libteken 904LIBEGACYDIR= ${_LIB_OBJTOP}/tools/build 905LIBLNDIR= ${_LIB_OBJTOP}/usr.bin/lex/lib 906 907LIBTERMCAPWDIR= ${LIBTINFOWDIR} 908 909.-include <site.src.libnames.mk> 910 911# Default other library directories to lib/libNAME. 912.for lib in ${_LIBRARIES} 913LIB${lib:tu}DIR?= ${OBJTOP}/lib/lib${lib} 914.endfor 915 916# Validate that listed LIBADD are valid. 917.for _l in ${LIBADD} 918.if empty(_LIBRARIES:M${_l}) 919_BADLIBADD+= ${_l} 920.endif 921.endfor 922.if !empty(_BADLIBADD) 923.error ${.CURDIR}: Invalid LIBADD used which may need to be added to ${_this:T}: ${_BADLIBADD} 924.endif 925 926# Sanity check that libraries are defined here properly when building them. 927.if defined(LIB) && ${_LIBRARIES:M${LIB}} != "" 928.if !empty(LIBADD) && \ 929 (!defined(_DP_${LIB}) || ${LIBADD:O:u} != ${_DP_${LIB}:O:u}) 930.error ${.CURDIR}: Missing or incorrect _DP_${LIB} entry in ${_this:T}. Should match LIBADD for ${LIB} ('${LIBADD}' vs '${_DP_${LIB}}') 931.endif 932# Note that OBJTOP is not yet defined here but for the purpose of the check 933# it is fine as it resolves to the SRC directory. 934.if !defined(LIB${LIB:tu}DIR) || !exists(${SRCTOP}/${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,}) 935.error ${.CURDIR}: Missing or incorrect value for LIB${LIB:tu}DIR in ${_this:T}: ${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,} 936.endif 937.if ${_INTERNALLIBS:M${LIB}} != "" && !defined(LIB${LIB:tu}) 938.error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}. Likely should be: LIB${LIB:tu}?= $${LIB${LIB:tu}DIR}/lib${LIB}.a 939.endif 940.endif 941 942.endif # !target(__<src.libnames.mk>__) 943