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_zstd= pthread 264.if ${MK_BLACKLIST} != "no" 265_DP_blacklist+= pthread 266.endif 267_DP_crypto= pthread 268.if ${MK_OPENSSL} != "no" 269_DP_archive+= crypto 270.else 271_DP_archive+= md 272.endif 273_DP_sqlite3= pthread 274_DP_ssl= crypto 275_DP_ssh= crypto crypt z 276.if ${MK_LDNS} != "no" 277_DP_ssh+= ldns 278.endif 279_DP_edit= tinfow 280.if ${MK_OPENSSL} != "no" 281_DP_bsnmp= crypto 282.endif 283_DP_geom= bsdxml sbuf 284_DP_cam= sbuf 285_DP_kvm= elf 286_DP_casper= nv 287_DP_cap_dns= nv 288_DP_cap_fileargs= nv 289_DP_cap_grp= nv 290_DP_cap_pwd= nv 291_DP_cap_sysctl= nv 292_DP_cap_syslog= nv 293.if ${MK_OFED} != "no" 294_DP_pcap= ibverbs mlx5 295.endif 296_DP_pjdlog= util 297_DP_opie= md 298_DP_usb= pthread 299_DP_unbound= ssl crypto pthread 300_DP_rt= pthread 301.if ${MK_OPENSSL} == "no" 302_DP_radius= md 303.else 304_DP_radius= crypto 305.endif 306_DP_rtld_db= elf procstat 307_DP_procstat= kvm util elf 308.if ${MK_CXX} == "yes" 309_DP_proc= cxxrt 310.endif 311.if ${MK_CDDL} != "no" 312_DP_proc+= ctf 313.endif 314_DP_proc+= elf procstat rtld_db util 315_DP_mp= crypto 316_DP_memstat= kvm 317_DP_magic= z 318_DP_mt= sbuf bsdxml 319_DP_ldns= ssl crypto 320_DP_lua= m 321_DP_lutok= lua 322.if ${MK_OPENSSL} != "no" 323_DP_fetch= ssl crypto 324.else 325_DP_fetch= md 326.endif 327_DP_execinfo= elf 328_DP_dwarf= elf 329_DP_dpv= dialog figpar util tinfow ncursesw 330_DP_dialog= tinfow ncursesw m 331_DP_cuse= pthread 332_DP_atf_cxx= atf_c 333_DP_gtest= pthread regex 334_DP_gmock= gtest 335_DP_gmock_main= gmock 336_DP_gtest_main= gtest 337_DP_devstat= kvm 338_DP_pam= radius tacplus opie md util 339.if ${MK_KERBEROS} != "no" 340_DP_pam+= krb5 341.endif 342.if ${MK_OPENSSH} != "no" 343_DP_fido2+= crypto z 344_DP_pam+= ssh 345.endif 346.if ${MK_NIS} != "no" 347_DP_pam+= ypclnt 348.endif 349_DP_roken= crypt 350_DP_kadm5clnt= com_err krb5 roken 351_DP_kadm5srv= com_err hdb krb5 roken 352_DP_heimntlm= crypto com_err krb5 roken 353_DP_hx509= asn1 com_err crypto roken wind 354_DP_hdb= asn1 com_err krb5 roken sqlite3 355_DP_asn1= com_err roken 356_DP_kdc= roken hdb hx509 krb5 heimntlm asn1 crypto 357_DP_wind= com_err roken 358_DP_heimbase= pthread 359_DP_heimipcc= heimbase roken pthread 360_DP_heimipcs= heimbase roken pthread 361_DP_kafs5= asn1 krb5 roken 362_DP_krb5+= asn1 com_err crypt crypto hx509 roken wind heimbase heimipcc 363_DP_gssapi_krb5+= gssapi krb5 crypto roken asn1 com_err 364_DP_lzma= md pthread 365_DP_ucl= m 366_DP_vmmapi= util 367_DP_opencsd= cxxrt 368_DP_ctf= spl z 369_DP_dtrace= ctf elf proc pthread rtld_db 370_DP_xo= util 371_DP_ztest= geom m nvpair umem zpool pthread avl zfs_core spl zutil zfs uutil icp 372# The libc dependencies are not strictly needed but are defined to make the 373# assert happy. 374_DP_c= compiler_rt 375.if ${MK_SSP} != "no" && \ 376 (${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH:Mpower*} != "") 377_DP_c+= ssp_nonshared 378.endif 379_DP_stats= sbuf pthread 380_DP_stdthreads= pthread 381_DP_tacplus= md 382_DP_ncursesw= tinfow 383_DP_panelw= ncursesw 384_DP_rpcsec_gss= gssapi 385_DP_smb= kiconv 386_DP_ulog= md 387_DP_fifolog= z 388_DP_ipf= kvm 389_DP_tpool= spl 390_DP_uutil= avl spl 391_DP_zfs= md pthread umem util uutil m avl bsdxml crypto geom nvpair \ 392 z zfs_core zutil 393_DP_zfsbootenv= zfs nvpair 394_DP_zfs_core= nvpair 395_DP_zpool= md pthread z icp spl nvpair avl umem 396_DP_zutil= avl tpool 397_DP_be= zfs spl nvpair zfsbootenv 398_DP_netmap= 399_DP_ifconfig= m 400_DP_pfctl= nv 401 402# OFED support 403.if ${MK_OFED} != "no" 404_DP_cxgb4= ibverbs pthread 405_DP_ibcm= ibverbs 406_DP_ibmad= ibumad 407_DP_ibnetdisc= osmcomp ibmad ibumad 408_DP_ibumad= 409_DP_ibverbs= 410_DP_mlx4= ibverbs pthread 411_DP_mlx5= ibverbs pthread 412_DP_rdmacm= ibverbs 413_DP_osmcomp= pthread 414_DP_opensm= pthread 415_DP_osmvendor= ibumad pthread 416.endif 417 418# Define special cases 419LDADD_supcplusplus= -lsupc++ 420LIBATF_C= ${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c.a 421LIBATF_CXX= ${LIBDESTDIR}${LIBDIR_BASE}/libprivateatf-c++.a 422LDADD_atf_c= -lprivateatf-c 423LDADD_atf_cxx= -lprivateatf-c++ 424 425LIBGMOCK= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock.a 426LIBGMOCK_MAIN= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategmock_main.a 427LIBGTEST= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest.a 428LIBGTEST_MAIN= ${LIBDESTDIR}${LIBDIR_BASE}/libprivategtest_main.a 429LDADD_gmock= -lprivategmock 430LDADD_gtest= -lprivategtest 431LDADD_gmock_main= -lprivategmock_main 432LDADD_gtest_main= -lprivategtest_main 433 434.for _l in ${_PRIVATELIBS} 435LIB${_l:tu}?= ${LIBDESTDIR}${LIBDIR_BASE}/libprivate${_l}.a 436.endfor 437 438.if ${MK_PIE} != "no" 439PIE_SUFFIX= _pie 440.endif 441 442.for _l in ${_LIBRARIES} 443.if ${_INTERNALLIBS:M${_l}} || !defined(SYSROOT) 444LDADD_${_l}_L+= -L${LIB${_l:tu}DIR} 445.endif 446DPADD_${_l}?= ${LIB${_l:tu}} 447.if ${_PRIVATELIBS:M${_l}} 448LDADD_${_l}?= -lprivate${_l} 449.elif ${_INTERNALLIBS:M${_l}} 450LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l:S/${PIE_SUFFIX}//}${PIE_SUFFIX} 451.else 452LDADD_${_l}?= ${LDADD_${_l}_L} -l${_l} 453.endif 454# Add in all dependencies for static linkage. 455.if defined(_DP_${_l}) && (${_INTERNALLIBS:M${_l}} || \ 456 (defined(NO_SHARED) && ${NO_SHARED:tl} != "no")) 457.for _d in ${_DP_${_l}} 458DPADD_${_l}+= ${DPADD_${_d}} 459LDADD_${_l}+= ${LDADD_${_d}} 460.endfor 461.endif 462.endfor 463 464# These are special cases where the library is broken and anything that uses 465# it needs to add more dependencies. Broken usually means that it has a 466# cyclic dependency and cannot link its own dependencies. This is bad, please 467# fix the library instead. 468# Unless the library itself is broken then the proper place to define 469# dependencies is _DP_* above. 470 471# libatf-c++ exposes libatf-c abi hence we need to explicit link to atf_c for 472# atf_cxx 473DPADD_atf_cxx+= ${DPADD_atf_c} 474LDADD_atf_cxx+= ${LDADD_atf_c} 475 476DPADD_gmock+= ${DPADD_gtest} 477LDADD_gmock+= ${LDADD_gtest} 478 479DPADD_gmock_main+= ${DPADD_gmock} 480LDADD_gmock_main+= ${LDADD_gmock} 481 482DPADD_gtest_main+= ${DPADD_gtest} 483LDADD_gtest_main+= ${LDADD_gtest} 484 485# Detect LDADD/DPADD that should be LIBADD, before modifying LDADD here. 486_BADLDADD= 487.for _l in ${LDADD:M-l*:N-l*/*:C,^-l,,} 488.if ${_LIBRARIES:M${_l}} && !${_PRIVATELIBS:M${_l}} 489_BADLDADD+= ${_l} 490.endif 491.endfor 492.if !empty(_BADLDADD) 493.error ${.CURDIR}: These libraries should be LIBADD+=foo rather than DPADD/LDADD+=-lfoo: ${_BADLDADD} 494.endif 495 496.for _l in ${LIBADD} 497DPADD+= ${DPADD_${_l}} 498LDADD+= ${LDADD_${_l}} 499.endfor 500 501_LIB_OBJTOP?= ${OBJTOP} 502# INTERNALLIB definitions. 503LIBELFTCDIR= ${_LIB_OBJTOP}/lib/libelftc 504LIBELFTC?= ${LIBELFTCDIR}/libelftc${PIE_SUFFIX}.a 505 506LIBLUADIR= ${_LIB_OBJTOP}/lib/liblua 507LIBLUA?= ${LIBLUADIR}/liblua${PIE_SUFFIX}.a 508 509LIBLUTOKDIR= ${_LIB_OBJTOP}/lib/liblutok 510LIBLUTOK?= ${LIBLUTOKDIR}/liblutok${PIE_SUFFIX}.a 511 512LIBPEDIR= ${_LIB_OBJTOP}/lib/libpe 513LIBPE?= ${LIBPEDIR}/libpe${PIE_SUFFIX}.a 514 515LIBOPENBSDDIR= ${_LIB_OBJTOP}/lib/libopenbsd 516LIBOPENBSD?= ${LIBOPENBSDDIR}/libopenbsd${PIE_SUFFIX}.a 517 518LIBSMDIR= ${_LIB_OBJTOP}/lib/libsm 519LIBSM?= ${LIBSMDIR}/libsm${PIE_SUFFIX}.a 520 521LIBSMDBDIR= ${_LIB_OBJTOP}/lib/libsmdb 522LIBSMDB?= ${LIBSMDBDIR}/libsmdb${PIE_SUFFIX}.a 523 524LIBSMUTILDIR= ${_LIB_OBJTOP}/lib/libsmutil 525LIBSMUTIL?= ${LIBSMUTILDIR}/libsmutil${PIE_SUFFIX}.a 526 527LIBNETBSDDIR?= ${_LIB_OBJTOP}/lib/libnetbsd 528LIBNETBSD?= ${LIBNETBSDDIR}/libnetbsd${PIE_SUFFIX}.a 529 530LIBVERSDIR?= ${_LIB_OBJTOP}/kerberos5/lib/libvers 531LIBVERS?= ${LIBVERSDIR}/libvers${PIE_SUFFIX}.a 532 533LIBSLDIR= ${_LIB_OBJTOP}/kerberos5/lib/libsl 534LIBSL?= ${LIBSLDIR}/libsl${PIE_SUFFIX}.a 535 536LIBIFCONFIGDIR= ${_LIB_OBJTOP}/lib/libifconfig 537LIBIFCONFIG?= ${LIBIFCONFIGDIR}/libifconfig${PIE_SUFFIX}.a 538 539LIBIPFDIR= ${_LIB_OBJTOP}/sbin/ipf/libipf 540LIBIPF?= ${LIBIPFDIR}/libipf${PIE_SUFFIX}.a 541 542LIBTELNETDIR= ${_LIB_OBJTOP}/lib/libtelnet 543LIBTELNET?= ${LIBTELNETDIR}/libtelnet${PIE_SUFFIX}.a 544 545LIBCRONDIR= ${_LIB_OBJTOP}/usr.sbin/cron/lib 546LIBCRON?= ${LIBCRONDIR}/libcron${PIE_SUFFIX}.a 547 548LIBNTPDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libntp 549LIBNTP?= ${LIBNTPDIR}/libntp${PIE_SUFFIX}.a 550 551LIBNTPEVENTDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libntpevent 552LIBNTPEVENT?= ${LIBNTPEVENTDIR}/libntpevent${PIE_SUFFIX}.a 553 554LIBOPTSDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libopts 555LIBOPTS?= ${LIBOPTSDIR}/libopts${PIE_SUFFIX}.a 556 557LIBPARSEDIR= ${_LIB_OBJTOP}/usr.sbin/ntp/libparse 558LIBPARSE?= ${LIBPARSEDIR}/libparse${PIE_SUFFIX}.a 559 560LIBPFCTL= ${_LIB_OBJTOP}/lib/libpfctl 561LIBPFCTL?= ${LIBPFCTLDIR}/libpfctl${PIE_SUFFIX}.a 562 563LIBLPRDIR= ${_LIB_OBJTOP}/usr.sbin/lpr/common_source 564LIBLPR?= ${LIBLPRDIR}/liblpr${PIE_SUFFIX}.a 565 566LIBFIFOLOGDIR= ${_LIB_OBJTOP}/usr.sbin/fifolog/lib 567LIBFIFOLOG?= ${LIBFIFOLOGDIR}/libfifolog${PIE_SUFFIX}.a 568 569LIBBSNMPTOOLSDIR= ${_LIB_OBJTOP}/usr.sbin/bsnmpd/tools/libbsnmptools 570LIBBSNMPTOOLS?= ${LIBBSNMPTOOLSDIR}/libbsnmptools${PIE_SUFFIX}.a 571 572LIBBE?= ${LIBBEDIR}/libbe${PIE_SUFFIX}.a 573 574LIBPMCSTATDIR= ${_LIB_OBJTOP}/lib/libpmcstat 575LIBPMCSTAT?= ${LIBPMCSTATDIR}/libpmcstat${PIE_SUFFIX}.a 576 577LIBWPAAPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/ap 578LIBWPAAP?= ${LIBWPAAPDIR}/libwpaap${PIE_SUFFIX}.a 579 580LIBWPACOMMONDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/common 581LIBWPACOMMON?= ${LIBWPACOMMONDIR}/libwpacommon${PIE_SUFFIX}.a 582 583LIBWPACRYPTODIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/crypto 584LIBWPACRYPTO?= ${LIBWPACRYPTODIR}/libwpacrypto${PIE_SUFFIX}.a 585 586LIBWPADRIVERSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/drivers 587LIBWPADRIVERS?= ${LIBWPADRIVERSDIR}/libwpadrivers${PIE_SUFFIX}.a 588 589LIBWPAEAP_COMMONDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_common 590LIBWPAEAP_COMMON?= ${LIBWPAEAP_COMMONDIR}/libwpaeap_common${PIE_SUFFIX}.a 591 592LIBWPAEAP_PEERDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_peer 593LIBWPAEAP_PEER?= ${LIBWPAEAP_PEERDIR}/libwpaeap_peer${PIE_SUFFIX}.a 594 595LIBWPAEAP_SERVERDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eap_server 596LIBWPAEAP_SERVER?= ${LIBWPAEAP_SERVERDIR}/libwpaeap_server${PIE_SUFFIX}.a 597 598LIBWPAEAPOL_AUTHDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_auth 599LIBWPAEAPOL_AUTH?= ${LIBWPAEAPOL_AUTHDIR}/libwpaeapol_auth${PIE_SUFFIX}.a 600 601LIBWPAEAPOL_SUPPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/eapol_supp 602LIBWPAEAPOL_SUPP?= ${LIBWPAEAPOL_SUPPDIR}/libwpaeapol_supp${PIE_SUFFIX}.a 603 604LIBWPAL2_PACKETDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/l2_packet 605LIBWPAL2_PACKET?= ${LIBWPAL2_PACKETDIR}/libwpal2_packet${PIE_SUFFIX}.a 606 607LIBWPARADIUSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/radius 608LIBWPARADIUS?= ${LIBWPARADIUSDIR}/libwparadius${PIE_SUFFIX}.a 609 610LIBWPARSN_SUPPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/rsn_supp 611LIBWPARSN_SUPP?= ${LIBWPARSN_SUPPDIR}/libwparsn_supp${PIE_SUFFIX}.a 612 613LIBWPATLSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/tls 614LIBWPATLS?= ${LIBWPATLSDIR}/libwpatls${PIE_SUFFIX}.a 615 616LIBWPAUTILSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/utils 617LIBWPAUTILS?= ${LIBWPAUTILSDIR}/libwpautils${PIE_SUFFIX}.a 618 619LIBWPAWPSDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/wps 620LIBWPAWPS?= ${LIBWPAWPSDIR}/libwpawps${PIE_SUFFIX}.a 621 622LIBC_NOSSP_PICDIR= ${_LIB_OBJTOP}/lib/libc 623LIBC_NOSSP_PIC?= ${LIBC_NOSSP_PICDIR}/libc_nossp_pic.a 624 625# Define a directory for each library. This is useful for adding -L in when 626# not using a --sysroot or for meta mode bootstrapping when there is no 627# Makefile.depend. These are sorted by directory. 628LIBAVLDIR= ${OBJTOP}/cddl/lib/libavl 629LIBCTFDIR= ${OBJTOP}/cddl/lib/libctf 630LIBDTRACEDIR= ${OBJTOP}/cddl/lib/libdtrace 631LIBICPDIR= ${OBJTOP}/cddl/lib/libicp 632LIBNVPAIRDIR= ${OBJTOP}/cddl/lib/libnvpair 633LIBUMEMDIR= ${OBJTOP}/cddl/lib/libumem 634LIBUUTILDIR= ${OBJTOP}/cddl/lib/libuutil 635LIBZFSDIR= ${OBJTOP}/cddl/lib/libzfs 636LIBZFS_COREDIR= ${OBJTOP}/cddl/lib/libzfs_core 637LIBZFSBOOTENVDIR= ${OBJTOP}/cddl/lib/libzfsbootenv 638LIBZPOOLDIR= ${OBJTOP}/cddl/lib/libzpool 639LIBZUTILDIR= ${OBJTOP}/cddl/lib/libzutil 640LIBTPOOLDIR= ${OBJTOP}/cddl/lib/libtpool 641 642# OFED support 643LIBCXGB4DIR= ${OBJTOP}/lib/ofed/libcxgb4 644LIBIBCMDIR= ${OBJTOP}/lib/ofed/libibcm 645LIBIBMADDIR= ${OBJTOP}/lib/ofed/libibmad 646LIBIBNETDISCDIR=${OBJTOP}/lib/ofed/libibnetdisc 647LIBIBUMADDIR= ${OBJTOP}/lib/ofed/libibumad 648LIBIBVERBSDIR= ${OBJTOP}/lib/ofed/libibverbs 649LIBMLX4DIR= ${OBJTOP}/lib/ofed/libmlx4 650LIBMLX5DIR= ${OBJTOP}/lib/ofed/libmlx5 651LIBRDMACMDIR= ${OBJTOP}/lib/ofed/librdmacm 652LIBOSMCOMPDIR= ${OBJTOP}/lib/ofed/complib 653LIBOPENSMDIR= ${OBJTOP}/lib/ofed/libopensm 654LIBOSMVENDORDIR=${OBJTOP}/lib/ofed/libvendor 655 656LIBDIALOGDIR= ${OBJTOP}/gnu/lib/libdialog 657LIBSSPDIR= ${OBJTOP}/lib/libssp 658LIBSSP_NONSHAREDDIR= ${OBJTOP}/lib/libssp_nonshared 659LIBASN1DIR= ${OBJTOP}/kerberos5/lib/libasn1 660LIBGSSAPI_KRB5DIR= ${OBJTOP}/kerberos5/lib/libgssapi_krb5 661LIBGSSAPI_NTLMDIR= ${OBJTOP}/kerberos5/lib/libgssapi_ntlm 662LIBGSSAPI_SPNEGODIR= ${OBJTOP}/kerberos5/lib/libgssapi_spnego 663LIBHDBDIR= ${OBJTOP}/kerberos5/lib/libhdb 664LIBHEIMBASEDIR= ${OBJTOP}/kerberos5/lib/libheimbase 665LIBHEIMIPCCDIR= ${OBJTOP}/kerberos5/lib/libheimipcc 666LIBHEIMIPCSDIR= ${OBJTOP}/kerberos5/lib/libheimipcs 667LIBHEIMNTLMDIR= ${OBJTOP}/kerberos5/lib/libheimntlm 668LIBHX509DIR= ${OBJTOP}/kerberos5/lib/libhx509 669LIBKADM5CLNTDIR= ${OBJTOP}/kerberos5/lib/libkadm5clnt 670LIBKADM5SRVDIR= ${OBJTOP}/kerberos5/lib/libkadm5srv 671LIBKAFS5DIR= ${OBJTOP}/kerberos5/lib/libkafs5 672LIBKDCDIR= ${OBJTOP}/kerberos5/lib/libkdc 673LIBKRB5DIR= ${OBJTOP}/kerberos5/lib/libkrb5 674LIBROKENDIR= ${OBJTOP}/kerberos5/lib/libroken 675LIBWINDDIR= ${OBJTOP}/kerberos5/lib/libwind 676LIBATF_CDIR= ${OBJTOP}/lib/atf/libatf-c 677LIBATF_CXXDIR= ${OBJTOP}/lib/atf/libatf-c++ 678LIBGMOCKDIR= ${OBJTOP}/lib/googletest/gmock 679LIBGMOCK_MAINDIR= ${OBJTOP}/lib/googletest/gmock_main 680LIBGTESTDIR= ${OBJTOP}/lib/googletest/gtest 681LIBGTEST_MAINDIR= ${OBJTOP}/lib/googletest/gtest_main 682LIBALIASDIR= ${OBJTOP}/lib/libalias/libalias 683LIBBLACKLISTDIR= ${OBJTOP}/lib/libblacklist 684LIBBLOCKSRUNTIMEDIR= ${OBJTOP}/lib/libblocksruntime 685LIBBSNMPDIR= ${OBJTOP}/lib/libbsnmp/libbsnmp 686LIBCASPERDIR= ${OBJTOP}/lib/libcasper/libcasper 687LIBCAP_DNSDIR= ${OBJTOP}/lib/libcasper/services/cap_dns 688LIBCAP_GRPDIR= ${OBJTOP}/lib/libcasper/services/cap_grp 689LIBCAP_NETDIR= ${OBJTOP}/lib/libcasper/services/cap_net 690LIBCAP_PWDDIR= ${OBJTOP}/lib/libcasper/services/cap_pwd 691LIBCAP_SYSCTLDIR= ${OBJTOP}/lib/libcasper/services/cap_sysctl 692LIBCAP_SYSLOGDIR= ${OBJTOP}/lib/libcasper/services/cap_syslog 693LIBCBORDIR= ${OBJTOP}/lib/libcbor 694LIBBSDXMLDIR= ${OBJTOP}/lib/libexpat 695LIBFIDO2DIR= ${OBJTOP}/lib/libfido2 696LIBKVMDIR= ${OBJTOP}/lib/libkvm 697LIBPTHREADDIR= ${OBJTOP}/lib/libthr 698LIBMDIR= ${OBJTOP}/lib/msun 699LIBFORMWDIR= ${OBJTOP}/lib/ncurses/form 700LIBMENUWDIR= ${OBJTOP}/lib/ncurses/menu 701LIBNCURSESWDIR= ${OBJTOP}/lib/ncurses/ncurses 702LIBTINFOWDIR= ${OBJTOP}/lib/ncurses/tinfo 703LIBPANELWDIR= ${OBJTOP}/lib/ncurses/panel 704LIBCRYPTODIR= ${OBJTOP}/secure/lib/libcrypto 705LIBSPLDIR= ${OBJTOP}/cddl/lib/libspl 706LIBSSHDIR= ${OBJTOP}/secure/lib/libssh 707LIBSSLDIR= ${OBJTOP}/secure/lib/libssl 708LIBTEKENDIR= ${OBJTOP}/sys/teken/libteken 709LIBEGACYDIR= ${OBJTOP}/tools/build 710LIBLNDIR= ${OBJTOP}/usr.bin/lex/lib 711 712LIBTERMCAPWDIR= ${LIBTINFOWDIR} 713 714# Default other library directories to lib/libNAME. 715.for lib in ${_LIBRARIES} 716LIB${lib:tu}DIR?= ${OBJTOP}/lib/lib${lib} 717.endfor 718 719# Validate that listed LIBADD are valid. 720.for _l in ${LIBADD} 721.if empty(_LIBRARIES:M${_l}) 722_BADLIBADD+= ${_l} 723.endif 724.endfor 725.if !empty(_BADLIBADD) 726.error ${.CURDIR}: Invalid LIBADD used which may need to be added to ${_this:T}: ${_BADLIBADD} 727.endif 728 729# Sanity check that libraries are defined here properly when building them. 730.if defined(LIB) && ${_LIBRARIES:M${LIB}} != "" 731.if !empty(LIBADD) && \ 732 (!defined(_DP_${LIB}) || ${LIBADD:O:u} != ${_DP_${LIB}:O:u}) 733.error ${.CURDIR}: Missing or incorrect _DP_${LIB} entry in ${_this:T}. Should match LIBADD for ${LIB} ('${LIBADD}' vs '${_DP_${LIB}}') 734.endif 735# Note that OBJTOP is not yet defined here but for the purpose of the check 736# it is fine as it resolves to the SRC directory. 737.if !defined(LIB${LIB:tu}DIR) || !exists(${SRCTOP}/${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,}) 738.error ${.CURDIR}: Missing or incorrect value for LIB${LIB:tu}DIR in ${_this:T}: ${LIB${LIB:tu}DIR:S,^${OBJTOP}/,,} 739.endif 740.if ${_INTERNALLIBS:M${LIB}} != "" && !defined(LIB${LIB:tu}) 741.error ${.CURDIR}: Missing value for LIB${LIB:tu} in ${_this:T}. Likely should be: LIB${LIB:tu}?= $${LIB${LIB:tu}DIR}/lib${LIB}.a 742.endif 743.endif 744 745.endif # !target(__<src.libnames.mk>__) 746