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