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

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

fix universal build, prepare 4-way universal build

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.0 KB
Line 
1# $Id: Portfile 31959 2007-12-12 18:52:41Z mww@macports.org $
2
3PortSystem 1.0
4name                    openssl
5version                 0.9.8g
6platforms               darwin freebsd
7categories              devel security
8maintainers             mww
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 acf70a16359bf3658bdfb74bda1c4419 \
21                                sha1 4e9c5ced466715d18fd924de79bde5c15da80fa1 \
22                                rmd160 f080a32da9becdc8b98c38744d62c6fd8664f603
23
24depends_lib             port:zlib
25
26platform darwin {
27        patchfiles      patch-Makefile.org patch-crypto-Makefile patch-Configure
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
37variant rfc3779 {
38        configure.args-append   enable-rfc3779
39}
40
41destroot.destdir        INSTALL_PREFIX=${destroot}
42destroot.args           MANDIR=${prefix}/share/man
43
44test.run                yes
45
46livecheck.check regex
47livecheck.url   ${master_sites}
48livecheck.regex ${name}-(0.9.8\[a-z\])
49
50#make 4-way universal build ready
51variant universal {
52        post-patch {
53#               foreach arch {i386 x86_64 ppc ppc64}
54                foreach arch {i386 ppc} {
55                        file copy ${worksrcpath} ${workpath}/${arch}
56                }
57        }
58
59        configure {
60                foreach arch {i386 ppc} {
61                        system "cd ${workpath}/${arch} && ./Configure darwin-${arch}-cc ${configure.pre_args} ${configure.args}"
62                }
63#               system "cd ${workpath}/x86_64 && ./Configure darwin64-x86_64-cc ${configure.pre_args} ${configure.args}"
64#               system "cd ${workpath}/ppc64 && ./Configure darwin64-ppc-cc ${configure.pre_args} ${configure.args}"
65        }
66
67        build {
68#               foreach arch {i386 x86_64 ppc ppc64}
69                foreach arch {i386 ppc} {
70                        system "cd ${workpath}/${arch} && make all"
71                }
72        }
73
74        destroot {
75# in port 1.7, just call:
76#               merge "${workpath}/pre-dest"
77# till then, do this:
78#               foreach arch {i386 x86_64 ppc ppc64}
79                foreach arch {i386 ppc} {
80                        xinstall -d ${workpath}/pre-dest/${arch}
81                        system "cd ${workpath}/${arch} && make install INSTALL_PREFIX=${workpath}/pre-dest/${arch} MANDIR=${prefix}/share/man"
82                }
83
84                set basepath "${workpath}/pre-dest/i386"
85                fs-traverse file "${basepath}" {
86                        set fpath [string range "${file}" [string length "${basepath}"] [string length "${file}"]]
87                        if {${fpath} != ""} {
88                                ui_debug ":: ${fpath}"
89
90                                switch -exact [file type "${basepath}${fpath}"] {
91                                        directory {
92                                                # just create directories
93                                                ui_debug "-- dir:: ${fpath}"
94                                                file mkdir "${destroot}${fpath}"
95                                        }
96                                        link {
97                                                # copy symlinks (TODO: check if target matches)
98                                                ui_debug "-- lnk:: ${fpath}"
99                                                file copy "${basepath}${fpath}" "${destroot}${fpath}"
100                                        }
101                                        file {
102                                                # treat files depending on their filetype
103                                                ui_debug "-- file:: ${fpath}"
104                                                set filetype [exec "/usr/bin/file" "-b" "${basepath}${fpath}"]
105                                                switch -regexp ${filetype} {
106                                                        Mach-O.* {
107                                                                # Mach-O binaries get lipo-ed
108                                                                ui_debug "Mach-O file -- lipo-ing"
109#                                                               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}"
110                                                                system "lipo -arch i386 ${workpath}/pre-dest/i386/${fpath} -arch ppc ${workpath}/pre-dest/ppc/${fpath} -create -output ${destroot}${fpath}"
111                                                        }
112                                                        current\ ar\ archive {
113                                                                # ar archives get lipo-ed
114                                                                ui_debug "ar archive -- lipo-ing"
115#                                                               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}"
116                                                                system "lipo -arch i386 ${workpath}/pre-dest/i386/${fpath} -arch ppc ${workpath}/pre-dest/ppc/${fpath} -create -output ${destroot}${fpath}"
117                                                        }
118                                                        default {
119                                                                # unknown file types are copied IF they do not differ across ALL architectures -- if they do: This is an error!
120                                                                ui_debug "unknown filetype: ${filetype}"
121                                                                set differ1 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/i386/${fpath}" "${workpath}/pre-dest/ppc/${fpath}"]
122#                                                               set differ2 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/i386/${fpath}" "${workpath}/pre-dest/x86_64/${fpath}"]
123#                                                               set differ3 [exec "/usr/bin/diff" "-q" "${workpath}/pre-dest/i386/${fpath}" "${workpath}/pre-dest/ppc64/${fpath}"]
124                                                                if {${differ1} != ""} {
125                                                                        ui_debug "ERROR"
126                                                                } else {
127                                                                        ui_debug "files match, just copying"
128                                                                        file copy "${basepath}${fpath}" "${destroot}${fpath}"
129                                                                }
130                                                        }
131                                                }
132                                        }
133                                        default { ui_debug "serious error" }
134                                }
135                        }
136                }
137        }
138}
139
140# the test suite can only be run *after* destrooting
141#    test.run            yes
142#    test.dir            ${worksrcpath}/test
143#    test.target         alltests
Note: See TracBrowser for help on using the repository browser.