18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project**********************************************************************
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   Copyright (C) 2002-2004, International Business Machines
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   Corporation and others.  All Rights Reserved.
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project**********************************************************************
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   file name:  uconfig.h
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   encoding:   US-ASCII
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   tab size:   8 (not used)
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   indentation:4
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   created on: 2002sep19
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   created by: Markus W. Scherer
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef __UCONFIG_H__
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define __UCONFIG_H__
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*!
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \file
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \brief Switches for excluding parts of ICU library code modules.
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Allows to build partial, smaller libraries for special purposes.
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * By default, all modules are built.
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The switches are fairly coarse, controlling large modules.
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Basic services cannot be turned off.
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_ONLY_COLLATION
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off modules that are not needed for collation.
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * It does not turn off legacy conversion because that is necessary
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for ICU to work on EBCDIC platforms (for the default converter).
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * If you want "only collation" and do not build for EBCDIC,
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * then you can #define UCONFIG_NO_LEGACY_CONVERSION 1 as well.
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_ONLY_COLLATION
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_ONLY_COLLATION 0
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if UCONFIG_ONLY_COLLATION
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* common library */
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_BREAK_ITERATION 1
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_IDNA 1
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* i18n library */
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   if UCONFIG_NO_COLLATION
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#       error Contradictory collation switches in uconfig.h.
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   endif
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_FORMATTING 1
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_TRANSLITERATION 1
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_REGULAR_EXPRESSIONS 1
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* common library switches -------------------------------------------------- */
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_CONVERSION
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * ICU will not completely build with this switch turned on.
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off all converters.
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @draft ICU 3.2
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_CONVERSION
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_CONVERSION 0
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if UCONFIG_NO_CONVERSION
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_LEGACY_CONVERSION 1
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_LEGACY_CONVERSION
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off all converters except for
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - Unicode charsets (UTF-7/8/16/32, CESU-8, SCSU, BOCU-1)
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - US-ASCII
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - ISO-8859-1
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Turning off legacy conversion is not possible on EBCDIC platforms
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * because they need ibm-37 or ibm-1047 default converters.
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_LEGACY_CONVERSION
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_LEGACY_CONVERSION 0
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_NORMALIZATION
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off normalization.
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * It implies turning off several other services as well, for example
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * collation and IDNA.
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_NORMALIZATION
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_NORMALIZATION 0
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#elif UCONFIG_NO_NORMALIZATION
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* common library */
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_IDNA 1
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* i18n library */
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   if UCONFIG_ONLY_COLLATION
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#       error Contradictory collation switches in uconfig.h.
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   endif
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_COLLATION 1
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_TRANSLITERATION 1
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_BREAK_ITERATION
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off break iteration.
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_BREAK_ITERATION
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_BREAK_ITERATION 0
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_IDNA
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off IDNA.
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_IDNA
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_IDNA 0
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* i18n library switches ---------------------------------------------------- */
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_COLLATION
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off collation and collation-based string search.
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_COLLATION
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_COLLATION 0
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_FORMATTING
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off formatting and calendar/timezone services.
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_FORMATTING
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_FORMATTING 0
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_TRANSLITERATION
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off transliteration.
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_TRANSLITERATION
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_TRANSLITERATION 0
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_REGULAR_EXPRESSIONS
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off regular expressions.
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_REGULAR_EXPRESSIONS
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_REGULAR_EXPRESSIONS 0
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \def UCONFIG_NO_SERVICE
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This switch turns off service registration.
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @draft ICU 3.2
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCONFIG_NO_SERVICE
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#   define UCONFIG_NO_SERVICE 0
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
187