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