1 1.42.2.1 martin # $NetBSD: Makefile,v 1.42.2.1 2026/01/22 19:51:52 martin Exp $ 2 1.42.2.1 martin 3 1.42.2.1 martin # libssh is not meant for applications to link against -- it's a 4 1.42.2.1 martin # private library of the ssh/sshd/&c. executables we ship. So don't 5 1.42.2.1 martin # install compat versions (we don't ship ssh/sshd/&c. as compat 6 1.42.2.1 martin # executables, only as native ones) or expose the .so symlink or .a 7 1.42.2.1 martin # static library for applications to link against. 8 1.42.2.1 martin # 9 1.42.2.1 martin # Note that while NOLINKLIB suppresses _installing_ the .so symlink, 10 1.42.2.1 martin # the .so symlink is still created in the objdir so bin/ssh can still 11 1.42.2.1 martin # use it to link. 12 1.42.2.1 martin NOLINKLIB= # defined 13 1.1 christos 14 1.1 christos .include <bsd.own.mk> 15 1.1 christos 16 1.14 christos .include "../Makefile.inc" 17 1.14 christos 18 1.30 joerg CWARNFLAGS.clang+= -Wno-error=sizeof-array-div 19 1.32 mgorny CWARNFLAGS.clang+= -Wno-error=format-nonliteral 20 1.1 christos LIB= ssh 21 1.10 christos SRCS=\ 22 1.34 christos addr.c \ 23 1.10 christos addrmatch.c \ 24 1.10 christos atomicio.c \ 25 1.10 christos authfd.c \ 26 1.10 christos authfile.c \ 27 1.14 christos bcrypt_pbkdf.c \ 28 1.17 christos bitmap.c \ 29 1.14 christos blowfish.c \ 30 1.10 christos canohost.c \ 31 1.27 christos chacha.c \ 32 1.10 christos channels.c \ 33 1.14 christos cipher-chachapoly.c \ 34 1.10 christos cipher.c \ 35 1.10 christos cleanup.c \ 36 1.10 christos compat.c \ 37 1.10 christos dh.c \ 38 1.10 christos dispatch.c \ 39 1.10 christos dns.c \ 40 1.14 christos ed25519.c \ 41 1.10 christos fatal.c \ 42 1.25 christos freezero.c \ 43 1.14 christos hash.c \ 44 1.14 christos hmac.c \ 45 1.10 christos hostfile.c \ 46 1.10 christos kex.c \ 47 1.39 christos kex-names.c \ 48 1.10 christos kexdh.c \ 49 1.10 christos kexecdh.c \ 50 1.27 christos kexgen.c \ 51 1.10 christos kexgex.c \ 52 1.10 christos kexgexc.c \ 53 1.40 christos kexmlkem768x25519.c \ 54 1.34 christos kexsntrup761x25519.c \ 55 1.12 christos krl.c \ 56 1.10 christos log.c \ 57 1.10 christos mac.c \ 58 1.10 christos match.c \ 59 1.10 christos misc.c \ 60 1.10 christos monitor_fdpass.c \ 61 1.10 christos msg.c \ 62 1.10 christos nchan.c \ 63 1.10 christos packet.c \ 64 1.14 christos poly1305.c \ 65 1.10 christos progressmeter.c \ 66 1.10 christos readpass.c \ 67 1.23 christos recallocarray.c \ 68 1.14 christos smult_curve25519_ref.c \ 69 1.34 christos sntrup761.c \ 70 1.27 christos ssh-ed25519.c \ 71 1.31 christos ssh-ed25519-sk.c \ 72 1.27 christos ssh-pkcs11.c \ 73 1.33 christos ssh-sk-client.c \ 74 1.27 christos ssh-xmss.c \ 75 1.14 christos sshbuf-getput-basic.c \ 76 1.27 christos sshbuf-getput-crypto.c \ 77 1.14 christos sshbuf-misc.c \ 78 1.31 christos sshbuf-io.c \ 79 1.14 christos sshbuf.c \ 80 1.14 christos ssherr.c \ 81 1.27 christos sshkey-xmss.c \ 82 1.14 christos sshkey.c \ 83 1.10 christos ttymodes.c \ 84 1.10 christos uidswap.c \ 85 1.15 christos umac.c \ 86 1.15 christos umac128.c \ 87 1.19 christos utf8.c \ 88 1.25 christos xmalloc.c \ 89 1.25 christos xmss_commons.c \ 90 1.25 christos xmss_fast.c \ 91 1.25 christos xmss_hash.c \ 92 1.25 christos xmss_hash_address.c \ 93 1.25 christos xmss_wots.c 94 1.25 christos 95 1.14 christos OPENSSL_SRCS=\ 96 1.14 christos digest-openssl.c \ 97 1.14 christos kexc25519.c \ 98 1.14 christos ssh-dss.c \ 99 1.14 christos ssh-ecdsa.c \ 100 1.31 christos ssh-ecdsa-sk.c \ 101 1.14 christos ssh-rsa.c 102 1.14 christos 103 1.16 christos SRCS+= fmt_scaled.c 104 1.1 christos SRCS+= readpassphrase.c getpeereid.c getrrsetbyname.c 105 1.25 christos COPTS.monitor_fdpass.c+=-Wno-stack-protector 106 1.25 christos COPTS.xmss_fast.c+= -Wno-stack-protector 107 1.25 christos COPTS.xmss_hash.c+= -Wno-stack-protector 108 1.25 christos COPTS.xmss_wots.c+= -Wno-stack-protector 109 1.34 christos COPTS.sntrup761.c+= -Wno-stack-protector 110 1.1 christos 111 1.14 christos .if WITH_OPENSSL 112 1.14 christos SRCS+= ${OPENSSL_SRCS} 113 1.14 christos .else 114 1.14 christos SRCS+= digest-libc.c 115 1.14 christos .endif 116 1.14 christos 117 1.14 christos CPPFLAGS+= -DHAVE_BLF_H 118 1.14 christos 119 1.1 christos CPPFLAGS+= -I${SSHDIST} 120 1.1 christos .PATH: ${SSHDIST} 121 1.1 christos 122 1.42 kre LIBDPLIBS+= crypto ${NETBSDSRCDIR}/crypto/external/${EXTERNAL_OPENSSL_SUBDIR}/lib/libcrypto \ 123 1.1 christos crypt ${NETBSDSRCDIR}/lib/libcrypt \ 124 1.1 christos z ${NETBSDSRCDIR}/lib/libz 125 1.1 christos 126 1.7 adam .for f in dns channels hostfile ssh-pkcs11 127 1.1 christos COPTS.${f}.c+= -Wno-pointer-sign 128 1.1 christos .endfor 129 1.9 mrg 130 1.9 mrg # XXX 131 1.9 mrg COPTS.channels.c+= -fno-strict-aliasing 132 1.11 joerg 133 1.36 lukem COPTS.hostfile.c+= ${CC_WNO_FORMAT_TRUNCATION} 134 1.36 lukem COPTS.sshkey.c+= ${CC_WNO_FORMAT_TRUNCATION} 135 1.35 christos COPTS.cipher.c+= -Wno-error=deprecated-declarations 136 1.35 christos COPTS.dh.c+= -Wno-error=deprecated-declarations 137 1.35 christos COPTS.kex.c+= -Wno-error=deprecated-declarations 138 1.35 christos COPTS.kexdh.c+= -Wno-error=deprecated-declarations 139 1.35 christos COPTS.kexecdh.c+= -Wno-error=deprecated-declarations 140 1.35 christos COPTS.kexgexc.c+= -Wno-error=deprecated-declarations 141 1.35 christos COPTS.ssh-dss.c+= -Wno-error=deprecated-declarations 142 1.35 christos COPTS.ssh-ecdsa-sk.c+= -Wno-error=deprecated-declarations 143 1.35 christos COPTS.ssh-ecdsa.c+= -Wno-error=deprecated-declarations 144 1.35 christos COPTS.ssh-pkcs11.c+= -Wno-error=deprecated-declarations 145 1.35 christos COPTS.ssh-rsa.c+= -Wno-error=deprecated-declarations 146 1.35 christos COPTS.sshbuf-getput-crypto.c+= -Wno-error=deprecated-declarations 147 1.35 christos COPTS.sshkey.c+= -Wno-error=deprecated-declarations 148 1.35 christos COPTS.umac.c+= -Wno-error=deprecated-declarations 149 1.35 christos COPTS.umac128.c+= -Wno-error=deprecated-declarations 150 1.41 christos COPTS.kexmlkem768x25519.c+=${${ACTIVE_CC} == "clang":? -Wno-error=missing-noreturn:} 151 1.41 christos 152 1.41 christos 153 1.29 mrg 154 1.11 joerg .include <bsd.lib.mk> 155