df3ca59116
Here's a stab at a consolidation of the SSL detection heuristics into configure. Source files aren't changed by this patch, except for setup.h and the various config*.h files. Within the configure script, OPENSSL_ENABLED is used to determine if SSL is being used or not, and outside configure, USE_SSLEAY means the same thing; this could be even further unified some day. Now, when SSL is not detected, configure skips the various checks that are dependent on SSL, speeding up the configure process and avoiding complications with cross compiles. I also updated all the architecture- specific config files I could see, but I couldn't test them.
385 lines
11 KiB
Makefile
385 lines
11 KiB
Makefile
#################################################################
|
|
#
|
|
## Makefile for building libcurl.nlm (NetWare version - gnu make)
|
|
## Use: make -f Makefile.netware
|
|
##
|
|
## Comments to: Guenter Knauf <eflash@gmx.net>
|
|
#
|
|
#################################################################
|
|
|
|
# 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.
|
|
#ZLIB_PATH = ../../zlib-1.2.1
|
|
|
|
# Edit the path below to point to the base of your OpenSSL package.
|
|
ifndef OPENSSL_PATH
|
|
OPENSSL_PATH = ../../openssl-0.9.7d
|
|
endif
|
|
|
|
ifndef INSTDIR
|
|
INSTDIR = ../curl-$(LIBCURL_VERSION_STR)-bin-nw
|
|
endif
|
|
|
|
# Edit the vars below to change NLM target settings.
|
|
TARGET = libcurl
|
|
VERSION = $(LIBCURL_VERSION)
|
|
COPYR = Copyright (c) 1996 - 2004, Daniel Stenberg, <daniel@haxx.se>
|
|
DESCR = cURL libcurl $(LIBCURL_VERSION_STR) - http://curl.haxx.se
|
|
MTSAFE = YES
|
|
STACK = 64000
|
|
SCREEN = none
|
|
EXPORTS = @libcurl.imp
|
|
|
|
# Edit the var below to point to your lib architecture.
|
|
ifndef LIBARCH
|
|
LIBARCH = LIBC
|
|
endif
|
|
|
|
# must be equal to DEBUG or NDEBUG
|
|
DB = NDEBUG
|
|
# DB = DEBUG
|
|
# DB = CURLDEBUG
|
|
# Optimization: -O<n> or debugging: -g
|
|
ifeq ($(DB),NDEBUG)
|
|
OPT = -O2
|
|
OBJDIR = release
|
|
else
|
|
OPT = -g
|
|
OBJDIR = debug
|
|
endif
|
|
|
|
# Include the version info retrieved from curlver.h
|
|
-include $(OBJDIR)/version.inc
|
|
|
|
# The following line defines your compiler.
|
|
ifdef METROWERKS
|
|
CC = mwccnlm
|
|
else
|
|
CC = gcc
|
|
endif
|
|
YACC = bison -y
|
|
CP = cp -afv
|
|
# 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.com/development/prgtools/mkxdc.zip
|
|
MPKXDC = mkxdc
|
|
|
|
# Global flags for all compilers
|
|
CFLAGS = $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc
|
|
|
|
ifeq ($(CC),mwccnlm)
|
|
LD = mwldnlm
|
|
LDFLAGS = -nostdlib $(PRELUDE) $(OBJL) -o $(TARGET).nlm -commandfile
|
|
AR = mwldnlm
|
|
ARFLAGS = -type library -w nocmdline $(OBJS) -o
|
|
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 = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
|
|
# CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
|
|
CFLAGS += -align 1
|
|
endif
|
|
else
|
|
LD = nlmconv
|
|
LDFLAGS = -T
|
|
AR = ar
|
|
ARFLAGS = -cq
|
|
CFLAGS += -fno-builtin -fpack-struct -fpcc-struct-return -fno-strict-aliasing
|
|
CFLAGS += -Wall # -pedantic
|
|
ifeq ($(LIBARCH),LIBC)
|
|
PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
|
|
else
|
|
PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
|
|
CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
|
|
endif
|
|
endif
|
|
|
|
LDLIBS =
|
|
|
|
NDK_ROOT = $(NDKBASE)/ndk
|
|
SDK_CLIB = $(NDK_ROOT)/nwsdk
|
|
SDK_LIBC = $(NDK_ROOT)/libc
|
|
SDK_LDAP = $(NDK_ROOT)/cldapsdk/netware
|
|
|
|
INCLUDES = -I. -I../include
|
|
|
|
ifdef WITH_ARES
|
|
INCLUDES += -I../ares
|
|
LIBCARES = ../ares/libcares.lib
|
|
endif
|
|
ifdef ZLIB_PATH
|
|
INCLUDES += -I$(ZLIB_PATH)
|
|
IMPORTS = @$(ZLIB_PATH)/nw/zlib.imp
|
|
MODULES = libz.nlm
|
|
endif
|
|
ifdef SSL
|
|
INCLUDES += -I$(OPENSSL_PATH)/outinc_nw_libc -I$(OPENSSL_PATH)/outinc_nw_libc/openssl
|
|
LIBSSL = $(OPENSSL_PATH)/out_nw_libc/crypto.lib $(OPENSSL_PATH)/out_nw_libc/ssl.lib
|
|
endif
|
|
|
|
ifeq ($(LIBARCH),LIBC)
|
|
INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
|
|
INCLUDES += -I$(SDK_LIBC)/include/winsock
|
|
# INCLUDES += -I$(SDK_LDAP)/libc/inc
|
|
CFLAGS += -D_POSIX_SOURCE
|
|
# CFLAGS += -D__ANSIC__
|
|
else
|
|
INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
|
|
# INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
|
|
# INCLUDES += -I$(SDK_LDAP)/clib/inc
|
|
CFLAGS += -DNETDB_USE_INTERNET
|
|
endif
|
|
CFLAGS += $(INCLUDES)
|
|
|
|
ifeq ($(MTSAFE),YES)
|
|
XDCOPT = -n
|
|
endif
|
|
ifeq ($(MTSAFE),NO)
|
|
XDCOPT = -u
|
|
endif
|
|
ifdef XDCOPT
|
|
XDCDATA = $(OBJDIR)/$(TARGET).xdc
|
|
endif
|
|
|
|
ifeq ($(findstring linux,$(OSTYPE)),linux)
|
|
DL = '
|
|
#-include $(NDKBASE)/nlmconv/ncpfs.inc
|
|
endif
|
|
|
|
# Makefile.inc provides the CSOURCES and HHEADERS defines
|
|
include Makefile.inc
|
|
|
|
OBJS := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(CSOURCES))) $(LIBCARES) $(LIBSSL)
|
|
|
|
OBJL = $(OBJS) $(OBJDIR)/nwlib.o
|
|
|
|
all: lib nlm
|
|
|
|
nlm: prebuild $(TARGET).nlm
|
|
|
|
lib: prebuild $(TARGET).lib
|
|
|
|
prebuild: $(OBJDIR) $(OBJDIR)/version.inc config.h ca-bundle.h
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
# @echo Compiling $<
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(OBJDIR)/version.inc: ../include/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
|
|
@$(CP) $(TARGET).nlm $(INSTDIR)
|
|
@$(CP) $(TARGET).lib $(INSTDIR)
|
|
@$(CP) ../CHANGES $(INSTDIR)
|
|
@$(CP) ../COPYING $(INSTDIR)
|
|
@$(CP) ../README $(INSTDIR)
|
|
@$(CP) ../RELEASE-NOTES $(INSTDIR)
|
|
|
|
clean:
|
|
-$(RM) config.h ca-bundle.h
|
|
-$(RM) -r $(OBJDIR)
|
|
|
|
$(INSTDIR):
|
|
@mkdir $(INSTDIR)
|
|
|
|
$(OBJDIR):
|
|
@mkdir $(OBJDIR)
|
|
|
|
$(TARGET).lib: $(OBJS)
|
|
@echo Creating $@
|
|
@-$(RM) $@
|
|
@$(AR) $(ARFLAGS) $@ $^
|
|
|
|
$(TARGET).nlm: $(OBJDIR)/$(TARGET).def $(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
|
|
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 @$(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 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)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 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)
|
|
ifdef WITH_ARES
|
|
@echo $(DL)input $(LIBCARES)$(DL) >> $@
|
|
endif
|
|
ifdef SSL
|
|
@echo $(DL)input $(LIBSSL)$(DL) >> $@
|
|
endif
|
|
@echo $(DL)input $(OBJL)$(DL) >> $@
|
|
@echo $(DL)input $(PRELUDE)$(DL) >> $@
|
|
@echo $(DL)output $(TARGET).nlm$(DL) >> $@
|
|
endif
|
|
|
|
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 OS "i586-pc-NetWare"$(DL) >> $@
|
|
@echo $(DL)#define VERSION "$(LIBCURL_VERSION_STR)"$(DL) >> $@
|
|
@echo $(DL)#define PACKAGE_BUGREPORT "curl-bug@haxx.se"$(DL) >> $@
|
|
@echo $(DL)#define HAVE_ARPA_INET_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_DLFCN_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_DLOPEN 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_GETTIMEOFDAY 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_INET_ADDR 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_INET_NTOA 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_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_SOCKET 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_STRCASECMP 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_STRLCAT 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_STRLCPY 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_STRSTR 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_SYS_PARAM_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_SYS_SELECT_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_TERMIOS_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 RETSIGTYPE void$(DL) >> $@
|
|
@echo $(DL)#define SIZEOF_CURL_OFF_T 4$(DL) >> $@
|
|
@echo $(DL)#define STDC_HEADERS 1$(DL) >> $@
|
|
@echo $(DL)#define TIME_WITH_SYS_TIME 1$(DL) >> $@
|
|
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 WITH_ARES
|
|
@echo $(DL)#define USE_ARES 1$(DL) >> $@
|
|
endif
|
|
ifdef ZLIB_PATH
|
|
@echo $(DL)#define HAVE_ZLIB_H 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_LIBZ 1$(DL) >> $@
|
|
endif
|
|
ifdef SSL
|
|
@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_LIBSSL 1$(DL) >> $@
|
|
@echo $(DL)#define HAVE_LIBCRYPTO 1$(DL) >> $@
|
|
@echo $(DL)#define OPENSSL_NO_KRB5 1$(DL) >> $@
|
|
endif
|
|
ifdef OLD_NOVELLSDK
|
|
@echo $(DL)#define socklen_t int$(DL) >> $@
|
|
endif
|
|
|
|
ca-bundle.h: 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) >> $@
|
|
@echo $(DL)#define CURL_CA_BUNDLE getenv("CURL_CA_BUNDLE")$(DL) >> $@
|
|
|
|
url.c: ca-bundle.h
|
|
|
|
$(LIBCARES):
|
|
$(MAKE) -C ../ares -f Makefile.netware lib
|
|
|
|
|