#########################################################################
#
## Makefile for building libssh2 (NetWare version - gnu make)
## Use: make -f Makefile.netware [help|all|clean|dev|devclean|dist|distclean|lib|nlm|objclean]
##
## Hacked by: Guenter Knauf
#
#########################################################################

# Edit the path below to point to the base of your Novell NDK.
ifndef NDKBASE
NDKBASE	= c:/novell
endif

# Edit the path below to point to the base of your Zlib sources.
ifndef ZLIB_PATH
ZLIB_PATH = ../../zlib-1.2.6
endif

# Edit the path below to point to the base of your OpenSSL package.
ifndef OPENSSL_PATH
OPENSSL_PATH = ../../openssl-0.9.8v
endif

# Edit the path below to point to your Distribution folder.
ifndef DISTDIR
DISTDIR	= libssh2-$(LIBSSH2_VERSION_STR)-bin-nw
endif
DISTARC	= $(DISTDIR).zip

# Edit the path below to point to your Development folder.
ifndef DEVLDIR
DEVLDIR	= libssh2-$(LIBSSH2_VERSION_STR)-dev-nw
endif
DEVLARC	= $(DEVLDIR).zip

# Edit the vars below to change NLM target settings.
TARGET	= libssh2
VERSION	= $(LIBSSH2_VERSION)
COPYR	= Copyright (c) $(LIBSSH2_COPYRIGHT_STR)
WWWURL	= http://www.libssh2.org/
DESCR	= libssh2 $(LIBSSH2_VERSION_STR) ($(LIBARCH)) - $(WWWURL)
MTSAFE	= YES
STACK	= 64000
SCREEN	= none
EXPORTS	= @$(TARGET).imp

# Edit the var below to point to your lib architecture.
ifndef LIBARCH
LIBARCH = LIBC
endif

# must be equal to DEBUG or NDEBUG
ifndef DB
	DB	= NDEBUG
	# DB	= DEBUG
endif
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
	OPT	= -O2
	OBJDIR	= release
else
	OPT	= -g
	OPT	+= -DLIBSSH2DEBUG
	OBJDIR	= debug
endif

# The following lines defines your compiler.
ifdef CWFolder
	METROWERKS = $(CWFolder)
endif
ifdef METROWERKS
	# MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support
	MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support
	CC = mwccnlm
else
	CC = $(CROSSPREFIX)gcc
endif
CP	= cp -afv
MD	= mkdir
RD	= rm -fr
# RM	= rm -f
# Here you can find a native Win32 binary of the original awk:
# http://www.gknw.net/development/prgtools/awk-20100523.zip
AWK	= awk
# If you want to mark the target as MTSAFE you will need a tool for
# generating the xdc data for the linker; here's a minimal tool:
# http://www.gknw.net/development/prgtools/mkxdc.zip
MPKXDC	= mkxdc
ZIP	= zip -qzr9

# LIBARCH_U = $(shell $(AWK) 'BEGIN {print toupper(ARGV[1])}' $(LIBARCH))
LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))

# Include the version info retrieved from libssh2.h
-include $(OBJDIR)/version.inc

# Global flags for all compilers
CFLAGS	+= $(OPT) -D$(DB) -DNETWARE -nostdinc
#CFLAGS	+= -DHAVE_CONFIG_H

ifeq ($(CC),mwccnlm)
LD	= mwldnlm
LDFLAGS	= -nostdlib $(PRELUDE) $(OBJL) -o $@ -commandfile
AR	= mwldnlm
ARFLAGS	= -nostdlib -type library -o
LIBEXT	= lib
CFLAGS	+= -msgstyle gcc -gccinc -inline on -opt nointrinsics -proc 586
CFLAGS	+= -relax_pointers
#CFLAGS	+= -w on
ifeq ($(LIBARCH),LIBC)
	PRELUDE = $(SDK_LIBC)/imports/libcpre.o
	CFLAGS += -align 4
else
	# PRELUDE = $(SDK_CLIB)/imports/clibpre.o
	# to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
	PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj"
	# CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h"
	CFLAGS += -align 1
endif
else
LD	= $(CROSSPREFIX)nlmconv
LDFLAGS	= -T
AR	= $(CROSSPREFIX)ar
ARFLAGS	= -cq
LIBEXT	= a
RANLIB	= $(CROSSPREFIX)ranlib
CFLAGS  += -m32
CFLAGS	+= -fno-builtin -fpcc-struct-return -fno-strict-aliasing
CFLAGS	+= -Wall # -pedantic
#CFLAGS	+= -Wno-pointer-sign
ifeq ($(LIBARCH),LIBC)
	PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
