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