Home | History | Annotate | Download | only in jni
      1 # Copyright (C) 2011 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 LOCAL_PATH := $(call my-dir)
     16 
     17 ############ some local flags
     18 # If you change any of those flags, you need to rebuild both libjni_latinime_common_static
     19 # and the shared library that uses libjni_latinime_common_static.
     20 FLAG_DBG ?= false
     21 FLAG_DO_PROFILE ?= false
     22 
     23 ######################################
     24 include $(CLEAR_VARS)
     25 
     26 LATIN_IME_SRC_DIR := src
     27 
     28 LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
     29 
     30 LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wformat=2 -Wcast-qual -Wcast-align \
     31     -Wwrite-strings -Wfloat-equal -Wpointer-arith -Winit-self -Wredundant-decls -Wno-system-headers
     32 
     33 ifeq ($(TARGET_ARCH), arm)
     34 ifeq ($(TARGET_GCC_VERSION), 4.6)
     35 LOCAL_CFLAGS += -Winline
     36 endif # TARGET_GCC_VERSION
     37 endif # TARGET_ARCH
     38 
     39 # To suppress compiler warnings for unused variables/functions used for debug features etc.
     40 LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function
     41 
     42 LATIN_IME_JNI_SRC_FILES := \
     43     com_android_inputmethod_keyboard_ProximityInfo.cpp \
     44     com_android_inputmethod_latin_BinaryDictionary.cpp \
     45     com_android_inputmethod_latin_DicTraverseSession.cpp \
     46     com_android_inputmethod_latin_makedict_Ver3DictDecoder.cpp \
     47     jni_common.cpp
     48 
     49 LATIN_IME_CORE_SRC_FILES := \
     50     suggest/core/suggest.cpp \
     51     $(addprefix suggest/core/dicnode/, \
     52         dic_node.cpp \
     53         dic_node_utils.cpp \
     54         dic_nodes_cache.cpp) \
     55     $(addprefix suggest/core/dictionary/, \
     56         bigram_dictionary.cpp \
     57         bloom_filter.cpp \
     58         dictionary.cpp \
     59         digraph_utils.cpp \
     60         multi_bigram_map.cpp) \
     61     $(addprefix suggest/core/layout/, \
     62         additional_proximity_chars.cpp \
     63         proximity_info.cpp \
     64         proximity_info_params.cpp \
     65         proximity_info_state.cpp \
     66         proximity_info_state_utils.cpp) \
     67     suggest/core/policy/weighting.cpp \
     68     suggest/core/session/dic_traverse_session.cpp \
     69     $(addprefix suggest/policyimpl/dictionary/, \
     70         bigram/bigram_list_read_write_utils.cpp \
     71         bigram/dynamic_bigram_list_policy.cpp \
     72         header/header_policy.cpp \
     73         header/header_read_write_utils.cpp \
     74         shortcut/shortcut_list_reading_utils.cpp \
     75         dictionary_structure_with_buffer_policy_factory.cpp \
     76         dynamic_patricia_trie_gc_event_listeners.cpp \
     77         dynamic_patricia_trie_node_reader.cpp \
     78         dynamic_patricia_trie_policy.cpp \
     79         dynamic_patricia_trie_reading_helper.cpp \
     80         dynamic_patricia_trie_reading_utils.cpp \
     81         dynamic_patricia_trie_writing_helper.cpp \
     82         dynamic_patricia_trie_writing_utils.cpp \
     83         patricia_trie_policy.cpp \
     84         patricia_trie_reading_utils.cpp) \
     85     $(addprefix suggest/policyimpl/dictionary/utils/, \
     86         buffer_with_extendable_buffer.cpp \
     87         byte_array_utils.cpp \
     88         dict_file_writing_utils.cpp \
     89         forgetting_curve_utils.cpp \
     90         format_utils.cpp) \
     91     suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \
     92     $(addprefix suggest/policyimpl/typing/, \
     93         scoring_params.cpp \
     94         typing_scoring.cpp \
     95         typing_suggest_policy.cpp \
     96         typing_traversal.cpp \
     97         typing_weighting.cpp) \
     98     $(addprefix utils/, \
     99         autocorrection_threshold_utils.cpp \
    100         char_utils.cpp \
    101         log_utils.cpp)
    102 
    103 LOCAL_SRC_FILES := \
    104     $(LATIN_IME_JNI_SRC_FILES) \
    105     $(addprefix $(LATIN_IME_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES))
    106 
    107 ifeq ($(FLAG_DO_PROFILE), true)
    108     $(warning Making profiling version of native library)
    109     LOCAL_CFLAGS += -DFLAG_DO_PROFILE -funwind-tables -fno-inline
    110 else # FLAG_DO_PROFILE
    111 ifeq ($(FLAG_DBG), true)
    112     $(warning Making debug version of native library)
    113     LOCAL_CFLAGS += -DFLAG_DBG -funwind-tables -fno-inline
    114 ifeq ($(FLAG_FULL_DBG), true)
    115     $(warning Making full debug version of native library)
    116     LOCAL_CFLAGS += -DFLAG_FULL_DBG
    117 endif # FLAG_FULL_DBG
    118 endif # FLAG_DBG
    119 endif # FLAG_DO_PROFILE
    120 
    121 LOCAL_MODULE := libjni_latinime_common_static
    122 LOCAL_MODULE_TAGS := optional
    123 
    124 LOCAL_SDK_VERSION := 14
    125 LOCAL_NDK_STL_VARIANT := stlport_static
    126 
    127 include $(BUILD_STATIC_LIBRARY)
    128 ######################################
    129 include $(CLEAR_VARS)
    130 
    131 # All code in LOCAL_WHOLE_STATIC_LIBRARIES will be built into this shared library.
    132 LOCAL_WHOLE_STATIC_LIBRARIES := libjni_latinime_common_static
    133 
    134 ifeq ($(FLAG_DO_PROFILE), true)
    135     $(warning Making profiling version of native library)
    136     LOCAL_LDFLAGS += -llog
    137 else # FLAG_DO_PROFILE
    138 ifeq ($(FLAG_DBG), true)
    139     $(warning Making debug version of native library)
    140     LOCAL_LDFLAGS += -llog
    141 endif # FLAG_DBG
    142 endif # FLAG_DO_PROFILE
    143 
    144 LOCAL_MODULE := libjni_latinime
    145 LOCAL_MODULE_TAGS := optional
    146 
    147 LOCAL_SDK_VERSION := 14
    148 LOCAL_NDK_STL_VARIANT := stlport_static
    149 LOCAL_LDFLAGS += -ldl
    150 
    151 include $(BUILD_SHARED_LIBRARY)
    152 
    153 #################### Clean up the tmp vars
    154 LATIN_IME_CORE_SRC_FILES :=
    155 LATIN_IME_JNI_SRC_FILES :=
    156 LATIN_IME_SRC_DIR :=
    157