Home | History | Annotate | Download | only in depstest
      1 # Copyright (C) 2011-2013, International Business Machines
      2 # Corporation and others. All Rights Reserved.
      3 #
      4 # file name: dependencies.txt
      5 #
      6 # created on: 2011may26
      7 # created by: Markus W. Scherer
      8 
      9 # Standard library symbols used by ICU --------------------------------------- #
     10 
     11 system_symbols:
     12   deps
     13     # C
     14     PIC system_debug malloc_functions c_strings c_string_formatting
     15     floating_point trigonometry
     16     stdlib_qsort
     17     pthread system_locale
     18     stdio_input stdio_output file_io readlink_function dir_io mmap_functions dlfcn
     19     # C++
     20     cplusplus iostream
     21 
     22 group: PIC
     23     # Position-Independent Code (-fPIC) requires a Global Offset Table.
     24     _GLOBAL_OFFSET_TABLE_
     25 
     26 group: system_debug
     27     __assert_fail __stack_chk_fail
     28 
     29 group: malloc_functions
     30     free malloc realloc
     31 
     32 group: c_strings
     33     isspace isdigit
     34     __ctype_b_loc  # for <ctype.h>
     35     # We must not use tolower and toupper because they are system-locale-sensitive (Turkish i).
     36     strlen strchr strrchr strstr strcmp strncmp strcpy strncpy strcat strncat
     37     memcmp memcpy memmove memset
     38     # Additional symbols in an optimized build.
     39     __strcpy_chk __strncpy_chk __strcat_chk __strncat_chk
     40     __rawmemchr __memcpy_chk __memmove_chk __memset_chk
     41 
     42 group: c_string_formatting
     43     atoi atol strtod strtol strtoul
     44     sprintf
     45     # Additional symbols in an optimized build.
     46     __sprintf_chk
     47 
     48 group: floating_point
     49     abs fabs floor ceil modf fmod log pow sqrt
     50 
     51 group: trigonometry
     52     acos asin atan atan2 cos sin tan
     53     # Additional symbols in an optimized build.
     54     sincos
     55 
     56 group: stdlib_qsort
     57     qsort
     58 
     59 group: pthread
     60     pthread_mutex_init pthread_mutex_destroy pthread_mutex_lock pthread_mutex_unlock
     61     pthread_cond_wait pthread_cond_broadcast
     62 
     63 group: system_locale
     64     getenv
     65     nl_langinfo setlocale
     66     gettimeofday localtime_r tzname tzset __timezone
     67 
     68 group: stdio_input
     69     fopen fclose fgets fread fseek ftell rewind feof fileno
     70     # Additional symbols in an optimized build.
     71     __fgets_chk __fread_chk
     72 
     73 group: stdio_output
     74     fflush fwrite
     75     stdout
     76 
     77 group: file_io
     78     open close stat
     79     # Additional symbols in an optimized build.
     80     __xstat
     81 
     82 group: readlink_function
     83     readlink  # putil.cpp uprv_tzname() calls this in a hack to get the time zone name
     84 
     85 group: dir_io
     86     opendir closedir readdir  # for a hack to get the time zone name
     87 
     88 group: mmap_functions  # for memory-mapped data loading
     89     mmap munmap
     90 
     91 group: dlfcn
     92     dlopen dlclose dlsym  # called by putil.o only for icuplug.o
     93 
     94 group: cplusplus
     95     __dynamic_cast
     96     # The compiler generates references to the global operator delete
     97     # even when no code actually uses it.
     98     # ICU must not _use_ the global operator delete.
     99     "operator delete(void*)"
    100     # ICU also must not use the global operator new.
    101     # "operator new[](unsigned long)"
    102 
    103     # _Unwind_Resume is related to exceptions:
    104     # "A call to this routine is inserted as the end of a landing pad that performs cleanup,
    105     # but does not resume normal execution. It causes unwinding to proceed further."
    106     # (Linux Standard Base Specification 1.3)
    107     # Even though ICU does not actually use (nor handle) exceptions.
    108     _Unwind_Resume
    109     # std::terminate() looks similar to _Unwind_Resume:
    110     # "Calls the current terminate handler."
    111     std::terminate()
    112 
    113 group: iostream
    114     "std::basic_ios<char, std::char_traits<char> >::clear(std::_Ios_Iostate)"
    115     "std::basic_ios<char, std::char_traits<char> >::eof() const"
    116     "std::basic_ios<char, std::char_traits<char> >::fail() const"
    117     "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)"
    118     std::istream::get()
    119     std::istream::putback(char)
    120     # Additional symbols in an optimized build.
    121     "std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)"
    122 
    123 # ICU common library --------------------------------------------------------- #
    124 
    125 library: stubdata
    126     stubdata.o  # Exports icudt48_dat.
    127 
    128 library: common
    129     # All files in the common library are listed in its dependencies.
    130   deps
    131     # Libraries and groups that the common library depends on.
    132     date_interval
    133     breakiterator
    134     uts46 filterednormalizer2 normalizer2 canonical_iterator
    135     normlzr unormcmp unorm_it unorm
    136     idna2003 stringprep
    137     stringenumeration
    138     unistr_core unistr_props unistr_case unistr_case_locale unistr_titlecase_brkiter unistr_cnv
    139     uniset_core uniset_props uniset_closure usetiter uset uset_props
    140     uiter
    141     ucasemap ucasemap_titlecase_brkiter script_runs
    142     uprops ubidi_props ucase uscript uscript_props
    143     ubidi ushape
    144     listformatter
    145     resourcebundle service_registration resbund_cnv ures_cnv icudataver ucat
    146     loclikely
    147     conversion converter_selector ucnv_set ucnvdisp
    148     messagepattern
    149     icu_utility icu_utility_with_props
    150     ustr_wcs
    151     ucharstriebuilder ucharstrieiterator
    152     bytestriebuilder bytestrieiterator
    153     hashtable uhash uvector uvector32 uvector64 ulist
    154     propsvec utrie2 utrie2_builder
    155     sort
    156     uinit utypes errorcode
    157     icuplug
    158     platform
    159 
    160 group: date_interval  # class DateInterval
    161     dtintrv.o
    162   deps
    163     platform
    164 
    165 group: breakiterator
    166     # We could try to split off a breakiterator_builder group,
    167     # but we still need uniset_props for code like in the ThaiBreakEngine constructor
    168     # which does
    169     #   fThaiWordSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Thai:]&[:LineBreak=SA:]]"), status)
    170     brkiter.o brkeng.o ubrk.o
    171     rbbi.o rbbinode.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o
    172     rbbidata.o rbbirb.o
    173     dictionarydata.o dictbe.o
    174   deps
    175     resourcebundle service_registration
    176     schriter utext uniset_core uniset_props
    177     uhash ustack utrie
    178     ucharstrie bytestrie
    179     normlzr  # for dictbe.o, should switch to Normalizer2
    180 
    181 group: unormcmp  # unorm_compare()
    182     unormcmp.o
    183   deps
    184     filterednormalizer2
    185     uniset_props  # for uniset_getUnicode32Instance()
    186     ucase
    187 
    188 group: unorm_it  # UNormIterator
    189     unorm_it.o
    190   deps
    191     unorm uiter
    192 
    193 group: unorm  # old normalization C API
    194     unorm.o
    195   deps
    196     filterednormalizer2
    197     uniset_props  # for uniset_getUnicode32Instance()
    198     uiter
    199 
    200 group: normlzr  # old Normalizer C++ class
    201     normlzr.o
    202   deps
    203     filterednormalizer2
    204     uniset_props  # for uniset_getUnicode32Instance()
    205     schriter
    206 
    207 group: uts46
    208     uts46.o
    209   deps
    210     normalizer2 punycode
    211     uchar  # for u_charType() (via U_GET_GC_MASK(c))
    212     ubidi_props  # for u_charDirection() & ubidi_getJoiningType()
    213     unistr_core
    214     stringpiece bytestream
    215 
    216 group: filterednormalizer2
    217     filterednormalizer2.o
    218   deps
    219     normalizer2
    220 
    221 group: idna2003
    222     uidna.o
    223   deps
    224     stringprep punycode
    225 
    226 group: stringprep
    227     usprep.o
    228   deps
    229     unorm  # could change to use filterednormalizer2 directly for Unicode 3.2 normalization
    230     normalizer2
    231     ubidi_props
    232 
    233 group: canonical_iterator
    234     caniter.o
    235   deps
    236     normalizer2 usetiter
    237 
    238 group: normalizer2
    239     normalizer2.o
    240     normalizer2impl.o
    241   deps
    242     uniset_core
    243     unistr_core
    244     utrie2_builder  # for building CanonIterData & FCD
    245     uvector  # for building CanonIterData
    246     uhash  # for the instance cache
    247     udata
    248 
    249 group: punycode
    250     punycode.o
    251   deps
    252     platform
    253 
    254 group: uset_props
    255     uset_props.o
    256   deps
    257     uniset_closure uniset_props uniset_core
    258 
    259 group: uset
    260     uset.o
    261   deps
    262     uniset_core
    263 
    264 group: uniset_closure
    265     uniset_closure.o
    266   deps
    267     uniset_core unistr_case_locale unistr_titlecase_brkiter
    268 
    269 group: uniset_props
    270     uniset_props.o ruleiter.o
    271   deps
    272     uniset_core uprops unistr_case
    273     parsepos
    274     resourcebundle
    275     propname unames
    276 
    277 group: parsepos
    278     parsepos.o
    279   deps
    280     platform
    281 
    282 group: usetiter  # UnicodeSetIterator
    283     usetiter.o
    284   deps
    285     uniset_core
    286 
    287 group: uniset_core
    288     unifilt.o unifunct.o
    289     uniset.o bmpset.o unisetspan.o
    290   deps
    291     patternprops
    292     unistr_core icu_utility
    293     uvector
    294 
    295 group: icu_utility_with_props
    296     util_props.o
    297   deps
    298     icu_utility uchar ucase
    299 
    300 group: icu_utility
    301     util.o
    302   deps
    303     unistr_core patternprops
    304 
    305 group: utext
    306     utext.o
    307   deps
    308     unistr_core ucase
    309 
    310 group: stringenumeration
    311     ustrenum.o uenum.o
    312   deps
    313     unistr_core
    314 
    315 group: schriter
    316     schriter.o
    317     # The UCharCharacterIterator implements virtual void getText(UnicodeString& result)
    318     # so it depends on UnicodeString, therefore it makes little sense to split
    319     # schriter and uchriter into separate groups.
    320     uchriter.o
    321   deps
    322     chariter unistr_core
    323 
    324 group: chariter
    325     chariter.o
    326   deps
    327     platform
    328 
    329 group: uiter
    330     uiter.o
    331   deps
    332     platform
    333 
    334 group: unistr_cnv
    335     unistr_cnv.o
    336   deps
    337     conversion unistr_core
    338 
    339 group: unistr_core
    340     unistr.o
    341   deps
    342     ustrtrns appendable
    343 
    344 group: uscript
    345     uscript.o  # uscript_getCode() accepts a locale ID and loads its script code data
    346   deps
    347     propname resourcebundle
    348 
    349 group: uscript_props  # script metadata properties
    350     uscript_props.o
    351   deps
    352     unistr_core platform
    353 
    354 group: uprops
    355     uprops.o
    356   deps
    357     normalizer2
    358     uchar
    359     ubidi_props
    360     unistr_case ustring_case  # only for case folding
    361     ucase
    362 
    363 group: propname
    364     propname.o
    365   deps
    366     bytestrie
    367 
    368 group: unames
    369     unames.o
    370   deps
    371     uchar udata
    372 
    373 group: script_runs
    374     usc_impl.o
    375   deps
    376     uchar
    377 
    378 group: uchar
    379     uchar.o
    380   deps
    381     utrie2
    382 
    383 group: messagepattern  # for MessageFormat and tools
    384     messagepattern.o
    385   deps
    386     patternprops unistr_core
    387 
    388 group: patternprops
    389     patternprops.o
    390   deps
    391     PIC
    392 
    393 group: ushape
    394     ushape.o
    395   deps
    396     ubidi_props
    397 
    398 group: ubidi
    399     ubidi.o ubidiln.o ubidiwrt.o
    400   deps
    401     ubidi_props
    402     uchar  # for doWriteReverse() which uses IS_COMBINING(u_charType(c))
    403 
    404 group: ubidi_props
    405     ubidi_props.o
    406   deps
    407     utrie2
    408 
    409 group: unistr_props
    410     unistr_props.o
    411   deps
    412     unistr_core uchar
    413 
    414 group: unistr_case_locale
    415     unistr_case_locale.o
    416   deps
    417     unistr_case ustring_case_locale
    418 
    419 group: unistr_case
    420     unistr_case.o
    421   deps
    422     unistr_core
    423     ustring_case
    424 
    425 group: unistr_titlecase_brkiter
    426     unistr_titlecase_brkiter.o
    427   deps
    428     ustr_titlecase_brkiter
    429 
    430 group: ustr_titlecase_brkiter
    431     ustr_titlecase_brkiter.o
    432   deps
    433     breakiterator
    434     ustring_case_locale ucase
    435 
    436 group: ucasemap_titlecase_brkiter
    437     ucasemap_titlecase_brkiter.o
    438   deps
    439     ucasemap breakiterator utext
    440 
    441 group: ucasemap
    442     ucasemap.o
    443   deps
    444     ustring_case
    445     resourcebundle  # uloc_getName() etc.
    446 
    447 group: ustring_case_locale
    448     ustrcase_locale.o
    449   deps
    450     ustring_case
    451     resourcebundle  # for uloc_getDefault()
    452 
    453 group: ustring_case
    454     ustrcase.o
    455   deps
    456     ucase
    457 
    458 group: ucase
    459     ucase.o
    460   deps
    461     unistr_core utrie2
    462 
    463 group: uinit
    464     uinit.o
    465   deps
    466     ucnv_io icuplug
    467 
    468 group: converter_selector
    469     ucnvsel.o
    470   deps
    471     conversion propsvec utrie2_builder uset ucnv_set
    472 
    473 group: ucnvdisp  # ucnv_getDisplayName()
    474     ucnvdisp.o
    475   deps
    476     conversion resourcebundle
    477 
    478 group: ucnv_set  # ucnv_getUnicodeSet
    479     ucnv_set.o
    480   deps
    481     uset
    482 
    483 group: conversion
    484     ustr_cnv.o
    485     ucnv.o ucnv_cnv.o ucnv_bld.o ucnv_cb.o ucnv_err.o
    486     ucnv_ct.o
    487     ucnvmbcs.o ucnv_ext.o
    488     ucnvhz.o ucnvisci.o ucnv_lmb.o ucnv2022.o
    489     ucnvlat1.o ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o
    490     ucnvbocu.o ucnvscsu.o
    491   deps
    492     ucnv_io
    493 
    494 group: ucnv_io
    495     ucnv_io.o
    496   deps
    497     sort stringenumeration udata
    498 
    499 group: service_registration
    500     serv.o servnotf.o servlkf.o servlk.o servls.o servrbf.o servslkf.o
    501     locutil.o
    502   deps
    503     locale_display_names resourcebundle
    504     hashtable uvector
    505 
    506 group: listformatter
    507     listformatter.o
    508   deps
    509     resourcebundle
    510 
    511 group: ucat  # message-catalog-like API
    512     ucat.o
    513   deps
    514     resourcebundle
    515 
    516 group: locale_display_names
    517     locdispnames.o
    518   deps
    519     locresdata
    520 
    521 group: icudataver  # u_getDataVersion()
    522     icudataver.o
    523   deps
    524     resourcebundle
    525 
    526 group: loclikely
    527     loclikely.o
    528   deps
    529     resourcebundle
    530 
    531 group: locresdata
    532     # This was intended to collect locale functions that load resource bundle data.
    533     # See the resourcebundle group about what else loads data.
    534     locresdata.o
    535   deps
    536     resourcebundle
    537 
    538 group: resbund_cnv  # paths are Unicode strings
    539     resbund_cnv.o
    540   deps
    541     conversion resourcebundle ures_cnv
    542 
    543 group: ures_cnv  # ures_openU, path is a Unicode string
    544     ures_cnv.o
    545   deps
    546     conversion resourcebundle
    547 
    548 group: resourcebundle
    549     resbund.o uresbund.o uresdata.o
    550     locavailable.o
    551     # uloc_tag.c converts between old ICU/LDML/CLDR locale IDs and newer BCP 47 IDs.
    552     # It uses data from resource bundles for some of the mappings.
    553     # We might want to generate .c files for that data, to #include rather than load,
    554     # to minimize dependencies from this code.
    555     # Then we could separate this higher-level locale ID code from the resource bundle code.
    556     uloc.o uloc_tag.o
    557     # Even basic locid.cpp via Locale constructors and Locale::getDefault()
    558     # depend on canonicalization and data loading.
    559     # We can probably only disentangle basic locale ID handling from resource bundle code
    560     # by hardcoding all of the locale ID data.
    561     locid.o locmap.o wintz.o
    562     # Do we need class LocaleBased? http://bugs.icu-project.org/trac/ticket/8608
    563     locbased.o
    564   deps
    565     udata ucol_swp
    566     sort stringenumeration uhash
    567 
    568 group: udata
    569     udata.o ucmndata.o udatamem.o
    570     umapfile.o
    571   deps
    572     uhash charstr stringpiece platform stubdata
    573     file_io mmap_functions
    574 
    575 group: ucharstriebuilder
    576     ucharstriebuilder.o
    577   deps
    578     ucharstrie stringtriebuilder sort
    579     unistr_core
    580 
    581 group: ucharstrieiterator
    582     ucharstrieiterator.o
    583   deps
    584     ucharstrie unistr_core uvector32
    585 
    586 group: ucharstrie
    587     ucharstrie.o
    588   deps
    589     platform
    590 
    591 group: bytestriebuilder
    592     bytestriebuilder.o
    593   deps
    594     bytestrie stringtriebuilder sort
    595     charstr stringpiece
    596 
    597 group: bytestrieiterator
    598     bytestrieiterator.o
    599   deps
    600     bytestrie charstr uvector32
    601 
    602 group: bytestrie
    603     bytestrie.o
    604   deps
    605     platform
    606 
    607 group: stringtriebuilder
    608     stringtriebuilder.o
    609   deps
    610     uhash
    611 
    612 group: propsvec
    613     propsvec.o
    614   deps
    615     sort utrie2_builder
    616 
    617 group: utrie2_builder
    618     utrie2_builder.o
    619   deps
    620     platform
    621     utrie2
    622     utrie  # for utrie2_fromUTrie()
    623     ucol_swp  # for utrie_swap()
    624 
    625 group: utrie2
    626     utrie2.o
    627   deps
    628     platform
    629 
    630 group: utrie  # Callers should use utrie2 instead.
    631     utrie.o
    632   deps
    633     platform
    634 
    635 group: hashtable  # Maps UnicodeString to value.
    636     uhash_us.o
    637   deps
    638     unistr_core
    639     uhash
    640 
    641 group: uhash
    642     uhash.o
    643   deps
    644     platform
    645 
    646 group: ustack
    647     ustack.o
    648   deps
    649     uvector
    650 
    651 group: uvector
    652     uvector.o
    653   deps
    654     platform
    655     sort  # for UVector::sort()
    656 
    657 group: uvector32
    658     uvectr32.o
    659   deps
    660     platform
    661 
    662 group: uvector64
    663     uvectr64.o
    664   deps
    665     platform
    666 
    667 group: ulist
    668     ulist.o
    669   deps
    670     platform
    671 
    672 group: sort
    673     uarrsort.o
    674   deps
    675     platform
    676 
    677 group: ustr_wcs
    678     ustr_wcs.o
    679   deps
    680     ustrtrns  # on platforms where wchar_t is UTF-32
    681     # platform -- on other platforms
    682 
    683 group: ustrtrns
    684     ustrtrns.o
    685   deps
    686     platform
    687 
    688 group: charstr
    689     charstr.o
    690   deps
    691     unistr_core  # for CharString::appendInvariantChars(const UnicodeString &s, UErrorCode &errorCode)
    692     platform
    693 
    694 group: stringpiece
    695     stringpiece.o
    696   deps
    697     PIC c_strings
    698 
    699 group: bytestream
    700     bytestream.o
    701   deps
    702     platform
    703 
    704 group: appendable
    705     appendable.o
    706   deps
    707     platform
    708 
    709 group: icuplug
    710     icuplug.o
    711   deps
    712     platform
    713 
    714 group: ucol_swp
    715     ucol_swp.o
    716   deps
    717     platform
    718 
    719 group: errorcode  # ErrorCode base class
    720     errorcode.o
    721   deps
    722     utypes
    723     platform
    724 
    725 group: utypes  # u_errorName()
    726     utypes.o
    727 
    728 group: platform
    729     # Files in the "platform" group.
    730     cmemory.o uobject.o
    731     cstring.o cwchar.o uinvchar.o
    732     ustring.o  # Other platform files really just need u_strlen
    733     ustrfmt.o  # uprv_itou
    734     utf_impl.o
    735     putil.o
    736     ucln_cmn.o  # for putil.o which calls ucln_common_registerCleanup
    737     udataswp.o  # for uinvchar.o; TODO: move uinvchar.o swapper functions to udataswp.o?
    738     umath.o
    739     umutex.o
    740     utrace.o
    741   deps
    742     # The "platform" group has no ICU dependencies.
    743     PIC system_debug malloc_functions c_strings c_string_formatting
    744     floating_point pthread system_locale
    745     stdio_input readlink_function dir_io
    746     dlfcn  # Move related code into icuplug.c?
    747     cplusplus
    748 
    749 # ICU i18n library ----------------------------------------------------------- #
    750 
    751 library: i18n
    752   deps
    753     region localedata genderinfo charset_detector spoof_detection
    754     alphabetic_index collation formatting formattable_cnv regex regex_cnv translit
    755     universal_time_scale
    756     uclean_i18n
    757 
    758 group: region
    759     region.o uregion.o
    760   deps
    761     formatting  # Temporary, TODO: Ticket #9982 class Region should use low-level ASCII-integer functions, and probably be moved to the common library.
    762     resourcebundle
    763     uvector uclean_i18n
    764 
    765 group: localedata
    766     ulocdata.o
    767   deps
    768     uniset_props resourcebundle
    769     uset_props  # TODO: change to using C++ UnicodeSet, remove this dependency
    770     loclikely
    771 
    772 group: genderinfo
    773     gender.o
    774   deps
    775     resourcebundle
    776     uclean_i18n
    777 
    778 group: charset_detector
    779     csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o ucsdet.o
    780   deps
    781     conversion
    782     uclean_i18n
    783 
    784 group: spoof_detection
    785     uspoof.o uspoof_build.o uspoof_conf.o uspoof_impl.o uspoof_wsconf.o
    786     identifier_info.o scriptset.o
    787   deps
    788     uniset_props regex unorm uscript
    789 
    790 group: alphabetic_index
    791     alphaindex.o
    792   deps
    793     collation localedata
    794     uclean_i18n
    795 
    796 group: collation
    797     bocsu.o coleitr.o coll.o sortkey.o tblcoll.o ucol.o
    798     ucol_bld.o ucol_cnt.o ucol_elm.o ucol_res.o ucol_sit.o ucol_tok.o ucol_wgt.o ucoleitr.o
    799     search.o stsearch.o usearch.o
    800   deps
    801     common  # TODO: Could be narrower.
    802     uclean_i18n
    803 
    804 group: formatting
    805     # TODO: Try to subdivide this ball of wax.
    806     # locale_display_names2
    807     locdspnm.o
    808     # currency
    809     ucurr.o
    810     # currencyformat
    811     curramt.o currfmt.o currpinf.o currunit.o
    812     # decimalformat
    813     dcfmtsym.o decfmtst.o decimfmt.o compactdecimalformat.o
    814     numfmt.o numsys.o unumsys.o unum.o winnmfmt.o
    815     # rbnf
    816     nfrs.o nfrule.o nfsubs.o rbnf.o
    817     # measureformat
    818     measfmt.o
    819     # dateformat
    820     astro.o buddhcal.o calendar.o cecal.o chnsecal.o coptccal.o dangical.o ethpccal.o
    821     gregocal.o gregoimp.o hebrwcal.o indiancal.o islamcal.o japancal.o persncal.o taiwncal.o
    822     ucal.o
    823     basictz.o olsontz.o rbtz.o simpletz.o timezone.o tzrule.o tztrans.o
    824     vtzone.o vzone.o wintzimpl.o zonemeta.o zrule.o ztrans.o
    825     tzfmt.o tzgnames.o tznames.o tznames_impl.o
    826     datefmt.o dtfmtsym.o dtitvfmt.o dtitvinf.o dtptngen.o dtrule.o reldtfmt.o
    827     smpdtfmt.o smpdtfst.o udateintervalformat.o udatpg.o windtfmt.o
    828     udat.o
    829     tmunit.o tmutamt.o tmutfmt.o
    830     # messageformat
    831     choicfmt.o msgfmt.o plurfmt.o selfmt.o umsg.o
    832   deps
    833     digitlist formattable format
    834     pluralrules
    835     collation  # for rbnf
    836     common
    837     floating_point  # sqrt() for astro.o
    838     trigonometry  # for astro.o
    839     stdlib_qsort  # for ucurr.o (which does not use ICU's uarrsort.o)
    840     uclean_i18n
    841 
    842 group: digitlist
    843     digitlst.o decContext.o decNumber.o
    844   deps
    845     charstr stringpiece unistr_core
    846 
    847 group: formattable
    848     fmtable.o
    849     measure.o
    850   deps
    851     unistr_core digitlist stringpiece charstr
    852 
    853 group: formattable_cnv
    854     fmtable_cnv.o
    855   deps
    856     formattable unistr_cnv conversion
    857 
    858 group: format
    859     format.o fphdlimp.o fpositer.o
    860   deps
    861     resourcebundle parsepos unistr_core uvector32
    862 
    863 group: pluralrules
    864     plurrule.o upluralrules.o
    865   deps
    866     digitlist  # plurals depend on decimals
    867     patternprops resourcebundle uvector uvector32
    868     unistr_case_locale
    869 
    870 group: regex_cnv
    871     uregexc.o
    872   deps
    873     regex unistr_cnv
    874 
    875 group: regex
    876     regexcmp.o regexst.o regextxt.o regeximp.o rematch.o repattrn.o uregex.o
    877   deps
    878     uniset_closure utext uvector32 uvector64 ustack
    879     breakiterator
    880     unistr_core
    881     uinit  # TODO: Really needed?
    882     uclean_i18n
    883 
    884 group: translit
    885     anytrans.o brktrans.o casetrn.o cpdtrans.o name2uni.o uni2name.o nortrans.o remtrans.o titletrn.o tolowtrn.o toupptrn.o
    886     esctrn.o unesctrn.o nultrans.o
    887     funcrepl.o quant.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o strmatch.o strrepl.o translit.o transreg.o tridpars.o utrans.o
    888   deps
    889     common
    890     formatting  # for Transliterator::getDisplayName()
    891     uclean_i18n
    892 
    893 group: universal_time_scale
    894     utmscale.o
    895 
    896 group: uclean_i18n
    897     ucln_in.o
    898   deps
    899     platform
    900 
    901 # ICU io library ------------------------------------------------------------- #
    902 
    903 library: io
    904   deps
    905     ustdio ustream uclean_io
    906 
    907 group: ustdio
    908     locbund.o sprintf.o sscanf.o ufile.o ufmt_cmn.o uprintf.o uprntf_p.o uscanf.o uscanf_p.o ustdio.o
    909   deps
    910     formatting conversion translit
    911     uclean_io
    912     stdio_output
    913 
    914 group: ustream
    915     ustream.o
    916   deps
    917     unistr_cnv
    918     uchar  # for u_isWhitespace()
    919     iostream
    920 
    921 group: uclean_io
    922     ucln_io.o
    923   deps
    924     platform
    925