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