1SHELL=@SH@ 2 3AUTORECONF=autoreconf 4 5prefix=@prefix@ 6exec_prefix=@exec_prefix@ 7bindir=@bindir@ 8sbindir=@sbindir@ 9libexecdir=@libexecdir@ 10datadir=@datadir@ 11datarootdir=@datarootdir@ 12mandir=@mandir@ 13mansubdir=@mansubdir@ 14sysconfdir=@sysconfdir@ 15piddir=@piddir@ 16srcdir=@srcdir@ 17top_srcdir=@top_srcdir@ 18abs_top_srcdir=@abs_top_srcdir@ 19abs_top_builddir=@abs_top_builddir@ 20 21VPATH=@srcdir@ 22SSH_PROGRAM=@bindir@/ssh 23ASKPASS_PROGRAM=$(libexecdir)/ssh-askpass 24SFTP_SERVER=$(libexecdir)/sftp-server 25SSH_KEYSIGN=$(libexecdir)/ssh-keysign 26SSHD_SESSION=$(libexecdir)/sshd-session 27SSHD_AUTH=$(libexecdir)/sshd-auth 28SSH_PKCS11_HELPER=$(libexecdir)/ssh-pkcs11-helper 29SSH_SK_HELPER=$(libexecdir)/ssh-sk-helper 30PRIVSEP_PATH=@PRIVSEP_PATH@ 31SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ 32STRIP_OPT=@STRIP_OPT@ 33TEST_SHELL=@TEST_SHELL@ 34BUILDDIR=@abs_top_builddir@ 35SK_STANDALONE=@SK_STANDALONE@ 36COMPATINCLUDES="$(BUILDDIR)/@COMPATINCLUDES@" 37 38PATHS= -DSSHDIR=\"$(sysconfdir)\" \ 39 -D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \ 40 -D_PATH_SSH_ASKPASS_DEFAULT=\"$(ASKPASS_PROGRAM)\" \ 41 -D_PATH_SFTP_SERVER=\"$(SFTP_SERVER)\" \ 42 -D_PATH_SSH_KEY_SIGN=\"$(SSH_KEYSIGN)\" \ 43 -D_PATH_SSHD_SESSION=\"$(SSHD_SESSION)\" \ 44 -D_PATH_SSHD_AUTH=\"$(SSHD_AUTH)\" \ 45 -D_PATH_SSH_PKCS11_HELPER=\"$(SSH_PKCS11_HELPER)\" \ 46 -D_PATH_SSH_SK_HELPER=\"$(SSH_SK_HELPER)\" \ 47 -D_PATH_SSH_PIDDIR=\"$(piddir)\" \ 48 -D_PATH_PRIVSEP_CHROOT_DIR=\"$(PRIVSEP_PATH)\" 49 50CC=@CC@ 51LD=@LD@ 52CFLAGS=@CFLAGS@ 53CFLAGS_NOPIE=@CFLAGS_NOPIE@ 54CPPFLAGS=-I. -I$(srcdir) -I$(COMPATINCLUDES) @CPPFLAGS@ $(PATHS) @DEFS@ 55PICFLAG=@PICFLAG@ 56LIBS=@LIBS@ 57CHANNELLIBS=@CHANNELLIBS@ 58K5LIBS=@K5LIBS@ 59GSSLIBS=@GSSLIBS@ 60SSHDLIBS=@SSHDLIBS@ 61LIBEDIT=@LIBEDIT@ 62LIBFIDO2=@LIBFIDO2@ 63LIBWTMPDB=@LIBWTMPDB@ 64AR=@AR@ 65AWK=@AWK@ 66RANLIB=@RANLIB@ 67INSTALL=@INSTALL@ 68SED=@SED@ 69XAUTH_PATH=@XAUTH_PATH@ 70LDFLAGS=-L. -Lopenbsd-compat/ @LDFLAGS@ 71LDFLAGS_NOPIE=-L. -Lopenbsd-compat/ @LDFLAGS_NOPIE@ 72EXEEXT=@EXEEXT@ 73MANFMT=@MANFMT@ 74MKDIR_P=@MKDIR_P@ 75 76.SUFFIXES: .lo 77 78TARGETS=ssh$(EXEEXT) sshd$(EXEEXT) sshd-session$(EXEEXT) sshd-auth$(EXEEXT) ssh-add$(EXEEXT) ssh-keygen$(EXEEXT) ssh-keyscan${EXEEXT} ssh-keysign${EXEEXT} ssh-pkcs11-helper$(EXEEXT) ssh-agent$(EXEEXT) scp$(EXEEXT) sftp-server$(EXEEXT) sftp$(EXEEXT) ssh-sk-helper$(EXEEXT) $(SK_STANDALONE) 79 80LIBOPENSSH_OBJS=\ 81 ssh_api.o \ 82 ssherr.o \ 83 sshbuf.o \ 84 sshkey.o \ 85 sshbuf-getput-basic.o \ 86 sshbuf-misc.o \ 87 sshbuf-getput-crypto.o \ 88 krl.o \ 89 bitmap.o 90 91LIBSSH_OBJS=${LIBOPENSSH_OBJS} \ 92 authfd.o authfile.o \ 93 canohost.o channels.o cipher.o cipher-aes.o cipher-aesctr.o \ 94 cleanup.o \ 95 compat.o fatal.o hostfile.o \ 96 log.o match.o moduli.o nchan.o packet.o \ 97 readpass.o ttymodes.o xmalloc.o addr.o addrmatch.o \ 98 atomicio.o dispatch.o mac.o misc.o utf8.o \ 99 monitor_fdpass.o rijndael.o ssh-ecdsa.o ssh-ecdsa-sk.o \ 100 ssh-ed25519-sk.o ssh-rsa.o dh.o \ 101 msg.o dns.o entropy.o gss-genr.o umac.o umac128.o \ 102 smult_curve25519_ref.o \ 103 poly1305.o chacha.o cipher-chachapoly.o cipher-chachapoly-libcrypto.o \ 104 ssh-ed25519.o digest-openssl.o digest-libc.o \ 105 libcrux-mlkem-mldsa.o ssh-mldsa-eddsa.o \ 106 hmac.o ed25519.o ed25519-openssl.o \ 107 kex.o kex-names.o kexdh.o kexgex.o kexecdh.o kexc25519.o \ 108 kexgexc.o kexgexs.o \ 109 kexsntrup761x25519.o kexmlkem768x25519.o sntrup761.o kexgen.o \ 110 sftp-realpath.o platform-pledge.o platform-tracing.o platform-misc.o \ 111 sshbuf-io.o misc-agent.o ssherr-libcrypto.o 112 113P11OBJS= ssh-pkcs11-client.o 114 115SKOBJS= ssh-sk-client.o 116 117SSHOBJS= ssh.o readconf.o clientloop.o sshtty.o \ 118 sshconnect.o sshconnect2.o mux.o ssh-pkcs11.o $(SKOBJS) 119 120SSHDOBJS=sshd.o \ 121 platform-listen.o \ 122 servconf.o sshpty.o srclimit.o groupaccess.o auth2-methods.o \ 123 dns.o fatal.o compat.o utf8.o authfd.o canohost.o \ 124 $(P11OBJS) $(SKOBJS) 125 126SSHD_SESSION_OBJS=sshd-session.o auth-rhosts.o auth-passwd.o \ 127 audit.o audit-bsm.o audit-linux.o platform.o \ 128 sshpty.o sshlogin.o servconf.o serverloop.o \ 129 auth.o auth2.o auth2-methods.o auth-options.o session.o \ 130 auth2-chall.o groupaccess.o \ 131 auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ 132 auth2-none.o auth2-passwd.o auth2-pubkey.o auth2-pubkeyfile.o \ 133 monitor.o monitor_wrap.o auth-krb5.o \ 134 auth2-gss.o gss-serv.o gss-serv-krb5.o \ 135 loginrec.o auth-pam.o auth-shadow.o auth-sia.o \ 136 sftp-server.o sftp-common.o \ 137 uidswap.o platform-listen.o $(P11OBJS) $(SKOBJS) 138 139SSHD_AUTH_OBJS=sshd-auth.o \ 140 auth2-methods.o \ 141 auth-rhosts.o auth-passwd.o sshpty.o sshlogin.o servconf.o \ 142 serverloop.o auth.o auth2.o auth-options.o session.o auth2-chall.o \ 143 groupaccess.o auth-bsdauth.o auth2-hostbased.o auth2-kbdint.o \ 144 auth2-none.o auth2-passwd.o auth2-pubkey.o auth2-pubkeyfile.o \ 145 auth2-gss.o gss-serv.o gss-serv-krb5.o \ 146 monitor_wrap.o auth-krb5.o \ 147 audit.o audit-bsm.o audit-linux.o platform.o \ 148 loginrec.o auth-pam.o auth-shadow.o auth-sia.o \ 149 sandbox-null.o sandbox-rlimit.o sandbox-darwin.o \ 150 sandbox-seccomp-filter.o sandbox-capsicum.o sandbox-solaris.o \ 151 sftp-server.o sftp-common.o \ 152 uidswap.o $(P11OBJS) $(SKOBJS) 153 154SFTP_CLIENT_OBJS=sftp-common.o sftp-client.o sftp-glob.o ssherr-nolibcrypto.o 155 156SCP_OBJS= scp.o progressmeter.o $(SFTP_CLIENT_OBJS) 157 158SSHADD_OBJS= ssh-add.o $(P11OBJS) $(SKOBJS) 159 160SSHAGENT_OBJS= ssh-agent.o $(P11OBJS) $(SKOBJS) 161 162SSHKEYGEN_OBJS= ssh-keygen.o sshsig.o ssh-pkcs11.o $(SKOBJS) 163 164SSHKEYSIGN_OBJS=ssh-keysign.o readconf.o uidswap.o $(P11OBJS) $(SKOBJS) 165 166P11HELPER_OBJS= ssh-pkcs11-helper.o ssh-pkcs11.o $(SKOBJS) 167 168SKHELPER_OBJS= ssh-sk-helper.o ssh-sk.o sk-usbhid.o ssherr-nolibcrypto.o 169 170SSHKEYSCAN_OBJS=ssh-keyscan.o $(P11OBJS) $(SKOBJS) 171 172SFTPSERVER_OBJS=sftp-common.o sftp-server.o sftp-server-main.o ssherr-nolibcrypto.o 173 174SFTP_OBJS= sftp.o sftp-usergroup.o progressmeter.o $(SFTP_CLIENT_OBJS) 175 176MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out ssh-sk-helper.8.out sshd_config.5.out ssh_config.5.out 177MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 ssh-sk-helper.8 sshd_config.5 ssh_config.5 178MANTYPE = @MANTYPE@ 179 180CONFIGFILES=sshd_config.out ssh_config.out moduli.out 181CONFIGFILES_IN=sshd_config ssh_config moduli 182 183PATHSUBS = \ 184 -e 's|/etc/ssh/ssh_config|$(sysconfdir)/ssh_config|g' \ 185 -e 's|/etc/ssh/ssh_known_hosts|$(sysconfdir)/ssh_known_hosts|g' \ 186 -e 's|/etc/ssh/sshd_config|$(sysconfdir)/sshd_config|g' \ 187 -e 's|/usr/libexec|$(libexecdir)|g' \ 188 -e 's|/etc/shosts.equiv|$(sysconfdir)/shosts.equiv|g' \ 189 -e 's|/etc/ssh/ssh_host_key|$(sysconfdir)/ssh_host_key|g' \ 190 -e 's|/etc/ssh/ssh_host_ecdsa_key|$(sysconfdir)/ssh_host_ecdsa_key|g' \ 191 -e 's|/etc/ssh/ssh_host_rsa_key|$(sysconfdir)/ssh_host_rsa_key|g' \ 192 -e 's|/etc/ssh/ssh_host_ed25519_key|$(sysconfdir)/ssh_host_ed25519_key|g' \ 193 -e 's|/var/run/sshd.pid|$(piddir)/sshd.pid|g' \ 194 -e 's|/etc/moduli|$(sysconfdir)/moduli|g' \ 195 -e 's|/etc/ssh/moduli|$(sysconfdir)/moduli|g' \ 196 -e 's|/etc/ssh/sshrc|$(sysconfdir)/sshrc|g' \ 197 -e 's|/usr/X11R6/bin/xauth|$(XAUTH_PATH)|g' \ 198 -e 's|/var/empty|$(PRIVSEP_PATH)|g' \ 199 -e 's|/usr/bin:/bin:/usr/sbin:/sbin|@user_path@|g' 200 201FIXPATHSCMD = $(SED) $(PATHSUBS) 202FIXALGORITHMSCMD= $(SHELL) $(srcdir)/fixalgorithms $(SED) \ 203 @UNSUPPORTED_ALGORITHMS@ 204 205all: $(CONFIGFILES) $(MANPAGES) $(TARGETS) 206 207$(LIBSSH_OBJS): Makefile.in config.h 208$(SSHOBJS): Makefile.in config.h 209$(SSHDOBJS): Makefile.in config.h 210 211.c.o: 212 $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ 213 214LIBCOMPAT=openbsd-compat/libopenbsd-compat.a 215$(LIBCOMPAT): always 216 (cd openbsd-compat && $(MAKE)) 217always: 218 219libssh.a: $(LIBSSH_OBJS) 220 $(AR) rv $@ $(LIBSSH_OBJS) 221 $(RANLIB) $@ 222 223ssh$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHOBJS) 224 $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(GSSLIBS) $(CHANNELLIBS) 225 226sshd$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHDOBJS) 227 $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(CHANNELLIBS) 228 229sshd-session$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHD_SESSION_OBJS) 230 $(LD) -o $@ $(SSHD_SESSION_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) $(CHANNELLIBS) $(LIBWTMPDB) 231 232sshd-auth$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHD_AUTH_OBJS) 233 $(LD) -o $@ $(SSHD_AUTH_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) $(CHANNELLIBS) $(LIBWTMPDB) 234 235scp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SCP_OBJS) 236 $(LD) -o $@ $(SCP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) 237 238ssh-add$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHADD_OBJS) 239 $(LD) -o $@ $(SSHADD_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS) 240 241ssh-agent$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHAGENT_OBJS) 242 $(LD) -o $@ $(SSHAGENT_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS) 243 244ssh-keygen$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYGEN_OBJS) 245 $(LD) -o $@ $(SSHKEYGEN_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS) 246 247ssh-keysign$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYSIGN_OBJS) 248 $(LD) -o $@ $(SSHKEYSIGN_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS) 249 250ssh-pkcs11-helper$(EXEEXT): $(LIBCOMPAT) libssh.a $(P11HELPER_OBJS) 251 $(LD) -o $@ $(P11HELPER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS) 252 253ssh-sk-helper$(EXEEXT): $(LIBCOMPAT) libssh.a $(SKHELPER_OBJS) 254 $(LD) -o $@ $(SKHELPER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) $(LIBFIDO2) $(CHANNELLIBS) 255 256ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYSCAN_OBJS) 257 $(LD) -o $@ $(SSHKEYSCAN_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) $(CHANNELLIBS) 258 259sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTPSERVER_OBJS) 260 $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) 261 262sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTP_OBJS) 263 $(LD) -o $@ $(SFTP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT) 264 265# test driver for the loginrec code - not built by default 266logintest: logintest.o $(LIBCOMPAT) libssh.a loginrec.o 267 $(LD) -o $@ logintest.o $(LDFLAGS) loginrec.o -lopenbsd-compat -lssh $(LIBS) 268 269# compile libssh objects with -fPIC for use in the sk_libfido2 shared library 270LIBSSH_PIC_OBJS=$(LIBSSH_OBJS:.o=.lo) 271libssh-pic.a: $(LIBSSH_PIC_OBJS) 272 $(AR) rv $@ $(LIBSSH_PIC_OBJS) 273 $(RANLIB) $@ 274 275$(SK_STANDALONE): $(srcdir)/sk-usbhid.c $(LIBCOMPAT) libssh-pic.a 276 $(CC) -o $@ -shared $(CFLAGS_NOPIE) $(CPPFLAGS) -DSK_STANDALONE $(PICFLAG) $(srcdir)/sk-usbhid.c \ 277 libssh-pic.a $(LDFLAGS_NOPIE) -lopenbsd-compat $(LIBS) $(LIBFIDO2) $(CHANNELLIBS) 278 279$(MANPAGES): $(MANPAGES_IN) 280 if test "$(MANTYPE)" = "cat"; then \ 281 manpage=$(srcdir)/`echo $@ | sed 's/\.[1-9]\.out$$/\.0/'`; \ 282 else \ 283 manpage=$(srcdir)/`echo $@ | sed 's/\.out$$//'`; \ 284 fi; \ 285 if test "$(MANTYPE)" = "man"; then \ 286 $(FIXPATHSCMD) $${manpage} | $(FIXALGORITHMSCMD) | \ 287 $(AWK) -f $(srcdir)/mdoc2man.awk > $@; \ 288 else \ 289 $(FIXPATHSCMD) $${manpage} | $(FIXALGORITHMSCMD) > $@; \ 290 fi 291 292$(CONFIGFILES): $(CONFIGFILES_IN) Makefile 293 conffile=`echo $@ | sed 's/.out$$//'`; \ 294 $(FIXPATHSCMD) $(srcdir)/$${conffile} > $@ 295 296# fake rule to stop make trying to compile moduli.o into a binary "moduli.o" 297moduli: 298 echo 299 300clean: regressclean 301 rm -f *.o *.lo *.a $(TARGETS) logintest config.cache config.log 302 rm -f *.out core survey 303 rm -f regress/check-perm$(EXEEXT) 304 rm -f regress/mkdtemp$(EXEEXT) 305 rm -f regress/unittests/test_helper/*.a 306 rm -f regress/unittests/test_helper/*.o 307 rm -f regress/unittests/authopt/*.o 308 rm -f regress/unittests/authopt/test_authopt$(EXEEXT) 309 rm -f regress/unittests/bitmap/*.o 310 rm -f regress/unittests/bitmap/test_bitmap$(EXEEXT) 311 rm -f regress/unittests/conversion/*.o 312 rm -f regress/unittests/conversion/test_conversion$(EXEEXT) 313 rm -f regress/unittests/hostkeys/*.o 314 rm -f regress/unittests/hostkeys/test_hostkeys$(EXEEXT) 315 rm -f regress/unittests/kex/*.o 316 rm -f regress/unittests/kex/test_kex$(EXEEXT) 317 rm -f regress/unittests/match/*.o 318 rm -f regress/unittests/match/test_match$(EXEEXT) 319 rm -f regress/unittests/crypto/*.o 320 rm -f regress/unittests/crypto/test_crypto$(EXEEXT) 321 rm -f regress/unittests/misc/*.o 322 rm -f regress/unittests/misc/test_misc$(EXEEXT) 323 rm -f regress/unittests/servconf/*.o 324 rm -f regress/unittests/servconf/test_servconf$(EXEEXT) 325 rm -f regress/unittests/sshbuf/*.o 326 rm -f regress/unittests/sshbuf/test_sshbuf$(EXEEXT) 327 rm -f regress/unittests/sshkey/*.o 328 rm -f regress/unittests/sshkey/test_sshkey$(EXEEXT) 329 rm -f regress/unittests/sshsig/*.o 330 rm -f regress/unittests/sshsig/test_sshsig$(EXEEXT) 331 rm -f regress/unittests/utf8/*.o 332 rm -f regress/unittests/utf8/test_utf8$(EXEEXT) 333 rm -f regress/misc/sk-dummy/*.o 334 rm -f regress/misc/sk-dummy/*.lo 335 rm -f regress/misc/ssh-verify-attestation/ssh-verify-attestation$(EXEEXT) 336 rm -f regress/misc/ssh-verify-attestation/*.o 337 (cd openbsd-compat && $(MAKE) clean) 338 339distclean: regressclean 340 rm -f *.o *.a $(TARGETS) logintest config.cache config.log 341 rm -f *.out core opensshd.init openssh.xml 342 rm -f Makefile buildpkg.sh config.h config.status 343 rm -f survey.sh openbsd-compat/regress/Makefile *~ 344 rm -rf openbsd-compat/include 345 rm -rf autom4te.cache 346 rm -f regress/check-perm 347 rm -f regress/mkdtemp 348 rm -f regress/unittests/test_helper/*.a 349 rm -f regress/unittests/test_helper/*.o 350 rm -f regress/unittests/authopt/*.o 351 rm -f regress/unittests/authopt/test_authopt 352 rm -f regress/unittests/bitmap/*.o 353 rm -f regress/unittests/bitmap/test_bitmap 354 rm -f regress/unittests/conversion/*.o 355 rm -f regress/unittests/conversion/test_conversion 356 rm -f regress/unittests/hostkeys/*.o 357 rm -f regress/unittests/hostkeys/test_hostkeys 358 rm -f regress/unittests/kex/*.o 359 rm -f regress/unittests/kex/test_kex 360 rm -f regress/unittests/match/*.o 361 rm -f regress/unittests/match/test_match 362 rm -f regress/unittests/crypto/*.o 363 rm -f regress/unittests/crypto/test_crypto 364 rm -f regress/unittests/misc/*.o 365 rm -f regress/unittests/misc/test_misc 366 rm -f regress/unittests/servconf/*.o 367 rm -f regress/unittests/servconf/test_servconf 368 rm -f regress/unittests/sshbuf/*.o 369 rm -f regress/unittests/sshbuf/test_sshbuf 370 rm -f regress/unittests/sshkey/*.o 371 rm -f regress/unittests/sshkey/test_sshkey 372 rm -f regress/unittests/sshsig/*.o 373 rm -f regress/unittests/sshsig/test_sshsig 374 rm -f regress/unittests/utf8/*.o 375 rm -f regress/unittests/utf8/test_utf8 376 rm -f regress/misc/sk-dummy/*.o 377 rm -f regress/misc/sk-dummy/*.lo 378 rm -f regress/misc/sk-dummy/sk-dummy.so 379 rm -f regress/misc/ssh-verify-attestation/ssh-verify-attestation$(EXEEXT) 380 rm -f regress/misc/ssh-verify-attestation/*.o 381 (cd openbsd-compat && $(MAKE) distclean) 382 if test -d pkg ; then \ 383 rm -fr pkg ; \ 384 fi 385 386veryclean: distclean 387 rm -f configure config.h.in *.0 388 389cleandir: veryclean 390 391mrproper: veryclean 392 393realclean: veryclean 394 395catman-do: 396 @for f in $(MANPAGES_IN) ; do \ 397 base=`echo $$f | sed 's/\..*$$//'` ; \ 398 echo "$$f -> $$base.0" ; \ 399 $(MANFMT) $$f | cat -v | sed -e 's/.\^H//g' \ 400 >$$base.0 ; \ 401 done 402 403depend: depend-rebuild 404 rm -f .depend.bak 405 406depend-rebuild: 407 mv .depend .depend.old 408 rm -f config.h .depend 409 touch config.h .depend 410 makedepend -w1000 -Y. -f .depend *.c 2>/dev/null 411 (echo '# Automatically generated by makedepend.'; \ 412 echo '# Run "make depend" to rebuild.'; sort .depend ) >.depend.tmp 413 mv .depend.tmp .depend 414 rm -f .depend.bak 415 mv .depend.old .depend.bak 416 rm -f config.h 417 418depend-check: depend-rebuild 419 cmp .depend .depend.bak || (echo .depend stale && exit 1) 420 421distprep: catman-do depend-check 422 $(AUTORECONF) 423 -rm -rf autom4te.cache .depend.bak 424 425install: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files install-sysconf host-key check-config 426install-nokeys: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files install-sysconf 427install-nosysconf: $(CONFIGFILES) $(MANPAGES) $(TARGETS) install-files 428 429check-config: 430 -$(DESTDIR)$(sbindir)/sshd -t -f $(DESTDIR)$(sysconfdir)/sshd_config 431 432install-files: 433 $(MKDIR_P) $(DESTDIR)$(bindir) 434 $(MKDIR_P) $(DESTDIR)$(sbindir) 435 $(MKDIR_P) $(DESTDIR)$(mandir)/$(mansubdir)1 436 $(MKDIR_P) $(DESTDIR)$(mandir)/$(mansubdir)5 437 $(MKDIR_P) $(DESTDIR)$(mandir)/$(mansubdir)8 438 $(MKDIR_P) $(DESTDIR)$(libexecdir) 439 $(MKDIR_P) -m 0755 $(DESTDIR)$(PRIVSEP_PATH) 440 $(INSTALL) -m 0755 $(STRIP_OPT) ssh$(EXEEXT) $(DESTDIR)$(bindir)/ssh$(EXEEXT) 441 $(INSTALL) -m 0755 $(STRIP_OPT) scp$(EXEEXT) $(DESTDIR)$(bindir)/scp$(EXEEXT) 442 $(INSTALL) -m 0755 $(STRIP_OPT) ssh-add$(EXEEXT) $(DESTDIR)$(bindir)/ssh-add$(EXEEXT) 443 $(INSTALL) -m 0755 $(STRIP_OPT) ssh-agent$(EXEEXT) $(DESTDIR)$(bindir)/ssh-agent$(EXEEXT) 444 $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keygen$(EXEEXT) $(DESTDIR)$(bindir)/ssh-keygen$(EXEEXT) 445 $(INSTALL) -m 0755 $(STRIP_OPT) ssh-keyscan$(EXEEXT) $(DESTDIR)$(bindir)/ssh-keyscan$(EXEEXT) 446 $(INSTALL) -m 0755 $(STRIP_OPT) sshd$(EXEEXT) $(DESTDIR)$(sbindir)/sshd$(EXEEXT) 447 $(INSTALL) -m 0755 $(STRIP_OPT) sshd-session$(EXEEXT) $(DESTDIR)$(SSHD_SESSION)$(EXEEXT) 448 $(INSTALL) -m 0755 $(STRIP_OPT) sshd-auth$(EXEEXT) $(DESTDIR)$(SSHD_AUTH)$(EXEEXT) 449 $(INSTALL) -m 4711 $(STRIP_OPT) ssh-keysign$(EXEEXT) $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT) 450 $(INSTALL) -m 0755 $(STRIP_OPT) ssh-pkcs11-helper$(EXEEXT) $(DESTDIR)$(SSH_PKCS11_HELPER)$(EXEEXT) 451 $(INSTALL) -m 0755 $(STRIP_OPT) ssh-sk-helper$(EXEEXT) $(DESTDIR)$(SSH_SK_HELPER)$(EXEEXT) 452 $(INSTALL) -m 0755 $(STRIP_OPT) sftp$(EXEEXT) $(DESTDIR)$(bindir)/sftp$(EXEEXT) 453 $(INSTALL) -m 0755 $(STRIP_OPT) sftp-server$(EXEEXT) $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) 454 $(INSTALL) -m 644 ssh.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 455 $(INSTALL) -m 644 scp.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1 456 $(INSTALL) -m 644 ssh-add.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1 457 $(INSTALL) -m 644 ssh-agent.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-agent.1 458 $(INSTALL) -m 644 ssh-keygen.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keygen.1 459 $(INSTALL) -m 644 ssh-keyscan.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keyscan.1 460 $(INSTALL) -m 644 moduli.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/moduli.5 461 $(INSTALL) -m 644 sshd_config.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/sshd_config.5 462 $(INSTALL) -m 644 ssh_config.5.out $(DESTDIR)$(mandir)/$(mansubdir)5/ssh_config.5 463 $(INSTALL) -m 644 sshd.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/sshd.8 464 $(INSTALL) -m 644 sftp.1.out $(DESTDIR)$(mandir)/$(mansubdir)1/sftp.1 465 $(INSTALL) -m 644 sftp-server.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8 466 $(INSTALL) -m 644 ssh-keysign.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8 467 $(INSTALL) -m 644 ssh-pkcs11-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-pkcs11-helper.8 468 $(INSTALL) -m 644 ssh-sk-helper.8.out $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-sk-helper.8 469 470install-sysconf: 471 $(MKDIR_P) $(DESTDIR)$(sysconfdir) 472 @if [ ! -f $(DESTDIR)$(sysconfdir)/ssh_config ]; then \ 473 $(INSTALL) -m 644 ssh_config.out $(DESTDIR)$(sysconfdir)/ssh_config; \ 474 else \ 475 echo "$(DESTDIR)$(sysconfdir)/ssh_config already exists, install will not overwrite"; \ 476 fi 477 @if [ ! -f $(DESTDIR)$(sysconfdir)/sshd_config ]; then \ 478 $(INSTALL) -m 644 sshd_config.out $(DESTDIR)$(sysconfdir)/sshd_config; \ 479 else \ 480 echo "$(DESTDIR)$(sysconfdir)/sshd_config already exists, install will not overwrite"; \ 481 fi 482 @if [ ! -f $(DESTDIR)$(sysconfdir)/moduli ]; then \ 483 if [ -f $(DESTDIR)$(sysconfdir)/primes ]; then \ 484 echo "moving $(DESTDIR)$(sysconfdir)/primes to $(DESTDIR)$(sysconfdir)/moduli"; \ 485 mv "$(DESTDIR)$(sysconfdir)/primes" "$(DESTDIR)$(sysconfdir)/moduli"; \ 486 else \ 487 $(INSTALL) -m 644 moduli.out $(DESTDIR)$(sysconfdir)/moduli; \ 488 fi ; \ 489 else \ 490 echo "$(DESTDIR)$(sysconfdir)/moduli already exists, install will not overwrite"; \ 491 fi 492 493host-key: ssh-keygen$(EXEEXT) 494 @if [ -z "$(DESTDIR)" ] ; then \ 495 ./ssh-keygen -A; \ 496 fi 497 498host-key-force: ssh-keygen$(EXEEXT) ssh$(EXEEXT) 499 ./ssh-keygen -t rsa -f $(DESTDIR)$(sysconfdir)/ssh_host_rsa_key -N "" 500 ./ssh-keygen -t ed25519 -f $(DESTDIR)$(sysconfdir)/ssh_host_ed25519_key -N "" 501 if ./ssh -Q key | grep ecdsa >/dev/null ; then \ 502 ./ssh-keygen -t ecdsa -f $(DESTDIR)$(sysconfdir)/ssh_host_ecdsa_key -N ""; \ 503 fi 504 505uninstallall: uninstall 506 -rm -f $(DESTDIR)$(sysconfdir)/ssh_config 507 -rm -f $(DESTDIR)$(sysconfdir)/sshd_config 508 -rmdir $(DESTDIR)$(sysconfdir) 509 -rmdir $(DESTDIR)$(bindir) 510 -rmdir $(DESTDIR)$(sbindir) 511 -rmdir $(DESTDIR)$(mandir)/$(mansubdir)1 512 -rmdir $(DESTDIR)$(mandir)/$(mansubdir)8 513 -rmdir $(DESTDIR)$(mandir) 514 -rmdir $(DESTDIR)$(libexecdir) 515 516uninstall: 517 -rm -f $(DESTDIR)$(bindir)/ssh$(EXEEXT) 518 -rm -f $(DESTDIR)$(bindir)/scp$(EXEEXT) 519 -rm -f $(DESTDIR)$(bindir)/ssh-add$(EXEEXT) 520 -rm -f $(DESTDIR)$(bindir)/ssh-agent$(EXEEXT) 521 -rm -f $(DESTDIR)$(bindir)/ssh-keygen$(EXEEXT) 522 -rm -f $(DESTDIR)$(bindir)/ssh-keyscan$(EXEEXT) 523 -rm -f $(DESTDIR)$(bindir)/sftp$(EXEEXT) 524 -rm -f $(DESTDIR)$(sbindir)/sshd$(EXEEXT) 525 -rm -r $(DESTDIR)$(SFTP_SERVER)$(EXEEXT) 526 -rm -f $(DESTDIR)$(SSH_KEYSIGN)$(EXEEXT) 527 -rm -f $(DESTDIR)$(SSH_PKCS11_HELPER)$(EXEEXT) 528 -rm -f $(DESTDIR)$(SSH_SK_HELPER)$(EXEEXT) 529 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh.1 530 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/scp.1 531 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-add.1 532 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-agent.1 533 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keygen.1 534 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/sftp.1 535 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)1/ssh-keyscan.1 536 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/sshd.8 537 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/sftp-server.8 538 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-keysign.8 539 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-pkcs11-helper.8 540 -rm -f $(DESTDIR)$(mandir)/$(mansubdir)8/ssh-sk-helper.8 541 542regress-prep: 543 $(MKDIR_P) `pwd`/regress/unittests/test_helper 544 $(MKDIR_P) `pwd`/regress/unittests/authopt 545 $(MKDIR_P) `pwd`/regress/unittests/bitmap 546 $(MKDIR_P) `pwd`/regress/unittests/conversion 547 $(MKDIR_P) `pwd`/regress/unittests/hostkeys 548 $(MKDIR_P) `pwd`/regress/unittests/kex 549 $(MKDIR_P) `pwd`/regress/unittests/match 550 $(MKDIR_P) `pwd`/regress/unittests/crypto 551 $(MKDIR_P) `pwd`/regress/unittests/misc 552 $(MKDIR_P) `pwd`/regress/unittests/servconf 553 $(MKDIR_P) `pwd`/regress/unittests/sshbuf 554 $(MKDIR_P) `pwd`/regress/unittests/sshkey 555 $(MKDIR_P) `pwd`/regress/unittests/sshsig 556 $(MKDIR_P) `pwd`/regress/unittests/utf8 557 $(MKDIR_P) `pwd`/regress/misc/sk-dummy 558 $(MKDIR_P) `pwd`/regress/misc/ssh-verify-attestation 559 [ -f `pwd`/regress/Makefile ] || \ 560 ln -s `cd $(srcdir) && pwd`/regress/Makefile `pwd`/regress/Makefile 561 562REGRESSLIBS=libssh.a $(LIBCOMPAT) 563TESTLIBS=$(LIBS) $(CHANNELLIBS) @TESTLIBS@ 564 565regress/modpipe$(EXEEXT): $(srcdir)/regress/modpipe.c $(REGRESSLIBS) 566 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/modpipe.c \ 567 $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 568 569regress/timestamp$(EXEEXT): $(srcdir)/regress/timestamp.c $(REGRESSLIBS) 570 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/timestamp.c \ 571 $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 572 573regress/setuid-allowed$(EXEEXT): $(srcdir)/regress/setuid-allowed.c $(REGRESSLIBS) 574 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/setuid-allowed.c \ 575 $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 576 577regress/netcat$(EXEEXT): $(srcdir)/regress/netcat.c $(REGRESSLIBS) 578 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/netcat.c \ 579 $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 580 581regress/check-perm$(EXEEXT): $(srcdir)/regress/check-perm.c $(REGRESSLIBS) 582 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/check-perm.c \ 583 $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 584 585regress/mkdtemp$(EXEEXT): $(srcdir)/regress/mkdtemp.c $(REGRESSLIBS) 586 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $(srcdir)/regress/mkdtemp.c \ 587 $(LDFLAGS) -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 588 589UNITTESTS_TEST_HELPER_OBJS=\ 590 regress/unittests/test_helper/test_helper.o \ 591 regress/unittests/test_helper/fuzz.o 592 593regress/unittests/test_helper/libtest_helper.a: ${UNITTESTS_TEST_HELPER_OBJS} 594 $(AR) rv $@ $(UNITTESTS_TEST_HELPER_OBJS) 595 $(RANLIB) $@ 596 597UNITTESTS_TEST_SSHBUF_OBJS=\ 598 regress/unittests/sshbuf/tests.o \ 599 regress/unittests/sshbuf/test_sshbuf.o \ 600 regress/unittests/sshbuf/test_sshbuf_getput_basic.o \ 601 regress/unittests/sshbuf/test_sshbuf_getput_crypto.o \ 602 regress/unittests/sshbuf/test_sshbuf_misc.o \ 603 regress/unittests/sshbuf/test_sshbuf_fuzz.o \ 604 regress/unittests/sshbuf/test_sshbuf_getput_fuzz.o \ 605 regress/unittests/sshbuf/test_sshbuf_fixed.o 606 607regress/unittests/sshbuf/test_sshbuf$(EXEEXT): ${UNITTESTS_TEST_SSHBUF_OBJS} \ 608 regress/unittests/test_helper/libtest_helper.a libssh.a 609 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_SSHBUF_OBJS) \ 610 regress/unittests/test_helper/libtest_helper.a \ 611 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 612 613UNITTESTS_TEST_SSHKEY_OBJS=\ 614 regress/unittests/sshkey/test_fuzz.o \ 615 regress/unittests/sshkey/tests.o \ 616 regress/unittests/sshkey/common.o \ 617 regress/unittests/sshkey/test_file.o \ 618 regress/unittests/sshkey/test_sshkey.o \ 619 $(P11OBJS) $(SKOBJS) 620 621regress/unittests/sshkey/test_sshkey$(EXEEXT): ${UNITTESTS_TEST_SSHKEY_OBJS} \ 622 regress/unittests/test_helper/libtest_helper.a libssh.a 623 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_SSHKEY_OBJS) \ 624 regress/unittests/test_helper/libtest_helper.a \ 625 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 626 627UNITTESTS_TEST_SSHSIG_OBJS=\ 628 sshsig.o \ 629 regress/unittests/sshsig/tests.o \ 630 $(P11OBJS) $(SKOBJS) 631 632regress/unittests/sshsig/test_sshsig$(EXEEXT): ${UNITTESTS_TEST_SSHSIG_OBJS} \ 633 regress/unittests/test_helper/libtest_helper.a libssh.a 634 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_SSHSIG_OBJS) \ 635 regress/unittests/test_helper/libtest_helper.a \ 636 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 637 638UNITTESTS_TEST_BITMAP_OBJS=\ 639 regress/unittests/bitmap/tests.o 640 641regress/unittests/bitmap/test_bitmap$(EXEEXT): ${UNITTESTS_TEST_BITMAP_OBJS} \ 642 regress/unittests/test_helper/libtest_helper.a libssh.a 643 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_BITMAP_OBJS) \ 644 regress/unittests/test_helper/libtest_helper.a \ 645 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 646 647UNITTESTS_TEST_AUTHOPT_OBJS=\ 648 regress/unittests/authopt/tests.o \ 649 auth-options.o \ 650 $(P11OBJS) $(SKOBJS) 651 652regress/unittests/authopt/test_authopt$(EXEEXT): \ 653 ${UNITTESTS_TEST_AUTHOPT_OBJS} \ 654 regress/unittests/test_helper/libtest_helper.a libssh.a 655 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_AUTHOPT_OBJS) \ 656 regress/unittests/test_helper/libtest_helper.a \ 657 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 658 659UNITTESTS_TEST_CONVERSION_OBJS=\ 660 regress/unittests/conversion/tests.o 661 662regress/unittests/conversion/test_conversion$(EXEEXT): \ 663 ${UNITTESTS_TEST_CONVERSION_OBJS} \ 664 regress/unittests/test_helper/libtest_helper.a libssh.a 665 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_CONVERSION_OBJS) \ 666 regress/unittests/test_helper/libtest_helper.a \ 667 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 668 669UNITTESTS_TEST_KEX_OBJS=\ 670 regress/unittests/kex/tests.o \ 671 regress/unittests/kex/test_kex.o \ 672 regress/unittests/kex/test_proposal.o \ 673 $(P11OBJS) $(SKOBJS) 674 675regress/unittests/kex/test_kex$(EXEEXT): ${UNITTESTS_TEST_KEX_OBJS} \ 676 regress/unittests/test_helper/libtest_helper.a libssh.a 677 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_KEX_OBJS) \ 678 regress/unittests/test_helper/libtest_helper.a \ 679 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 680 681UNITTESTS_TEST_HOSTKEYS_OBJS=\ 682 regress/unittests/hostkeys/tests.o \ 683 regress/unittests/hostkeys/test_iterate.o \ 684 $(P11OBJS) $(SKOBJS) 685 686regress/unittests/hostkeys/test_hostkeys$(EXEEXT): \ 687 ${UNITTESTS_TEST_HOSTKEYS_OBJS} \ 688 regress/unittests/test_helper/libtest_helper.a libssh.a 689 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_HOSTKEYS_OBJS) \ 690 regress/unittests/test_helper/libtest_helper.a \ 691 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 692 693UNITTESTS_TEST_MATCH_OBJS=\ 694 regress/unittests/match/tests.o 695 696regress/unittests/match/test_match$(EXEEXT): \ 697 ${UNITTESTS_TEST_MATCH_OBJS} \ 698 regress/unittests/test_helper/libtest_helper.a libssh.a 699 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_MATCH_OBJS) \ 700 regress/unittests/test_helper/libtest_helper.a \ 701 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 702 703UNITTESTS_TEST_CRYPTO_OBJS=\ 704 regress/unittests/crypto/test_ed25519.o \ 705 regress/unittests/crypto/test_mldsa.o \ 706 regress/unittests/crypto/test_mldsa_eddsa.o \ 707 regress/unittests/crypto/test_mlkem.o \ 708 regress/unittests/crypto/tests.o \ 709 $(P11OBJS) $(SKOBJS) 710 711regress/unittests/crypto/test_crypto$(EXEEXT): \ 712 ${UNITTESTS_TEST_CRYPTO_OBJS} \ 713 regress/unittests/test_helper/libtest_helper.a libssh.a 714 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_CRYPTO_OBJS) \ 715 regress/unittests/test_helper/libtest_helper.a \ 716 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 717 718UNITTESTS_TEST_MISC_OBJS=\ 719 regress/unittests/misc/tests.o \ 720 regress/unittests/misc/test_parse.o \ 721 regress/unittests/misc/test_expand.o \ 722 regress/unittests/misc/test_convtime.o \ 723 regress/unittests/misc/test_argv.o \ 724 regress/unittests/misc/test_strdelim.o \ 725 regress/unittests/misc/test_hpdelim.o \ 726 regress/unittests/misc/test_ptimeout.o \ 727 regress/unittests/misc/test_xextendf.o \ 728 regress/unittests/misc/test_misc.o 729 730regress/unittests/misc/test_misc$(EXEEXT): \ 731 ${UNITTESTS_TEST_MISC_OBJS} \ 732 regress/unittests/test_helper/libtest_helper.a libssh.a 733 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_MISC_OBJS) \ 734 regress/unittests/test_helper/libtest_helper.a \ 735 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 736 737UNITTESTS_TEST_SERVCONF_OBJS=\ 738 regress/unittests/servconf/tests.o \ 739 servconf.o \ 740 groupaccess.o \ 741 $(P11OBJS) $(SKOBJS) 742 743regress/unittests/servconf/test_servconf$(EXEEXT): \ 744 ${UNITTESTS_TEST_SERVCONF_OBJS} \ 745 regress/unittests/test_helper/libtest_helper.a libssh.a 746 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_SERVCONF_OBJS) \ 747 regress/unittests/test_helper/libtest_helper.a \ 748 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 749 750UNITTESTS_TEST_UTF8_OBJS=\ 751 regress/unittests/utf8/tests.o 752 753regress/unittests/utf8/test_utf8$(EXEEXT): \ 754 ${UNITTESTS_TEST_UTF8_OBJS} \ 755 regress/unittests/test_helper/libtest_helper.a libssh.a 756 $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_UTF8_OBJS) \ 757 regress/unittests/test_helper/libtest_helper.a \ 758 -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(TESTLIBS) 759 760# These all need to be compiled -fPIC, so they are treated differently. 761SK_DUMMY_OBJS=\ 762 regress/misc/sk-dummy/sk-dummy.lo \ 763 regress/misc/sk-dummy/fatal.lo \ 764 ed25519.lo ed25519-openssl.lo 765 766SK_DUMMY_LIBRARY=@SK_DUMMY_LIBRARY@ 767 768.c.lo: Makefile.in config.h 769 $(CC) $(CFLAGS_NOPIE) $(PICFLAG) $(CPPFLAGS) -c $< -o $@ 770 771regress/misc/sk-dummy/sk-dummy.so: $(SK_DUMMY_OBJS) 772 $(CC) $(CFLAGS) $(CPPFLAGS) $(PICFLAG) -shared -o $@ $(SK_DUMMY_OBJS) \ 773 -L. -Lopenbsd-compat -lopenbsd-compat $(LDFLAGS_NOPIE) $(TESTLIBS) 774 775SSH_VERIFY_ATTESTATION_OBJS=\ 776 regress/misc/ssh-verify-attestation/ssh-verify-attestation.o \ 777 $(P11OBJS) $(SKOBJS) 778 779ssh-verify-attestation: regress/misc/ssh-verify-attestation/ssh-verify-attestation$(EXEEXT) 780 781regress/misc/ssh-verify-attestation/ssh-verify-attestation$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSH_VERIFY_ATTESTATION_OBJS) 782 $(LD) -o $@ $(SSH_VERIFY_ATTESTATION_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(CHANNELLIBS) $(LIBFIDO2) 783 784 785regress-binaries: regress-prep $(LIBCOMPAT) \ 786 regress/modpipe$(EXEEXT) \ 787 regress/timestamp$(EXEEXT) \ 788 regress/setuid-allowed$(EXEEXT) \ 789 regress/netcat$(EXEEXT) \ 790 regress/check-perm$(EXEEXT) \ 791 regress/mkdtemp$(EXEEXT) \ 792 $(SK_DUMMY_LIBRARY) 793 794regress-unit-binaries: regress-prep $(REGRESSLIBS) \ 795 regress/unittests/authopt/test_authopt$(EXEEXT) \ 796 regress/unittests/bitmap/test_bitmap$(EXEEXT) \ 797 regress/unittests/conversion/test_conversion$(EXEEXT) \ 798 regress/unittests/hostkeys/test_hostkeys$(EXEEXT) \ 799 regress/unittests/kex/test_kex$(EXEEXT) \ 800 regress/unittests/match/test_match$(EXEEXT) \ 801 regress/unittests/crypto/test_crypto$(EXEEXT) \ 802 regress/unittests/misc/test_misc$(EXEEXT) \ 803 regress/unittests/servconf/test_servconf$(EXEEXT) \ 804 regress/unittests/sshbuf/test_sshbuf$(EXEEXT) \ 805 regress/unittests/sshkey/test_sshkey$(EXEEXT) \ 806 regress/unittests/sshsig/test_sshsig$(EXEEXT) \ 807 regress/unittests/utf8/test_utf8$(EXEEXT) 808 809tests: file-tests t-exec interop-tests extra-tests unit 810 echo all tests passed 811 812unit: regress-unit-binaries 813 cd $(srcdir)/regress || exit $$?; \ 814 $(MAKE) \ 815 .CURDIR="$(abs_top_srcdir)/regress" \ 816 .OBJDIR="$(BUILDDIR)/regress" \ 817 OBJ="$(BUILDDIR)/regress" \ 818 $@ && echo $@ tests passed 819 820unit-bench: regress-unit-binaries 821 cd $(srcdir)/regress || exit $$?; \ 822 $(MAKE) \ 823 .CURDIR="$(abs_top_srcdir)/regress" \ 824 .OBJDIR="$(BUILDDIR)/regress" \ 825 OBJ="$(BUILDDIR)/regress" $@ 826 827TEST_SSH_SSHD="$(BUILDDIR)/sshd" 828 829interop-tests t-exec file-tests extra-tests: regress-prep regress-binaries $(TARGETS) 830 cd $(srcdir)/regress || exit $$?; \ 831 AWK='@AWK@' \ 832 EGREP='@EGREP@' \ 833 OPENSSL_BIN='@OPENSSL_BIN@' \ 834 $(MAKE) \ 835 .CURDIR="$(abs_top_srcdir)/regress" \ 836 .OBJDIR="$(BUILDDIR)/regress" \ 837 BUILDDIR="$(BUILDDIR)" \ 838 OBJ="$(BUILDDIR)/regress" \ 839 PATH="$(BUILDDIR):$${PATH}" \ 840 TEST_ENV=MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ 841 TEST_MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ 842 TEST_SSH_SCP="$(BUILDDIR)/scp" \ 843 TEST_SSH_SSH="$(BUILDDIR)/ssh" \ 844 TEST_SSH_SSHD="$(TEST_SSH_SSHD)" \ 845 TEST_SSH_SSHD_SESSION="$(BUILDDIR)/sshd-session" \ 846 TEST_SSH_SSHD_AUTH="$(BUILDDIR)/sshd-auth" \ 847 TEST_SSH_SSHAGENT="$(BUILDDIR)/ssh-agent" \ 848 TEST_SSH_SSHADD="$(BUILDDIR)/ssh-add" \ 849 TEST_SSH_SSHKEYGEN="$(BUILDDIR)/ssh-keygen" \ 850 TEST_SSH_SSHPKCS11HELPER="$(BUILDDIR)/ssh-pkcs11-helper" \ 851 TEST_SSH_SSHKEYSCAN="$(BUILDDIR)/ssh-keyscan" \ 852 TEST_SSH_SFTP="$(BUILDDIR)/sftp" \ 853 TEST_SSH_PKCS11_HELPER="$(BUILDDIR)/ssh-pkcs11-helper" \ 854 TEST_SSH_SK_HELPER="$(BUILDDIR)/ssh-sk-helper" \ 855 TEST_SSH_SFTPSERVER="$(BUILDDIR)/sftp-server" \ 856 TEST_SSH_MODULI_FILE="$(abs_top_srcdir)/moduli" \ 857 TEST_SSH_PLINK="@PLINK@" \ 858 TEST_SSH_PUTTYGEN="@PUTTYGEN@" \ 859 TEST_SSH_CONCH="@CONCH@" \ 860 TEST_SSH_DROPBEAR="@DROPBEAR@" \ 861 TEST_SSH_DROPBEARKEY="@DROPBEARKEY@" \ 862 TEST_SSH_DROPBEARCONVERT="@DROPBEARCONVERT@" \ 863 TEST_SSH_DBCLIENT="@DBCLIENT@" \ 864 TEST_SSH_TMUX="@TMUX@" \ 865 TEST_SSH_IPV6="@TEST_SSH_IPV6@" \ 866 TEST_SSH_UTF8="@TEST_SSH_UTF8@" \ 867 TEST_SHELL="$(TEST_SHELL)" \ 868 EXEEXT="$(EXEEXT)" \ 869 $@ && echo all $@ passed 870 871compat-tests: $(LIBCOMPAT) 872 (cd openbsd-compat/regress && $(MAKE)) 873 874regressclean: 875 if [ -f regress/Makefile ] && [ -r regress/Makefile ]; then \ 876 (cd regress && $(MAKE) clean) \ 877 fi 878 879survey: survey.sh ssh 880 @$(SHELL) ./survey.sh > survey 881 @echo 'The survey results have been placed in the file "survey" in the' 882 @echo 'current directory. Please review the file then send with' 883 @echo '"make send-survey".' 884 885send-survey: survey 886 mail portable-survey@mindrot.org <survey 887 888package: $(CONFIGFILES) $(MANPAGES) $(TARGETS) 889 if [ "@MAKE_PACKAGE_SUPPORTED@" = yes ]; then \ 890 sh buildpkg.sh; \ 891 fi 892 893# @DEPEND@ 894