Doing the following: ./configure --prefix=/tmp/ssh make install ./configure make install The second make will not compile scp.o and leave /tmp/ssh/bin/ssh as path to ssh in the binary. This will work fine until the testing directory /tmp/ssh is removed. The reason is that scp.o is missing from SSHOBJS in the Makefile: SSHOBJS= ssh.o sshconnect.o sshconnect1.o sshconnect2.o sshtty.o readconf.o clientloop.o should be: SSHOBJS= ssh.o sshconnect.o sshconnect1.o sshconnect2.o sshtty.o readconf.o clientloop.o scp.o
No, that is the wrong way of handling it. The issue goes back to detecting dependancy changes. This will be an issue for ssh-add, sftp, sftp-server, scp, ssh-agent, ssh- keygen, ssh-keysign, ssh-keyscan and ssh-rand-helper. And it is deeper than just 'path has not changed'. it is 'Any changes in config.h are not propgated'. In the past we have stated if you do a 'make clean' before rebuilding. At this point I'm still convinced that is the correct thing to do. Handling dependancies is a nightmare. However, I will take another look at it.
Maybe modify each target to have: sftp$(EXEEXT): config.h $(LIBCOMPAT) libssh.a sftp.o sftp-client.o sftp-int.o
I can't see how this happened: config.h is already in the dependancy list, but I have also added Makefile.in as a couple of paths are defined there too.
Mass change of RESOLVED bugs to CLOSED