else
	# PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
	# to avoid the __init_* / __deinit_* whoes dont use prelude from NDK
	# http://www.gknw.net/development/mk_nlm/gcc_pre.zip
	PRELUDE = $(NDK_ROOT)/pre/prelude.o
	CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
endif
endif

LDLIBS	=

NDK_ROOT = $(NDKBASE)/ndk
SDK_CLIB = $(NDK_ROOT)/nwsdk
SDK_LIBC = $(NDK_ROOT)/libc
SNPRINTF = $(NDKBASE)/snprintf

INCLUDES = -I. -I../include

ifdef WITH_ZLIB
	INCLUDES += -I$(ZLIB_PATH)
ifdef LINK_STATIC
	LDLIBS += $(ZLIB_PATH)/nw/$(LIBARCH)/libz.$(LIBEXT)
else
	MODULES += libz.nlm
	IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
endif
endif
INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)
LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/ssl.$(LIBEXT)
LDLIBS += $(OPENSSL_PATH)/out_nw_$(LIBARCH_L)/crypto.$(LIBEXT)
IMPORTS += GetProcessSwitchCount RunningProcess

ifeq ($(LIBARCH),LIBC)
	INCLUDES += -I$(SDK_LIBC)/include
	# INCLUDES += -I$(SDK_LIBC)/include/nks
	# INCLUDES += -I$(SDK_LIBC)/include/winsock
	CFLAGS += -D_POSIX_SOURCE
else
	INCLUDES += -I$(SDK_CLIB)/include/nlm
	# INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
	# INCLUDES += -I$(SDK_CLIB)/include
endif
CFLAGS	+= $(INCLUDES)

ifeq ($(MTSAFE),YES)
	XDCOPT = -n
endif
ifeq ($(MTSAFE),NO)
	XDCOPT = -u
endif
ifdef XDCOPT
	XDCDATA = $(OBJDIR)/$(TARGET).xdc
endif

ifeq ($(findstring /sh,$(SHELL)),/sh)
DL	= '
DS	= /
else
DS	= \\
endif

vpath %.c . ../src

# include Makefile.inc to get CSOURCES define
include ../Makefile.inc

OBJECTS := $(patsubst %.c,%.o,$(CSOURCES))
ifeq ($(LIBARCH),CLIB)
# CLIB lacks of snprint() function - here's a replacement:
# http://www.ijs.si/software/snprintf/
OBJECTS += snprintf.o
vpath %.c $(SNPRINTF)
endif

OBJS	:= $(addprefix $(OBJDIR)/,$(OBJECTS))
OBJL	= $(OBJS) $(OBJDIR)/nwlib.o $(LDLIBS)

all: lib nlm

nlm: prebuild $(TARGET).nlm

lib: prebuild $(TARGET).$(LIBEXT)

prebuild: $(OBJDIR) $(OBJDIR)/version.inc libssh2_config.h

test: all
	$(MAKE) -C test -f Makefile.netware

$(OBJDIR)/%.o: %.c
#	@echo Compiling $<
	$(CC) $(CFLAGS) -c $< -o $@

$(OBJDIR)/version.inc: ../include/libssh2.h $(OBJDIR)
	@echo Creating $@
	@$(AWK) -f ../get_ver.awk $< > $@

