prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libexecdir=@libexecdir@
mandir=@mandir@
sysconfdir=@sysconfdir@
piddir=@piddir@
srcdir=@srcdir@
top_srcdir=@top_srcdir@

VPATH=@srcdir@

SSH_PROGRAM=@bindir@/ssh
ASKPASS_LOCATION=@libexecdir@/ssh
ASKPASS_PROGRAM=$(ASKPASS_LOCATION)/ssh-askpass

CC=@CC@
PATHS=-DETCDIR=\"$(sysconfdir)\" -DSSH_PROGRAM=\"$(SSH_PROGRAM)\" -DSSH_ASKPASS_DEFAULT=\"$(ASKPASS_PROGRAM)\"
CFLAGS=@CFLAGS@ $(PATHS) @DEFS@
EXTRA_TARGETS=@GNOME_ASKPASS@
LIBS=@LIBS@
AR=@AR@
RANLIB=@RANLIB@
INSTALL=@INSTALL@
PERL=@PERL@
FIXPATHS=$(PERL) @top_srcdir@/fixpaths -Dsysconfdir=${sysconfdir} -Dpiddir=${piddir}
LDFLAGS=-L. @LDFLAGS@

GNOME_CFLAGS=`gnome-config --cflags gnome gnomeui`
GNOME_LIBS=`gnome-config --libs gnome gnomeui`

TARGETS=ssh sshd ssh-add ssh-keygen ssh-agent scp $(EXTRA_TARGETS)

LIBOBJS= atomicio.o authfd.o authfile.o bsd-bindresvport.o bsd-daemon.o bsd-misc.o bsd-mktemp.o bsd-rresvport.o bsd-snprintf.o bsd-strlcat.o bsd-strlcpy.o bufaux.o buffer.o canohost.o channels.o cipher.o compat.o compress.o crc32.o deattack.o fake-getaddrinfo.o fake-getnameinfo.o fingerprint.o hostfile.o log.o match.o mpaux.o nchan.o packet.o radix.o readpass.o rsa.o tildexpand.o ttymodes.o uidswap.o xmalloc.o 

SSHOBJS= ssh.o sshconnect.o log-client.o readconf.o clientloop.o

SSHDOBJS= sshd.o auth-rhosts.o auth-krb4.o auth-pam.o auth-passwd.o auth-rsa.o auth-rh-rsa.o pty.o log-server.o login.o servconf.o serverloop.o bsd-login.o md5crypt.o

MANPAGES=scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh.1 sshd.8

CONFIGFILES=sshd_config ssh_config

all: $(TARGETS) $(MANPAGES) $(CONFIGFILES)

$(LIBOBJS): config.h

libssh.a: $(LIBOBJS)
	$(AR) rv $@ $(LIBOBJS)
	$(RANLIB) $@

ssh: libssh.a $(SSHOBJS)
	$(CC) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh $(LIBS)

sshd: libssh.a	$(SSHDOBJS)
	$(CC) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh $(LIBS)

scp: libssh.a scp.o
	$(CC) -o $@ scp.o $(LDFLAGS) -lssh $(LIBS) 

ssh-add: libssh.a ssh-add.o log-client.o
	$(CC) -o $@ ssh-add.o log-client.o $(LDFLAGS) -lssh $(LIBS) 

ssh-agent: libssh.a ssh-agent.o log-client.o
	$(CC) -o $@ ssh-agent.o log-client.o $(LDFLAGS) -lssh $(LIBS) 

ssh-keygen: libssh.a ssh-keygen.o log-client.o
	$(CC) -o $@ ssh-keygen.o log-client.o $(LDFLAGS) -lssh $(LIBS) 

gnome-ssh-askpass: gnome-ssh-askpass.c
	$(CC) $(CFLAGS) $(GNOME_CFLAGS) -o $@ gnome-ssh-askpass.c $(GNOME_LIBS)

scp.1: scp.1.in
	$(FIXPATHS) $(srcdir)/scp.1.in

ssh-add.1: ssh-add.1.in
	$(FIXPATHS) ssh-add.1.in

ssh-agent.1: ssh-agent.1.in
	$(FIXPATHS) ssh-agent.1.in

ssh-keygen.1: ssh-keygen.1.in
	$(FIXPATHS) ssh-keygen.1.in

