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