source: trunk/dports/devel/icu/Portfile @ 106554

Last change on this file since 106554 was 106554, checked in by cal@…, 7 years ago

icu: update to 51.2, revbump port echo depends:icu

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 7.6 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 106554 2013-05-30 23:03:55Z cal@macports.org $
3
4PortSystem      1.0
5PortGroup       muniversal 1.0
6
7name            icu
8set my_name     icu4c
9# Don't forget to increase the revision number of the dependents (e.g. boost)
10# whenever the library version number changes. Thanks.
11version         51.2
12categories      devel textproc
13platforms       darwin freebsd
14license         MIT
15maintainers     nomaintainer
16description     International Components for Unicode
17
18long_description \
19    The International Components for Unicode (ICU) libraries provide robust \
20    and full-featured Unicode services on a wide variety of platforms. ICU \
21    supports the most current version of the Unicode standard, and they provide \
22    support for supplementary Unicode characters (needed for GB 18030 repertoire support).
23
24homepage        http://www.icu-project.org/
25master_sites    http://download.icu-project.org/files/${my_name}/${version}/
26
27distname        ${my_name}-[join [split ${version} .] _]
28extract.suffix  .tgz
29distfiles       ${distname}-src${extract.suffix}
30patchfiles      patch-configure.diff \
31                patch-config-mh-darwin.diff \
32                inline.patch
33
34checksums       ${distname}-src.tgz \
35                rmd160  ef1256bb87b3dcec1cf40b32b11c5c3f1bd48af6 \
36                sha256  deb027a05f1b3bec03298b96fb93b28c84e9683c22e6f94effa67fdc7bd704cc
37
38worksrcdir      ${name}/source
39set docdir      ${prefix}/share/doc/${name}
40
41if {[variant_isset universal]} {
42    patchfiles-append   patch-universal.diff
43
44    # weirdly, icu needs a separate source dir built for the build
45    # machine in order to cross-compile
46    pre-configure {
47        global merger_configure_args
48        set cross 0
49        set 32bit 0
50        set crosspath ${worksrcpath}-cross
51        if {${os.major} < 9 || [sysctl hw.cpu64bit_capable] == 0} {
52            set 32bit 1
53        }
54        foreach a $universal_archs_to_use {
55            if {($32bit && ($a == "x86_64" || $a == "ppc64")) 
56                || (${os.arch} == "powerpc" && ($a == "x86_64" || $a == "i386"))
57                || (${os.arch} == "i386" && ($a == "ppc" || $a == "ppc64"))} {
58                set cross 1
59                set merger_configure_args($a) --with-cross-build=${crosspath}
60            }
61        }
62        if {$cross} {
63            copy ${worksrcpath} ${crosspath}
64            set configure_dir_save  ${configure.dir}
65            configure.dir ${crosspath}
66            portconfigure::configure_main
67            configure.dir $configure_dir_save
68            system -W ${crosspath} "${build.cmd}[portbuild::build_getjobsarg]"
69        }
70    }
71}
72
73post-patch {
74    reinplace "s|__PREFIX__|${prefix}|g" ${worksrcpath}/config/mh-darwin
75}
76
77set platform [switch ${os.platform} {darwin {format MacOSX} freebsd {format FreeBSD}}]
78configure.cmd   ./runConfigureICU ${platform}
79
80configure.args  --enable-static \
81                --disable-samples
82
83configure.universal_args-delete --disable-dependency-tracking
84
85# Fix bug #11981 that prevents ICU from building when upgrading.
86# The default configure flags causes utilisation of outdated ICU
87# headers/libs instead of the right ones.
88configure.cppflags
89configure.ldflags
90
91post-configure {
92    if {[variant_isset universal]} {
93        # Ticket #23773
94        foreach a ${universal_archs_to_use} {
95            reinplace "s|__ARCH__|${a}|g" ${worksrcpath}-${a}/Makefile
96        }
97    }
98}
99
100build.type      gnu
101
102use_parallel_build  yes
103
104test.run        yes
105test.target     check
106
107post-destroot {
108    xinstall -d ${destroot}${docdir}
109    eval xinstall -m 0644 [glob ${worksrcpath}/../*.{css,html,txt}] ${destroot}${docdir}
110
111    if {[variant_isset universal]} {
112        # Ticket #23773
113        foreach a ${universal_archs_to_use} {
114            reinplace "s|/Makefile.inc|/Makefile-${a}.inc|g" ${destroot}${prefix}/bin/icu-config-${a}
115            reinplace "s|/pkgdata.inc|/pkgdata-${a}.inc|g" ${destroot}${prefix}/bin/icu-config-${a}
116        }
117        ln -s current/Makefile.inc ${destroot}${prefix}/lib/icu/Makefile.inc
118        ln -s current/pkgdata.inc ${destroot}${prefix}/lib/icu/pkgdata.inc
119    }
120}
121
122post-activate {
123    if {[variant_isset universal]} {
124        # Ticket #23773
125        set a ${configure.build_arch}
126        if {$a == "ppc64"} {
127            if {![file exists ${prefix}/bin/icu-config-${a}]} {
128                set a "ppc"
129            }
130        } elseif {$a == "x86_64"} {
131            if {![file exists ${prefix}/bin/icu-config-${a}]} {
132                set a "i386"
133                if {![file exists ${prefix}/bin/icu-config-${a}]} {
134                    set a "ppc"
135                }
136            }
137        } elseif {$a == "i386"} {
138            if {![file exists ${prefix}/bin/icu-config-${a}]} {
139                set a "ppc"
140            }
141        }
142        foreach {p q} [list "${prefix}/bin/icu-config-${a}" "${prefix}/bin/icu-config" \
143                            "${prefix}/lib/icu/${version}/Makefile-${a}.inc" "${prefix}/lib/icu/${version}/Makefile.inc" \
144                            "${prefix}/lib/icu/${version}/pkgdata-${a}.inc" "${prefix}/lib/icu/${version}/pkgdata.inc" \
145                            "${prefix}/lib/pkgconfig/icu-i18n-${a}.pc" "${prefix}/lib/pkgconfig/icu-i18n.pc" \
146                            "${prefix}/lib/pkgconfig/icu-io-${a}.pc" "${prefix}/lib/pkgconfig/icu-io.pc" \
147                            "${prefix}/lib/pkgconfig/icu-le-${a}.pc" "${prefix}/lib/pkgconfig/icu-le.pc" \
148                            "${prefix}/lib/pkgconfig/icu-lx-${a}.pc" "${prefix}/lib/pkgconfig/icu-lx.pc" \
149                            "${prefix}/lib/pkgconfig/icu-uc-${a}.pc" "${prefix}/lib/pkgconfig/icu-uc.pc"] {
150            if {[file exists ${p}]} {
151                ln -s ${p} ${q}
152            }
153        }
154    }
155}
156
157pre-deactivate {
158    if {[variant_isset universal]} {
159        # Ticket #23773
160        foreach f [list "${prefix}/bin/icu-config" \
161                        "${prefix}/lib/icu/${version}/Makefile.inc" \
162                        "${prefix}/lib/icu/${version}/pkgdata.inc" \
163                        "${prefix}/lib/pkgconfig/icu-i18n.pc" \
164                        "${prefix}/lib/pkgconfig/icu-io.pc" \
165                        "${prefix}/lib/pkgconfig/icu-le.pc" \
166                        "${prefix}/lib/pkgconfig/icu-lx.pc" \
167                        "${prefix}/lib/pkgconfig/icu-uc.pc"] {
168            delete ${f}
169        }
170    }
171}
172
173variant doc conflicts doxygen description {Install pre-built API documentation} {
174    depends_extract-append bin:unzip:unzip
175    extract.only        ${distname}-src${extract.suffix}
176    distfiles-append    ${distname}-docs.zip
177    checksums-append    ${distname}-docs.zip \
178                        rmd160  e0ffe7d2ff35480dcefb5dace1b21d5ac557a3af \
179                        sha256  50fcc81a797b20ebaf12167479f24eac323bad21d012ca366701f62eccdabb94
180
181    post-extract {
182        xinstall -m 0755 -d ${worksrcpath}/doc
183        system "unzip -q ${distpath}/${distname}-docs.zip -d ${worksrcpath}/doc/html"
184    }
185
186    post-destroot {
187        copy ${worksrcpath}/doc/html ${destroot}${docdir}
188    }
189}
190
191variant doxygen conflicts doc universal description {Build and install API documentation} {
192    depends_build port:doxygen
193    post-build {
194        system -W ${worksrcpath} "${build.cmd} doc"
195    }
196    post-destroot {
197        system -W ${worksrcpath} "${build.cmd} install-doc DESTDIR=${destroot}"
198    }
199}
200
201platform freebsd {
202    build.env       MAKE=/usr/local/bin/gmake
203    destroot.env    MAKE=/usr/local/bin/gmake
204}
205
206platform darwin 8 {
207    patchfiles-append patch-common-putil.cpp.diff
208}
209
210livecheck.url   http://site.icu-project.org/download
211livecheck.regex {>ICU4C \((\d+(?:\.\d+)*)\)<}
Note: See TracBrowser for help on using the repository browser.