pkgsrc/textproc/icu/Makefile
ryoon 9c0d06ea3f Update to 56.1
Changelog:
Release Overview
The features for this release include support of CLDR 28 and Unicode 8.0.

For more details, including migration issues, see below.
Common Changes

    CLDR 28: For details of the many changes in CLDR, see CLDR 28.
    Unicode data updated to Unicode 8.0: 41 new emoji characters, 5,771 new ideographs for Chinese/Japanese/Korean, 6 new scripts, improved character properties data, etc.
    ICU data size reduced by about 7.2% (1.8MB) via sharing string values across resource bundles. [#11537]
    DateIntervalFormat now handles intervals with seconds, and sets FieldPosition more consistently. [#11706, #11726]
    DateFormat::createInstanceForSkeleton() caches DateFormat patterns rather than DateTimePatternGenerator instances, for better performance (for cache hits) and lower heap memory consumption. [#11780]
    StringSearch (based on collation) defaults to matches on normalization boundaries rather than grapheme cluster boundaries, which yields more matches on Indic text. [#11750]
    RuleBasedNumberFormat (spelled-out numbers) now handles rounding (Java only), infinity, NaN. [#11653, #11760, #8223]
    Most of the old Normalizer/unorm.h had been replaced by (and reimplemented via) Normalizer2, and is now deprecated. [#7303]
    COLON has been withdrawn as a date pattern character corresponding to the date field [UDAT_]TIME_SEPARATOR_FIELD; there is currently no pattern character corresponding to that field. [#11773]
    Support for locale key "cf" to specify currency format style, and interaction with NumberFormat values for UNumberFormatStyle: [#11787]
        For NumberFormat style UNUM_CURRENCY / CURRENCYSTYLE, the default is "standard" currency style (typically using minus sign for negative numbers), but the new locale key "cf" may be used with values "standard" or "account" to specify currency format style ("account" indicates accounting style, often using parentheses for negative numbers).
        For other NumberFormat styles, the locale key "cf" is ignored (they override the locale preference):
            UNUM_CURRENCY_ISO / ISOCURRENCYSTYLE
            UNUM_CURRENCY_PLURAL / PLURALCURRENCYSTYLE
            UNUM_CURRENCY_ACCOUNTING / ACCOUNTINGCURRENCYSTYLE
            UNUM_CASH_CURRENCY / CASHCURRENCYSTYLE
        A new NumberFormat style is availble to explicitly specify standard style, ignoring the  the locale key "cf"
            UNUM_CURRENCY_STANDARD / STANDARDCURRENCYSTYLE

ICU4C Specific Changes

    C API support for CompactDecimalFormat via UNumberFormatStyle additions: UNUM_DECIMAL_COMPACT_SHORT, UNUM_DECIMAL_COMPACT_LONG [#11693]
    Larger UnicodeString object stores more characters inside the object without heap allocation; the UnicodeString object size is now build-time-configurable. [#11551]
        On 64-bit machines, increase from object size 40 bytes with 15 internal UChars to a new default of 64 bytes with 27 UChars.
    Some C++ classes now have swap() and moveFrom() methods, and support C++11 move semantics on compilers that support them. [#10086]
        UnicodeString, LocalPointer, LocalArray
    DecimalFormat code refactored to fix bugs, improve maintainability, and improve performance. [#10458]
    New FilteredBreakIterator suppresses certain segment boundaries. For example, it can suppress the sentence boundary in the middle of "Mr. Smith". [#11248]
    The internal, shared cache has been changed from unbounded to bounded. [#11767]
    For [U]BreakIterator with type UBRK_SENTENCE, the locale key "ss" can now be used with value "standard" to specify that standard sentence break suppression data should be used, or with value "none" to indicate that no break suppression data should be used (the default). [#11770]
    Collator: first-time startup time improved 20% due to precalculated unsafe-backward table [#11886]
    A number of memory leaks and buffer overruns have been fixed based on static code analysis, mostly in data build tools
2015-10-09 23:15:34 +00:00

135 lines
3.8 KiB
Makefile

# $NetBSD: Makefile,v 1.101 2015/10/09 23:15:34 ryoon Exp $
DISTNAME= icu4c-56_1-src
PKGNAME= ${DISTNAME:S/4c//:S/-src//:S/_/./g}
CATEGORIES= textproc
MASTER_SITES= http://download.icu-project.org/files/icu4c/${PKGVERSION_NOREV}/
EXTRACT_SUFX= .tgz
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.icu-project.org/
COMMENT= Robust and full-featured Unicode services
LICENSE= mit
WRKSRC= ${WRKDIR}/icu/source
USE_LANGUAGES= c c++
USE_TOOLS+= gmake
TEST_TARGET= check
UNLIMIT_RESOURCES+= datasize
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-static
CONFIGURE_ENV+= U_MAKE=${TOOLS_GMAKE}
.include "../../mk/pthread.buildlink3.mk"
.if defined(PTHREAD_TYPE) && ${PTHREAD_TYPE} != "native"
CONFIGURE_ARGS+= --disable-threads
.endif
.include "../../mk/compiler.mk"
# from ICU_CHECK_MH_FRAG in source/acinclude.m4
.if ${OPSYS} == "SunOS"
. if !empty(CC_VERSION:Mgcc*)
PLIST_SUBST+= MH_NAME=mh-solaris-gcc
. else
PLIST_SUBST+= MH_NAME=mh-solaris
. endif
. if !empty(CC_VERSION:Mgcc-4.[6-9].*)
BUILDLINK_TRANSFORM+= rm:-D__STDC__=0
. endif
BUILDLINK_TRANSFORM+= rm:-ansi
.elif !empty(MACHINE_PLATFORM:MLinux-*-alpha)
. if !empty(CC_VERSION:Mgcc*)
PLIST_SUBST+= MH_NAME=mh-alpha-linux-gcc
. else
PLIST_SUBST+= MH_NAME=mh-alpha-linux-cc
. endif
.elif !empty(MACHINE_PLATFORM:MLinux-*-powerpc*)
. if !empty(CC_VERSION:Mgcc*)
PLIST_SUBST+= MH_NAME=mh-linux
. else
PLIST_SUBST+= MH_NAME=mh-linux-va
. endif
.elif ${OPSYS} == "Linux" || ${OPSYS} == "GNUkFreeBSD"
PLIST_SUBST+= MH_NAME=mh-linux
.elif ${OPSYS} == "Cygwin"
PLIST_SUBST+= MH_NAME=mh-cygwin
.elif !empty(OPSYS:M*BSD*) || ${OPSYS} == "DragonFly" || ${OPSYS} == "Bitrig"
PLIST_SUBST+= MH_NAME=mh-bsd-gcc
.elif ${OPSYS} == "AIX"
. if !empty(CC_VERSION:Mgcc*)
PLIST_SUBST+= MH_NAME=mh-aix-gcc
. else
PLIST_SUBST+= MH_NAME=mh-aix-va
. endif
.elif ${OPSYS} == "HPUX"
. if !empty(CC_VERSION:Mgcc*)
PLIST_SUBST+= MH_NAME=mh-hpux-gcc
. else
PLIST_SUBST+= MH_NAME=mh-hpux-acc
. endif
.elif ${OPSYS} == "Darwin"
PLIST_SUBST+= MH_NAME=mh-darwin
.elif ${OPSYS} == "Haiku"
PLIST_SUBST+= MH_NAME=mh-haiku
.elif ${OPSYS} == "IRIX"
PLIST_SUBST+= MH_NAME=mh-irix
.elif ${OPSYS} == "Cygwin"
PLIST_SUBST+= MH_NAME=mh-cygwin
.elif ${OS_VARIANT} == "SCOOSR5"
PLIST_SUBST+= MH_NAME=mh-scoosr5
.elif ${OPSYS} == "OSF1"
PLIST_SUBST+= MH_NAME=mh-alpha-osf
.elif ${OPSYS} == "QNX"
PLIST_SUBST+= MH_NAME=mh-qnx
.else
# For unknown systems, set the filename to mh-unknown so that the user
# gets a warning about missing files.
PLIST_SUBST+= MH_NAME=mh-unknown
.endif
.if ${OPSYS} == "Cygwin"
INSTALL_UNSTRIPPED= yes
.endif
PKGCONFIG_OVERRIDE+= config/icu-i18n.pc
PKGCONFIG_OVERRIDE+= config/icu-io.pc
PKGCONFIG_OVERRIDE+= config/icu-le.pc
PKGCONFIG_OVERRIDE+= config/icu-lx.pc
PKGCONFIG_OVERRIDE+= config/icu-uc.pc
PKGCONFIG_OVERRIDE+= config/icu.pc
PKGCONFIG_OVERRIDE_STAGE= post-build
# expect builtin gcc atomic functions for gcc>=4.1
# (source/common/putilimp.h)
.if !empty(CC_VERSION:Mgcc-*) && \
(empty(CC_VERSION:Mgcc-4.0*) && empty(CC_VERSION:Mgcc-[0-3].*))
. if ${MACHINE_ARCH} == "i386"
CFLAGS+= -march=i486
. endif
.endif
.if ${OPSYS} == "Cygwin"
SO_MAJOR= ${PKGVERSION_NOREV:R}
. for l in data i18n io le lx test tu uc
GENERATE_PLIST+= ${ECHO} bin/cygicu${l}${SO_MAJOR}.dll;
GENERATE_PLIST+= ${ECHO} lib/libicu${l}${SO_MAJOR}.dll.a;
. endfor
post-install:
mv ${DESTDIR}${PREFIX}/lib/cygicu*.dll ${DESTDIR}${PREFIX}/bin/
. for l in data i18n io le lx test tu uc
${LN} -s libicu${l}${SO_MAJOR}.dll.a ${DESTDIR}${PREFIX}/lib/libicu${l}.dll.a
. endfor
SUBST_CLASSES+= icu-config
SUBST_STAGE.icu-config= post-install
SUBST_FILES.icu-config= ${DESTDIR}${PREFIX}/bin/icu-config
SUBST_SED.icu-config+= -e '/^ICUUC_FILE=/ s/libdir/bindir/'
SUBST_SED.icu-config+= -e 's/l$${LIBICU}/l$${ICUPREFIX}/g'
SUBST_SED.icu-config+= -e '/l$${ICUPREFIX}/ s/$${ICULIBSUFFIX_VERSION}//g'
.endif
.include "../../mk/bsd.pkg.mk"