dist: all $(DISTDIR) $(DISTDIR)/readme.txt
	@-$(MD) $(DISTDIR)$(DS)bin
	@-$(CP) ../AUTHORS $(DISTDIR)
	@-$(CP) ../COPYING $(DISTDIR)
	@-$(CP) ../INSTALL $(DISTDIR)
	@-$(CP) ../README $(DISTDIR)
	@-$(CP) ../RELEASE-NOTES $(DEVLDIR)
	@$(CP) $(TARGET).nlm $(DISTDIR)/bin
	@echo Creating $(DISTARC)
	@$(ZIP) $(DISTARC) $(DISTDIR)/* < $(DISTDIR)/readme.txt

dev: all $(DEVLDIR) $(DEVLDIR)/readme.txt
	@-$(MD) $(DEVLDIR)$(DS)bin
	@-$(MD) $(DEVLDIR)$(DS)include
	@-$(MD) $(DEVLDIR)$(DS)nw
	@-$(CP) ../AUTHORS $(DISTDIR)
	@-$(CP) ../COPYING $(DISTDIR)
	@-$(CP) ../INSTALL $(DEVLDIR)
	@-$(CP) ../README $(DEVLDIR)
	@-$(CP) ../RELEASE-NOTES $(DEVLDIR)
	@$(CP) $(TARGET).nlm $(DEVLDIR)/bin
	@$(CP) ../include/*.h $(DEVLDIR)/include
	@$(CP) libssh2_config.h $(DEVLDIR)/include
	@$(CP) $(TARGET).$(LIBEXT) $(DEVLDIR)/nw
	@echo Creating $(DEVLARC)
	@$(ZIP) $(DEVLARC) $(DEVLDIR)/* < $(DEVLDIR)/readme.txt

distclean: clean
	-$(RD) $(DISTDIR)
	-$(RM) $(DISTARC)

devclean: clean
	-$(RD) $(DEVLDIR)
	-$(RM) $(DEVLARC)

objclean:
	-$(RD) $(OBJDIR)

testclean: clean
	$(MAKE) -C test -f Makefile.netware clean

clean: objclean
	-$(RM) libssh2_config.h
	-$(RM) $(TARGET).nlm $(TARGET).$(LIBEXT) $(TARGET).imp

$(OBJDIR):
	@$(MD) $@

$(DISTDIR):
	@$(MD) $@

$(DEVLDIR):
	@$(MD) $@

$(TARGET).$(LIBEXT): $(OBJS)
	@echo Creating $@
	@-$(RM) $@
	@$(AR) $(ARFLAGS) $@ $^
ifdef RANLIB
	@$(RANLIB) $@
endif

$(TARGET).nlm: $(OBJDIR)/$(TARGET).def $(TARGET).imp $(OBJL) $(XDCDATA)
	@echo Linking $@
	@-$(RM) $@
	@$(LD) $(LDFLAGS) $<

$(OBJDIR)/%.xdc: Makefile.netware
	@echo Creating $@
	@$(MPKXDC) $(XDCOPT) $@

$(OBJDIR)/%.def: Makefile.netware
	@echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
	@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
	@echo $(DL)# All your changes will be lost!!$(DL) >> $@
	@echo $(DL)#$(DL) >> $@
	@echo $(DL)copyright "$(COPYR)"$(DL) >> $@
	@echo $(DL)description "$(DESCR)"$(DL) >> $@
	@echo $(DL)version $(VERSION)$(DL) >> $@
ifdef NLMTYPE
	@echo $(DL)type $(NLMTYPE)$(DL) >> $@
endif
ifdef STACK
	@echo $(DL)stack $(STACK)$(DL) >> $@
endif
ifdef SCREEN
	@echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
else
	@echo $(DL)screenname "DEFAULT"$(DL) >> $@
endif
ifeq ($(DB),DEBUG)
	@echo $(DL)debug$(DL) >> $@
endif
	@echo $(DL)threadname "$(TARGET)"$(DL) >> $@
ifdef XDCDATA
	@echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
endif
	@echo $(DL)flag_on 64$(DL) >> $@
ifeq ($(LIBARCH),CLIB)
	@echo $(DL)start _Prelude$(DL) >> $@
	@echo $(DL)exit _Stop$(DL) >> $@
	@echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@
	@echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@
	@echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
	@echo $(DL)import @$(SDK_CLIB)/imports/socklib.imp$(DL) >> $@
	@echo $(DL)module clib$(DL) >> $@
else
	@echo $(DL)pseudopreemption$(DL) >> $@
	@echo $(DL)start _LibCPrelude$(DL) >> $@
	@echo $(DL)exit _LibCPostlude$(DL) >> $@
	@echo $(DL)check _LibCCheckUnload$(DL) >> $@
	@echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@
	@echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@
	@echo $(DL)module libc$(DL) >> $@
endif
ifdef MODULES
	@echo $(DL)module $(MODULES)$(DL) >> $@
endif
ifdef EXPORTS
	@echo $(DL)export $(EXPORTS)$(DL) >> $@
endif
ifdef IMPORTS
	@echo $(DL)import $(IMPORTS)$(DL) >> $@
endif
ifeq ($(LD),nlmconv)
	@echo $(DL)input $(OBJL)$(DL) >> $@
	@echo $(DL)input $(PRELUDE)$(DL) >> $@
	@echo $(DL)output $(TARGET).nlm$(DL) >> $@
endif

libssh2_config.h: Makefile.netware
	@echo Creating $@
	@echo $(DL)/* $@ for NetWare target.$(DL) > $@
	@echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@
	@echo $(DL)** All your changes will be lost!!$(DL) >> $@
	@echo $(DL)*/$(DL) >> $@
	@echo $(DL)#define VERSION "$(LIBSSH2_VERSION_STR)"$(DL) >> $@
	@echo $(DL)#define PACKAGE_BUGREPORT "http://sourceforge.net/projects/libssh2"$(DL) >> $@
