1LOCAL_PATH := $(call my-dir)/..
2
3#LOCAL_ADDRESS_SANITIZER:=true
4
5include $(CLEAR_VARS)
6LOCAL_MODULE := Curl
7LOCAL_SRC_FILES := deps/Android/Curl/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcurl.a
8include $(PREBUILT_STATIC_LIBRARY)
9
10include $(CLEAR_VARS)
11LOCAL_MODULE := Freetype
12LOCAL_SRC_FILES := deps/Android/Freetype/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libfreetype.a
13include $(PREBUILT_STATIC_LIBRARY)
14
15include $(CLEAR_VARS)
16LOCAL_MODULE := Irrlicht
17LOCAL_SRC_FILES := deps/Android/Irrlicht/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libIrrlicht.a
18include $(PREBUILT_STATIC_LIBRARY)
19
20#include $(CLEAR_VARS)
21#LOCAL_MODULE := LevelDB
22#LOCAL_SRC_FILES := deps/Android/LevelDB/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libleveldb.a
23#include $(PREBUILT_STATIC_LIBRARY)
24
25include $(CLEAR_VARS)
26LOCAL_MODULE := LuaJIT
27LOCAL_SRC_FILES := deps/Android/LuaJIT/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libluajit.a
28include $(PREBUILT_STATIC_LIBRARY)
29
30include $(CLEAR_VARS)
31LOCAL_MODULE := mbedTLS
32LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedtls.a
33include $(PREBUILT_STATIC_LIBRARY)
34
35include $(CLEAR_VARS)
36LOCAL_MODULE := mbedx509
37LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedx509.a
38include $(PREBUILT_STATIC_LIBRARY)
39
40include $(CLEAR_VARS)
41LOCAL_MODULE := mbedcrypto
42LOCAL_SRC_FILES := deps/Android/mbedTLS/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libmbedcrypto.a
43include $(PREBUILT_STATIC_LIBRARY)
44
45include $(CLEAR_VARS)
46LOCAL_MODULE := OpenAL
47LOCAL_SRC_FILES := deps/Android/OpenAL-Soft/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libopenal.a
48include $(PREBUILT_STATIC_LIBRARY)
49
50# You can use `OpenSSL and Crypto` instead `mbedTLS mbedx509 mbedcrypto`,
51#but it increase APK size on ~0.7MB
52#include $(CLEAR_VARS)
53#LOCAL_MODULE := OpenSSL
54#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libssl.a
55#include $(PREBUILT_STATIC_LIBRARY)
56
57#include $(CLEAR_VARS)
58#LOCAL_MODULE := Crypto
59#LOCAL_SRC_FILES := deps/Android/OpenSSL/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libcrypto.a
60#include $(PREBUILT_STATIC_LIBRARY)
61
62include $(CLEAR_VARS)
63LOCAL_MODULE := Vorbis
64LOCAL_SRC_FILES := deps/Android/Vorbis/${NDK_TOOLCHAIN_VERSION}/$(APP_ABI)/libvorbis.a
65include $(PREBUILT_STATIC_LIBRARY)
66
67include $(CLEAR_VARS)
68LOCAL_MODULE := Minetest
69
70LOCAL_CFLAGS += \
71	-DJSONCPP_NO_LOCALE_SUPPORT     \
72	-DHAVE_TOUCHSCREENGUI           \
73	-DENABLE_GLES=1                 \
74	-DUSE_CURL=1                    \
75	-DUSE_SOUND=1                   \
76	-DUSE_FREETYPE=1                \
77	-DUSE_LEVELDB=0                 \
78	-DUSE_LUAJIT=1                  \
79	-DVERSION_MAJOR=${versionMajor} \
80	-DVERSION_MINOR=${versionMinor} \
81	-DVERSION_PATCH=${versionPatch} \
82	-DVERSION_EXTRA=${versionExtra} \
83	$(GPROF_DEF)
84
85ifdef NDEBUG
86	LOCAL_CFLAGS += -DNDEBUG=1
87endif
88
89ifdef GPROF
90	GPROF_DEF := -DGPROF
91	PROFILER_LIBS := android-ndk-profiler
92	LOCAL_CFLAGS += -pg
93endif
94
95LOCAL_C_INCLUDES := \
96	../../../src                                    \
97	../../../src/script                             \
98	../../../lib/gmp                                \
99	../../../lib/jsoncpp                            \
100	deps/Android/Curl/include                       \
101	deps/Android/Freetype/include                   \
102	deps/Android/Irrlicht/include                   \
103	deps/Android/LevelDB/include                    \
104	deps/Android/libiconv/include                   \
105	deps/Android/libiconv/libcharset/include        \
106	deps/Android/LuaJIT/src                         \
107	deps/Android/OpenAL-Soft/include                \
108	deps/Android/sqlite                             \
109	deps/Android/Vorbis/include
110
111LOCAL_SRC_FILES := \
112	$(wildcard ../../../src/client/*.cpp)           \
113	$(wildcard ../../../src/client/*/*.cpp)         \
114	$(wildcard ../../../src/content/*.cpp)          \
115	../../../src/database/database.cpp              \
116	../../../src/database/database-dummy.cpp        \
117	../../../src/database/database-files.cpp        \
118	../../../src/database/database-sqlite3.cpp      \
119	$(wildcard ../../../src/gui/*.cpp)              \
120	$(wildcard ../../../src/irrlicht_changes/*.cpp) \
121	$(wildcard ../../../src/mapgen/*.cpp)           \
122	$(wildcard ../../../src/network/*.cpp)          \
123	$(wildcard ../../../src/script/*.cpp)           \
124	$(wildcard ../../../src/script/*/*.cpp)         \
125	$(wildcard ../../../src/server/*.cpp)           \
126	$(wildcard ../../../src/threading/*.cpp)        \
127	$(wildcard ../../../src/util/*.c)               \
128	$(wildcard ../../../src/util/*.cpp)             \
129	../../../src/ban.cpp                            \
130	../../../src/chat.cpp                           \
131	../../../src/clientiface.cpp                    \
132	../../../src/collision.cpp                      \
133	../../../src/content_mapnode.cpp                \
134	../../../src/content_nodemeta.cpp               \
135	../../../src/convert_json.cpp                   \
136	../../../src/craftdef.cpp                       \
137	../../../src/debug.cpp                          \
138	../../../src/defaultsettings.cpp                \
139	../../../src/emerge.cpp                         \
140	../../../src/environment.cpp                    \
141	../../../src/face_position_cache.cpp            \
142	../../../src/filesys.cpp                        \
143	../../../src/gettext.cpp                        \
144	../../../src/httpfetch.cpp                      \
145	../../../src/hud.cpp                            \
146	../../../src/inventory.cpp                      \
147	../../../src/inventorymanager.cpp               \
148	../../../src/itemdef.cpp                        \
149	../../../src/itemstackmetadata.cpp              \
150	../../../src/light.cpp                          \
151	../../../src/log.cpp                            \
152	../../../src/main.cpp                           \
153	../../../src/map.cpp                            \
154	../../../src/map_settings_manager.cpp           \
155	../../../src/mapblock.cpp                       \
156	../../../src/mapnode.cpp                        \
157	../../../src/mapsector.cpp                      \
158	../../../src/metadata.cpp                       \
159	../../../src/modchannels.cpp                    \
160	../../../src/nameidmapping.cpp                  \
161	../../../src/nodedef.cpp                        \
162	../../../src/nodemetadata.cpp                   \
163	../../../src/nodetimer.cpp                      \
164	../../../src/noise.cpp                          \
165	../../../src/objdef.cpp                         \
166	../../../src/object_properties.cpp              \
167	../../../src/particles.cpp                      \
168	../../../src/pathfinder.cpp                     \
169	../../../src/player.cpp                         \
170	../../../src/porting.cpp                        \
171	../../../src/porting_android.cpp                \
172	../../../src/profiler.cpp                       \
173	../../../src/raycast.cpp                        \
174	../../../src/reflowscan.cpp                     \
175	../../../src/remoteplayer.cpp                   \
176	../../../src/rollback.cpp                       \
177	../../../src/rollback_interface.cpp             \
178	../../../src/serialization.cpp                  \
179	../../../src/server.cpp                         \
180	../../../src/serverenvironment.cpp              \
181	../../../src/serverlist.cpp                     \
182	../../../src/settings.cpp                       \
183	../../../src/staticobject.cpp                   \
184	../../../src/texture_override.cpp               \
185	../../../src/tileanimation.cpp                  \
186	../../../src/tool.cpp                           \
187	../../../src/translation.cpp                    \
188	../../../src/version.cpp                        \
189	../../../src/voxel.cpp                          \
190	../../../src/voxelalgorithms.cpp
191
192# LevelDB backend is disabled
193#	../../../src/database/database-leveldb.cpp
194
195# GMP
196LOCAL_SRC_FILES += ../../../lib/gmp/mini-gmp.c
197
198# JSONCPP
199LOCAL_SRC_FILES += ../../../lib/jsoncpp/jsoncpp.cpp
200
201# iconv
202LOCAL_SRC_FILES += \
203	deps/Android/libiconv/lib/iconv.c               \
204	deps/Android/libiconv/libcharset/lib/localcharset.c
205
206# SQLite3
207LOCAL_SRC_FILES += deps/Android/sqlite/sqlite3.c
208
209LOCAL_STATIC_LIBRARIES += Curl Freetype Irrlicht OpenAL mbedTLS mbedx509 mbedcrypto Vorbis LuaJIT android_native_app_glue $(PROFILER_LIBS) #LevelDB
210#OpenSSL Crypto
211
212LOCAL_LDLIBS := -lEGL -lGLESv1_CM -lGLESv2 -landroid -lOpenSLES
213
214include $(BUILD_SHARED_LIBRARY)
215
216ifdef GPROF
217$(call import-module,android-ndk-profiler)
218endif
219$(call import-module,android/native_app_glue)
220