summaryrefslogtreecommitdiff
path: root/libssh2-sys/libssh2-1.5.0/nw
diff options
context:
space:
mode:
Diffstat (limited to 'libssh2-sys/libssh2-1.5.0/nw')
-rw-r--r--libssh2-sys/libssh2-1.5.0/nw/GNUmakefile629
-rw-r--r--libssh2-sys/libssh2-1.5.0/nw/keepscreen.c25
-rw-r--r--libssh2-sys/libssh2-1.5.0/nw/nwlib.c304
-rw-r--r--libssh2-sys/libssh2-1.5.0/nw/test/GNUmakefile311
4 files changed, 1269 insertions, 0 deletions
diff --git a/libssh2-sys/libssh2-1.5.0/nw/GNUmakefile b/libssh2-sys/libssh2-1.5.0/nw/GNUmakefile
new file mode 100644
index 0000000..2a1029a
--- /dev/null
+++ b/libssh2-sys/libssh2-1.5.0/nw/GNUmakefile
@@ -0,0 +1,629 @@
+#########################################################################
+#
+## Makefile for building libssh2 (NetWare version - gnu make)
+## Use: make [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.8
+endif
+
+# Edit the path below to point to the base of your OpenSSL package.
+ifndef OPENSSL_PATH
+OPENSSL_PATH = ../../openssl-0.9.8zc
+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)
+CPRIGHT = 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
+
+# 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
+
+# Platform-dependent helper tool macros
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL = rm -f $1
+RMDIR = rm -fr $1
+MKDIR = mkdir -p $1
+COPY = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR = -rsync -aC $1/* $2
+TOUCH = touch $1
+CAT = cat
+ECHONL = echo ""
+DL = '
+else
+ifeq "$(OS)" "Windows_NT"
+DEL = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
+else
+DEL = -del 2>NUL $(subst /,\,$1)
+RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR = -md 2>NUL $(subst /,\,$1)
+COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT = type
+ECHONL = $(ComSpec) /c echo.
+endif
+
+# 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 = -UT
+AR = $(CROSSPREFIX)ar
+ARFLAGS = -cq
+LIBEXT = a
+RANLIB = $(CROSSPREFIX)ranlib
+CFLAGS += -m32
+CFLAGS += -fno-builtin -fpcc-struct-return
+CFLAGS += -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
+
+vpath %.c . ../src
+
+# only OpenSSL is supported with this build system
+CFLAGS += -DLIBSSH2_OPENSSL
+include ../Makefile.OpenSSL.inc
+
+# 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
+
+$(OBJDIR)/%.o: %.c
+# @echo Compiling $<
+ $(CC) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)/version.inc: ../get_ver.awk ../include/libssh2.h $(OBJDIR)
+ @echo Creating $@
+ @$(AWK) -f $^ > $@
+
+dist: all $(DISTDIR) $(DISTDIR)/readme.txt
+ @$(call MKDIR, $(DISTDIR)/bin)
+ @$(call COPY, ../AUTHORS, $(DISTDIR))
+ @$(call COPY, ../COPYING, $(DISTDIR))
+ @$(call COPY, ../INSTALL, $(DISTDIR))
+ @$(call COPY, ../README, $(DISTDIR))
+ @$(call COPY, ../RELEASE-NOTES, $(DISTDIR))
+ @$(call COPY, $(TARGET).nlm, $(DISTDIR)/bin)
+ @echo Creating $(DISTARC)
+ @$(ZIP) $(DISTARC) $(DISTDIR)/* < $(DISTDIR)/readme.txt
+
+dev: all $(DEVLDIR) $(DEVLDIR)/readme.txt
+ @$(call MKDIR, $(DEVLDIR)/bin)
+ @$(call MKDIR, $(DEVLDIR)/include)
+ @$(call MKDIR, $(DEVLDIR)/nw)
+ @$(call COPY, ../AUTHORS, $(DEVLDIR))
+ @$(call COPY, ../COPYING, $(DEVLDIR))
+ @$(call COPY, ../INSTALL, $(DEVLDIR))
+ @$(call COPY, ../README, $(DEVLDIR))
+ @$(call COPY, ../RELEASE-NOTES, $(DEVLDIR))
+ @$(call COPY, ../include/*.h, $(DEVLDIR)/include)
+ @$(call COPY, libssh2_config.h, $(DEVLDIR)/include)
+ @$(call COPY, $(TARGET).nlm, $(DEVLDIR)/bin)
+ @$(call COPY, $(TARGET).imp, $(DEVLDIR)/nw)
+ @$(call COPY, $(TARGET).$(LIBEXT), $(DEVLDIR)/nw)
+ @echo Creating $(DEVLARC)
+ @$(ZIP) $(DEVLARC) $(DEVLDIR)/* < $(DEVLDIR)/readme.txt
+
+distclean: clean
+ $(call RMDIR, $(DISTDIR))
+ $(call DEL, $(DISTARC))
+
+devclean: clean
+ $(call RMDIR, $(DEVLDIR))
+ $(call DEL, $(DEVLARC))
+
+objclean:
+ $(call RMDIR, $(OBJDIR))
+
+testclean: clean
+ $(MAKE) -C test clean
+
+clean: objclean
+ $(call DEL, libssh2_config.h)
+ $(call DEL, $(TARGET).*)
+
+$(OBJDIR):
+ @$(call MKDIR, $@)
+
+$(DISTDIR):
+ @$(call MKDIR, $@)
+
+$(DEVLDIR):
+ @$(call MKDIR, $@)
+
+$(TARGET).$(LIBEXT): $(OBJS)
+ @echo Creating $@
+ @$(call DEL, $@)
+ @$(AR) $(ARFLAGS) $@ $^
+ifdef RANLIB
+ @$(RANLIB) $@
+endif
+
+$(TARGET).nlm: $(OBJDIR)/$(TARGET).def $(TARGET).imp $(OBJL) $(XDCDATA)
+ @echo Linking $@
+ @$(call DEL, $@)
+ @$(LD) $(LDFLAGS) $<
+
+$(OBJDIR)/%.xdc: GNUmakefile
+ @echo Creating $@
+ @$(MPKXDC) $(XDCOPT) $@
+
+$(OBJDIR)/%.def: GNUmakefile
+ @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 "$(CPRIGHT)"$(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: GNUmakefile
+ @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: GNUmakefile
+ @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_exit,$(DL) >> $@
+ @echo $(DL) libssh2_hostkey_hash,$(DL) >> $@
+ @echo $(DL) libssh2_init,$(DL) >> $@
+ @echo $(DL) libssh2_knownhost_add,$(DL) >> $@
+ @echo $(DL) libssh2_knownhost_check,$(DL) >> $@
+ @echo $(DL) libssh2_knownhost_checkp,$(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_scp_recv,$(DL) >> $@
+ @echo $(DL) libssh2_scp_send64,$(DL) >> $@
+ @echo $(DL) libssh2_scp_send_ex,$(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_handshake,$(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) >> $@
+ @echo $(DL) libssh2_version$(DL) >> $@
+
+$(DISTDIR)/readme.txt: GNUmakefile
+ @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: GNUmakefile
+ @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)
+
+
diff --git a/libssh2-sys/libssh2-1.5.0/nw/keepscreen.c b/libssh2-sys/libssh2-1.5.0/nw/keepscreen.c
new file mode 100644
index 0000000..c3471b3
--- /dev/null
+++ b/libssh2-sys/libssh2-1.5.0/nw/keepscreen.c
@@ -0,0 +1,25 @@
+/* Simple _NonAppStop() implementation which can be linked to your
+ * NLM in order to keep the screen open when the NLM terminates
+ * (the good old clib behaviour).
+ * You dont have to call it, its done automatically from LibC.
+ *
+ * 2004-Aug-11 by Guenter Knauf
+ *
+ * URL: http://www.gknw.net/development/mk_nlm/
+ */
+
+#include <stdio.h>
+#include <screen.h>
+
+void _NonAppStop()
+{
+ uint16_t row, col;
+
+ GetScreenSize(&row, &col);
+ gotorowcol(row-1, 0);
+ /* pressanykey(); */
+ printf("<Press any key to close screen> ");
+ getcharacter();
+}
+
+
diff --git a/libssh2-sys/libssh2-1.5.0/nw/nwlib.c b/libssh2-sys/libssh2-1.5.0/nw/nwlib.c
new file mode 100644
index 0000000..43018e5
--- /dev/null
+++ b/libssh2-sys/libssh2-1.5.0/nw/nwlib.c
@@ -0,0 +1,304 @@
+/*********************************************************************
+ * Universal NetWare library stub. *
+ * written by Ulrich Neuman and given to OpenSource copyright-free. *
+ * Extended for CLIB support by Guenter Knauf. *
+ *********************************************************************/
+
+#ifdef NETWARE /* Novell NetWare */
+
+#include <stdlib.h>
+
+#ifdef __NOVELL_LIBC__
+/* For native LibC-based NLM we need to register as a real lib. */
+#include <errno.h>
+#include <string.h>
+#include <library.h>
+#include <netware.h>
+#include <screen.h>
+#include <nks/thread.h>
+#include <nks/synch.h>
+
+typedef struct
+{
+ int _errno;
+ void *twentybytes;
+} libthreaddata_t;
+
+typedef struct
+{
+ int x;
+ int y;
+ int z;
+ void *tenbytes;
+ NXKey_t perthreadkey; /* if -1, no key obtained... */
+ NXMutex_t *lock;
+} libdata_t;
+
+int gLibId = -1;
+void *gLibHandle = (void *) NULL;
+rtag_t gAllocTag = (rtag_t) NULL;
+NXMutex_t *gLibLock = (NXMutex_t *) NULL;
+
+/* internal library function prototypes... */
+int DisposeLibraryData ( void * );
+void DisposeThreadData ( void * );
+int GetOrSetUpData ( int id, libdata_t **data, libthreaddata_t **threaddata );
+
+
+int _NonAppStart( void *NLMHandle,
+ void *errorScreen,
+ const char *cmdLine,
+ const char *loadDirPath,
+ size_t uninitializedDataLength,
+ void *NLMFileHandle,
+ int (*readRoutineP)( int conn,
+ void *fileHandle, size_t offset,
+ size_t nbytes,
+ size_t *bytesRead,
+ void *buffer ),
+ size_t customDataOffset,
+ size_t customDataSize,
+ int messageCount,
+ const char **messages )
+{
+ NX_LOCK_INFO_ALLOC(liblock, "Per-Application Data Lock", 0);
+
+#ifndef __GNUC__
+#pragma unused(cmdLine)
+#pragma unused(loadDirPath)
+#pragma unused(uninitializedDataLength)
+#pragma unused(NLMFileHandle)
+#pragma unused(readRoutineP)
+#pragma unused(customDataOffset)
+#pragma unused(customDataSize)
+#pragma unused(messageCount)
+#pragma unused(messages)
+#endif
+
+/*
+** Here we process our command line, post errors (to the error screen),
+** perform initializations and anything else we need to do before being able
+** to accept calls into us. If we succeed, we return non-zero and the NetWare
+** Loader will leave us up, otherwise we fail to load and get dumped.
+*/
+ gAllocTag = AllocateResourceTag(NLMHandle,
+ "<library-name> memory allocations", AllocSignature);
+
+ if (!gAllocTag) {
+ OutputToScreen(errorScreen, "Unable to allocate resource tag for "
+ "library memory allocations.\n");
+ return -1;
+ }
+
+ gLibId = register_library(DisposeLibraryData);
+
+ if (gLibId < -1) {
+ OutputToScreen(errorScreen, "Unable to register library with kernel.\n");
+ return -1;
+ }
+
+ gLibHandle = NLMHandle;
+
+ gLibLock = NXMutexAlloc(0, 0, &liblock);
+
+ if (!gLibLock) {
+ OutputToScreen(errorScreen, "Unable to allocate library data lock.\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/*
+** Here we clean up any resources we allocated. Resource tags is a big part
+** of what we created, but NetWare doesn't ask us to free those.
+*/
+void _NonAppStop( void )
+{
+ (void) unregister_library(gLibId);
+ NXMutexFree(gLibLock);
+}
+
+/*
+** This function cannot be the first in the file for if the file is linked
+** first, then the check-unload function's offset will be nlmname.nlm+0
+** which is how to tell that there isn't one. When the check function is
+** first in the linked objects, it is ambiguous. For this reason, we will
+** put it inside this file after the stop function.
+**
+** Here we check to see if it's alright to ourselves to be unloaded. If not,
+** we return a non-zero value. Right now, there isn't any reason not to allow
+** it.
+*/
+int _NonAppCheckUnload( void )
+{
+ return 0;
+}
+
+int GetOrSetUpData(int id, libdata_t **appData, libthreaddata_t **threadData)
+{
+ int err;
+ libdata_t *app_data;
+ libthreaddata_t *thread_data;
+ NXKey_t key;
+ NX_LOCK_INFO_ALLOC(liblock, "Application Data Lock", 0);
+
+ err = 0;
+ thread_data = (libthreaddata_t *) NULL;
+
+/*
+** Attempt to get our data for the application calling us. This is where we
+** store whatever application-specific information we need to carry in support
+** of calling applications.
+*/
+ app_data = (libdata_t *) get_app_data(id);
+
+ if (!app_data) {
+/*
+** This application hasn't called us before; set up application AND per-thread
+** data. Of course, just in case a thread from this same application is calling
+** us simultaneously, we better lock our application data-creation mutex. We
+** also need to recheck for data after we acquire the lock because WE might be
+** that other thread that was too late to create the data and the first thread
+** in will have created it.
+*/
+ NXLock(gLibLock);
+
+ if (!(app_data = (libdata_t *) get_app_data(id))) {
+ app_data = (libdata_t *) malloc(sizeof(libdata_t));
+
+ if (app_data) {
+ memset(app_data, 0, sizeof(libdata_t));
+
+ app_data->tenbytes = malloc(10);
+ app_data->lock = NXMutexAlloc(0, 0, &liblock);
+
+ if (!app_data->tenbytes || !app_data->lock) {
+ if (app_data->lock)
+ NXMutexFree(app_data->lock);
+
+ free(app_data);
+ app_data = (libdata_t *) NULL;
+ err = ENOMEM;
+ }
+
+ if (app_data) {
+/*
+** Here we burn in the application data that we were trying to get by calling
+** get_app_data(). Next time we call the first function, we'll get this data
+** we're just now setting. We also go on here to establish the per-thread data
+** for the calling thread, something we'll have to do on each application
+** thread the first time it calls us.
+*/
+ err = set_app_data(gLibId, app_data);
+
+ if (err) {
+ free(app_data);
+ app_data = (libdata_t *) NULL;
+ err = ENOMEM;
+ }
+ else {
+ /* create key for thread-specific data... */
+ err = NXKeyCreate(DisposeThreadData, (void *) NULL, &key);
+
+ if (err) /* (no more keys left?) */
+ key = -1;
+
+ app_data->perthreadkey = key;
+ }
+ }
+ }
+ }
+
+ NXUnlock(gLibLock);
+ }
+
+ if (app_data) {
+ key = app_data->perthreadkey;
+
+ if (key != -1 /* couldn't create a key? no thread data */
+ && !(err = NXKeyGetValue(key, (void **) &thread_data))
+ && !thread_data) {
+/*
+** Allocate the per-thread data for the calling thread. Regardless of whether
+** there was already application data or not, this may be the first call by a
+** a new thread. The fact that we allocation 20 bytes on a pointer is not very
+** important, this just helps to demonstrate that we can have arbitrarily
+** complex per-thread data.
+*/
+ thread_data = (libthreaddata_t *) malloc(sizeof(libthreaddata_t));
+
+ if (thread_data) {
+ thread_data->_errno = 0;
+ thread_data->twentybytes = malloc(20);
+
+ if (!thread_data->twentybytes) {
+ free(thread_data);
+ thread_data = (libthreaddata_t *) NULL;
+ err = ENOMEM;
+ }
+
+ if ((err = NXKeySetValue(key, thread_data))) {
+ free(thread_data->twentybytes);
+ free(thread_data);
+ thread_data = (libthreaddata_t *) NULL;
+ }
+ }
+ }
+ }
+
+ if (appData)
+ *appData = app_data;
+
+ if (threadData)
+ *threadData = thread_data;
+
+ return err;
+}
+
+int DisposeLibraryData( void *data )
+{
+ if (data) {
+ void *tenbytes = ((libdata_t *) data)->tenbytes;
+
+ if (tenbytes)
+ free(tenbytes);
+
+ free(data);
+ }
+
+ return 0;
+}
+
+void DisposeThreadData( void *data )
+{
+ if (data) {
+ void *twentybytes = ((libthreaddata_t *) data)->twentybytes;
+
+ if (twentybytes)
+ free(twentybytes);
+
+ free(data);
+ }
+}
+
+#else /* __NOVELL_LIBC__ */
+/* For native CLib-based NLM seems we can do a bit more simple. */
+#include <nwthread.h>
+
+int main ( void )
+{
+ /* initialize any globals here... */
+
+ /* do this if any global initializing was done
+ SynchronizeStart();
+ */
+ ExitThread (TSR_THREAD, 0);
+ return 0;
+}
+
+#endif /* __NOVELL_LIBC__ */
+
+#endif /* NETWARE */
+
+
diff --git a/libssh2-sys/libssh2-1.5.0/nw/test/GNUmakefile b/libssh2-sys/libssh2-1.5.0/nw/test/GNUmakefile
new file mode 100644
index 0000000..86bf6b6
--- /dev/null
+++ b/libssh2-sys/libssh2-1.5.0/nw/test/GNUmakefile
@@ -0,0 +1,311 @@
+#########################################################################
+#
+## Makefile for building libssh2 (NetWare version - gnu make)
+##
+## 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.8
+endif
+
+# Edit the path below to point to the base of your OpenSSL package.
+ifndef OPENSSL_PATH
+OPENSSL_PATH = ../../../openssl-0.9.8zc
+endif
+
+# Edit the var below to enable static linking of libssh2 and libz
+LINK_STATIC = 1
+
+# Edit the vars below to change NLM target settings.
+SAMPLES = ../../example
+TARGETS := $(filter-out x11.nlm,$(patsubst $(SAMPLES)/%.c,%.nlm,$(strip $(wildcard $(SAMPLES)/*.c))))
+VERSION = $(LIBSSH2_VERSION)
+COPYR = Copyright (c) $(LIBSSH2_COPYRIGHT_STR)
+WWWURL = http://www.libssh2.org/
+DESCR = libssh2 $(notdir $(@:.def=)) $(LIBSSH2_VERSION_STR) ($(LIBARCH)) - $(WWWURL)
+MTSAFE = YES
+STACK = 64000
+SCREEN = NONE
+#SCREEN = libssh2 $(notdir $(@:.def=))
+# Comment the line below if you dont want to load protected automatically.
+#LDRING = 3
+
+# 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
+
+# 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
+
+# Platform-dependent helper tool macros
+ifeq ($(findstring /sh,$(SHELL)),/sh)
+DEL = rm -f $1
+RMDIR = rm -fr $1
+MKDIR = mkdir -p $1
+COPY = -cp -afv $1 $2
+#COPYR = -cp -afr $1/* $2
+COPYR = -rsync -aC $1/* $2
+TOUCH = touch $1
+CAT = cat
+ECHONL = echo ""
+DL = '
+else
+ifeq "$(OS)" "Windows_NT"
+DEL = -del 2>NUL /q /f $(subst /,\,$1)
+RMDIR = -rd 2>NUL /q /s $(subst /,\,$1)
+else
+DEL = -del 2>NUL $(subst /,\,$1)
+RMDIR = -deltree 2>NUL /y $(subst /,\,$1)
+endif
+MKDIR = -md 2>NUL $(subst /,\,$1)
+COPY = -copy 2>NUL /y $(subst /,\,$1) $(subst /,\,$2)
+COPYR = -xcopy 2>NUL /q /y /e $(subst /,\,$1) $(subst /,\,$2)
+TOUCH = copy 2>&1>NUL /b $(subst /,\,$1) +,,
+CAT = type
+ECHONL = $(ComSpec) /c echo.
+endif
+
+# 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
+
+ifeq ($(CC),mwccnlm)
+LD = mwldnlm
+LDFLAGS = -nostdlib $(<:.def=.o) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
+AR = mwldnlm
+ARFLAGS = -type library -w nocmdline $(OBJS) -o
+LIBEXT = lib
+CFLAGS += -msgstyle gcc -gccinc -inline off -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 = nlmconv
+LDFLAGS = -UT
+AR = ar
+ARFLAGS = -cq
+LIBEXT = a
+CFLAGS += -m32
+CFLAGS += -fno-builtin -fpcc-struct-return
+CFLAGS += -fno-strict-aliasing
+CFLAGS += -Wall # -pedantic
+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
+
+NDK_ROOT = $(NDKBASE)/ndk
+SDK_CLIB = $(NDK_ROOT)/nwsdk
+SDK_LIBC = $(NDK_ROOT)/libc
+SNPRINTF = $(NDKBASE)/snprintf
+
+INCLUDES = -I.. -I../../include
+
+LDLIBS =
+
+ifdef LINK_STATIC
+ LDLIBS += ../libssh2.$(LIBEXT)
+else
+ IMPORTS += @../libssh2.imp
+ MODULES += libssh2.nlm
+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
+
+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
+
+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
+ # CFLAGS += -DNETDB_USE_INTERNET
+endif
+CFLAGS += $(INCLUDES)
+
+ifeq ($(MTSAFE),YES)
+ XDCOPT = -n
+endif
+ifeq ($(MTSAFE),NO)
+ XDCOPT = -u
+endif
+
+vpath %.c $(SAMPLES)
+
+.PRECIOUS: $(OBJDIR)/%.o $(OBJDIR)/%.def $(OBJDIR)/%.xdc
+
+
+all: prebuild $(TARGETS)
+
+prebuild: $(OBJDIR) $(OBJDIR)/version.inc
+
+$(OBJDIR)/%.o: %.c
+# @echo Compiling $<
+ $(CC) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)/version.inc: ../../get_ver.awk ../../include/libssh2.h $(OBJDIR)
+ @echo Creating $@
+ @$(AWK) -f $^ > $@
+
+objclean:
+ $(call RMDIR, $(OBJDIR))
+
+clean: objclean
+ $(foreach f, $(TARGETS), $(call DEL, $(f)))
+
+$(OBJDIR):
+ @$(call MKDIR, $@)
+
+%.nlm: $(OBJDIR)/%.def $(OBJDIR)/%.o $(OBJDIR)/%.xdc
+ @echo Linking $@
+ @$(call DEL, $@)
+ @$(LD) $(LDFLAGS) $<
+
+$(OBJDIR)/%.xdc: GNUmakefile
+ @echo Creating $@
+ @$(MPKXDC) $(XDCOPT) $@
+
+$(OBJDIR)/%.def: GNUmakefile
+ @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 "$(notdir $(@:.def=))"$(DL) >> $@
+ifdef XDCOPT
+ @echo $(DL)xdcdata $(@:.def=.xdc)$(DL) >> $@
+endif
+ifeq ($(LDRING),0)
+ @echo $(DL)flag_on 16$(DL) >> $@
+endif
+ifeq ($(LDRING),3)
+ @echo $(DL)flag_on 512$(DL) >> $@
+endif
+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)flag_on 64$(DL) >> $@
+ @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 $(@:.def=.o)$(DL) >> $@
+ @echo $(DL)input $(PRELUDE)$(DL) >> $@
+ifdef LDLIBS
+ @echo $(DL)input $(LDLIBS)$(DL) >> $@
+endif
+ @echo $(DL)output $(notdir $(@:.def=.nlm))$(DL) >> $@
+endif
+