Android.mk 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. LOCAL_PATH := $(call my-dir)/..
  2. #LOCAL_ADDRESS_SANITIZER:=true
  3. include $(CLEAR_VARS)
  4. LOCAL_MODULE := Irrlicht
  5. LOCAL_SRC_FILES := deps/irrlicht/lib/Android/libIrrlicht.a
  6. include $(PREBUILT_STATIC_LIBRARY)
  7. ifeq ($(HAVE_LEVELDB), 1)
  8. include $(CLEAR_VARS)
  9. LOCAL_MODULE := LevelDB
  10. LOCAL_SRC_FILES := deps/leveldb/libleveldb.a
  11. include $(PREBUILT_STATIC_LIBRARY)
  12. endif
  13. include $(CLEAR_VARS)
  14. LOCAL_MODULE := curl
  15. LOCAL_SRC_FILES := deps/curl/lib/.libs/libcurl.a
  16. include $(PREBUILT_STATIC_LIBRARY)
  17. include $(CLEAR_VARS)
  18. LOCAL_MODULE := freetype
  19. LOCAL_SRC_FILES := deps/freetype2-android/Android/obj/local/$(TARGET_ARCH_ABI)/libfreetype2-static.a
  20. include $(PREBUILT_STATIC_LIBRARY)
  21. include $(CLEAR_VARS)
  22. LOCAL_MODULE := iconv
  23. LOCAL_SRC_FILES := deps/libiconv/lib/.libs/libiconv.so
  24. include $(PREBUILT_SHARED_LIBRARY)
  25. include $(CLEAR_VARS)
  26. LOCAL_MODULE := openal
  27. LOCAL_SRC_FILES := deps/openal-soft/libs/$(TARGET_LIBDIR)/libopenal.so
  28. include $(PREBUILT_SHARED_LIBRARY)
  29. include $(CLEAR_VARS)
  30. LOCAL_MODULE := ogg
  31. LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libogg.so
  32. include $(PREBUILT_SHARED_LIBRARY)
  33. include $(CLEAR_VARS)
  34. LOCAL_MODULE := vorbis
  35. LOCAL_SRC_FILES := deps/libvorbis-libogg-android/libs/$(TARGET_LIBDIR)/libvorbis.so
  36. include $(PREBUILT_SHARED_LIBRARY)
  37. include $(CLEAR_VARS)
  38. LOCAL_MODULE := gmp
  39. LOCAL_SRC_FILES := deps/gmp/usr/lib/libgmp.so
  40. include $(PREBUILT_SHARED_LIBRARY)
  41. include $(CLEAR_VARS)
  42. LOCAL_MODULE := ssl
  43. LOCAL_SRC_FILES := deps/openssl/libssl.a
  44. include $(PREBUILT_STATIC_LIBRARY)
  45. include $(CLEAR_VARS)
  46. LOCAL_MODULE := crypto
  47. LOCAL_SRC_FILES := deps/openssl/libcrypto.a
  48. include $(PREBUILT_STATIC_LIBRARY)
  49. include $(CLEAR_VARS)
  50. LOCAL_MODULE := minetest
  51. LOCAL_CPP_FEATURES += exceptions
  52. ifdef GPROF
  53. GPROF_DEF=-DGPROF
  54. endif
  55. LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ \
  56. -DHAVE_TOUCHSCREENGUI \
  57. -DUSE_CURL=1 \
  58. -DUSE_SOUND=1 \
  59. -DUSE_FREETYPE=1 \
  60. -DUSE_LEVELDB=$(HAVE_LEVELDB) \
  61. $(GPROF_DEF) \
  62. -pipe -fstrict-aliasing
  63. ifndef NDEBUG
  64. LOCAL_CFLAGS += -g -D_DEBUG -O0 -fno-omit-frame-pointer
  65. else
  66. LOCAL_CFLAGS += $(TARGET_CFLAGS_ADDON)
  67. endif
  68. ifdef GPROF
  69. PROFILER_LIBS := android-ndk-profiler
  70. LOCAL_CFLAGS += -pg
  71. endif
  72. # LOCAL_CFLAGS += -fsanitize=address
  73. # LOCAL_LDFLAGS += -fsanitize=address
  74. ifeq ($(TARGET_ABI),x86)
  75. LOCAL_CFLAGS += -fno-stack-protector
  76. endif
  77. LOCAL_C_INCLUDES := \
  78. jni/src \
  79. jni/src/script \
  80. jni/lib/lua/src \
  81. jni/lib/jsoncpp \
  82. jni/src/cguittfont \
  83. deps/irrlicht/include \
  84. deps/libiconv/include \
  85. deps/freetype2-android/include \
  86. deps/curl/include \
  87. deps/openal-soft/jni/OpenAL/include \
  88. deps/libvorbis-libogg-android/jni/include \
  89. deps/gmp/usr/include \
  90. deps/leveldb/include \
  91. deps/sqlite/
  92. LOCAL_SRC_FILES := \
  93. jni/src/ban.cpp \
  94. jni/src/camera.cpp \
  95. jni/src/mapgen/cavegen.cpp \
  96. jni/src/chat.cpp \
  97. jni/src/client.cpp \
  98. jni/src/clientenvironment.cpp \
  99. jni/src/clientiface.cpp \
  100. jni/src/clientmap.cpp \
  101. jni/src/clientmedia.cpp \
  102. jni/src/clientobject.cpp \
  103. jni/src/clouds.cpp \
  104. jni/src/collision.cpp \
  105. jni/src/content_cao.cpp \
  106. jni/src/content_cso.cpp \
  107. jni/src/content_mapblock.cpp \
  108. jni/src/content_mapnode.cpp \
  109. jni/src/content_nodemeta.cpp \
  110. jni/src/content_sao.cpp \
  111. jni/src/convert_json.cpp \
  112. jni/src/craftdef.cpp \
  113. jni/src/database/database-dummy.cpp \
  114. jni/src/database/database-files.cpp \
  115. jni/src/database/database-leveldb.cpp \
  116. jni/src/database/database-sqlite3.cpp \
  117. jni/src/database/database.cpp \
  118. jni/src/debug.cpp \
  119. jni/src/defaultsettings.cpp \
  120. jni/src/mapgen/dungeongen.cpp \
  121. jni/src/emerge.cpp \
  122. jni/src/environment.cpp \
  123. jni/src/face_position_cache.cpp \
  124. jni/src/filecache.cpp \
  125. jni/src/filesys.cpp \
  126. jni/src/fontengine.cpp \
  127. jni/src/game.cpp \
  128. jni/src/genericobject.cpp \
  129. jni/src/gettext.cpp \
  130. jni/src/gui/guiChatConsole.cpp \
  131. jni/src/gui/guiConfirmRegistration.cpp \
  132. jni/src/gui/guiEditBoxWithScrollbar.cpp \
  133. jni/src/gui/guiEngine.cpp \
  134. jni/src/gui/guiPathSelectMenu.cpp \
  135. jni/src/gui/guiFormSpecMenu.cpp \
  136. jni/src/gui/guiKeyChangeMenu.cpp \
  137. jni/src/gui/guiPasswordChange.cpp \
  138. jni/src/gui/guiTable.cpp \
  139. jni/src/guiscalingfilter.cpp \
  140. jni/src/gui/guiVolumeChange.cpp \
  141. jni/src/gui/intlGUIEditBox.cpp \
  142. jni/src/gui/profilergraph.cpp \
  143. jni/src/gui/touchscreengui.cpp \
  144. jni/src/httpfetch.cpp \
  145. jni/src/hud.cpp \
  146. jni/src/imagefilters.cpp \
  147. jni/src/inventory.cpp \
  148. jni/src/inventorymanager.cpp \
  149. jni/src/itemdef.cpp \
  150. jni/src/itemstackmetadata.cpp \
  151. jni/src/keycode.cpp \
  152. jni/src/light.cpp \
  153. jni/src/localplayer.cpp \
  154. jni/src/log.cpp \
  155. jni/src/main.cpp \
  156. jni/src/map.cpp \
  157. jni/src/map_settings_manager.cpp \
  158. jni/src/mapblock.cpp \
  159. jni/src/mapblock_mesh.cpp \
  160. jni/src/mapgen/mapgen.cpp \
  161. jni/src/mapgen/mapgen_carpathian.cpp \
  162. jni/src/mapgen/mapgen_flat.cpp \
  163. jni/src/mapgen/mapgen_fractal.cpp \
  164. jni/src/mapgen/mapgen_singlenode.cpp \
  165. jni/src/mapgen/mapgen_v5.cpp \
  166. jni/src/mapgen/mapgen_v6.cpp \
  167. jni/src/mapgen/mapgen_v7.cpp \
  168. jni/src/mapgen/mapgen_valleys.cpp \
  169. jni/src/mapnode.cpp \
  170. jni/src/mapsector.cpp \
  171. jni/src/mesh.cpp \
  172. jni/src/mesh_generator_thread.cpp \
  173. jni/src/metadata.cpp \
  174. jni/src/mapgen/mg_biome.cpp \
  175. jni/src/mapgen/mg_decoration.cpp \
  176. jni/src/mapgen/mg_ore.cpp \
  177. jni/src/mapgen/mg_schematic.cpp \
  178. jni/src/minimap.cpp \
  179. jni/src/mods.cpp \
  180. jni/src/modchannels.cpp \
  181. jni/src/nameidmapping.cpp \
  182. jni/src/nodedef.cpp \
  183. jni/src/nodemetadata.cpp \
  184. jni/src/nodetimer.cpp \
  185. jni/src/noise.cpp \
  186. jni/src/objdef.cpp \
  187. jni/src/object_properties.cpp \
  188. jni/src/particles.cpp \
  189. jni/src/pathfinder.cpp \
  190. jni/src/player.cpp \
  191. jni/src/porting_android.cpp \
  192. jni/src/porting.cpp \
  193. jni/src/profiler.cpp \
  194. jni/src/quicktune.cpp \
  195. jni/src/raycast.cpp \
  196. jni/src/reflowscan.cpp \
  197. jni/src/remoteplayer.cpp \
  198. jni/src/rollback.cpp \
  199. jni/src/rollback_interface.cpp \
  200. jni/src/serialization.cpp \
  201. jni/src/server/mods.cpp \
  202. jni/src/server.cpp \
  203. jni/src/serverenvironment.cpp \
  204. jni/src/serverlist.cpp \
  205. jni/src/serverobject.cpp \
  206. jni/src/shader.cpp \
  207. jni/src/sky.cpp \
  208. jni/src/staticobject.cpp \
  209. jni/src/subgame.cpp \
  210. jni/src/tileanimation.cpp \
  211. jni/src/translation.cpp \
  212. jni/src/tool.cpp \
  213. jni/src/mapgen/treegen.cpp \
  214. jni/src/version.cpp \
  215. jni/src/voxel.cpp \
  216. jni/src/voxelalgorithms.cpp \
  217. jni/src/util/areastore.cpp \
  218. jni/src/util/auth.cpp \
  219. jni/src/util/base64.cpp \
  220. jni/src/util/directiontables.cpp \
  221. jni/src/util/enriched_string.cpp \
  222. jni/src/util/numeric.cpp \
  223. jni/src/util/pointedthing.cpp \
  224. jni/src/util/serialize.cpp \
  225. jni/src/util/sha1.cpp \
  226. jni/src/util/string.cpp \
  227. jni/src/util/srp.cpp \
  228. jni/src/util/timetaker.cpp \
  229. jni/src/unittest/test.cpp \
  230. jni/src/unittest/test_collision.cpp \
  231. jni/src/unittest/test_compression.cpp \
  232. jni/src/unittest/test_connection.cpp \
  233. jni/src/unittest/test_filepath.cpp \
  234. jni/src/unittest/test_gameui.cpp \
  235. jni/src/unittest/test_inventory.cpp \
  236. jni/src/unittest/test_map_settings_manager.cpp \
  237. jni/src/unittest/test_mapnode.cpp \
  238. jni/src/unittest/test_nodedef.cpp \
  239. jni/src/unittest/test_noderesolver.cpp \
  240. jni/src/unittest/test_noise.cpp \
  241. jni/src/unittest/test_objdef.cpp \
  242. jni/src/unittest/test_profiler.cpp \
  243. jni/src/unittest/test_random.cpp \
  244. jni/src/unittest/test_schematic.cpp \
  245. jni/src/unittest/test_serialization.cpp \
  246. jni/src/unittest/test_settings.cpp \
  247. jni/src/unittest/test_socket.cpp \
  248. jni/src/unittest/test_utilities.cpp \
  249. jni/src/unittest/test_voxelalgorithms.cpp \
  250. jni/src/unittest/test_voxelmanipulator.cpp \
  251. jni/src/settings.cpp \
  252. jni/src/wieldmesh.cpp \
  253. jni/src/client/meshgen/collector.cpp \
  254. jni/src/client/clientlauncher.cpp \
  255. jni/src/client/gameui.cpp \
  256. jni/src/client/hud.cpp \
  257. jni/src/client/inputhandler.cpp \
  258. jni/src/client/renderingengine.cpp \
  259. jni/src/client/sound.cpp \
  260. jni/src/client/sound_openal.cpp \
  261. jni/src/client/tile.cpp \
  262. jni/src/client/joystick_controller.cpp \
  263. jni/src/client/render/factory.cpp \
  264. jni/src/client/render/pageflip.cpp \
  265. jni/src/client/render/sidebyside.cpp \
  266. jni/src/client/render/plain.cpp \
  267. jni/src/client/render/anaglyph.cpp \
  268. jni/src/client/render/interlaced.cpp \
  269. jni/src/client/render/core.cpp \
  270. jni/src/client/render/stereo.cpp \
  271. jni/src/irrlicht_changes/static_text.cpp \
  272. jni/src/irrlicht_changes/CGUITTFont.cpp
  273. # intentionally kept out (we already build openssl itself): jni/src/util/sha256.c
  274. # Network
  275. LOCAL_SRC_FILES += \
  276. jni/src/network/address.cpp \
  277. jni/src/network/connection.cpp \
  278. jni/src/network/networkpacket.cpp \
  279. jni/src/network/clientopcodes.cpp \
  280. jni/src/network/clientpackethandler.cpp \
  281. jni/src/network/connectionthreads.cpp \
  282. jni/src/network/serveropcodes.cpp \
  283. jni/src/network/serverpackethandler.cpp \
  284. jni/src/network/socket.cpp \
  285. # lua api
  286. LOCAL_SRC_FILES += \
  287. jni/src/script/common/c_content.cpp \
  288. jni/src/script/common/c_converter.cpp \
  289. jni/src/script/common/c_internal.cpp \
  290. jni/src/script/common/c_types.cpp \
  291. jni/src/script/cpp_api/s_async.cpp \
  292. jni/src/script/cpp_api/s_base.cpp \
  293. jni/src/script/cpp_api/s_client.cpp \
  294. jni/src/script/cpp_api/s_entity.cpp \
  295. jni/src/script/cpp_api/s_env.cpp \
  296. jni/src/script/cpp_api/s_inventory.cpp \
  297. jni/src/script/cpp_api/s_item.cpp \
  298. jni/src/script/cpp_api/s_mainmenu.cpp \
  299. jni/src/script/cpp_api/s_modchannels.cpp \
  300. jni/src/script/cpp_api/s_node.cpp \
  301. jni/src/script/cpp_api/s_nodemeta.cpp \
  302. jni/src/script/cpp_api/s_player.cpp \
  303. jni/src/script/cpp_api/s_security.cpp \
  304. jni/src/script/cpp_api/s_server.cpp \
  305. jni/src/script/lua_api/l_areastore.cpp \
  306. jni/src/script/lua_api/l_base.cpp \
  307. jni/src/script/lua_api/l_camera.cpp \
  308. jni/src/script/lua_api/l_client.cpp \
  309. jni/src/script/lua_api/l_craft.cpp \
  310. jni/src/script/lua_api/l_env.cpp \
  311. jni/src/script/lua_api/l_inventory.cpp \
  312. jni/src/script/lua_api/l_item.cpp \
  313. jni/src/script/lua_api/l_itemstackmeta.cpp\
  314. jni/src/script/lua_api/l_localplayer.cpp \
  315. jni/src/script/lua_api/l_mainmenu.cpp \
  316. jni/src/script/lua_api/l_mapgen.cpp \
  317. jni/src/script/lua_api/l_metadata.cpp \
  318. jni/src/script/lua_api/l_minimap.cpp \
  319. jni/src/script/lua_api/l_modchannels.cpp \
  320. jni/src/script/lua_api/l_nodemeta.cpp \
  321. jni/src/script/lua_api/l_nodetimer.cpp \
  322. jni/src/script/lua_api/l_noise.cpp \
  323. jni/src/script/lua_api/l_object.cpp \
  324. jni/src/script/lua_api/l_particles.cpp \
  325. jni/src/script/lua_api/l_particles_local.cpp\
  326. jni/src/script/lua_api/l_rollback.cpp \
  327. jni/src/script/lua_api/l_server.cpp \
  328. jni/src/script/lua_api/l_settings.cpp \
  329. jni/src/script/lua_api/l_sound.cpp \
  330. jni/src/script/lua_api/l_http.cpp \
  331. jni/src/script/lua_api/l_storage.cpp \
  332. jni/src/script/lua_api/l_util.cpp \
  333. jni/src/script/lua_api/l_vmanip.cpp \
  334. jni/src/script/scripting_client.cpp \
  335. jni/src/script/scripting_server.cpp \
  336. jni/src/script/scripting_mainmenu.cpp
  337. #freetype2 support
  338. #LOCAL_SRC_FILES += jni/src/cguittfont/xCGUITTFont.cpp
  339. # Lua
  340. LOCAL_SRC_FILES += \
  341. jni/lib/lua/src/lapi.c \
  342. jni/lib/lua/src/lauxlib.c \
  343. jni/lib/lua/src/lbaselib.c \
  344. jni/lib/lua/src/lcode.c \
  345. jni/lib/lua/src/ldblib.c \
  346. jni/lib/lua/src/ldebug.c \
  347. jni/lib/lua/src/ldo.c \
  348. jni/lib/lua/src/ldump.c \
  349. jni/lib/lua/src/lfunc.c \
  350. jni/lib/lua/src/lgc.c \
  351. jni/lib/lua/src/linit.c \
  352. jni/lib/lua/src/liolib.c \
  353. jni/lib/lua/src/llex.c \
  354. jni/lib/lua/src/lmathlib.c \
  355. jni/lib/lua/src/lmem.c \
  356. jni/lib/lua/src/loadlib.c \
  357. jni/lib/lua/src/lobject.c \
  358. jni/lib/lua/src/lopcodes.c \
  359. jni/lib/lua/src/loslib.c \
  360. jni/lib/lua/src/lparser.c \
  361. jni/lib/lua/src/lstate.c \
  362. jni/lib/lua/src/lstring.c \
  363. jni/lib/lua/src/lstrlib.c \
  364. jni/lib/lua/src/ltable.c \
  365. jni/lib/lua/src/ltablib.c \
  366. jni/lib/lua/src/ltm.c \
  367. jni/lib/lua/src/lundump.c \
  368. jni/lib/lua/src/lvm.c \
  369. jni/lib/lua/src/lzio.c \
  370. jni/lib/lua/src/print.c
  371. # SQLite3
  372. LOCAL_SRC_FILES += deps/sqlite/sqlite3.c
  373. # Threading
  374. LOCAL_SRC_FILES += \
  375. jni/src/threading/event.cpp \
  376. jni/src/threading/semaphore.cpp \
  377. jni/src/threading/thread.cpp
  378. # JSONCPP
  379. LOCAL_SRC_FILES += jni/lib/jsoncpp/jsoncpp.cpp
  380. LOCAL_SHARED_LIBRARIES := iconv openal ogg vorbis gmp
  381. LOCAL_STATIC_LIBRARIES := Irrlicht freetype curl ssl crypto android_native_app_glue $(PROFILER_LIBS)
  382. ifeq ($(HAVE_LEVELDB), 1)
  383. LOCAL_STATIC_LIBRARIES += LevelDB
  384. endif
  385. LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid
  386. include $(BUILD_SHARED_LIBRARY)
  387. # at the end of Android.mk
  388. ifdef GPROF
  389. $(call import-module,android-ndk-profiler)
  390. endif
  391. $(call import-module,android/native_app_glue)