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