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

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

devel/openssl:
Disable ccache, closes #19001 (maintainer timeout)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.7 KB
Line 
1# $Id: Portfile 49086 2009-04-03 11:19:09Z raimue@macports.org $
2
3PortSystem 1.0
4
5name                    openssl
6version                 0.9.8k
7epoch                   1
8platforms               darwin freebsd
9categories              devel security
10maintainers             mww
11homepage                http://www.openssl.org/
12description             OpenSSL SSL/TLS cryptography library
13
14long_description \
15        The OpenSSL Project is a collaborative effort to develop a robust, \
16        commercial-grade, full-featured, and Open Source toolkit implementing \
17        the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security \
18        (TLS v1) protocols as well as a full-strength general purpose \
19        cryptography library.
20
21master_sites    http://www.openssl.org/source/
22checksums           md5     e555c6d58d276aec7fdc53363e338ab3 \
23                    sha1    3ba079f91d3c1ec90a36dcd1d43857165035703f \
24                    rmd160  496df7a5d33457b0d8e3b930a8e5cf068923182c
25
26depends_lib             port:zlib
27
28platform darwin {
29        patchfiles      patch-Makefile.org.diff patch-crypto-Makefile.diff
30}
31
32configure.cmd   ./config
33configure.args  -L${prefix}/lib --openssldir=${prefix}/etc/openssl zlib no-asm no-krb5 shared
34configure.ccache        no
35
36platform darwin 6 {
37        depends_lib-append      port:dlcompat
38}
39
40variant rfc3779 description {enable RFC 3779: X.509 Extensions for IP Addresses and AS Identifiers} {
41        configure.args-append   enable-rfc3779
42}
43
44use_parallel_build      no
45
46destroot.destdir        INSTALL_PREFIX=${destroot}
47destroot.args           MANDIR=${prefix}/share/man
48
49test.run                yes
50
51livecheck.check regex
52livecheck.url   ${master_sites}
53livecheck.regex ${name}-(0.9.8\[a-z\])
54
55if { ![info exists universal_archs] } {
56        set universal_archs {i386 ppc}
57        #set universal_archs {i386 x86_64 ppc ppc64}
58}
59set first_arch [lindex ${universal_archs} 0]
60
61variant universal {
62    patchfiles-append patch-Configure-sysroot.diff
63        post-patch {
64            reinplace "s|__UNIVERSAL_SYSROOT__|${universal_sysroot}|" ${worksrcpath}/Configure
65                foreach arch ${universal_archs} {
66                        if {[string equal ${arch} ${first_arch}]} {
67                                move ${worksrcpath} ${workpath}/${first_arch}
68                        } else {
69                                copy ${workpath}/${first_arch} ${workpath}/${arch}
70                        }
71                }
72        }
73
74        configure {
75                foreach arch ${universal_archs} {
76                        if { [string first 64 $arch] == -1 } {
77                                set my_cc "darwin-${arch}-cc"
78                        } else {
79                                if {[string first ppc $arch] != -1} {
80                                        set my_cc "darwin64-ppc-cc"
81                                } else {
82                                        set my_cc "darwin64-${arch}-cc"
83                                }
84                        }
85                        system "cd ${workpath}/${arch} && ./Configure ${my_cc} ${configure.pre_args} ${configure.args}"
86                }
87        }
88
89        build {
90                foreach arch ${universal_archs} {
91                        system "cd ${workpath}/${arch} && make all"
92                }
93        }
94
95        destroot {
96# in port 1.7, just call:
97#               merge "${workpath}/pre-dest"
98# till then, do this:
99                foreach arch ${universal_archs} {
100                        xinstall -d ${workpath}/pre-dest/${arch}
101                        system "cd ${workpath}/${arch} && make install INSTALL_PREFIX=${workpath}/pre-dest/${arch} MANDIR=${prefix}/share/man"
102                       
103                        # opensslconf.h will differ between 32- and 64-bit, so patch it so it doesn't
104                        if { [string first 64 $arch] != -1 } {
105                                if { [string first ppc $arch] != -1 } {
106                                        set configpatch ${filespath}/patch-opensslconf.h-ppc64.diff
107                                } else {
108                                        set configpatch ${filespath}/patch-opensslconf.h-x86_64.diff
109                                }
110                        } else {
111                                set configpatch ${filespath}/patch-opensslconf.h-32.diff
112                        }
113                        system "cd ${workpath}/pre-dest/${arch}${prefix} && patch --no-backup-if-mismatch -p0 < ${configpatch}"
114                }
115
116                set basepath "${workpath}/pre-dest/${first_arch}"
117                fs-traverse file "${basepath}" {
118                        set fpath [string range "${file}" [string length "${basepath}"] [string length "${file}"]]
119                        if {${fpath} != ""} {
120                                ui_debug ":: ${fpath}"
121
122                                switch -exact [file type "${basepath}${fpath}"] {
123                                        directory {
124                                                # just create directories
125                                                ui_debug "-- dir:: ${fpath}"
126                                                file mkdir "${destroot}${fpath}"
127                                        }
128                                        link {
129                                                # copy symlinks (TODO: check if target matches)
130                                                ui_debug "-- lnk:: ${fpath}"
131                                                file copy "${basepath}${fpath}" "${destroot}${fpath}"
132                                        }
133                                        file {
134                                                # treat files depending on their filetype
135                                                ui_debug "-- file:: ${fpath}"
136                                                set filetype [exec "/usr/bin/file" "-b" "${basepath}${fpath}"]
137                                                switch -regexp ${filetype} {
138                                                        Mach-O.* {
139                                                                # Mach-O binaries get lipo-ed
140                                                                ui_debug "Mach-O file -- lipo-ing"
141                                                                set machocmd "lipo"
142                                                                foreach arch ${universal_archs} {
143                                                                        set machocmd "${machocmd} -arch $arch ${workpath}/pre-dest/${arch}/${fpath}"
144                                                                }
145                                                                set machocmd "${machocmd} -create -output ${destroot}${fpath}"
146                                                                system ${machocmd}
147                                                        }
148                                                        current\ ar\ archive {
149                                                                # ar archives get lipo-ed
150                                                                ui_debug "ar archive -- lipo-ing"
151                                                                set arcmd "lipo"
152                                                                foreach arch ${universal_archs} {
153                                                                        set arcmd "${arcmd} -arch $arch ${workpath}/pre-dest/${arch}/${fpath}"
154                                                                }
155                                                                set arcmd "${arcmd} -create -output ${destroot}${fpath}"
156                                                                system ${arcmd}
157                                                        }
158                                                        default {
159                                                                # unknown file types are copied IF they do not differ across ALL architectures -- if they do: This is an error!
160                                                                ui_debug "unknown filetype: ${filetype}"
161                                                               
162                                                                set any_difference no
163                                                                foreach arch ${universal_archs} {
164                                                                        if {![string equal ${arch} ${first_arch}]} {
165                                                                                set differ1 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/${first_arch}/${fpath}" "${workpath}/pre-dest/${arch}/${fpath}"]
166                                                                                if {![string equal ${differ1} ""]} {
167                                                                                        set any_difference yes
168                                                                                }
169                                                                        }
170                                                                }
171                                                                if {${any_difference}} {
172                                                                        ui_debug "ERROR: files differ"
173                                                                } else {
174                                                                        ui_debug "files match, just copying"
175                                                                        file copy "${basepath}${fpath}" "${destroot}${fpath}"
176                                                                }
177                                                        }
178                                                }
179                                        }
180                                        default { ui_debug "serious error" }
181                                }
182                        }
183                }
184        }
185}
186
187# the test suite can only be run *after* destrooting
188#    test.run            yes
189#    test.dir            ${worksrcpath}/test
190#    test.target         alltests
Note: See TracBrowser for help on using the repository browser.