ifeq ($(LIBARCH),CLIB)
	@echo $(DL)#define OS "i586-pc-clib-NetWare"$(DL) >> $@
	@echo $(DL)#define NETDB_USE_INTERNET 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRICMP 1$(DL) >> $@
	@echo $(DL)#define socklen_t int$(DL) >> $@
	@echo $(DL)#define sleep(s) delay(1000 * s)$(DL) >> $@
	@echo $(DL)#define strcasecmp stricmp$(DL) >> $@
	@echo $(DL)#define strncasecmp strnicmp$(DL) >> $@
else
	@echo $(DL)#define OS "i586-pc-libc-NetWare"$(DL) >> $@
	@echo $(DL)#define HAVE_DLFCN_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_DLOPEN 1$(DL) >> $@
	@echo $(DL)#define HAVE_FTRUNCATE 1$(DL) >> $@
	@echo $(DL)#define HAVE_GETTIMEOFDAY 1$(DL) >> $@
	@echo $(DL)#define HAVE_INET_PTON 1$(DL) >> $@
	@echo $(DL)#define HAVE_INTTYPES_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_LONGLONG 1$(DL) >> $@
	@echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRCASECMP 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRLCAT 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRLCPY 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRTOLL 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_PARAM_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_SELECT_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_TERMIOS_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_AF_INET6 1$(DL) >> $@
	@echo $(DL)#define HAVE_PF_INET6 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRUCT_IN6_ADDR 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRUCT_SOCKADDR_IN6 1$(DL) >> $@
	@echo $(DL)#define SIZEOF_STRUCT_IN6_ADDR 16$(DL) >> $@
ifdef ENABLE_IPV6
	@echo $(DL)#define ENABLE_IPV6 1$(DL) >> $@
endif
endif
	@echo $(DL)#define HAVE_ARPA_INET_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_CTYPE_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_FIONBIO 1$(DL) >> $@
	@echo $(DL)#define HAVE_GETHOSTBYADDR 1$(DL) >> $@
	@echo $(DL)#define HAVE_GETHOSTBYNAME 1$(DL) >> $@
	@echo $(DL)#define HAVE_GETPROTOBYNAME 1$(DL) >> $@
	@echo $(DL)#define HAVE_GMTIME_R 1$(DL) >> $@
	@echo $(DL)#define HAVE_INET_ADDR 1$(DL) >> $@
	@echo $(DL)#define HAVE_INET_NTOA 1$(DL) >> $@
	@echo $(DL)#define HAVE_LL 1$(DL) >> $@
	@echo $(DL)#define HAVE_LOCALTIME_R 1$(DL) >> $@
	@echo $(DL)#define HAVE_MALLOC_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_NETINET_IN_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SELECT 1$(DL) >> $@
	@echo $(DL)#define HAVE_SETJMP_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SIGNAL 1$(DL) >> $@
	@echo $(DL)#define HAVE_SIGNAL_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SIG_ATOMIC_T 1$(DL) >> $@
	@echo $(DL)#define HAVE_SOCKET 1$(DL) >> $@
	@echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRDUP 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRFTIME 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRING_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRSTR 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRUCT_ADDRINFO 1$(DL) >> $@
	@echo $(DL)#define HAVE_STRUCT_TIMEVAL 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_IOCTL_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_STAT_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_TIME_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_TIME_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_UNAME 1$(DL) >> $@
	@echo $(DL)#define HAVE_UNISTD_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_UTIME 1$(DL) >> $@
	@echo $(DL)#define HAVE_UTIME_H 1$(DL) >> $@
	@echo $(DL)#define RETSIGTYPE void$(DL) >> $@
	@echo $(DL)#define SIZEOF_STRUCT_IN_ADDR 4$(DL) >> $@
	@echo $(DL)#define STDC_HEADERS 1$(DL) >> $@
	@echo $(DL)#define TIME_WITH_SYS_TIME 1$(DL) >> $@
	@echo $(DL)#define USE_SSLEAY 1$(DL) >> $@
	@echo $(DL)#define USE_OPENSSL 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_X509_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_SSL_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_RSA_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_PEM_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_ERR_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_CRYPTO_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_OPENSSL_ENGINE_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_O_NONBLOCK 1$(DL) >> $@
	@echo $(DL)#define HAVE_LIBSSL 1$(DL) >> $@
	@echo $(DL)#define HAVE_LIBCRYPTO 1$(DL) >> $@
	@echo $(DL)#define OPENSSL_NO_KRB5 1$(DL) >> $@
