Hi,
 This may have been submitted by someone before now, but I added support
for Apple's Darwin operating system. The only complication is with
installation, since Darwin comes with the openssl.framework and having it
on the system will cause the framework headers to be used. An easy
solution is to delete the framework before building, but I have modified
the Configure to pass flags that ignore the installed framework and then
I'd let the user decided whether to do a normal unix install or to update
the framework. It might require a note about Darwin/MacOSX concerning
this. But this does build and all tests pass. Threaded support is not
available until libc_r shows up.

Brad Dominy
darwinuser.org

diff -ur openssl-orig/Configure openssl/Configure
--- openssl-orig/Configure      Sun Sep 24 08:27:37 2000
+++ openssl/Configure   Sat Mar  3 02:59:51 2001
@@ -402,8 +402,10 @@
 "OpenBSD",      "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR 
RC4_INDEX DES_UNROLL:::",
 "OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR 
DES_UNROLL DES_RISC2 DES_PTR BF_PTR::::",
 
-##### MacOS X (a.k.a. Rhapsody) setup
+##### MacOS X/Darwin (a.k.a. Rhapsody) setup
 "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK 
DES_UNROLL BF_PTR:::",
+"darwin-ppc-cc","cc:-O3 -nostdinc 
+-I/System/Library/Frameworks/System.framework/Headers 
+-I/System/Library/Frameworks/System.frameworks/Headers/bsd -I/usr/include 
+-fomit-frame-pointer -Wall -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK 
+DES_UNROLL BF_PTR::::::::::::-fPIC",
+"darwin-i386-cc","cc:-O3 -nostdinc 
+-I/System/Library/Frameworks/System.framework/Headers 
+-I/System/Library/Frameworks/System.frameworks/Headers/bsd -I/usr/include 
+-fomit-frame-pointer -Wall -DL_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK 
+DES_UNROLL BF_PTR::::::::::::-fPIC",
 
 ##### Sony NEWS-OS 4.x
 "newsos4-gcc","gcc:-O -DB_ENDIAN -DNEWS4::(unknown):-lmld -liberty:BN_LLONG RC4_CHAR 
RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
Only in openssl: Configure~
diff -ur openssl-orig/apps/s_time.c openssl/apps/s_time.c
--- openssl-orig/apps/s_time.c  Fri Feb 11 01:46:55 2000
+++ openssl/apps/s_time.c       Sat Mar  3 02:07:04 2001
@@ -82,7 +82,7 @@
 #include "wintext.h"
 #endif
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/apps/speed.c openssl/apps/speed.c
--- openssl-orig/apps/speed.c   Sun Sep 24 08:27:42 2000
+++ openssl/apps/speed.c        Sat Mar  3 02:07:48 2001
@@ -84,10 +84,10 @@
 
 #if defined(__FreeBSD__)
 # define USE_TOD
-#elif !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#elif !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 # define TIMES
 #endif
-#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && 
!defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && 
!defined(MPE)
+#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && 
+!defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && 
+!defined(MPE) && !defined(__APPLE__)
 # define TIMEB
 #endif
 
diff -ur openssl-orig/config openssl/config
--- openssl-orig/config Thu Sep 21 02:23:14 2000
+++ openssl/config      Sat Mar  3 01:07:41 2001
@@ -203,6 +203,18 @@
        echo "ppc-apple-rhapsody"; exit 0
        ;;
 
+    Darwin:*)
+       case "$MACHINE" in
+           Power*)
+               echo "ppc-apple-darwin${VERSION}"
+               ;;
+           *)
+               echo "i386-apple-darwin${VERSION}"
+               ;;
+       esac
+       exit 0
+       ;;
+
     SunOS:5.*)
        echo "${MACHINE}-whatever-solaris2"; exit 0
        ;;
@@ -418,6 +430,8 @@
   m68k-*-linux*) OUT="linux-m68k" ;;
   ia64-*-linux?) OUT="linux-ia64" ;;
   ppc-apple-rhapsody) OUT="rhapsody-ppc-cc" ;;
+  ppc-apple-darwin*) OUT="darwin-ppc-cc" ;;
+  i386-apple-darwin*) OUT="darwin-i386-cc" ;;
   sparc64-*-linux2)
        #Before we can uncomment following lines we have to wait at least
        #till 64-bit glibc for SPARC is operational:-(
diff -ur openssl-orig/crypto/bf/bf_opts.c openssl/crypto/bf/bf_opts.c
--- openssl-orig/crypto/bf/bf_opts.c    Thu Feb  3 15:22:33 2000
+++ openssl/crypto/bf/bf_opts.c Fri Mar  2 22:39:21 2001
@@ -59,7 +59,7 @@
 /* define PART1, PART2, PART3 or PART4 to build only with a few of the options.
  * This is for machines with 64k code segment size restrictions. */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/bf/bfspeed.c openssl/crypto/bf/bfspeed.c
