Base code merged to SPIN 2.4
[platform/upstream/curl.git] / lib / Makefile.netware
index 9d26672..2cd754a 100644 (file)
@@ -1,10 +1,9 @@
 #################################################################
-# $Id$
 #
 ## Makefile for building libcurl.nlm (NetWare version - gnu make)
 ## Use: make -f Makefile.netware
 ##
-## Comments to: Guenter Knauf http://www.gknw.de/phpbb
+## Comments to: Guenter Knauf http://www.gknw.net/phpbb
 #
 #################################################################
 
@@ -15,17 +14,47 @@ endif
 
 # Edit the path below to point to the base of your Zlib sources.
 ifndef ZLIB_PATH
-ZLIB_PATH = ../../zlib-1.2.3
+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.8g
+OPENSSL_PATH = ../../openssl-0.9.8zc
 endif
 
 # Edit the path below to point to the base of your LibSSH2 package.
 ifndef LIBSSH2_PATH
-LIBSSH2_PATH = ../../libssh2-0.18
+LIBSSH2_PATH = ../../libssh2-1.4.3
+endif
+
+# Edit the path below to point to the base of your axTLS package.
+ifndef AXTLS_PATH
+AXTLS_PATH = ../../axTLS-1.2.7
+endif
+
+# Edit the path below to point to the base of your libidn package.
+ifndef LIBIDN_PATH
+LIBIDN_PATH = ../../libidn-1.18
+endif
+
+# Edit the path below to point to the base of your librtmp package.
+ifndef LIBRTMP_PATH
+LIBRTMP_PATH = ../../librtmp-2.3
+endif
+
+# Edit the path below to point to the base of your nghttp2 package.
+ifndef NGHTTP2_PATH
+NGHTTP2_PATH = ../../nghttp2-0.6.7
+endif
+
+# Edit the path below to point to the base of your fbopenssl package.
+ifndef FBOPENSSL_PATH
+FBOPENSSL_PATH = ../../fbopenssl-0.4
+endif
+
+# Edit the path below to point to the base of your c-ares package.
+ifndef LIBCARES_PATH
+LIBCARES_PATH = ../ares
 endif
 
 ifndef INSTDIR
@@ -35,12 +64,16 @@ endif
 # Edit the vars below to change NLM target settings.
 TARGET  = libcurl
 VERSION        = $(LIBCURL_VERSION)
-COPYR  = Copyright (C) 1996 - 2008, Daniel Stenberg, <daniel@haxx.se>
+COPYR  = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
 DESCR  = cURL libcurl $(LIBCURL_VERSION_STR) ($(LIBARCH)) - http://curl.haxx.se
 MTSAFE = YES
 STACK  = 64000
 SCREEN = none
-EXPORTS        = @libcurl.imp
+EXPORTF        = $(TARGET).imp
+EXPORTS        = @$(EXPORTF)
+
+# Uncomment the next line to enable linking with POSIX semantics.
+# POSIXFL = 1
 
 # Edit the var below to point to your lib architecture.
 ifndef LIBARCH
@@ -71,13 +104,14 @@ ifdef METROWERKS
 else
        CC = gcc
 endif
-# a native win32 awk can be downloaded from here:
-# http://www.gknw.net/development/prgtools/awk-20050424.zip
+PERL   = perl
+# Here you can find a native Win32 binary of the original awk:
+# http://www.gknw.net/development/prgtools/awk-20100523.zip
 AWK    = awk
-YACC   = bison -y
 CP     = cp -afv
+MKDIR  = mkdir
 # RM   = rm -f
-# if you want to mark the target as MTSAFE you will need a tool for
+# 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
@@ -89,7 +123,7 @@ LIBARCH_L = $(shell $(AWK) 'BEGIN {print tolower(ARGV[1])}' $(LIBARCH))
 -include $(OBJDIR)/version.inc
 
 # Global flags for all compilers
-CFLAGS = $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
+CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
 
 ifeq ($(CC),mwccnlm)
 LD     = mwldnlm
@@ -102,10 +136,14 @@ 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
+ifeq ($(POSIXFL),1)
+       PRELUDE = $(NDK_LIBC)/imports/posixpre.o
+else
+       PRELUDE = $(NDK_LIBC)/imports/libcpre.o
+endif
        CFLAGS += -align 4
 else
