source: trunk/dports/devel/openssl/Portfile @ 22517

Last change on this file since 22517 was 22517, checked in by pipping@…, 12 years ago

variant universal: * fix comments

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.9 KB
Line 
1# $Id: Portfile 22517 2007-03-04 06:23:59Z pipping@macports.org $
2
3PortSystem 1.0
4name                    openssl
5version                 0.9.8e
6platforms               darwin freebsd
7categories              devel security
8maintainers             mww@macports.org
9homepage                http://www.openssl.org/
10description             OpenSSL SSL/TLS cryptography library
11
12long_description \
13        The OpenSSL Project is a collaborative effort to develop a robust, \
14        commercial-grade, full-featured, and Open Source toolkit implementing \
15        the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security \
16        (TLS v1) protocols as well as a full-strength general purpose \
17        cryptography library.
18
19master_sites    http://www.openssl.org/source/
20checksums               md5 3a7ff24f6ea5cd711984722ad654b927 \
21                                sha1 b429872d2a287714ab37e42296e6a5fbe23d32ff \
22                                rmd160 c1a498606dc0fc7219376b950fab6b53687466db
23
24depends_lib             port:zlib
25
26variant darwin {
27        patchfiles      patch-Makefile.org patch-crypto-Makefile
28}
29
30configure.cmd   ./config
31configure.args  -L${prefix}/lib --openssldir=${prefix}/etc/openssl zlib no-asm no-krb5 shared
32
33platform darwin 6 {
34        depends_lib-append      port:dlcompat
35}
36
37platform darwin 8 {
38        build.args      CC=/usr/bin/gcc-4.0
39}
40
41destroot.destdir        INSTALL_PREFIX=${destroot}
42destroot.args           MANDIR=${prefix}/share/man
43
44test.run                yes
45
46variant universal {
47
48    post-configure {
49        cd ${worksrcpath}
50
51        # prepare building for ppc
52        if [variant_isset darwin_i386] {
53            reinplace "s|PLATFORM=darwin-i386-cc|PLATFORM=darwin-ppc-cc|g" Makefile
54            reinplace "s|DL_ENDIAN|DB_ENDIAN|g" Makefile
55        }
56        reinplace "s|-O3 -DB_ENDIAN$|-O3 -DB_ENDIAN -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk|" Makefile
57        reinplace "s|^LDFLAGS=.*|LDFLAGS=-arch ppc|g" Makefile.shared
58    }
59
60    build {
61        cd ${worksrcpath}
62
63        # build for ppc
64        system [command build]
65
66        # determine which files will need to be lipo'ed together
67        set lList {}
68        foreach s {0.9.8.dylib a} {
69            foreach n {crypto ssl} {
70                lappend lList lib${n}.${s}
71            }
72        }
73        set eList {}
74        foreach f [glob engines/*.so] {
75            lappend eList ${f}
76        }
77        set bList apps/openssl
78        set tList {}
79        foreach f [glob test/*test] {
80            lappend tList ${f}
81        }
82        lappend tList test/sha256t
83        lappend tList test/sha512t
84
85        # define a backup procedure to a temporary location
86        proc backup {bakPath} {
87            xinstall -d ${bakPath}   
88            foreach a {l e b t} b {. engines apps test} {
89                upvar 1 [set a]List [set a]List
90                xinstall -d ${bakPath}/$b
91                foreach n [set [set a]List] {
92                    xinstall ${n} ${bakPath}/${b}
93                }
94            }
95        }
96        # backup the output of the first run (ppc)
97        set ppcPath ${workpath}/ppc
98        backup ${ppcPath}
99
100        # cleanup the worksrcdir
101        system "make clean"
102        foreach f [glob lib*.0.9.8.dylib] {
103            delete ${f}
104        }
105
106        # prepare building for i386
107        reinplace "s|darwin-ppc-cc|darwin-i386-cc|g" ${worksrcpath}/Makefile
108        reinplace "s|DB_ENDIAN|DL_ENDIAN|g" ${worksrcpath}/Makefile
109        reinplace "s|-arch ppc|-arch i386|g" ${worksrcpath}/Makefile
110        reinplace "s|-arch ppc|-arch i386|g" Makefile.shared
111
112        # build for i386
113        system [command build]
114
115        # backup the output of the second run (i386)
116        set i386Path ${workpath}/i386
117        backup ${i386Path}
118
119        # run lipo on the output of both runs
120        foreach n {l e b t} {
121            foreach m [set [set n]List] {
122                delete ${m}
123                system "lipo \
124                -arch i386 ${i386Path}/${m} \
125                -arch  ppc  ${ppcPath}/${m} \
126                -create -output ${m}"
127            }
128        }
129
130        # make sure installing won't rebuild
131        reinplace "s|install: all |install: |g" Makefile
132    }
133
134    # make sure we don't build a third time
135    post-build {}
136}
137
138platform darwin_i386 {}
Note: See TracBrowser for help on using the repository browser.