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

Last change on this file since 40210 was 40210, checked in by mww@…, 10 years ago

mark as 'not reliably building in parallel' (see #15452)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.1 KB
Line 
1# $Id: Portfile 40210 2008-09-25 11:34:37Z mww@macports.org $
2
3PortSystem 1.0
4
5name                    openssl
6version                 0.9.8i
7platforms               darwin freebsd
8categories              devel security
9maintainers             mww
10homepage                http://www.openssl.org/
11description             OpenSSL SSL/TLS cryptography library
12
13long_description \
14        The OpenSSL Project is a collaborative effort to develop a robust, \
15        commercial-grade, full-featured, and Open Source toolkit implementing \
16        the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security \
17        (TLS v1) protocols as well as a full-strength general purpose \
18        cryptography library.
19
20master_sites    http://www.openssl.org/source/
21checksums               md5 561e00f18821c74b2b86c8c7786f9d8b \
22                                sha1 b2e029cfb68bf32eae997d60317a40945db5a65f \
23                                rmd160 596d767345d7c74b39c48f9b725c2c9d2641d7e4
24
25depends_lib             port:zlib
26
27platform darwin {
28        patchfiles      patch-Makefile.org.diff patch-crypto-Makefile.diff
29}
30
31configure.cmd   ./config
32configure.args  -L${prefix}/lib --openssldir=${prefix}/etc/openssl zlib no-asm no-krb5 shared
33
34platform darwin 6 {
35        depends_lib-append      port:dlcompat
36}
37
38variant rfc3779 description {enable RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers} {
39        configure.args-append   enable-rfc3779
40}
41
42use_parallel_build      no
43
44destroot.destdir        INSTALL_PREFIX=${destroot}
45destroot.args           MANDIR=${prefix}/share/man
46
47test.run                yes
48
49livecheck.check regex
50livecheck.url   ${master_sites}
51livecheck.regex ${name}-(0.9.8\[a-z\])
52
53#make 4-way universal build ready
54variant universal {
55        post-patch {
56#               foreach arch {i386 x86_64 ppc ppc64}
57                foreach arch {i386 ppc} {
58                        file copy ${worksrcpath} ${workpath}/${arch}
59                }
60        }
61
62        configure {
63                foreach arch {i386 ppc} {
64                        system "cd ${workpath}/${arch} && ./Configure darwin-${arch}-cc ${configure.pre_args} ${configure.args}"
65                }
66#               system "cd ${workpath}/x86_64 && ./Configure darwin64-x86_64-cc ${configure.pre_args} ${configure.args}"
67#               system "cd ${workpath}/ppc64 && ./Configure darwin64-ppc-cc ${configure.pre_args} ${configure.args}"
68        }
69
70        build {
71#               foreach arch {i386 x86_64 ppc ppc64}
72                foreach arch {i386 ppc} {
73                        system "cd ${workpath}/${arch} && make all"
74                }
75        }
76
77        destroot {
78# in port 1.7, just call:
79#               merge "${workpath}/pre-dest"
80# till then, do this:
81#               foreach arch {i386 x86_64 ppc ppc64}
82                foreach arch {i386 ppc} {
83                        xinstall -d ${workpath}/pre-dest/${arch}
84                        system "cd ${workpath}/${arch} && make install INSTALL_PREFIX=${workpath}/pre-dest/${arch} MANDIR=${prefix}/share/man"
85                }
86
87                set basepath "${workpath}/pre-dest/i386"
88                fs-traverse file "${basepath}" {
89                        set fpath [string range "${file}" [string length "${basepath}"] [string length "${file}"]]
90                        if {${fpath} != ""} {
91                                ui_debug ":: ${fpath}"
92
93                                switch -exact [file type "${basepath}${fpath}"] {
94                                        directory {
95                                                # just create directories
96                                                ui_debug "-- dir:: ${fpath}"
97                                                file mkdir "${destroot}${fpath}"
98                                        }
99                                        link {
100                                                # copy symlinks (TODO: check if target matches)
101                                                ui_debug "-- lnk:: ${fpath}"
102                                                file copy "${basepath}${fpath}" "${destroot}${fpath}"
103                                        }
104                                        file {
105                                                # treat files depending on their filetype
106                                                ui_debug "-- file:: ${fpath}"
107                                                set filetype [exec "/usr/bin/file" "-b" "${basepath}${fpath}"]
108                                                switch -regexp ${filetype} {
109                                                        Mach-O.* {
110                                                                # Mach-O binaries get lipo-ed
111                                                                ui_debug "Mach-O file -- lipo-ing"
112#                                                               system "lipo -arch i386 ${workpath}/pre-dest/i386/${fpath} -arch x86_64 ${workpath}/pre-dest/x86_64/${fpath} -arch ppc ${workpath}/pre-dest/ppc/${fpath} -arch ppc64 ${workpath}/pre-dest/ppc64/${fpath} -create -output ${destroot}${fpath}"
113                                                                system "lipo -arch i386 ${workpath}/pre-dest/i386/${fpath} -arch ppc ${workpath}/pre-dest/ppc/${fpath} -create -output ${destroot}${fpath}"
114                                                        }
115                                                        current\ ar\ archive {
116                                                                # ar archives get lipo-ed
117                                                                ui_debug "ar archive -- lipo-ing"
118#                                                               system "lipo -arch i386 ${workpath}/pre-dest/i386/${fpath} -arch x86_64 ${workpath}/pre-dest/x86_64/${fpath} -arch ppc ${workpath}/pre-dest/ppc/${fpath} -arch ppc64 ${workpath}/pre-dest/ppc64/${fpath} -create -output ${destroot}${fpath}"
119                                                                system "lipo -arch i386 ${workpath}/pre-dest/i386/${fpath} -arch ppc ${workpath}/pre-dest/ppc/${fpath} -create -output ${destroot}${fpath}"
120                                                        }
121                                                        default {
122                                                                # unknown file types are copied IF they do not differ across ALL architectures -- if they do: This is an error!
123                                                                ui_debug "unknown filetype: ${filetype}"
124                                                                set differ1 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/i386/${fpath}" "${workpath}/pre-dest/ppc/${fpath}"]
125#                                                               set differ2 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/i386/${fpath}" "${workpath}/pre-dest/x86_64/${fpath}"]
126#                                                               set differ3 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/i386/${fpath}" "${workpath}/pre-dest/ppc64/${fpath}"]
127                                                                if {${differ1} != ""} {
128                                                                        ui_debug "ERROR"
129                                                                } else {
130                                                                        ui_debug "files match, just copying"
131                                                                        file copy "${basepath}${fpath}" "${destroot}${fpath}"
132                                                                }
133                                                        }
134                                                }
135                                        }
136                                        default { ui_debug "serious error" }
137                                }
138                        }
139                }
140        }
141}
142
143# the test suite can only be run *after* destrooting
144#    test.run            yes
145#    test.dir            ${worksrcpath}/test
146#    test.target         alltests
Note: See TracBrowser for help on using the repository browser.