ssh.1: ssh.1.in
	$(FIXPATHS) ssh.1.in

sshd.8: sshd.8.in
	$(FIXPATHS) sshd.8.in

sshd_config: sshd_config.in
	$(FIXPATHS) sshd_config.in

ssh_config: ssh_config.in
	$(FIXPATHS) ssh_config.in

clean:
	rm -f *.o *.a $(TARGETS) config.status config.cache config.log 
	rm -f core *.1 *.8 sshd_config ssh_config

distclean: clean
	rm -f Makefile config.h core *~

mrproper: distclean

veryclean: distclean
	rm -f configure config.h.in

install: $(TARGETS)
	$(INSTALL) -d $(bindir)
	$(INSTALL) -d $(sbindir)
	$(INSTALL) -d $(mandir)
	$(INSTALL) -d $(mandir)/man1
	$(INSTALL) -d $(mandir)/man8
	$(INSTALL) -s ssh $(bindir)/ssh
	$(INSTALL) -s scp $(bindir)/scp
	$(INSTALL) -s ssh-add $(bindir)/ssh-add
	$(INSTALL) -s ssh-agent $(bindir)/ssh-agent
	$(INSTALL) -s ssh-keygen $(bindir)/ssh-keygen
	$(INSTALL) -s sshd $(sbindir)/sshd
	$(INSTALL) -m 644 ssh.1 $(mandir)/man1/ssh.1
	$(INSTALL) -m 644 scp.1 $(mandir)/man1/scp.1
	$(INSTALL) -m 644 ssh-add.1 $(mandir)/man1/ssh-add.1
	$(INSTALL) -m 644 ssh-agent.1 $(mandir)/man1/ssh-agent.1
	$(INSTALL) -m 644 ssh-keygen.1 $(mandir)/man1/ssh-keygen.1
	$(INSTALL) -m 644 sshd.8 $(mandir)/man8/sshd.8
	-rm -f $(bindir)/slogin
	ln -s ssh $(bindir)/slogin
	-rm -f $(mandir)/man1/slogin.1
	ln -s ssh.1 $(mandir)/man1/slogin.1

	if [ ! -z "@GNOME_ASKPASS@" ] ; then \
		$(INSTALL) -d $(libexecdir) ; \
		$(INSTALL) -d $(libexecdir)/ssh ; \
		$(INSTALL) -s @GNOME_ASKPASS@ ${ASKPASS_LOCATION} ; \
	fi

	if [ ! -f $(sysconfdir)/ssh_config -a ! -f $(sysconfdir)/sshd_config ]; then \
		$(INSTALL) -d $(sysconfdir); \
		$(INSTALL) -m 644 ssh_config $(sysconfdir)/ssh_config; \
		$(INSTALL) -m 644 sshd_config $(sysconfdir)/sshd_config; \
	fi

uninstallall:	uninstall
	-rm -f $(sysconfdir)/ssh_config
	-rm -f $(sysconfdir)/sshd_config
	-rmdir $(sysconfdir)
	-rmdir $(bindir)
	-rmdir $(sbindir)
	-rmdir $(mandir)/man1
	-rmdir $(mandir)/man8
	-rmdir $(mandir)
	-rmdir $(libexecdir)

uninstall: 
	-rm -f $(bindir)/ssh
	-rm -f $(bindir)/scp
	-rm -f $(bindir)/ssh-add
	-rm -f $(bindir)/ssh-agent
	-rm -f $(bindir)/ssh-keygen
	-rm -f $(sbindir)/sshd
	-rm -f $(mandir)/man1/ssh.1
	-rm -f $(mandir)/man1/scp.1
	-rm -f $(mandir)/man1/ssh-add.1
	-rm -f $(mandir)/man1/ssh-agent.1
	-rm -f $(mandir)/man1/ssh-keygen.1
	-rm -f $(mandir)/man8/sshd.8
	-rm -f $(bindir)/slogin
	-rm -f $(mandir)/man1/slogin.1
	-rm -f ${ASKPASS_PROGRAM}
	-rmdir $(libexecdir)/ssh ;

preformat:
	-rm -f catman
	-mkdir catman
	for x in $(MANPAGES) ; do man ./$${x}.in > catman/$${x}.in ; done
