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