-       # PRELUDE = $(SDK_CLIB)/imports/clibpre.o
+       # PRELUDE = $(NDK_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"
@@ -118,12 +156,20 @@ AR        = ar
 ARFLAGS        = -cq
 LIBEXT = a
 RANLIB = ranlib
-CFLAGS += -fno-builtin -fpcc-struct-return -fno-strict-aliasing
+CFLAGS  += -m32
+CFLAGS += -fno-builtin -fno-strict-aliasing
+ifeq ($(findstring gcc,$(CC)),gcc)
+CFLAGS += -fpcc-struct-return
+endif
 CFLAGS += -Wall # -pedantic
 ifeq ($(LIBARCH),LIBC)
-       PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
+ifeq ($(POSIXFL),1)
+       PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
 else
-       PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
+       PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
+endif
+else
+       PRELUDE = $(NDK_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
@@ -132,18 +178,65 @@ endif
 endif
 
 NDK_ROOT = $(NDKBASE)/ndk
-SDK_CLIB = $(NDK_ROOT)/nwsdk
-SDK_LIBC = $(NDK_ROOT)/libc
-SDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
+ifndef NDK_CLIB
+NDK_CLIB = $(NDK_ROOT)/nwsdk
+endif
+ifndef NDK_LIBC
+NDK_LIBC = $(NDK_ROOT)/libc
+endif
+ifndef NDK_LDAP
+NDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
+endif
 CURL_INC = ../include
 CURL_LIB = ../lib
-ARES_LIB = ../ares
 
 INCLUDES = -I$(CURL_INC) -I$(CURL_LIB)
 
+ifeq ($(findstring -static,$(CFG)),-static)
+LINK_STATIC = 1
+endif
+ifeq ($(findstring -ares,$(CFG)),-ares)
+WITH_ARES = 1
+endif
+ifeq ($(findstring -rtmp,$(CFG)),-rtmp)
+WITH_RTMP = 1
+WITH_SSL = 1
+WITH_ZLIB = 1
+endif
+ifeq ($(findstring -ssh2,$(CFG)),-ssh2)
+WITH_SSH2 = 1
+WITH_SSL = 1
+WITH_ZLIB = 1
+endif
+ifeq ($(findstring -axtls,$(CFG)),-axtls)
+WITH_AXTLS = 1
+WITH_SSL =
+else
+ifeq ($(findstring -ssl,$(CFG)),-ssl)
+WITH_SSL = 1
+ifeq ($(findstring -srp,$(CFG)),-srp)
+ifeq "$(wildcard $(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)/openssl/srp.h)" "$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)/openssl/srp.h"
+WITH_SRP = 1
+endif
+endif
+endif
+endif
+ifeq ($(findstring -zlib,$(CFG)),-zlib)
+WITH_ZLIB = 1
+endif
+ifeq ($(findstring -idn,$(CFG)),-idn)
+WITH_IDN = 1
+endif
+ifeq ($(findstring -nghttp2,$(CFG)),-nghttp2)
+WITH_NGHTTP2 = 1
+endif
+ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
+ENABLE_IPV6 = 1
+endif
+
 ifdef WITH_ARES
-       INCLUDES += -I$(ARES_LIB)
-       LDLIBS += $(ARES_LIB)/libcares.$(LIBEXT)
+       INCLUDES += -I$(LIBCARES_PATH)
+       LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
 endif
 ifdef WITH_SSH2
        INCLUDES += -I$(LIBSSH2_PATH)/include
@@ -154,11 +247,27 @@ else
        IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
 endif
 endif
+ifdef WITH_RTMP
+       INCLUDES += -I$(LIBRTMP_PATH)
+       LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
+endif
 ifdef WITH_SSL
-       INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L) -I$(OPENSSL_PATH)/outinc_nw_$(LIBARCH_L)/openssl
+       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
+       INSTDEP += ca-bundle.crt
+else
+ifdef WITH_AXTLS
+       INCLUDES += -I$(AXTLS_PATH)/inc
+ifdef LINK_STATIC
+       LDLIBS += $(AXTLS_PATH)/lib/libaxtls.$(LIBEXT)
+else
+       MODULES += libaxtls.nlm
+       IMPORTS += $(AXTLS_PATH)/lib/libaxtls.imp
+endif
+       INSTDEP += ca-bundle.crt
+endif
 endif
 ifdef WITH_ZLIB
        INCLUDES += -I$(ZLIB_PATH)
