prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
sbindir=@sbindir@
libexecdir=@libexecdir@
mandir=@mandir@
sysconfdir=@sysconfdir@

SSH_PROGRAM=@bindir@/ssh
ASKPASS_PROGRAM=@libexecdir@/ssh/ssh-askpass

CC=@CC@
PATHS=-DETCDIR=\"$(sysconfdir)\" -DSSH_PROGRAM=\"$(SSH_PROGRAM)\" -DSSH_ASKPASS_DEFAULT=\"$(ASKPASS_PROGRAM)\"
CFLAGS=@CFLAGS@ $(PATHS) @DEFS@
EXTRA_TARGETS=@GNOME_ASKPASS@
TARGETS=libssh.a ssh sshd ssh-add ssh-keygen ssh-agent scp $(EXTRA_TARGETS)
LIBS=@LIBS@
LIBWRAP=@LIBWRAP@
AR=@AR@
RANLIB=@RANLIB@
INSTALL=@INSTALL@
LFLAGS=@LDFLAGS@

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

OBJS= atomicio.o authfd.o authfile.o auth-krb4.o auth-passwd.o \
  auth-rhosts.o auth-rh-rsa.o auth-rsa.o auth-skey.o bsd-daemon.o \
  bsd-login.o bsd-mktemp.o bsd-snprintf.o bsd-strlcat.o bsd-strlcpy.o \
  bufaux.o buffer.o canohost.o channels.o cipher.o clientloop.o \
  compress.o crc32.o deattack.o helper.o helper.o hostfile.o \
  log-client.o login.o log-server.o match.o md5crypt.o mpaux.o \
  packet.o pty.o radix.o readconf.o readpass.o rsa.o servconf.o \
  serverloop.o sshconnect.o tildexpand.o ttymodes.o uidswap.o \
  xmalloc.o 
all: $(OBJS) $(TARGETS)

libssh.a: atomicio.o authfd.o authfile.o bsd-daemon.o bsd-mktemp.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 fingerprint.o helper.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 
	$(AR) rv $@ $^
	$(RANLIB) $@

ssh: ssh.o sshconnect.o log-client.o readconf.o clientloop.o libssh.a
	$(CC) -o $@ $^ $(LFLAGS) $(LIBS) 

sshd:	sshd.o auth-rhosts.o auth-krb4.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 libssh.a
	$(CC) -o $@ $^ $(LFLAGS) $(LIBS) $(LIBWRAP)

scp:	scp.o libssh.a
	$(CC) -o $@ $^ $(LFLAGS) $(LIBS) 

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

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

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

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

clean:
	rm -f *.o core $(TARGETS) config.status config.cache config.log

install: all
	$(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_PROGRAM} ; \
	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 ;

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

mrproper: distclean

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

