1 # Copyright (C) 2008 The Android Open Source Project 2 # 3 # Licensed under the Apache License, Version 2.0 (the "License"); 4 # you may not use this file except in compliance with the License. 5 # You may obtain a copy of the License at 6 # 7 # http://www.apache.org/licenses/LICENSE-2.0 8 # 9 # Unless required by applicable law or agreed to in writing, software 10 # distributed under the License is distributed on an "AS IS" BASIS, 11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 # See the License for the specific language governing permissions and 13 # limitations under the License. 14 15 16 LOCAL_PATH:= $(call my-dir) 17 18 # 19 # Common definitions. 20 # 21 22 include $(CLEAR_VARS) 23 24 src_files := \ 25 ucln_in.c decContext.c \ 26 ulocdata.c utmscale.c decNumber.c 27 28 src_files += \ 29 indiancal.cpp dtptngen.cpp dtrule.cpp \ 30 persncal.cpp rbtz.cpp reldtfmt.cpp \ 31 taiwncal.cpp tzrule.cpp tztrans.cpp \ 32 udatpg.cpp vtzone.cpp \ 33 anytrans.cpp astro.cpp buddhcal.cpp \ 34 basictz.cpp calendar.cpp casetrn.cpp \ 35 choicfmt.cpp coleitr.cpp coll.cpp \ 36 collation.cpp \ 37 collationbasedatabuilder.cpp collationbuilder.cpp \ 38 collationcompare.cpp collationdata.cpp \ 39 collationdatabuilder.cpp collationdatareader.cpp \ 40 collationdatawriter.cpp collationfastlatin.cpp \ 41 collationfastlatinbuilder.cpp collationfcd.cpp \ 42 collationiterator.cpp collationkeys.cpp collationroot.cpp \ 43 collationrootelements.cpp collationruleparser.cpp \ 44 collationsets.cpp collationsettings.cpp \ 45 collationtailoring.cpp collationweights.cpp \ 46 compactdecimalformat.cpp \ 47 cpdtrans.cpp csdetect.cpp csmatch.cpp \ 48 csr2022.cpp csrecog.cpp csrmbcs.cpp \ 49 csrsbcs.cpp csrucode.cpp csrutf8.cpp \ 50 curramt.cpp currfmt.cpp currunit.cpp \ 51 dangical.cpp \ 52 datefmt.cpp dcfmtsym.cpp decimfmt.cpp \ 53 decimalformatpattern.cpp \ 54 digitlst.cpp dtfmtsym.cpp esctrn.cpp \ 55 filteredbrk.cpp \ 56 fmtable_cnv.cpp fmtable.cpp format.cpp \ 57 funcrepl.cpp gender.cpp \ 58 gregocal.cpp gregoimp.cpp \ 59 hebrwcal.cpp identifier_info.cpp \ 60 inputext.cpp islamcal.cpp \ 61 japancal.cpp measfmt.cpp measunit.cpp \ 62 measure.cpp \ 63 msgfmt.cpp name2uni.cpp nfrs.cpp \ 64 nfrule.cpp nfsubs.cpp nortrans.cpp \ 65 nultrans.cpp numfmt.cpp olsontz.cpp \ 66 quant.cpp quantityformatter.cpp \ 67 rbnf.cpp rbt.cpp \ 68 rbt_data.cpp rbt_pars.cpp rbt_rule.cpp \ 69 rbt_set.cpp regexcmp.cpp regexst.cpp \ 70 regeximp.cpp region.cpp \ 71 rematch.cpp remtrans.cpp repattrn.cpp \ 72 rulebasedcollator.cpp \ 73 scriptset.cpp \ 74 search.cpp simpletz.cpp smpdtfmt.cpp \ 75 sortkey.cpp strmatch.cpp strrepl.cpp \ 76 stsearch.cpp timezone.cpp \ 77 titletrn.cpp tolowtrn.cpp toupptrn.cpp \ 78 translit.cpp transreg.cpp tridpars.cpp \ 79 ucal.cpp \ 80 ucol.cpp ucoleitr.cpp \ 81 ucol_res.cpp ucol_sit.cpp \ 82 ucsdet.cpp ucurr.cpp udat.cpp \ 83 uitercollationiterator.cpp \ 84 umsg.cpp unesctrn.cpp uni2name.cpp \ 85 unum.cpp uregexc.cpp uregex.cpp \ 86 usearch.cpp \ 87 utf16collationiterator.cpp \ 88 utf8collationiterator.cpp \ 89 utrans.cpp windtfmt.cpp \ 90 winnmfmt.cpp zonemeta.cpp \ 91 numsys.cpp chnsecal.cpp \ 92 cecal.cpp coptccal.cpp ethpccal.cpp \ 93 brktrans.cpp wintzimpl.cpp plurrule.cpp \ 94 plurfmt.cpp dtitvfmt.cpp dtitvinf.cpp \ 95 tmunit.cpp tmutamt.cpp tmutfmt.cpp \ 96 currpinf.cpp uspoof.cpp uspoof_impl.cpp \ 97 uspoof_build.cpp \ 98 regextxt.cpp selfmt.cpp uspoof_conf.cpp \ 99 uspoof_wsconf.cpp ztrans.cpp zrule.cpp \ 100 vzone.cpp fphdlimp.cpp fpositer.cpp\ 101 locdspnm.cpp \ 102 alphaindex.cpp bocsu.cpp decfmtst.cpp \ 103 smpdtfst.cpp smpdtfst.h tzfmt.cpp \ 104 tzgnames.cpp tznames.cpp tznames_impl.cpp \ 105 udateintervalformat.cpp upluralrules.cpp 106 107 108 c_includes = \ 109 $(LOCAL_PATH) \ 110 $(LOCAL_PATH)/../common 111 112 local_cflags := -D_REENTRANT 113 local_cflags += -DU_I18N_IMPLEMENTATION 114 local_cflags += -O3 -fvisibility=hidden 115 116 117 # 118 # Build for the target (device). 119 # 120 121 include $(CLEAR_VARS) 122 LOCAL_SRC_FILES += $(src_files) 123 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes) 124 LOCAL_CFLAGS += $(local_cflags) -DPIC -fPIC 125 LOCAL_SHARED_LIBRARIES += libicuuc $(optional_android_logging_libraries) 126 LOCAL_MODULE_TAGS := optional 127 LOCAL_MODULE := libicui18n 128 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 129 # Use "-include" to not fail apps_only build. 130 -include abi/cpp/use_rtti.mk 131 -include external/stlport/libstlport.mk 132 include $(BUILD_SHARED_LIBRARY) 133 134 135 # 136 # Build for the host. 137 # 138 139 include $(CLEAR_VARS) 140 LOCAL_SRC_FILES += $(src_files) 141 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes) 142 LOCAL_CFLAGS += $(local_cflags) 143 LOCAL_SHARED_LIBRARIES += libicuuc-host $(optional_android_logging_libraries) 144 LOCAL_LDLIBS += -lm -lpthread 145 LOCAL_MODULE_TAGS := optional 146 LOCAL_MODULE := libicui18n-host 147 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk 148 LOCAL_MULTILIB := both 149 include $(BUILD_HOST_SHARED_LIBRARY) 150 151 # 152 # Build as a static library against the NDK 153 # 154 155 include $(CLEAR_VARS) 156 LOCAL_SDK_VERSION := 9 157 LOCAL_NDK_STL_VARIANT := stlport_static 158 LOCAL_SRC_FILES += $(src_files) 159 LOCAL_C_INCLUDES += $(c_includes) $(optional_android_logging_includes) 160 LOCAL_SHARED_LIBRARIES += $(optional_android_logging_libraries) 161 LOCAL_STATIC_LIBRARIES += libicuuc_static 162 LOCAL_EXPORT_C_INCLUDES += $(LOCAL_PATH) 163 LOCAL_CPP_FEATURES := rtti 164 LOCAL_CFLAGS += $(local_cflags) -DPIC -fPIC -frtti 165 # Using -Os over -O3 actually cuts down the final executable size by a few dozen kilobytes 166 LOCAL_CFLAGS += -Os 167 LOCAL_EXPORT_CFLAGS += -DU_STATIC_IMPLEMENTATION=1 168 LOCAL_MODULE_TAGS := optional 169 LOCAL_MODULE := libicui18n_static 170 include $(BUILD_STATIC_LIBRARY) 171