#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 2008 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at https://curl.haxx.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
###########################################################################
#################################################################
#
## Makefile for building curl.nlm (NetWare version - gnu make)
## Use: make -f Makefile.netware
##
## Comments to: 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-1.0.2a
endif

# Edit the path below to point to the base of your LibSSH2 package.
ifndef LIBSSH2_PATH
LIBSSH2_PATH = ../../../libssh2-1.5.0
endif

# Edit the path below to point to the base of your libidn package.
ifndef LIBIDN_PATH
LIBIDN_PATH = ../../../libidn-1.32
endif

# Edit the path below to point to the base of your librtmp package.
ifndef LIBRTMP_PATH
LIBRTMP_PATH = ../../../librtmp-2.4
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
INSTDIR = ..$(DS)..$(DS)curl-$(LIBCURL_VERSION_STR)-bin-nw
endif

# Edit the vars below to change NLM target settings.
TARGET  = examples
VERSION = $(LIBCURL_VERSION)
COPYR   = Copyright (C) $(LIBCURL_COPYRIGHT_STR)
DESCR   = curl ($(LIBARCH))
MTSAFE  = YES
STACK   = 8192
SCREEN  = Example Program
# Comment the line below if you don't want to load protected automatically.
# LDRING = 3

# Uncomment the next line to enable linking with POSIX semantics.
# POSIXFL = 1

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

# must be equal to NDEBUG or DEBUG, CURLDEBUG
ifndef DB
DB = NDEBUG
endif
# Optimization: -O<n> or debugging: -g
ifeq ($(DB),NDEBUG)
  OPT = -O2
  OBJDIR = release
else
  OPT = -g
  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 = gcc
endif
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
CP = cp -afv
MKDIR = mkdir
# RM = rm -f
# 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

# 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 curlver.h
-include $(OBJDIR)/version.inc

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

ifeq ($(CC),mwccnlm)
  LD = mwldnlm
  LDFLAGS = -nostdlib $< $(PRELUDE) $(LDLIBS) -o $@ -commandfile
  LIBEXT  = lib
  CFLAGS  += -gccinc -inline off -opt nointrinsics -proc 586
  CFLAGS  += -relax_pointers
  #CFLAGS += -w on
  ifeq ($(LIBARCH),LIBC)
    ifeq ($(POSIXFL),1)
      PRELUDE = $(NDK_LIBC)/imports/posixpre.o
    else
      PRELUDE = $(NDK_LIBC)/imports/libcpre.o
    endif
    CFLAGS += -align 4
  else
    # PRELUDE = $(NDK_CLIB)/imports/clibpre.o
    # to avoid the __init_* / __deinit_* woes don't 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 = -T
  LIBEXT  = a
  CFLAGS  += -m32
  CFLAGS  += -fno-builtin -fno-strict-aliasing
  ifeq ($(findstring gcc,$(CC)),gcc)
    CFLAGS += -fpcc-struct-return
  endif
  CFLAGS += -Wall # -pedantic
  ifeq ($(LIBARCH),LIBC)
    ifeq ($(POSIXFL),1)
      PRELUDE = $(NDK_LIBC)/imports/posixpre.gcc.o
    else
      PRELUDE = $(NDK_LIBC)/imports/libcpre.gcc.o
    endif
  else
    # PRELUDE = $(NDK_CLIB)/imports/clibpre.gcc.o
    # to avoid the __init_* / __deinit_* woes don't 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
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

INCLUDES = -I$(CURL_INC)

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 -ssl,$(CFG)),-ssl)
WITH_SSL = 1
endif
ifeq ($(findstring -zlib,$(CFG)),-zlib)
WITH_ZLIB = 1
endif
ifeq ($(findstring -idn,$(CFG)),-idn)
WITH_IDN = 1
endif
ifeq ($(findstring -ipv6,$(CFG)),-ipv6)
ENABLE_IPV6 = 1
endif

ifdef LINK_STATIC
  LDLIBS = $(CURL_LIB)/libcurl.$(LIBEXT)
ifdef WITH_ARES
  LDLIBS += $(LIBCARES_PATH)/libcares.$(LIBEXT)
endif
else
  MODULES = libcurl.nlm
  IMPORTS = @$(CURL_LIB)/libcurl.imp