@@ -169,19 +278,27 @@ else
        IMPORTS += @$(ZLIB_PATH)/nw/$(LIBARCH)/libz.imp
 endif
 endif
+ifdef WITH_IDN
+       INCLUDES += -I$(LIBIDN_PATH)/include
+       LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
+endif
+ifdef WITH_NGHTTP2
+       INCLUDES += -I$(NGHTTP2_PATH)/include
+       LDLIBS += $(NGHTTP2_PATH)/lib/libnghttp2.$(LIBEXT)
+endif
 
 ifeq ($(LIBARCH),LIBC)
-       INCLUDES += -I$(SDK_LIBC)/include
-       # INCLUDES += -I$(SDK_LIBC)/include/nks
-       # INCLUDES += -I$(SDK_LIBC)/include/winsock
+       INCLUDES += -I$(NDK_LIBC)/include
+       # INCLUDES += -I$(NDK_LIBC)/include/nks
+       # INCLUDES += -I$(NDK_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
+       INCLUDES += -I$(NDK_CLIB)/include/nlm
+       # INCLUDES += -I$(NDK_CLIB)/include/nlm/obsolete
+       # INCLUDES += -I$(NDK_CLIB)/include
 endif
 ifndef DISABLE_LDAP
-       INCLUDES += -I$(SDK_LDAP)/$(LIBARCH_L)/inc
+       INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
 endif
 CFLAGS += $(INCLUDES)
 
@@ -195,42 +312,42 @@ ifdef XDCOPT
        XDCDATA = $(OBJDIR)/$(TARGET).xdc
 endif
 
-ifeq ($(findstring linux,$(OSTYPE)),linux)
+ifeq ($(findstring /sh,$(SHELL)),/sh)
 DL     = '
 DS     = /
+PCT    = %
 #-include $(NDKBASE)/nlmconv/ncpfs.inc
 else
 DS     = \\
+PCT    = %%
 endif
 
 # Makefile.inc provides the CSOURCES and HHEADERS defines
 include Makefile.inc
 
-OBJS   := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(CSOURCES))) $(OBJDIR)/nwos.o
+OBJS   := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(notdir $(CSOURCES)))) $(OBJDIR)/nwos.o
 
 OBJL   = $(OBJS) $(OBJDIR)/nwlib.o $(LDLIBS)
 
+vpath %.c . vtls
+
 all: lib nlm
 
 nlm: prebuild $(TARGET).nlm
 
 lib: prebuild $(TARGET).$(LIBEXT)
 
-prebuild: $(OBJDIR) $(OBJDIR)/version.inc config.h ca-bundle.h
+prebuild: $(OBJDIR) $(CURL_INC)/curl/curlbuild.h $(OBJDIR)/version.inc curl_config.h
 
 $(OBJDIR)/%.o: %.c
 #      @echo Compiling $<
        $(CC) $(CFLAGS) -c $< -o $@
 
-$(OBJDIR)/version.inc: ../include/curl/curlver.h $(OBJDIR)
+$(OBJDIR)/version.inc: $(CURL_INC)/curl/curlver.h $(OBJDIR)
        @echo Creating $@
        @$(AWK) -f ../packages/NetWare/get_ver.awk $< > $@
 
-dist: all
-       -$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
-       -$(RM) $(OBJDIR)/$(TARGET).def $(OBJDIR)/version.inc $(XDCDATA)
-
-install: $(INSTDIR) all
+install: $(INSTDIR) all $(INSTDEP)
        @$(CP) $(TARGET).nlm $(INSTDIR)
        @$(CP) $(TARGET).$(LIBEXT) $(INSTDIR)
        @$(CP) ../CHANGES $(INSTDIR)
@@ -238,21 +355,19 @@ install: $(INSTDIR) all
        @$(CP) ../README $(INSTDIR)
        @$(CP) ../RELEASE-NOTES $(INSTDIR)
 ifdef WITH_SSL
-       @$(CP) ca-bundle.crt $(INSTDIR)
+       @-$(CP) ca-bundle.crt $(INSTDIR)/ca-bundle.crt
 endif
 
 clean:
-       -$(RM) config.h ca-bundle.h
+       -$(RM) curl_config.h
        -$(RM) -r $(OBJDIR)
 
-distclean: clean
-       -$(RM) -r $(TARGET).$(LIBEXT) $(TARGET).nlm
+distclean vclean: clean
+       -$(RM) $(TARGET).$(LIBEXT) $(TARGET).nlm $(TARGET).imp
+       -$(RM) certdata.txt ca-bundle.crt
 
-$(INSTDIR):
-       @mkdir $(INSTDIR)
-
-$(OBJDIR):
-       @mkdir $(OBJDIR)
+$(OBJDIR) $(INSTDIR):
+       @$(MKDIR) $@
 
 $(TARGET).$(LIBEXT): $(OBJS)
        @echo Creating $@
@@ -262,7 +377,7 @@ ifdef RANLIB
        @$(RANLIB) $@
 endif
 
-$(TARGET).nlm: $(OBJDIR)/$(TARGET).def $(OBJL) $(XDCDATA)
+$(TARGET).nlm: $(OBJDIR)/$(TARGET).def $(OBJL) $(EXPORTF) $(XDCDATA)
        @echo Linking $@
        @-$(RM) $@
        @$(LD) $(LDFLAGS) $<
@@ -301,31 +416,40 @@ 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)import @$(NDK_CLIB)/imports/clib.imp$(DL) >> $@
+       @echo $(DL)import @$(NDK_CLIB)/imports/threads.imp$(DL) >> $@
+       @echo $(DL)import @$(NDK_CLIB)/imports/nlmlib.imp$(DL) >> $@
+       @echo $(DL)import @$(NDK_CLIB)/imports/socklib.imp$(DL) >> $@
+       @echo $(DL)module clib$(DL) >> $@
 ifndef DISABLE_LDAP
-       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapsdk.imp$(DL) >> $@
-       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapssl.imp$(DL) >> $@
-       @echo $(DL)import @$(SDK_LDAP)/clib/imports/ldapx.imp$(DL) >> $@
-       @echo $(DL)module ldapsdk ldapssl ldapx$(DL) >> $@
+       @echo $(DL)import @$(NDK_LDAP)/clib/imports/ldapsdk.imp$(DL) >> $@
+       @echo $(DL)import @$(NDK_LDAP)/clib/imports/ldapssl.imp$(DL) >> $@
+#      @echo $(DL)import @$(NDK_LDAP)/clib/imports/ldapx.imp$(DL) >> $@
+       @echo $(DL)module ldapsdk ldapssl$(DL) >> $@
 endif
-       @echo $(DL)module clib$(DL) >> $@
 else
+ifeq ($(POSIXFL),1)
+       @echo $(DL)flag_on 4194304$(DL) >> $@
+endif
        @echo $(DL)pseudopreemption$(DL) >> $@
+ifeq ($(findstring posixpre,$(PRELUDE)),posixpre)
+       @echo $(DL)start POSIX_Start$(DL) >> $@
+       @echo $(DL)exit POSIX_Stop$(DL) >> $@
+       @echo $(DL)check POSIX_CheckUnload$(DL) >> $@
+else
        @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) >> $@
-ifndef DISABLE_LDAP
-       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapsdk.imp$(DL) >> $@
-       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapssl.imp$(DL) >> $@
-       @echo $(DL)import @$(SDK_LDAP)/libc/imports/lldapx.imp$(DL) >> $@
-       @echo $(DL)module lldapsdk lldapssl lldapx$(DL) >> $@
 endif
+       @echo $(DL)import @$(NDK_LIBC)/imports/libc.imp$(DL) >> $@
+       @echo $(DL)import @$(NDK_LIBC)/imports/netware.imp$(DL) >> $@
        @echo $(DL)module libc$(DL) >> $@
+ifndef DISABLE_LDAP
+       @echo $(DL)import @$(NDK_LDAP)/libc/imports/lldapsdk.imp$(DL) >> $@
+       @echo $(DL)import @$(NDK_LDAP)/libc/imports/lldapssl.imp$(DL) >> $@
+#      @echo $(DL)import @$(NDK_LDAP)/libc/imports/lldapx.imp$(DL) >> $@
+       @echo $(DL)module lldapsdk lldapssl$(DL) >> $@
+endif
 endif
 ifdef MODULES
        @echo $(DL)module $(MODULES)$(DL) >> $@
@@ -336,16 +460,16 @@ endif
 ifdef IMPORTS
        @echo $(DL)import $(IMPORTS)$(DL) >> $@
 endif
-ifeq ($(LD),nlmconv)
-       @echo $(DL)input $(OBJL)$(DL) >> $@
+ifeq ($(findstring nlmconv,$(LD)),nlmconv)
        @echo $(DL)input $(PRELUDE)$(DL) >> $@
+       @echo $(DL)input $(OBJL)$(DL) >> $@
 #ifdef LDLIBS
 #      @echo $(DL)input $(LDLIBS)$(DL) >> $@
 #endif
        @echo $(DL)output $(TARGET).nlm$(DL) >> $@
 endif
 
-config.h: Makefile.netware
+curl_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) >> $@
@@ -360,25 +484,32 @@ 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 HAVE_STRNICMP 1$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG1 int$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG2 char *$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG3 int$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_RETV int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG2 char$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG3 int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_RETV int$(DL) >> $@
        @echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG2 char *$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG3 int$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_RETV int$(DL) >> $@
-       @echo $(DL)#define socklen_t int$(DL) >> $@
+       @echo $(DL)#define SIZEOF_SIZE_T 4$(DL) >> $@
+       @echo $(DL)#define pressanykey PressAnyKeyToContinue$(DL) >> $@
 else
        @echo $(DL)#define OS "i586-pc-libc-NetWare"$(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) >> $@
@@ -388,45 +519,66 @@ else
        @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 RECV_TYPE_ARG1 int$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG2 void *$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG3 size_t$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@
        @echo $(DL)#define RECV_TYPE_RETV ssize_t$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG2 void$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG3 size_t$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG6 size_t$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_RETV ssize_t$(DL) >> $@
+       @echo $(DL)#define RECVFROM_TYPE_ARG2_IS_VOID 1$(DL) >> $@
        @echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG2 void *$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG3 size_t$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@
        @echo $(DL)#define SEND_TYPE_RETV ssize_t$(DL) >> $@
-       @echo $(DL)#define SIZEOF_STRUCT_IN6_ADDR 16$(DL) >> $@
+       @echo $(DL)#define SIZEOF_OFF_T 8$(DL) >> $@
+       @echo $(DL)#define SIZEOF_SIZE_T 8$(DL) >> $@
+       @echo $(DL)#define _LARGEFILE 1$(DL) >> $@
 ifdef ENABLE_IPV6
        @echo $(DL)#define ENABLE_IPV6 1$(DL) >> $@
+       @echo $(DL)#define HAVE_AF_INET6 1$(DL) >> $@
+       @echo $(DL)#define HAVE_PF_INET6 1$(DL) >> $@
+       @echo $(DL)#define HAVE_FREEADDRINFO 1$(DL) >> $@
+       @echo $(DL)#define HAVE_GETADDRINFO 1$(DL) >> $@
+       @echo $(DL)#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1$(DL) >> $@
+       @echo $(DL)#define HAVE_STRUCT_ADDRINFO 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) >> $@
 endif
 endif
+       @echo $(DL)#define USE_MANUAL 1$(DL) >> $@
        @echo $(DL)#define HAVE_ARPA_INET_H 1$(DL) >> $@
        @echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@
+       @echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@
        @echo $(DL)#define HAVE_ERR_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_IOCTL 1$(DL) >> $@
+       @echo $(DL)#define HAVE_IOCTL_FIONBIO 1$(DL) >> $@
+       @echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@
        @echo $(DL)#define HAVE_LL 1$(DL) >> $@
+       @echo $(DL)#define HAVE_LOCALE_H 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_RECV 1$(DL) >> $@
+       @echo $(DL)#define HAVE_RECVFROM 1$(DL) >> $@
        @echo $(DL)#define HAVE_SELECT 1$(DL) >> $@
        @echo $(DL)#define HAVE_SEND 1$(DL) >> $@
        @echo $(DL)#define HAVE_SETJMP_H 1$(DL) >> $@
+       @echo $(DL)#define HAVE_SETLOCALE 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) >> $@
@@ -436,7 +588,6 @@ endif
        @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) >> $@
@@ -446,8 +597,10 @@ endif
        @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 HAVE_WRITEV 1$(DL) >> $@
        @echo $(DL)#define RETSIGTYPE void$(DL) >> $@
-       @echo $(DL)#define SIZEOF_CURL_OFF_T 4$(DL) >> $@
+       @echo $(DL)#define SIZEOF_INT 4$(DL) >> $@
+       @echo $(DL)#define SIZEOF_SHORT 2$(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) >> $@
@@ -490,33 +643,49 @@ ifdef WITH_SSL
        @echo $(DL)#define HAVE_LIBSSL 1$(DL) >> $@
        @echo $(DL)#define HAVE_LIBCRYPTO 1$(DL) >> $@
        @echo $(DL)#define OPENSSL_NO_KRB5 1$(DL) >> $@
+ifdef WITH_SRP
+       @echo $(DL)#define HAVE_SSLEAY_SRP 1$(DL) >> $@
+       @echo $(DL)#define USE_TLS_SRP 1$(DL) >> $@
+endif
+ifdef WITH_SPNEGO
+       @echo $(DL)#define HAVE_SPNEGO 1$(DL) >> $@
+endif
+else
+ifdef WITH_AXTLS
+       @echo $(DL)#define USE_AXTLS 1$(DL) >> $@
+endif
 endif
 ifdef WITH_SSH2
        @echo $(DL)#define USE_LIBSSH2 1$(DL) >> $@
        @echo $(DL)#define HAVE_LIBSSH2_H 1$(DL) >> $@
 endif
+ifdef WITH_IDN
+       @echo $(DL)#define HAVE_LIBIDN 1$(DL) >> $@
+       @echo $(DL)#define HAVE_TLD_H 1$(DL) >> $@
+endif
+ifdef WITH_RTMP
+       @echo $(DL)#define USE_LIBRTMP 1$(DL) >> $@
+endif
+ifdef WITH_NGHTTP2
+       @echo $(DL)#define USE_NGHTTP2 1$(DL) >> $@
+endif
        @echo $(DL)#ifdef __GNUC__$(DL) >> $@
        @echo $(DL)#define HAVE_VARIADIC_MACROS_GCC 1$(DL) >> $@
        @echo $(DL)#else$(DL) >> $@
        @echo $(DL)#define HAVE_VARIADIC_MACROS_C99 1$(DL) >> $@
        @echo $(DL)#endif$(DL) >> $@
-ifdef OLD_NOVELLSDK
-       @echo $(DL)#define socklen_t int$(DL) >> $@
-endif
-
-FORCE: ;
-
-ca-bundle.h: FORCE Makefile.netware
-       @echo Creating $@
-       @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) >> $@
 ifdef CABUNDLE
        @echo $(DL)#define CURL_CA_BUNDLE "$(CABUNDLE)"$(DL) >> $@
 else
        @echo $(DL)#define CURL_CA_BUNDLE getenv("CURL_CA_BUNDLE")$(DL) >> $@
 endif
 
+$(EXPORTF): $(CURL_INC)/curl/curl.h $(CURL_INC)/curl/easy.h $(CURL_INC)/curl/multi.h $(CURL_INC)/curl/mprintf.h
+       @echo Creating $@
+       @$(AWK) -f ../packages/NetWare/get_exp.awk $^ > $@
+
+FORCE: ;
+
 info: $(OBJDIR)/version.inc
        @echo Configured to build $(TARGET) with these options:
        @echo libarchitecture: $(LIBARCH)
@@ -530,6 +699,11 @@ ifdef WITH_SSL
 else
        @echo SSL support:     no
 endif
+ifdef WITH_SRP
+       @echo SRP support:     enabled
+else
+       @echo SRP support:     no
+endif
 ifdef WITH_SSH2
        @echo SSH2 support:    enabled (libssh2)
 else
