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