Revision: 73981 http://trac.macports.org/changeset/73981 Author: takanori@macports.org Date: 2010-11-30 18:18:29 -0800 (Tue, 30 Nov 2010) Log Message: ----------- icu: fixed #23773 (fails to install universal ICU library which contains ppc binary on Intel based Macs) Modified Paths: -------------- trunk/dports/devel/icu/Portfile Added Paths: ----------- trunk/dports/devel/icu/files/patch-universal.diff Modified: trunk/dports/devel/icu/Portfile =================================================================== --- trunk/dports/devel/icu/Portfile 2010-11-30 22:17:16 UTC (rev 73980) +++ trunk/dports/devel/icu/Portfile 2010-12-01 02:18:29 UTC (rev 73981) @@ -7,7 +7,7 @@ name icu set my_name icu4c version 4.4.2 -revision 1 +revision 2 categories devel textproc platforms darwin freebsd maintainers nox openmaintainer @@ -38,6 +38,7 @@ set docdir ${prefix}/share/doc/${name} if {[variant_isset universal]} { + patchfiles-append patch-universal.diff set merger_must_run_binaries yes } @@ -61,6 +62,15 @@ configure.cppflags configure.ldflags +post-configure { + if {[variant_isset universal]} { + # Ticket #23773 + foreach arch ${universal_archs_to_use} { + reinplace "s|__ARCH__|${arch}|g" ${worksrcpath}-${arch}/Makefile + } + } +} + build.type gnu use_parallel_build yes @@ -68,26 +78,60 @@ test.run yes test.target check -post-build { +post-destroot { + xinstall -d ${destroot}${docdir} + eval xinstall -m 0644 [glob ${worksrcpath}/../*.{css,html,txt}] ${destroot}${docdir} + if {[variant_isset universal]} { - set dirs {} + # Ticket #23773 foreach arch ${universal_archs_to_use} { - lappend dirs ${worksrcpath}-${arch} + reinplace "s|/Makefile.inc|/Makefile-${arch}.inc|g" ${destroot}${prefix}/bin/icu-config-${arch} + reinplace "s|/pkgdata.inc|/pkgdata-${arch}.inc|g" ${destroot}${prefix}/bin/icu-config-${arch} } - } else { - set dirs ${worksrcpath} + ln -s current/Makefile.inc ${destroot}${prefix}/lib/icu/Makefile.inc + ln -s current/pkgdata.inc ${destroot}${prefix}/lib/icu/pkgdata.inc } - foreach dir ${dirs} { - reinplace -E {s|-arch [a-z0-9_]+||g} \ - ${dir}/config/icu-config \ - ${dir}/config/Makefile.inc \ - ${dir}/config/pkgdata.inc +} + +post-activate { + if {[variant_isset universal]} { + # Ticket #23773 + set a ${configure.build_arch} + if {$a == "ppc64"} { + if {![file exists ${prefix}/bin/icu-config-${a}]} { + set a "ppc" + } + } elseif {$a == "x86_64"} { + if {![file exists ${prefix}/bin/icu-config-${a}]} { + set a "i386" + if {![file exists ${prefix}/bin/icu-config-${a}]} { + set a "ppc" + } + } + } elseif {$a == "i386"} { + if {![file exists ${prefix}/bin/icu-config-${a}]} { + set a "ppc" + } + } + foreach {p q} [list "${prefix}/bin/icu-config-${a}" "${prefix}/bin/icu-config" \ + "${prefix}/lib/icu/${version}/Makefile-${a}.inc" "${prefix}/lib/icu/${version}/Makefile.inc" \ + "${prefix}/lib/icu/${version}/pkgdata-${a}.inc" "${prefix}/lib/icu/${version}/pkgdata.inc"] { + if {[file exists ${p}]} { + ln -s ${p} ${q} + } + } } } -post-destroot { - xinstall -d ${destroot}${docdir} - eval xinstall -m 0644 [glob ${worksrcpath}/../*.{css,html,txt}] ${destroot}${docdir} +post-deactivate { + if {[variant_isset universal]} { + # Ticket #23773 + foreach f [list "${prefix}/bin/icu-config" \ + "${prefix}/lib/icu/${version}/Makefile.inc" \ + "${prefix}/lib/icu/${version}/pkgdata.inc"] { + delete ${f} + } + } } # The official doc archive seems to be a bit incomplete. Added: trunk/dports/devel/icu/files/patch-universal.diff =================================================================== --- trunk/dports/devel/icu/files/patch-universal.diff (rev 0) +++ trunk/dports/devel/icu/files/patch-universal.diff 2010-12-01 02:18:29 UTC (rev 73981) @@ -0,0 +1,21 @@ +--- Makefile.in.orig 2010-09-30 03:38:38.000000000 +0900 ++++ Makefile.in 2010-12-01 06:16:12.000000000 +0900 +@@ -137,13 +137,13 @@ + $(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs + $(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh + $(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html +- $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config +- $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc +- $(INSTALL_DATA) $(top_builddir)/config/pkgdata.inc $(DESTDIR)$(pkglibdir)/pkgdata.inc ++ $(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config-__ARCH__ ++ $(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile-__ARCH__.inc ++ $(INSTALL_DATA) $(top_builddir)/config/pkgdata.inc $(DESTDIR)$(pkglibdir)/pkgdata-__ARCH__.inc + cd $(DESTDIR)$(pkglibdir)/..; \ + $(RM) current && ln -s $(VERSION) current; \ +- $(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc; \ +- $(RM) pkgdata.inc && ln -s current/pkgdata.inc pkgdata.inc ++# $(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc; \ ++# $(RM) pkgdata.inc && ln -s current/pkgdata.inc pkgdata.inc + + ifeq ($(DOXYGEN),) + install-doc: