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