--- openssl-orig/crypto/bf/bfspeed.c    Thu Feb  3 15:22:33 2000
+++ openssl/crypto/bf/bfspeed.c Fri Mar  2 22:39:47 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/bn/bnspeed.c openssl/crypto/bn/bnspeed.c
--- openssl-orig/crypto/bn/bnspeed.c    Fri Jan 14 09:55:36 2000
+++ openssl/crypto/bn/bnspeed.c Fri Mar  2 22:40:29 2001
@@ -71,7 +71,7 @@
 #include <openssl/crypto.h>
 #include <openssl/err.h>
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/bn/expspeed.c openssl/crypto/bn/expspeed.c
--- openssl-orig/crypto/bn/expspeed.c   Fri Jan 14 09:55:36 2000
+++ openssl/crypto/bn/expspeed.c        Fri Mar  2 22:40:57 2001
@@ -71,7 +71,7 @@
 #include <openssl/crypto.h>
 #include <openssl/err.h>
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/cast/cast_spd.c openssl/crypto/cast/cast_spd.c
--- openssl-orig/crypto/cast/cast_spd.c Thu Feb  3 15:22:44 2000
+++ openssl/crypto/cast/cast_spd.c      Fri Mar  2 22:41:28 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/cast/castopts.c openssl/crypto/cast/castopts.c
--- openssl-orig/crypto/cast/castopts.c Thu Feb  3 15:22:44 2000
+++ openssl/crypto/cast/castopts.c      Fri Mar  2 22:41:50 2001
@@ -59,7 +59,7 @@
 /* define PART1, PART2, PART3 or PART4 to build only with a few of the options.
  * This is for machines with 64k code segment size restrictions. */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/des/des_opts.c openssl/crypto/des/des_opts.c
--- openssl-orig/crypto/des/des_opts.c  Thu Feb  3 15:22:46 2000
+++ openssl/crypto/des/des_opts.c       Fri Mar  2 22:42:21 2001
@@ -59,7 +59,7 @@
 /* define PART1, PART2, PART3 or PART4 to build only with a few of the options.
  * This is for machines with 64k code segment size restrictions. */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/des/speed.c openssl/crypto/des/speed.c
--- openssl-orig/crypto/des/speed.c     Thu Feb  3 15:22:47 2000
+++ openssl/crypto/des/speed.c  Fri Mar  2 22:42:53 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/idea/idea_spd.c openssl/crypto/idea/idea_spd.c
--- openssl-orig/crypto/idea/idea_spd.c Thu Feb  3 15:22:56 2000
+++ openssl/crypto/idea/idea_spd.c      Fri Mar  2 22:43:30 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/rc2/rc2speed.c openssl/crypto/rc2/rc2speed.c
--- openssl-orig/crypto/rc2/rc2speed.c  Thu Feb  3 15:23:04 2000
+++ openssl/crypto/rc2/rc2speed.c       Fri Mar  2 22:44:02 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/rc4/rc4speed.c openssl/crypto/rc4/rc4speed.c
--- openssl-orig/crypto/rc4/rc4speed.c  Thu Feb  3 15:23:05 2000
+++ openssl/crypto/rc4/rc4speed.c       Fri Mar  2 22:44:25 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/rc5/rc5speed.c openssl/crypto/rc5/rc5speed.c
--- openssl-orig/crypto/rc5/rc5speed.c  Thu Feb  3 15:23:07 2000
+++ openssl/crypto/rc5/rc5speed.c       Fri Mar  2 22:44:46 2001
@@ -59,7 +59,7 @@
 /* 11-Sep-92 Andrew Daviel   Support for Silicon Graphics IRIX added */
 /* 06-Apr-92 Luke Brennan    Support for VMS and add extra signal calls */
 
-#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
+#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC) || defined(__APPLE__))
 #define TIMES
 #endif
 
diff -ur openssl-orig/crypto/tmdiff.c openssl/crypto/tmdiff.c
--- openssl-orig/crypto/tmdiff.c        Mon Sep 11 05:42:03 2000
+++ openssl/crypto/tmdiff.c     Fri Mar  2 22:46:16 2001
@@ -67,7 +67,7 @@
 
 #ifndef MSDOS
 #  ifndef WIN32
-#    if !defined(VMS) || defined(__DECC)
+#    if !defined(VMS) || defined(__DECC) || defined(__APPLE__)
 #      define TIMES
 #    endif
 #  endif

Reply via email to