1 LOCAL_PATH := $(call my-dir)/..
3 #LOCAL_ADDRESS_SANITIZER:=true
6 LOCAL_MODULE := Irrlicht
7 LOCAL_SRC_FILES := deps/irrlicht/lib/Android/libIrrlicht.a
8 include $(PREBUILT_STATIC_LIBRARY)
10 ifeq ($(HAVE_LEVELDB), 1)
12 LOCAL_MODULE := LevelDB
13 LOCAL_SRC_FILES := deps/leveldb/libleveldb.a
14 include $(PREBUILT_STATIC_LIBRARY)
19 LOCAL_SRC_FILES := deps/curl/lib/.libs/libcurl.a
20 include $(PREBUILT_STATIC_LIBRARY)
23 LOCAL_MODULE := freetype
24 LOCAL_SRC_FILES := deps/freetype2-android/Android/obj/local/$(TARGET_ARCH_ABI)/libfreetype2-static.a
25 include $(PREBUILT_STATIC_LIBRARY)
29 LOCAL_SRC_FILES := deps/libiconv/lib/.libs/libiconv.so
30 include $(PREBUILT_SHARED_LIBRARY)
33 LOCAL_MODULE := openal
34 LOCAL_SRC_FILES := deps/openal-soft/libs/$(TARGET_LIBDIR)/libopenal.so
35 include $(PREBUILT_SHARED_LIBRARY)
39 LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libogg.so
40 include $(PREBUILT_SHARED_LIBRARY)
43 LOCAL_MODULE := vorbis
44 LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libvorbis.so
45 include $(PREBUILT_SHARED_LIBRARY)
49 LOCAL_SRC_FILES := deps/openssl/libssl.a
50 include $(PREBUILT_STATIC_LIBRARY)
53 LOCAL_MODULE := crypto
54 LOCAL_SRC_FILES := deps/openssl/libcrypto.a
55 include $(PREBUILT_STATIC_LIBRARY)
58 LOCAL_MODULE := minetest
60 LOCAL_CPP_FEATURES += exceptions
66 LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ \
67 -DHAVE_TOUCHSCREENGUI \
72 -DUSE_LEVELDB=$(HAVE_LEVELDB) \
74 -pipe -fstrict-aliasing
77 LOCAL_CFLAGS += -g -D_DEBUG -O0 -fno-omit-frame-pointer
79 LOCAL_CFLAGS += $(TARGET_CFLAGS_ADDON)
83 PROFILER_LIBS := android-ndk-profiler
87 # LOCAL_CFLAGS += -fsanitize=address
88 # LOCAL_LDFLAGS += -fsanitize=address
90 ifeq ($(TARGET_ABI),x86)
91 LOCAL_CFLAGS += -fno-stack-protector
101 deps/irrlicht/include \
102 deps/libiconv/include \
103 deps/freetype2-android/include \
105 deps/openal-soft/jni/OpenAL/include \
106 deps/libvorbis-libogg-android/jni/include \
107 deps/leveldb/include \
113 jni/src/client/activeobjectmgr.cpp \
114 jni/src/client/camera.cpp \
115 jni/src/client/client.cpp \
116 jni/src/client/clientenvironment.cpp \
117 jni/src/client/clientlauncher.cpp \
118 jni/src/client/clientmap.cpp \
119 jni/src/client/clientmedia.cpp \
120 jni/src/client/clientobject.cpp \
121 jni/src/client/clouds.cpp \
122 jni/src/client/content_cao.cpp \
123 jni/src/client/content_cso.cpp \
124 jni/src/client/content_mapblock.cpp \
125 jni/src/client/filecache.cpp \
126 jni/src/client/fontengine.cpp \
127 jni/src/client/game.cpp \
128 jni/src/client/gameui.cpp \
129 jni/src/client/guiscalingfilter.cpp \
130 jni/src/client/hud.cpp \
131 jni/src/clientiface.cpp \
132 jni/src/client/imagefilters.cpp \
133 jni/src/client/inputhandler.cpp \
134 jni/src/client/joystick_controller.cpp \
135 jni/src/client/keycode.cpp \
136 jni/src/client/localplayer.cpp \
137 jni/src/client/mapblock_mesh.cpp \
138 jni/src/client/mesh.cpp \
139 jni/src/client/meshgen/collector.cpp \
140 jni/src/client/mesh_generator_thread.cpp \
141 jni/src/client/minimap.cpp \
142 jni/src/client/particles.cpp \
143 jni/src/client/render/anaglyph.cpp \
144 jni/src/client/render/core.cpp \
145 jni/src/client/render/factory.cpp \
146 jni/src/client/renderingengine.cpp \
147 jni/src/client/render/interlaced.cpp \
148 jni/src/client/render/pageflip.cpp \
149 jni/src/client/render/plain.cpp \
150 jni/src/client/render/sidebyside.cpp \
151 jni/src/client/render/stereo.cpp \
152 jni/src/client/shader.cpp \
153 jni/src/client/sky.cpp \
154 jni/src/client/sound.cpp \
155 jni/src/client/sound_openal.cpp \
156 jni/src/client/tile.cpp \
157 jni/src/client/wieldmesh.cpp \
158 jni/src/collision.cpp \
159 jni/src/content/content.cpp \
160 jni/src/content_mapnode.cpp \
161 jni/src/content/mods.cpp \
162 jni/src/content_nodemeta.cpp \
163 jni/src/content/packages.cpp \
164 jni/src/content_sao.cpp \
165 jni/src/content/subgames.cpp \
166 jni/src/convert_json.cpp \
167 jni/src/craftdef.cpp \
168 jni/src/database/database.cpp \
169 jni/src/database/database-dummy.cpp \
170 jni/src/database/database-files.cpp \
171 jni/src/database/database-leveldb.cpp \
172 jni/src/database/database-sqlite3.cpp \
174 jni/src/defaultsettings.cpp \
176 jni/src/environment.cpp \
177 jni/src/face_position_cache.cpp \
178 jni/src/filesys.cpp \
179 jni/src/genericobject.cpp \
180 jni/src/gettext.cpp \
181 jni/src/gui/guiButton.cpp \
182 jni/src/gui/guiChatConsole.cpp \
183 jni/src/gui/guiConfirmRegistration.cpp \
184 jni/src/gui/guiEditBoxWithScrollbar.cpp \
185 jni/src/gui/guiEngine.cpp \
186 jni/src/gui/guiFormSpecMenu.cpp \
187 jni/src/gui/guiKeyChangeMenu.cpp \
188 jni/src/gui/guiPasswordChange.cpp \
189 jni/src/gui/guiPathSelectMenu.cpp \
190 jni/src/gui/guiScrollBar.cpp \
191 jni/src/gui/guiSkin.cpp \
192 jni/src/gui/guiTable.cpp \
193 jni/src/gui/guiVolumeChange.cpp \
194 jni/src/gui/intlGUIEditBox.cpp \
195 jni/src/gui/modalMenu.cpp \
196 jni/src/gui/profilergraph.cpp \
197 jni/src/gui/touchscreengui.cpp \
198 jni/src/httpfetch.cpp \
200 jni/src/inventory.cpp \
201 jni/src/inventorymanager.cpp \
202 jni/src/irrlicht_changes/CGUITTFont.cpp \
203 jni/src/irrlicht_changes/static_text.cpp \
204 jni/src/itemdef.cpp \
205 jni/src/itemstackmetadata.cpp \
209 jni/src/mapblock.cpp \
211 jni/src/mapgen/cavegen.cpp \
212 jni/src/mapgen/dungeongen.cpp \
213 jni/src/mapgen/mapgen_carpathian.cpp \
214 jni/src/mapgen/mapgen.cpp \
215 jni/src/mapgen/mapgen_flat.cpp \
216 jni/src/mapgen/mapgen_fractal.cpp \
217 jni/src/mapgen/mapgen_singlenode.cpp \
218 jni/src/mapgen/mapgen_v5.cpp \
219 jni/src/mapgen/mapgen_v6.cpp \
220 jni/src/mapgen/mapgen_v7.cpp \
221 jni/src/mapgen/mapgen_valleys.cpp \
222 jni/src/mapgen/mg_biome.cpp \
223 jni/src/mapgen/mg_decoration.cpp \
224 jni/src/mapgen/mg_ore.cpp \
225 jni/src/mapgen/mg_schematic.cpp \
226 jni/src/mapgen/treegen.cpp \
227 jni/src/mapnode.cpp \
228 jni/src/mapsector.cpp \
229 jni/src/map_settings_manager.cpp \
230 jni/src/metadata.cpp \
231 jni/src/modchannels.cpp \
232 jni/src/nameidmapping.cpp \
233 jni/src/nodedef.cpp \
234 jni/src/nodemetadata.cpp \
235 jni/src/nodetimer.cpp \
238 jni/src/object_properties.cpp \
239 jni/src/pathfinder.cpp \
241 jni/src/porting_android.cpp \
242 jni/src/porting.cpp \
243 jni/src/profiler.cpp \
244 jni/src/raycast.cpp \
245 jni/src/reflowscan.cpp \
246 jni/src/remoteplayer.cpp \
247 jni/src/rollback.cpp \
248 jni/src/rollback_interface.cpp \
249 jni/src/serialization.cpp \
250 jni/src/server/activeobjectmgr.cpp \
252 jni/src/serverenvironment.cpp \
253 jni/src/serverlist.cpp \
254 jni/src/server/mods.cpp \
255 jni/src/serverobject.cpp \
256 jni/src/settings.cpp \
257 jni/src/staticobject.cpp \
258 jni/src/tileanimation.cpp \
260 jni/src/translation.cpp \
261 jni/src/unittest/test_authdatabase.cpp \
262 jni/src/unittest/test_collision.cpp \
263 jni/src/unittest/test_compression.cpp \
264 jni/src/unittest/test_connection.cpp \
265 jni/src/unittest/test.cpp \
266 jni/src/unittest/test_filepath.cpp \
267 jni/src/unittest/test_gameui.cpp \
268 jni/src/unittest/test_inventory.cpp \
269 jni/src/unittest/test_mapnode.cpp \
270 jni/src/unittest/test_map_settings_manager.cpp \
271 jni/src/unittest/test_nodedef.cpp \
272 jni/src/unittest/test_noderesolver.cpp \
273 jni/src/unittest/test_noise.cpp \
274 jni/src/unittest/test_objdef.cpp \
275 jni/src/unittest/test_profiler.cpp \
276 jni/src/unittest/test_random.cpp \
277 jni/src/unittest/test_schematic.cpp \
278 jni/src/unittest/test_serialization.cpp \
279 jni/src/unittest/test_settings.cpp \
280 jni/src/unittest/test_socket.cpp \
281 jni/src/unittest/test_utilities.cpp \
282 jni/src/unittest/test_voxelalgorithms.cpp \
283 jni/src/unittest/test_voxelmanipulator.cpp \
284 jni/src/util/areastore.cpp \
285 jni/src/util/auth.cpp \
286 jni/src/util/base64.cpp \
287 jni/src/util/directiontables.cpp \
288 jni/src/util/enriched_string.cpp \
289 jni/src/util/ieee_float.cpp \
290 jni/src/util/numeric.cpp \
291 jni/src/util/pointedthing.cpp \
292 jni/src/util/quicktune.cpp \
293 jni/src/util/serialize.cpp \
294 jni/src/util/sha1.cpp \
295 jni/src/util/srp.cpp \
296 jni/src/util/string.cpp \
297 jni/src/util/timetaker.cpp \
298 jni/src/version.cpp \
299 jni/src/voxelalgorithms.cpp \
303 # intentionally kept out (we already build openssl itself): jni/src/util/sha256.c
307 jni/src/network/address.cpp \
308 jni/src/network/connection.cpp \
309 jni/src/network/networkpacket.cpp \
310 jni/src/network/clientopcodes.cpp \
311 jni/src/network/clientpackethandler.cpp \
312 jni/src/network/connectionthreads.cpp \
313 jni/src/network/serveropcodes.cpp \
314 jni/src/network/serverpackethandler.cpp \
315 jni/src/network/socket.cpp \
319 jni/src/script/common/c_content.cpp \
320 jni/src/script/common/c_converter.cpp \
321 jni/src/script/common/c_internal.cpp \
322 jni/src/script/common/c_types.cpp \
323 jni/src/script/common/helper.cpp \
324 jni/src/script/cpp_api/s_async.cpp \
325 jni/src/script/cpp_api/s_base.cpp \
326 jni/src/script/cpp_api/s_client.cpp \
327 jni/src/script/cpp_api/s_entity.cpp \
328 jni/src/script/cpp_api/s_env.cpp \
329 jni/src/script/cpp_api/s_inventory.cpp \
330 jni/src/script/cpp_api/s_item.cpp \
331 jni/src/script/cpp_api/s_mainmenu.cpp \
332 jni/src/script/cpp_api/s_modchannels.cpp \
333 jni/src/script/cpp_api/s_node.cpp \
334 jni/src/script/cpp_api/s_nodemeta.cpp \
335 jni/src/script/cpp_api/s_player.cpp \
336 jni/src/script/cpp_api/s_security.cpp \
337 jni/src/script/cpp_api/s_server.cpp \
338 jni/src/script/lua_api/l_areastore.cpp \
339 jni/src/script/lua_api/l_auth.cpp \
340 jni/src/script/lua_api/l_base.cpp \
341 jni/src/script/lua_api/l_camera.cpp \
342 jni/src/script/lua_api/l_client.cpp \
343 jni/src/script/lua_api/l_craft.cpp \
344 jni/src/script/lua_api/l_env.cpp \
345 jni/src/script/lua_api/l_inventory.cpp \
346 jni/src/script/lua_api/l_item.cpp \
347 jni/src/script/lua_api/l_itemstackmeta.cpp\
348 jni/src/script/lua_api/l_localplayer.cpp \
349 jni/src/script/lua_api/l_mainmenu.cpp \
350 jni/src/script/lua_api/l_mapgen.cpp \
351 jni/src/script/lua_api/l_metadata.cpp \
352 jni/src/script/lua_api/l_minimap.cpp \
353 jni/src/script/lua_api/l_modchannels.cpp \
354 jni/src/script/lua_api/l_nodemeta.cpp \
355 jni/src/script/lua_api/l_nodetimer.cpp \
356 jni/src/script/lua_api/l_noise.cpp \
357 jni/src/script/lua_api/l_object.cpp \
358 jni/src/script/lua_api/l_playermeta.cpp \
359 jni/src/script/lua_api/l_particles.cpp \
360 jni/src/script/lua_api/l_particles_local.cpp\
361 jni/src/script/lua_api/l_rollback.cpp \
362 jni/src/script/lua_api/l_server.cpp \
363 jni/src/script/lua_api/l_settings.cpp \
364 jni/src/script/lua_api/l_sound.cpp \
365 jni/src/script/lua_api/l_http.cpp \
366 jni/src/script/lua_api/l_storage.cpp \
367 jni/src/script/lua_api/l_util.cpp \
368 jni/src/script/lua_api/l_vmanip.cpp \
369 jni/src/script/scripting_client.cpp \
370 jni/src/script/scripting_server.cpp \
371 jni/src/script/scripting_mainmenu.cpp
374 #LOCAL_SRC_FILES += jni/src/cguittfont/xCGUITTFont.cpp
377 LOCAL_SRC_FILES += jni/lib/gmp/mini-gmp.c
381 jni/lib/lua/src/lapi.c \
382 jni/lib/lua/src/lauxlib.c \
383 jni/lib/lua/src/lbaselib.c \
384 jni/lib/lua/src/lcode.c \
385 jni/lib/lua/src/ldblib.c \
386 jni/lib/lua/src/ldebug.c \
387 jni/lib/lua/src/ldo.c \
388 jni/lib/lua/src/ldump.c \
389 jni/lib/lua/src/lfunc.c \
390 jni/lib/lua/src/lgc.c \
391 jni/lib/lua/src/linit.c \
392 jni/lib/lua/src/liolib.c \
393 jni/lib/lua/src/llex.c \
394 jni/lib/lua/src/lmathlib.c \
395 jni/lib/lua/src/lmem.c \
396 jni/lib/lua/src/loadlib.c \
397 jni/lib/lua/src/lobject.c \
398 jni/lib/lua/src/lopcodes.c \
399 jni/lib/lua/src/loslib.c \
400 jni/lib/lua/src/lparser.c \
401 jni/lib/lua/src/lstate.c \
402 jni/lib/lua/src/lstring.c \
403 jni/lib/lua/src/lstrlib.c \
404 jni/lib/lua/src/ltable.c \
405 jni/lib/lua/src/ltablib.c \
406 jni/lib/lua/src/ltm.c \
407 jni/lib/lua/src/lundump.c \
408 jni/lib/lua/src/lvm.c \
409 jni/lib/lua/src/lzio.c \
410 jni/lib/lua/src/print.c
413 LOCAL_SRC_FILES += deps/sqlite/sqlite3.c
417 jni/src/threading/event.cpp \
418 jni/src/threading/semaphore.cpp \
419 jni/src/threading/thread.cpp
422 LOCAL_SRC_FILES += jni/lib/jsoncpp/jsoncpp.cpp
424 LOCAL_SHARED_LIBRARIES := iconv openal ogg vorbis
425 LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl ssl crypto android_native_app_glue $(PROFILER_LIBS)
427 ifeq ($(HAVE_LEVELDB), 1)
428 LOCAL_STATIC_LIBRARIES += LevelDB
430 LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid
432 include $(BUILD_SHARED_LIBRARY)
434 # at the end of Android.mk
436 $(call import-module,android-ndk-profiler)
438 $(call import-module,android/native_app_glue)