Sat, 03 Oct 2009 16:30:38 +0200
Document building fat object files with the hand made buildconf.
1 ##
2 ## Cryptlib.txt -- Addendum to OS X Package Specification Document
3 ## Copyright (c) 2009 Michael Schloh von Bennewitz <michael@schloh.com>
4 ##
5 ## Permission to use, copy, modify, and distribute this software for
6 ## any purpose with or without fee is hereby granted, provided that
7 ## the above copyright notice and this permission notice appear in all
8 ## copies.
9 ##
10 ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
21 ## SUCH DAMAGE.
22 ##
25 Cryptlib Encryption Development Package
26 ---------------------------------------
27 Name: Cryptlib
28 Summary: Cryptlib Encryption Toolkit
29 URL: http://www.cs.auckland.ac.nz/~pgut001/cryptlib/
30 Packager: Michael Schloh von Bennewitz
31 Vendor: Peter Gutmann
33 Package source: Cryptlib.pmdoc
34 Package output: Cryptlib-<dist.version>.pkg
36 Executing Cryptlib.pkg installs header archives and universal libraries
37 (IA-32/X86-64/PPC7400/PPC64) to the OS X operating system required for
38 developing applications using Cryptlib cryptography logic.
40 To create the installation package, use the OS X PackageMaker
41 application or equivalent command line utility. Required sources
42 include the package specification (<file>.pmdoc) and the archives
43 specified within the package specification. These references are
44 listed in the following manifest, and must be manually placed.
46 The defective build configuration requires changes:
47 Index: crypt/osconfig.h
48 --- crypt/osconfig.h.orig 2009-08-04 20:54:46.000000000 +0200
49 +++ crypt/osconfig.h 2009-08-04 20:53:28.000000000 +0200
50 @@ -231,7 +231,6 @@
51 #else
52 #define L_ENDIAN
53 #endif
54 - #define B_ENDIAN
55 #define BN_LLONG
56 #define BF_PTR
57 #define DES_RISC1
59 Building a universal binary requires changes:
60 Index: crypt/osconfig.h
61 --- crypt/osconfig.h.orig 2009-08-11 12:42:04.000000000 +0200
62 +++ crypt/osconfig.h 2009-08-11 12:42:47.000000000 +0200
63 @@ -553,7 +553,7 @@
64 #if !defined( _CRAY ) && !defined( L_ENDIAN ) && !defined( B_ENDIAN )
65 #error You need to add system-specific configuration settings to osconfig.h
66 #endif /* Endianness not defined */
67 -#ifdef CHECK_ENDIANNESS /* One-off check in des_enc.c */
68 +#if ( defined( CHECK_ENDIANNESS ) && !defined( UNIVERSAL_BINARY ) ) /* One-off check in des_enc.c */
69 #undef _CONFIG_DEFINED
70 /* Including crypt.h at this point violates the normal include order
71 because we've already included config.h which normally depends on
73 To build a fat library with IA32, X86_64, PPC, and PPC64 object code:
74 make LDFLAGS='-isysroot /Developer/SDKs/MacOSX10.5.sdk' CFLAGS='-c -isysroot /Developer/SDKs/MacOSX10.5.sdk -Os -mmacosx-version-min=10.5 -arch ppc -arch ppc64 -arch i386 -arch x86_64 -DUNIVERSAL_BINARY -D__UNIX__ -DNDEBUG -I.'
76 Filesystem Root (fsrt) Manifest
77 -------------------------------
78 drwxr-xr-x 3 root wheel 102 Aug 4 21:16 fsrt
79 drwxr-xr-x 3 root wheel 102 Aug 4 21:16 fsrt/usr
80 drwxr-xr-x 4 root wheel 136 Aug 4 21:16 fsrt/usr/local
81 drwxr-xr-x 3 root wheel 102 Aug 4 21:15 fsrt/usr/local/include
82 -rw-r--r-- 1 root wheel 91488 Aug 4 20:41 fsrt/usr/local/include/cryptlib.h
83 drwxr-xr-x 3 root wheel 102 Aug 4 21:15 fsrt/usr/local/lib
84 -rw-r--r-- 1 root wheel 8110616 Aug 4 22:45 fsrt/usr/local/lib/libcl.a