1LOCAL_PATH := $(call my-dir)/.. 2 3#LOCAL_ADDRESS_SANITIZER:=true 4 5include $(CLEAR_VARS) 6LOCAL_MODULE := Irrlicht 7LOCAL_SRC_FILES := deps/irrlicht/lib/Android/libIrrlicht.a 8include $(PREBUILT_STATIC_LIBRARY) 9 10ifeq ($(HAVE_LEVELDB), 1) 11 include $(CLEAR_VARS) 12 LOCAL_MODULE := LevelDB 13 LOCAL_SRC_FILES := deps/leveldb/libleveldb.a 14 include $(PREBUILT_STATIC_LIBRARY) 15endif 16 17include $(CLEAR_VARS) 18LOCAL_MODULE := curl 19LOCAL_SRC_FILES := deps/curl-7.39.0/lib/.libs/libcurl.a 20include $(PREBUILT_STATIC_LIBRARY) 21 22include $(CLEAR_VARS) 23LOCAL_MODULE := freetype 24LOCAL_SRC_FILES := deps/freetype2-android/Android/obj/local/$(TARGET_ARCH_ABI)/libfreetype2-static.a 25include $(PREBUILT_STATIC_LIBRARY) 26 27include $(CLEAR_VARS) 28LOCAL_MODULE := openal 29LOCAL_SRC_FILES := deps/openal-soft/libs/$(TARGET_LIBDIR)/libopenal.so 30include $(PREBUILT_SHARED_LIBRARY) 31 32include $(CLEAR_VARS) 33LOCAL_MODULE := ogg 34LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libogg.so 35include $(PREBUILT_SHARED_LIBRARY) 36 37include $(CLEAR_VARS) 38LOCAL_MODULE := vorbis 39LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libvorbis.so 40include $(PREBUILT_SHARED_LIBRARY) 41 42include $(CLEAR_VARS) 43LOCAL_MODULE := ssl 44LOCAL_SRC_FILES := deps/openssl-android/libs/$(TARGET_LIBDIR)/libssl.so 45include $(PREBUILT_SHARED_LIBRARY) 46 47include $(CLEAR_VARS) 48LOCAL_MODULE := crypto 49LOCAL_SRC_FILES := deps/openssl-android/libs/$(TARGET_LIBDIR)/libcrypto.so 50include $(PREBUILT_SHARED_LIBRARY) 51 52 53include $(CLEAR_VARS) 54LOCAL_MODULE := freeminer 55 56LOCAL_CPP_FEATURES += exceptions 57 58ifdef GPROF 59GPROF_DEF=-DGPROF 60endif 61 62LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ \ 63 -DHAVE_TOUCHSCREENGUI \ 64 -DUSE_CURL=1 \ 65 -DUSE_SOUND=1 \ 66 -DUSE_FREETYPE=1 \ 67 -DUSE_LEVELDB=$(HAVE_LEVELDB) \ 68 $(GPROF_DEF) \ 69 -std=c++0x \ 70 -pipe -fstrict-aliasing 71 72ifndef NDEBUG 73LOCAL_CFLAGS += -g -D_DEBUG -O0 -fno-omit-frame-pointer 74else 75LOCAL_CFLAGS += -fexpensive-optimizations -O3 76endif 77 78ifdef GPROF 79PROFILER_LIBS := android-ndk-profiler 80LOCAL_CFLAGS += -pg 81endif 82 83# LOCAL_CFLAGS += -fsanitize=address 84# LOCAL_LDFLAGS += -fsanitize=address 85 86ifeq ($(TARGET_ARCH_ABI),x86) 87LOCAL_CFLAGS += -fno-stack-protector 88endif 89 90LOCAL_C_INCLUDES := \ 91 jni/src jni/src/sqlite \ 92 jni/src/script \ 93 jni/src/lua/src \ 94 jni/src/json \ 95 jni/src/cguittfont \ 96 deps/irrlicht/include \ 97 deps/freetype2-android/include \ 98 deps/curl-7.39.0/include \ 99 deps/openal-soft/jni/OpenAL/include \ 100 deps/libvorbis-libogg-android/jni/include \ 101 deps/leveldb/include \ 102 103LOCAL_SRC_FILES := \ 104 jni/src/gsmapper.cpp \ 105 jni/src/guiTextInputMenu.cpp \ 106 jni/src/FMColoredString.cpp \ 107 jni/src/FMStaticText.cpp \ 108 jni/src/fmbitset.cpp \ 109 jni/src/intlGUIEditBox.cpp \ 110 jni/src/key_value_storage.cpp \ 111 jni/src/log_types.cpp \ 112 jni/src/profiler.cpp \ 113 jni/src/ban.cpp \ 114 jni/src/base64.cpp \ 115 jni/src/camera.cpp \ 116 jni/src/cavegen.cpp \ 117 jni/src/chat.cpp \ 118 jni/src/client.cpp \ 119 jni/src/clientiface.cpp \ 120 jni/src/clientmap.cpp \ 121 jni/src/clientmedia.cpp \ 122 jni/src/clientobject.cpp \ 123 jni/src/clouds.cpp \ 124 jni/src/collision.cpp \ 125 jni/src/connection.cpp \ 126 jni/src/content_abm.cpp \ 127 jni/src/content_cao.cpp \ 128 jni/src/content_cso.cpp \ 129 jni/src/content_mapblock.cpp \ 130 jni/src/content_mapnode.cpp \ 131 jni/src/content_nodemeta.cpp \ 132 jni/src/content_sao.cpp \ 133 jni/src/convert_json.cpp \ 134 jni/src/craftdef.cpp \ 135 jni/src/database-dummy.cpp \ 136 jni/src/database-sqlite3.cpp \ 137 jni/src/database.cpp \ 138 jni/src/debug.cpp \ 139 jni/src/defaultsettings.cpp \ 140 jni/src/drawscene.cpp \ 141 jni/src/dungeongen.cpp \ 142 jni/src/emerge.cpp \ 143 jni/src/environment.cpp \ 144 jni/src/filecache.cpp \ 145 jni/src/filesys.cpp \ 146 jni/src/game.cpp \ 147 jni/src/genericobject.cpp \ 148 jni/src/gettext.cpp \ 149 jni/src/guiChatConsole.cpp \ 150 jni/src/guiEngine.cpp \ 151 jni/src/guiFileSelectMenu.cpp \ 152 jni/src/guiFormSpecMenu.cpp \ 153 jni/src/guiKeyChangeMenu.cpp \ 154 jni/src/guiPasswordChange.cpp \ 155 jni/src/guiTable.cpp \ 156 jni/src/guiVolumeChange.cpp \ 157 jni/src/httpfetch.cpp \ 158 jni/src/hud.cpp \ 159 jni/src/inventory.cpp \ 160 jni/src/inventorymanager.cpp \ 161 jni/src/itemdef.cpp \ 162 jni/src/keycode.cpp \ 163 jni/src/light.cpp \ 164 jni/src/localplayer.cpp \ 165 jni/src/log.cpp \ 166 jni/src/main.cpp \ 167 jni/src/map.cpp \ 168 jni/src/mapblock.cpp \ 169 jni/src/mapblock_mesh.cpp \ 170 jni/src/mapgen.cpp \ 171 jni/src/mapgen_indev.cpp \ 172 jni/src/mapgen_math.cpp \ 173 jni/src/mapgen_singlenode.cpp \ 174 jni/src/mapgen_v5.cpp \ 175 jni/src/mapgen_v6.cpp \ 176 jni/src/mapgen_v7.cpp \ 177 jni/src/mapnode.cpp \ 178 jni/src/mapsector.cpp \ 179 jni/src/mesh.cpp \ 180 jni/src/mg_biome.cpp \ 181 jni/src/mg_decoration.cpp \ 182 jni/src/mg_ore.cpp \ 183 jni/src/mg_schematic.cpp \ 184 jni/src/mods.cpp \ 185 jni/src/nameidmapping.cpp \ 186 jni/src/nodedef.cpp \ 187 jni/src/nodemetadata.cpp \ 188 jni/src/nodetimer.cpp \ 189 jni/src/noise.cpp \ 190 jni/src/object_properties.cpp \ 191 jni/src/particles.cpp \ 192 jni/src/pathfinder.cpp \ 193 jni/src/player.cpp \ 194 jni/src/porting_android.cpp \ 195 jni/src/porting.cpp \ 196 jni/src/quicktune.cpp \ 197 jni/src/rollback.cpp \ 198 jni/src/rollback_interface.cpp \ 199 jni/src/serialization.cpp \ 200 jni/src/server.cpp \ 201 jni/src/serverlist.cpp \ 202 jni/src/serverobject.cpp \ 203 jni/src/sha1.cpp \ 204 jni/src/shader.cpp \ 205 jni/src/sky.cpp \ 206 jni/src/socket.cpp \ 207 jni/src/sound.cpp \ 208 jni/src/sound_openal.cpp \ 209 jni/src/staticobject.cpp \ 210 jni/src/subgame.cpp \ 211 jni/src/test.cpp \ 212 jni/src/tile.cpp \ 213 jni/src/tool.cpp \ 214 jni/src/treegen.cpp \ 215 jni/src/version.cpp \ 216 jni/src/voxel.cpp \ 217 jni/src/voxelalgorithms.cpp \ 218 jni/src/util/directiontables.cpp \ 219 jni/src/util/numeric.cpp \ 220 jni/src/util/pointedthing.cpp \ 221 jni/src/util/serialize.cpp \ 222 jni/src/util/string.cpp \ 223 jni/src/util/timetaker.cpp \ 224 jni/src/touchscreengui.cpp \ 225 jni/src/util/lock.cpp \ 226 jni/src/util/thread_pool.cpp \ 227 jni/src/circuit.cpp \ 228 jni/src/circuit_element_virtual.cpp \ 229 jni/src/circuit_element.cpp \ 230 jni/src/stat.cpp \ 231 jni/src/database-leveldb.cpp \ 232 jni/src/settings.cpp \ 233 jni/src/wieldmesh.cpp 234 235# lua api 236LOCAL_SRC_FILES += \ 237 jni/src/script/lua_api/l_key_value_storage.cpp \ 238 jni/src/script/common/c_content.cpp \ 239 jni/src/script/common/c_converter.cpp \ 240 jni/src/script/common/c_internal.cpp \ 241 jni/src/script/common/c_types.cpp \ 242 jni/src/script/cpp_api/s_base.cpp \ 243 jni/src/script/cpp_api/s_entity.cpp \ 244 jni/src/script/cpp_api/s_env.cpp \ 245 jni/src/script/cpp_api/s_inventory.cpp \ 246 jni/src/script/cpp_api/s_item.cpp \ 247 jni/src/script/cpp_api/s_mainmenu.cpp \ 248 jni/src/script/cpp_api/s_node.cpp \ 249 jni/src/script/cpp_api/s_nodemeta.cpp \ 250 jni/src/script/cpp_api/s_player.cpp \ 251 jni/src/script/cpp_api/s_server.cpp \ 252 jni/src/script/cpp_api/s_async.cpp \ 253 jni/src/script/lua_api/l_base.cpp \ 254 jni/src/script/lua_api/l_craft.cpp \ 255 jni/src/script/lua_api/l_env.cpp \ 256 jni/src/script/lua_api/l_inventory.cpp \ 257 jni/src/script/lua_api/l_item.cpp \ 258 jni/src/script/lua_api/l_mainmenu.cpp \ 259 jni/src/script/lua_api/l_mapgen.cpp \ 260 jni/src/script/lua_api/l_nodemeta.cpp \ 261 jni/src/script/lua_api/l_nodetimer.cpp \ 262 jni/src/script/lua_api/l_noise.cpp \ 263 jni/src/script/lua_api/l_object.cpp \ 264 jni/src/script/lua_api/l_particles.cpp \ 265 jni/src/script/lua_api/l_rollback.cpp \ 266 jni/src/script/lua_api/l_server.cpp \ 267 jni/src/script/lua_api/l_settings.cpp \ 268 jni/src/script/lua_api/l_util.cpp \ 269 jni/src/script/lua_api/l_vmanip.cpp \ 270 jni/src/script/scripting_game.cpp \ 271 jni/src/script/scripting_mainmenu.cpp 272 273#freetype2 support 274LOCAL_SRC_FILES += \ 275 jni/src/cguittfont/xCGUITTFont.cpp 276 277# lua 278LOCAL_SRC_FILES += \ 279 jni/src/lua/src/lapi.c \ 280 jni/src/lua/src/lauxlib.c \ 281 jni/src/lua/src/lbaselib.c \ 282 jni/src/lua/src/lcode.c \ 283 jni/src/lua/src/ldblib.c \ 284 jni/src/lua/src/ldebug.c \ 285 jni/src/lua/src/ldo.c \ 286 jni/src/lua/src/ldump.c \ 287 jni/src/lua/src/lfunc.c \ 288 jni/src/lua/src/lgc.c \ 289 jni/src/lua/src/linit.c \ 290 jni/src/lua/src/liolib.c \ 291 jni/src/lua/src/llex.c \ 292 jni/src/lua/src/lmathlib.c \ 293 jni/src/lua/src/lmem.c \ 294 jni/src/lua/src/loadlib.c \ 295 jni/src/lua/src/lobject.c \ 296 jni/src/lua/src/lopcodes.c \ 297 jni/src/lua/src/loslib.c \ 298 jni/src/lua/src/lparser.c \ 299 jni/src/lua/src/lstate.c \ 300 jni/src/lua/src/lstring.c \ 301 jni/src/lua/src/lstrlib.c \ 302 jni/src/lua/src/ltable.c \ 303 jni/src/lua/src/ltablib.c \ 304 jni/src/lua/src/ltm.c \ 305 jni/src/lua/src/lundump.c \ 306 jni/src/lua/src/lvm.c \ 307 jni/src/lua/src/lzio.c \ 308 jni/src/lua/src/print.c 309 310# sqlite 311LOCAL_SRC_FILES += jni/src/sqlite/sqlite3.c 312 313# jthread 314LOCAL_SRC_FILES += \ 315 jni/src/jthread/pthread/jevent.cpp \ 316 jni/src/jthread/pthread/jsemaphore.cpp 317 318# json 319LOCAL_SRC_FILES += jni/src/json/jsoncpp.cpp 320 321LOCAL_SHARED_LIBRARIES := openal ogg vorbis ssl crypto 322LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl android_native_app_glue $(PROFILER_LIBS) 323 324ifeq ($(HAVE_LEVELDB), 1) 325 LOCAL_STATIC_LIBRARIES += LevelDB 326endif 327LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid 328 329include $(BUILD_SHARED_LIBRARY) 330 331# at the end of Android.mk 332ifdef GPROF 333$(call import-module,android-ndk-profiler) 334endif 335$(call import-module,android/native_app_glue) 336