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)
28 LOCAL_MODULE := openal
29 LOCAL_SRC_FILES := deps/openal-soft/libs/$(TARGET_LIBDIR)/libopenal.so
30 include $(PREBUILT_SHARED_LIBRARY)
34 LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libogg.so
35 include $(PREBUILT_SHARED_LIBRARY)
38 LOCAL_MODULE := vorbis
39 LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libvorbis.so
40 include $(PREBUILT_SHARED_LIBRARY)
44 LOCAL_SRC_FILES := deps/openssl/libssl.a
45 include $(PREBUILT_STATIC_LIBRARY)
48 LOCAL_MODULE := crypto
49 LOCAL_SRC_FILES := deps/openssl/libcrypto.a
50 include $(PREBUILT_STATIC_LIBRARY)
54 LOCAL_MODULE := minetest
56 LOCAL_CPP_FEATURES += exceptions
62 LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ \
63 -DHAVE_TOUCHSCREENGUI \
67 -DUSE_LEVELDB=$(HAVE_LEVELDB) \
69 -pipe -fstrict-aliasing
72 LOCAL_CFLAGS += -g -D_DEBUG -O0 -fno-omit-frame-pointer
74 LOCAL_CFLAGS += -fexpensive-optimizations -O3
78 PROFILER_LIBS := android-ndk-profiler
82 # LOCAL_CFLAGS += -fsanitize=address
83 # LOCAL_LDFLAGS += -fsanitize=address
85 ifeq ($(TARGET_ARCH_ABI),x86)
86 LOCAL_CFLAGS += -fno-stack-protector
90 jni/src jni/src/sqlite \
95 deps/irrlicht/include \
96 deps/freetype2-android/include \
98 deps/openal-soft/jni/OpenAL/include \
99 deps/libvorbis-libogg-android/jni/include \
100 deps/leveldb/include \
106 jni/src/cavegen.cpp \
109 jni/src/clientiface.cpp \
110 jni/src/clientmap.cpp \
111 jni/src/clientmedia.cpp \
112 jni/src/clientobject.cpp \
114 jni/src/collision.cpp \
115 jni/src/content_abm.cpp \
116 jni/src/content_cao.cpp \
117 jni/src/content_cso.cpp \
118 jni/src/content_mapblock.cpp \
119 jni/src/content_mapnode.cpp \
120 jni/src/content_nodemeta.cpp \
121 jni/src/content_sao.cpp \
122 jni/src/convert_json.cpp \
123 jni/src/craftdef.cpp \
124 jni/src/database-dummy.cpp \
125 jni/src/database-sqlite3.cpp \
126 jni/src/database.cpp \
128 jni/src/defaultsettings.cpp \
129 jni/src/drawscene.cpp \
130 jni/src/dungeongen.cpp \
132 jni/src/environment.cpp \
133 jni/src/filecache.cpp \
134 jni/src/filesys.cpp \
135 jni/src/fontengine.cpp \
137 jni/src/genericobject.cpp \
138 jni/src/gettext.cpp \
139 jni/src/guiChatConsole.cpp \
140 jni/src/guiEngine.cpp \
141 jni/src/guiFileSelectMenu.cpp \
142 jni/src/guiFormSpecMenu.cpp \
143 jni/src/guiKeyChangeMenu.cpp \
144 jni/src/guiPasswordChange.cpp \
145 jni/src/guiTable.cpp \
146 jni/src/guiVolumeChange.cpp \
147 jni/src/httpfetch.cpp \
149 jni/src/inventory.cpp \
150 jni/src/inventorymanager.cpp \
151 jni/src/itemdef.cpp \
152 jni/src/keycode.cpp \
154 jni/src/localplayer.cpp \
158 jni/src/mapblock.cpp \
159 jni/src/mapblock_mesh.cpp \
161 jni/src/mapgen_singlenode.cpp \
162 jni/src/mapgen_v5.cpp \
163 jni/src/mapgen_v6.cpp \
164 jni/src/mapgen_v7.cpp \
165 jni/src/mapnode.cpp \
166 jni/src/mapsector.cpp \
168 jni/src/mg_biome.cpp \
169 jni/src/mg_decoration.cpp \
171 jni/src/mg_schematic.cpp \
173 jni/src/nameidmapping.cpp \
174 jni/src/nodedef.cpp \
175 jni/src/nodemetadata.cpp \
176 jni/src/nodetimer.cpp \
178 jni/src/object_properties.cpp \
179 jni/src/particles.cpp \
180 jni/src/pathfinder.cpp \
182 jni/src/porting_android.cpp \
183 jni/src/porting.cpp \
184 jni/src/quicktune.cpp \
185 jni/src/rollback.cpp \
186 jni/src/rollback_interface.cpp \
187 jni/src/serialization.cpp \
189 jni/src/serverlist.cpp \
190 jni/src/serverobject.cpp \
195 jni/src/sound_openal.cpp \
196 jni/src/staticobject.cpp \
197 jni/src/subgame.cpp \
201 jni/src/treegen.cpp \
202 jni/src/version.cpp \
204 jni/src/voxelalgorithms.cpp \
205 jni/src/util/base64.cpp \
206 jni/src/util/directiontables.cpp \
207 jni/src/util/numeric.cpp \
208 jni/src/util/pointedthing.cpp \
209 jni/src/util/serialize.cpp \
210 jni/src/util/sha1.cpp \
211 jni/src/util/string.cpp \
212 jni/src/util/timetaker.cpp \
213 jni/src/touchscreengui.cpp \
214 jni/src/database-leveldb.cpp \
215 jni/src/settings.cpp \
216 jni/src/wieldmesh.cpp \
217 jni/src/client/clientlauncher.cpp
221 jni/src/network/connection.cpp \
222 jni/src/network/networkpacket.cpp \
223 jni/src/network/clientopcodes.cpp \
224 jni/src/network/serveropcodes.cpp \
225 jni/src/network/packethandlers/server.cpp \
226 jni/src/network/packethandlers/client.cpp
230 jni/src/script/common/c_content.cpp \
231 jni/src/script/common/c_converter.cpp \
232 jni/src/script/common/c_internal.cpp \
233 jni/src/script/common/c_types.cpp \
234 jni/src/script/cpp_api/s_base.cpp \
235 jni/src/script/cpp_api/s_entity.cpp \
236 jni/src/script/cpp_api/s_env.cpp \
237 jni/src/script/cpp_api/s_inventory.cpp \
238 jni/src/script/cpp_api/s_item.cpp \
239 jni/src/script/cpp_api/s_mainmenu.cpp \
240 jni/src/script/cpp_api/s_node.cpp \
241 jni/src/script/cpp_api/s_nodemeta.cpp \
242 jni/src/script/cpp_api/s_player.cpp \
243 jni/src/script/cpp_api/s_server.cpp \
244 jni/src/script/cpp_api/s_async.cpp \
245 jni/src/script/lua_api/l_base.cpp \
246 jni/src/script/lua_api/l_craft.cpp \
247 jni/src/script/lua_api/l_env.cpp \
248 jni/src/script/lua_api/l_inventory.cpp \
249 jni/src/script/lua_api/l_item.cpp \
250 jni/src/script/lua_api/l_mainmenu.cpp \
251 jni/src/script/lua_api/l_mapgen.cpp \
252 jni/src/script/lua_api/l_nodemeta.cpp \
253 jni/src/script/lua_api/l_nodetimer.cpp \
254 jni/src/script/lua_api/l_noise.cpp \
255 jni/src/script/lua_api/l_object.cpp \
256 jni/src/script/lua_api/l_particles.cpp \
257 jni/src/script/lua_api/l_rollback.cpp \
258 jni/src/script/lua_api/l_server.cpp \
259 jni/src/script/lua_api/l_settings.cpp \
260 jni/src/script/lua_api/l_util.cpp \
261 jni/src/script/lua_api/l_vmanip.cpp \
262 jni/src/script/scripting_game.cpp \
263 jni/src/script/scripting_mainmenu.cpp
267 jni/src/cguittfont/xCGUITTFont.cpp
271 jni/src/lua/src/lapi.c \
272 jni/src/lua/src/lauxlib.c \
273 jni/src/lua/src/lbaselib.c \
274 jni/src/lua/src/lcode.c \
275 jni/src/lua/src/ldblib.c \
276 jni/src/lua/src/ldebug.c \
277 jni/src/lua/src/ldo.c \
278 jni/src/lua/src/ldump.c \
279 jni/src/lua/src/lfunc.c \
280 jni/src/lua/src/lgc.c \
281 jni/src/lua/src/linit.c \
282 jni/src/lua/src/liolib.c \
283 jni/src/lua/src/llex.c \
284 jni/src/lua/src/lmathlib.c \
285 jni/src/lua/src/lmem.c \
286 jni/src/lua/src/loadlib.c \
287 jni/src/lua/src/lobject.c \
288 jni/src/lua/src/lopcodes.c \
289 jni/src/lua/src/loslib.c \
290 jni/src/lua/src/lparser.c \
291 jni/src/lua/src/lstate.c \
292 jni/src/lua/src/lstring.c \
293 jni/src/lua/src/lstrlib.c \
294 jni/src/lua/src/ltable.c \
295 jni/src/lua/src/ltablib.c \
296 jni/src/lua/src/ltm.c \
297 jni/src/lua/src/lundump.c \
298 jni/src/lua/src/lvm.c \
299 jni/src/lua/src/lzio.c \
300 jni/src/lua/src/print.c
303 LOCAL_SRC_FILES += deps/sqlite/sqlite3.c
307 jni/src/jthread/pthread/jevent.cpp \
308 jni/src/jthread/pthread/jmutex.cpp \
309 jni/src/jthread/pthread/jsemaphore.cpp \
310 jni/src/jthread/pthread/jthread.cpp
313 LOCAL_SRC_FILES += jni/src/json/jsoncpp.cpp
315 LOCAL_SHARED_LIBRARIES := openal ogg vorbis
316 LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl ssl crypto android_native_app_glue $(PROFILER_LIBS)
318 ifeq ($(HAVE_LEVELDB), 1)
319 LOCAL_STATIC_LIBRARIES += LevelDB
321 LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid
323 include $(BUILD_SHARED_LIBRARY)
325 # at the end of Android.mk
327 $(call import-module,android-ndk-profiler)
329 $(call import-module,android/native_app_glue)