subdirs = src/
top_srcdir = @top_srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
libdir = @exec_prefix@/lib
incldir = @prefix@/include
distdir = @top_srcdir@/dist

CC = @CC@
CFLAGS = -c @CFLAGS@ -Iinclude/ -Wall -g
LIBS = -lssh2 -Lsrc/
INSTALL = @INSTALL@
VERSION=@PACKAGE_VERSION@
DISTLIB=libssh2-$(VERSION)

all:
	@for dir in ${subdirs}; do \
		(cd $$dir && $(MAKE) all) \
		|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
	done && test -z "$$fail"
	$(CC) -o ssh2_sample.o ssh2_sample.c $(CFLAGS)
	$(CC) -o ssh2_sample ssh2_sample.o $(LIBS)
install:
	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(incldir)
	$(top_srcdir)/mkinstalldirs $(DESTDIR)$(libdir)
	@for dir in ${subdirs}; do \
		(cd $$dir && $(MAKE) install) \
		|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
	done && test -z "$$fail"
	$(INSTALL) -m 644 include/libssh2.h $(DESTDIR)$(incldir)/
	$(INSTALL) -m 644 include/libssh2_sftp.h $(DESTDIR)$(incldir)/
clean:
	@for dir in ${subdirs}; do \
		(cd $$dir && $(MAKE) clean) \
		|| case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
	done && test -z "$$fail"
	rm -f ssh2_sample.o ssh2_sample
dist:
	autoheader
	autoconf
	rm -f $(DISTLIB)
	ln -s . $(DISTLIB)
	tar -zcf $(DISTLIB).tar.gz \
		$(DISTLIB)/configure $(DISTLIB)/Makefile.in $(DISTLIB)/ssh2_sample.c \
		$(DISTLIB)/LICENSE $(DISTLIB)/README $(DISTLIB)/TODO $(DISTLIB)/INSTALL \
		$(DISTLIB)/mkinstalldirs $(DISTLIB)/install-sh $(DISTLIB)/config.sub $(DISTLIB)/config.guess \
		$(DISTLIB)/src/*.c $(DISTLIB)/src/Makefile.in \
		$(DISTLIB)/include/libssh2.h $(DISTLIB)/include/libssh2_priv.h $(DISTLIB)/include/libssh2_sftp.h \
		$(DISTLIB)/include/libssh2_config.h.in
	rm -f $(DISTLIB)
dist_nmake:
	autoheader
	autoconf
	rm -f $(DISTLIB)
	ln -s . $(DISTLIB)
	tar -zcf $(DISTLIB)-win32.tar.gz \
		$(DISTLIB)/NMakefile $(DISTLIB)/ssh2_sample.c $(DISTLIB)/src/*.c \
		$(DISTLIB)/LICENSE $(DISTLIB)/README $(DISTLIB)/TODO $(DISTLIB)/INSTALL \
		$(DISTLIB)/include/libssh2.h $(DISTLIB)/include/libssh2_priv.h $(DISTLIB)/include/libssh2_sftp.h \
		$(DISTLIB)/win32/config.mk $(DISTLIB)/win32/libssh2_config.h $(DISTLIB)/win32/rules.mk
	rm -f $(DISTLIB)