ifdef WITH_ZLIB
	@echo $(DL)#define HAVE_ZLIB_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_LIBZ 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_HAVE_ZLIB 1$(DL) >> $@
endif
ifdef NW_WINSOCK
	@echo $(DL)#define HAVE_CLOSESOCKET 1$(DL) >> $@
else
	@echo $(DL)#define HAVE_SYS_TYPES_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_SOCKET_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_SYS_SOCKIO_H 1$(DL) >> $@
	@echo $(DL)#define HAVE_NETDB_H 1$(DL) >> $@
endif
ifdef OLD_NOVELLSDK
	@echo $(DL)#define socklen_t int$(DL) >> $@
endif
	@echo $(DL)#define LIBSSH2_DH_GEX_NEW 1$(DL) >> $@
ifeq ($(DB),DEBUG)
	@echo $(DL)#define LIBSSH2_DEBUG_CONNECTION 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_ERRORS 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_KEX 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_PUBLICKEY 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_SCP 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_SFTP 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_TRANSPORT 1$(DL) >> $@
	@echo $(DL)#define LIBSSH2_DEBUG_USERAUTH 1$(DL) >> $@
endif

libssh2.imp: Makefile.netware
	@echo Creating $@
	@echo $(DL)# $@ for NetWare target.$(DL) > $@
	@echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
	@echo $(DL)# All your changes will be lost!!$(DL) >> $@
ifeq ($(LIBARCH),CLIB)
	@echo $(DL)  (CLIB_LIBSSH2)$(DL) >> $@
else
	@echo $(DL)  (LIBC_LIBSSH2)$(DL) >> $@