@@ -540,18 +714,64 @@ ifdef WITH_ZLIB
 else
        @echo zlib support:    no
 endif
+ifdef WITH_NGHTTP2
+       @echo http2 support:   enabled
+else
+       @echo http2 support:   no
+endif
 ifdef WITH_ARES
        @echo c-ares support:  enabled
 else
        @echo c-ares support:  no
 endif
 ifdef ENABLE_IPV6
-       @echo ipv6 support:    enabled
+       @echo IPv6 support:    enabled
 else
-       @echo ipv6 support:    no
+       @echo IPv6 support:    no
 endif
 
-$(ARES_LIB)/libcares.$(LIBEXT):
-       $(MAKE) -C $(ARES_LIB) -f Makefile.netware lib
-
+$(CURL_INC)/curl/curlbuild.h: Makefile.netware FORCE
+       @echo Creating $@
+       @echo $(DL)/* $@ intended 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)#ifndef NETWARE$(DL) >> $@
+       @echo $(DL)#error This $(notdir $@) is created for NetWare platform!$(DL) >> $@
+       @echo $(DL)#endif$(DL) >> $@
+       @echo $(DL)#ifndef __CURL_CURLBUILD_H$(DL) >> $@
+       @echo $(DL)#define __CURL_CURLBUILD_H$(DL) >> $@
+ifeq ($(LIBARCH),LIBC)
+       @echo $(DL)#define CURL_SIZEOF_LONG 4$(DL) >> $@
+       @echo $(DL)#define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int$(DL) >> $@
+       @echo $(DL)#define CURL_SIZEOF_CURL_SOCKLEN_T 4$(DL) >> $@
+       @echo $(DL)#define CURL_TYPEOF_CURL_OFF_T long long$(DL) >> $@
+       @echo $(DL)#define CURL_FORMAT_CURL_OFF_T "lld"$(DL) >> $@
+       @echo $(DL)#define CURL_FORMAT_CURL_OFF_TU "llu"$(DL) >> $@
+       @echo $(DL)#define CURL_FORMAT_OFF_T "$(PCT)lld"$(DL) >> $@
+       @echo $(DL)#define CURL_SIZEOF_CURL_OFF_T 8$(DL) >> $@
+       @echo $(DL)#define CURL_SUFFIX_CURL_OFF_T LL$(DL) >> $@
+       @echo $(DL)#define CURL_SUFFIX_CURL_OFF_TU ULL$(DL) >> $@
+else
+       @echo $(DL)#define CURL_SIZEOF_LONG 4$(DL) >> $@
+       @echo $(DL)#define CURL_TYPEOF_CURL_SOCKLEN_T int$(DL) >> $@
+       @echo $(DL)#define CURL_SIZEOF_CURL_SOCKLEN_T 4$(DL) >> $@
+       @echo $(DL)#define CURL_TYPEOF_CURL_OFF_T long$(DL) >> $@
+       @echo $(DL)#define CURL_FORMAT_CURL_OFF_T "ld"$(DL) >> $@
+       @echo $(DL)#define CURL_FORMAT_CURL_OFF_TU "lu"$(DL) >> $@
+       @echo $(DL)#define CURL_FORMAT_OFF_T "$(PCT)ld"$(DL) >> $@
+       @echo $(DL)#define CURL_SIZEOF_CURL_OFF_T 4$(DL) >> $@
+       @echo $(DL)#define CURL_SUFFIX_CURL_OFF_T L$(DL) >> $@
+       @echo $(DL)#define CURL_SUFFIX_CURL_OFF_TU UL$(DL) >> $@
+endif
+       @echo $(DL)typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;$(DL) >> $@
+       @echo $(DL)typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;$(DL) >> $@
+       @echo $(DL)#endif /* __CURL_CURLBUILD_H */$(DL) >> $@
+
+$(LIBCARES_PATH)/libcares.$(LIBEXT):
+       $(MAKE) -C $(LIBCARES_PATH) -f Makefile.netware lib
+
+ca-bundle.crt: mk-ca-bundle.pl
+       @echo Creating $@
+       @-$(PERL) $< -b -n $@