mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
205f8b266c
the correct dynamic library names by default, and provides override switches --with-ldap-lib, --with-lber-lib and --without-lber-lib. Added CURL_DISABLE_LDAP to platform-specific config files to disable LDAP support on those platforms that probably don't have dynamic OpenLDAP libraries available to avoid compile errors.
386 lines
11 KiB
Makefile
386 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) >> $@
|
|
@echo $(DL)#define CURL_DISABLE_LDAP 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
|
|
|
|
|