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