Merge branch 'da/darwin' into maint

Newer MacOS X encourages the programs to compile and link with their
CommonCrypto, not with OpenSSL.

* da/darwin:
  imap-send: eliminate HMAC deprecation warnings on Mac OS X
  cache.h: eliminate SHA-1 deprecation warnings on Mac OS X
  Makefile: add support for Apple CommonCrypto facility
  Makefile: fix default regex settings on Darwin
This commit is contained in:
Junio C Hamano 2013-06-30 15:33:13 -07:00
commit 91863750cd
2 changed files with 25 additions and 0 deletions

View File

@ -137,6 +137,10 @@ all::
# specify your own (or DarwinPort's) include directories and # specify your own (or DarwinPort's) include directories and
# library directories by defining CFLAGS and LDFLAGS appropriately. # library directories by defining CFLAGS and LDFLAGS appropriately.
# #
# Define NO_APPLE_COMMON_CRYPTO if you are building on Darwin/Mac OS X
# and do not want to use Apple's CommonCrypto library. This allows you
# to provide your own OpenSSL library, for example from MacPorts.
#
# Define BLK_SHA1 environment variable to make use of the bundled # Define BLK_SHA1 environment variable to make use of the bundled
# optimized C SHA1 routine. # optimized C SHA1 routine.
# #
@ -1054,6 +1058,11 @@ ifeq ($(uname_S),Darwin)
BASIC_LDFLAGS += -L/opt/local/lib BASIC_LDFLAGS += -L/opt/local/lib
endif endif
endif endif
ifndef NO_APPLE_COMMON_CRYPTO
APPLE_COMMON_CRYPTO = YesPlease
COMPAT_CFLAGS += -DAPPLE_COMMON_CRYPTO
endif
NO_REGEX = YesPlease
PTHREAD_LIBS = PTHREAD_LIBS =
endif endif
@ -1387,11 +1396,17 @@ ifdef PPC_SHA1
SHA1_HEADER = "ppc/sha1.h" SHA1_HEADER = "ppc/sha1.h"
LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
LIB_H += ppc/sha1.h LIB_H += ppc/sha1.h
else
ifdef APPLE_COMMON_CRYPTO
COMPAT_CFLAGS += -DCOMMON_DIGEST_FOR_OPENSSL
SHA1_HEADER = <CommonCrypto/CommonDigest.h>
else else
SHA1_HEADER = <openssl/sha.h> SHA1_HEADER = <openssl/sha.h>
EXTLIBS += $(LIB_4_CRYPTO) EXTLIBS += $(LIB_4_CRYPTO)
endif endif
endif endif
endif
ifdef NO_PERL_MAKEMAKER ifdef NO_PERL_MAKEMAKER
export NO_PERL_MAKEMAKER export NO_PERL_MAKEMAKER
endif endif

View File

@ -29,8 +29,18 @@
#ifdef NO_OPENSSL #ifdef NO_OPENSSL
typedef void *SSL; typedef void *SSL;
#else #else
#ifdef APPLE_COMMON_CRYPTO
#include <CommonCrypto/CommonHMAC.h>
#define HMAC_CTX CCHmacContext
#define HMAC_Init(hmac, key, len, algo) CCHmacInit(hmac, algo, key, len)
#define HMAC_Update CCHmacUpdate
#define HMAC_Final(hmac, hash, ptr) CCHmacFinal(hmac, hash)
#define HMAC_CTX_cleanup(ignore)
#define EVP_md5() kCCHmacAlgMD5
#else
#include <openssl/evp.h> #include <openssl/evp.h>
#include <openssl/hmac.h> #include <openssl/hmac.h>
#endif
#include <openssl/x509v3.h> #include <openssl/x509v3.h>
#endif #endif