endif
	@echo $(DL)  libssh2_banner_set,$(DL) >> $@
	@echo $(DL)  libssh2_channel_close,$(DL) >> $@
	@echo $(DL)  libssh2_channel_direct_tcpip_ex,$(DL) >> $@
	@echo $(DL)  libssh2_channel_eof,$(DL) >> $@
	@echo $(DL)  libssh2_channel_flush_ex,$(DL) >> $@
	@echo $(DL)  libssh2_channel_free,$(DL) >> $@
	@echo $(DL)  libssh2_channel_get_exit_status,$(DL) >> $@
	@echo $(DL)  libssh2_channel_open_ex,$(DL) >> $@
	@echo $(DL)  libssh2_channel_process_startup,$(DL) >> $@
	@echo $(DL)  libssh2_channel_read_ex,$(DL) >> $@
	@echo $(DL)  libssh2_channel_request_pty_ex,$(DL) >> $@
	@echo $(DL)  libssh2_channel_send_eof,$(DL) >> $@
	@echo $(DL)  libssh2_channel_set_blocking,$(DL) >> $@
	@echo $(DL)  libssh2_channel_setenv_ex,$(DL) >> $@
	@echo $(DL)  libssh2_channel_wait_closed,$(DL) >> $@
	@echo $(DL)  libssh2_channel_wait_eof,$(DL) >> $@
	@echo $(DL)  libssh2_channel_write_ex,$(DL) >> $@
	@echo $(DL)  libssh2_hostkey_hash,$(DL) >> $@
	@echo $(DL)  libssh2_scp_recv,$(DL) >> $@
	@echo $(DL)  libssh2_scp_send64,$(DL) >> $@
	@echo $(DL)  libssh2_scp_send_ex,$(DL) >> $@
	@echo $(DL)  libssh2_knownhost_add,$(DL) >> $@
	@echo $(DL)  libssh2_knownhost_check,$(DL) >> $@
	@echo $(DL)  libssh2_knownhost_free,$(DL) >> $@
	@echo $(DL)  libssh2_knownhost_init,$(DL) >> $@
	@echo $(DL)  libssh2_knownhost_readfile,$(DL) >> $@
	@echo $(DL)  libssh2_knownhost_writefile,$(DL) >> $@
	@echo $(DL)  libssh2_session_abstract,$(DL) >> $@
	@echo $(DL)  libssh2_session_block_directions,$(DL) >> $@
	@echo $(DL)  libssh2_session_callback_set,$(DL) >> $@
	@echo $(DL)  libssh2_session_disconnect_ex,$(DL) >> $@
	@echo $(DL)  libssh2_session_free,$(DL) >> $@
	@echo $(DL)  libssh2_session_hostkey,$(DL) >> $@
	@echo $(DL)  libssh2_session_init_ex,$(DL) >> $@
	@echo $(DL)  libssh2_session_last_errno,$(DL) >> $@
	@echo $(DL)  libssh2_session_last_error,$(DL) >> $@
	@echo $(DL)  libssh2_session_method_pref,$(DL) >> $@
	@echo $(DL)  libssh2_session_methods,$(DL) >> $@
	@echo $(DL)  libssh2_session_set_blocking,$(DL) >> $@
	@echo $(DL)  libssh2_session_startup,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_close_handle,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_fstat_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_init,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_last_error,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_mkdir_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_open_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_read,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_readdir_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_rename_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_rmdir_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_seek,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_seek64,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_shutdown,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_stat_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_symlink_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_tell,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_unlink_ex,$(DL) >> $@
	@echo $(DL)  libssh2_sftp_write,$(DL) >> $@
	@echo $(DL)  libssh2_trace,$(DL) >> $@
	@echo $(DL)  libssh2_userauth_authenticated,$(DL) >> $@
	@echo $(DL)  libssh2_userauth_keyboard_interactive_ex,$(DL) >> $@
	@echo $(DL)  libssh2_userauth_list,$(DL) >> $@
	@echo $(DL)  libssh2_userauth_password_ex,$(DL) >> $@
	@echo $(DL)  libssh2_userauth_publickey_fromfile_ex$(DL) >> $@

$(DISTDIR)/readme.txt: Makefile.netware
	@echo Creating $@
	@echo $(DL)This is a binary distribution for NetWare platform.$(DL) > $@
	@echo $(DL)libssh2 version $(LIBSSH2_VERSION_STR)$(DL) >> $@
	@echo $(DL)Please download the complete libssh package for$(DL) >> $@
	@echo $(DL)any further documentation:$(DL) >> $@
	@echo $(DL)$(WWWURL)$(DL) >> $@

$(DEVLDIR)/readme.txt: Makefile.netware
	@echo Creating $@
	@echo $(DL)This is a development distribution for NetWare platform.$(DL) > $@
	@echo $(DL)libssh2 version $(LIBSSH2_VERSION_STR)$(DL) >> $@
	@echo $(DL)Please download the complete libssh2 package for$(DL) >> $@
	@echo $(DL)any further documentation:$(DL) >> $@
	@echo $(DL)$(WWWURL)$(DL) >> $@

help: $(OBJDIR)/version.inc
	@echo $(DL)===========================================================$(DL)
ifeq ($(LIBARCH),LIBC)
	@echo $(DL)Novell LibC NDK = $(SDK_LIBC)$(DL)
else
	@echo $(DL)Novell CLib NDK = $(SDK_CLIB)$(DL)
endif
	@echo $(DL)OpenSSL path    = $(OPENSSL_PATH)$(DL)
	@echo $(DL)Zlib path       = $(ZLIB_PATH)$(DL)
	@echo $(DL)===========================================================$(DL)
	@echo $(DL)libssh $(LIBSSH2_VERSION_STR) - available targets are:$(DL)
	@echo $(DL)$(MAKE) all$(DL)
	@echo $(DL)$(MAKE) nlm$(DL)
	@echo $(DL)$(MAKE) lib$(DL)
	@echo $(DL)$(MAKE) clean$(DL)
	@echo $(DL)$(MAKE) dev$(DL)
	@echo $(DL)$(MAKE) devclean$(DL)
	@echo $(DL)$(MAKE) dist$(DL)
	@echo $(DL)$(MAKE) distclean$(DL)
	@echo $(DL)$(MAKE) objclean$(DL)
	@echo $(DL)$(MAKE) test$(DL)
	@echo $(DL)===========================================================$(DL)