endif
ifdef WITH_SSH2
  # INCLUDES += -I$(LIBSSH2_PATH)/include
  ifdef LINK_STATIC
    LDLIBS += $(LIBSSH2_PATH)/nw/libssh2.$(LIBEXT)
  else
    MODULES += libssh2.nlm
    IMPORTS += @$(LIBSSH2_PATH)/nw/libssh2.imp
  endif
endif
ifdef WITH_RTMP
  # INCLUDES += -I$(LIBRTMP_PATH)
ifdef LINK_STATIC
  LDLIBS += $(LIBRTMP_PATH)/librtmp/librtmp.$(LIBEXT)
endif
endif
ifdef WITH_SSL
  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
else
endif
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
ifdef WITH_IDN
  # INCLUDES += -I$(LIBIDN_PATH)/include
  LDLIBS += $(LIBIDN_PATH)/lib/libidn.$(LIBEXT)
endif

ifeq ($(LIBARCH),LIBC)
  INCLUDES += -I$(NDK_LIBC)/include
  # INCLUDES += -I$(NDK_LIBC)/include/nks
  # INCLUDES += -I$(NDK_LIBC)/include/winsock
  CFLAGS += -D_POSIX_SOURCE
else
  INCLUDES += -I$(NDK_CLIB)/include/nlm
  # INCLUDES += -I$(NDK_CLIB)/include
endif
ifndef DISABLE_LDAP
  # INCLUDES += -I$(NDK_LDAP)/$(LIBARCH_L)/inc
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  = /
PCT = %
#-include $(NDKBASE)/nlmconv/ncpfs.inc
else
DS  = \\
PCT = %%
endif

# Makefile.inc provides the CSOURCES and HHEADERS defines
include Makefile.inc

check_PROGRAMS := $(patsubst %,%.nlm,$(strip $(check_PROGRAMS)))

.PRECIOUS: $(OBJDIR)/%.o $(OBJDIR)/%.def $(OBJDIR)/%.xdc


all: prebuild $(check_PROGRAMS)

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

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

$(OBJDIR)/version.inc: $(CURL_INC)/curl/curlver.h $(OBJDIR)
	@echo Creating $@
	@$(AWK) -f ../../packages/NetWare/get_ver.awk $< > $@

install: $(INSTDIR) all
	@$(CP) $(check_PROGRAMS) $(INSTDIR)

clean:
	-$(RM) -r $(OBJDIR)

distclean vclean: clean
	-$(RM) $(check_PROGRAMS)

$(OBJDIR) $(INSTDIR):
	@$(MKDIR) $@

%.nlm: $(OBJDIR)/%.o $(OBJDIR)/%.def $(XDCDATA)
	@echo Linking $@
	@-$(RM) $@
	@$(LD) $(LDFLAGS) $(OBJDIR)/$(@:.nlm=.def)

$(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) $(notdir $(@:.def=)) Example"$(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 "$(DESCR) $(notdir $(@:.def=)) $(SCREEN)"$(DL) >> $@
else
	@echo $(DL)screenname "DEFAULT"$(DL) >> $@
endif
ifneq ($(DB),NDEBUG)
	@echo $(DL)debug$(DL) >> $@
endif
	@echo $(DL)threadname "_$(notdir $(@:.def=))"$(DL) >> $@
ifdef XDCDATA
	@echo $(DL)xdcdata $(XDCDATA)$(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 @$(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 @$(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
else
ifeq ($(POSIXFL),1)
	@echo $(DL)flag_on 4194304$(DL) >> $@
endif
	@echo $(DL)flag_on 64$(DL) >> $@
	@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) >> $@
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) >> $@
endif
ifdef EXPORTS
	@echo $(DL)export $(EXPORTS)$(DL) >> $@
endif
ifdef IMPORTS
	@echo $(DL)import $(IMPORTS)$(DL) >> $@
endif
ifeq ($(findstring nlmconv,$(LD)),nlmconv)
	@echo $(DL)input $(PRELUDE)$(DL) >> $@
	@echo $(DL)input $(@:.def=.o)$(DL) >> $@
ifdef LDLIBS
	@echo $(DL)input $(LDLIBS)$(DL) >> $@
endif
	@echo $(DL)output $(notdir $(@:.def=.nlm))$(DL) >> $@
endif
