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