final cleanup.
[fltk_mvc_template.git] / _template / src / Makefile
1 ############################################################################
2 # Workfile: Makefile
3 # Author: Daniel Giritzer, S1810567004 (daniel@giritzer.eu)
4 # Date: 03.12.2018
5 # Description: Universal Makefile for Unix based Operating Systems
6 ############################################################################
7
8 ###################################
9 #GENERAL | EDIT 1/11
10 ###################################
11 WORKDIR = $(shell pwd)
12 SOURCES := $(shell ls *.cxx)
13 PROJNAME = _template
14 LIBDIR =
15 INC = -I$(WORKDIR)/../include
16 LDFLAGS = -std=c++11 -static-libstdc++ -static-libgcc -Wl,-Bstatic
17 CFLAGS = -Wall -fexceptions -std=c++11 -static-libstdc++ -static-libgcc
18 LIB = -lfltk_images -lfltk_png -lfltk_z -lfltk_jpeg -lfltk
19
20 ###################################
21 #GCC | EDIT 2/11
22 ###################################
23 CC_GCC = gcc
24 CXX_GCC = g++
25 AR_GCC = ar
26 LD_GCC = g++
27 WINDRES_GCC =
28
29 INC_GCC = $(INC)
30 LIBDIR_GCC = -L$(WORKDIR)/../lib/linux32
31 CFLAGS_GCC = -m32 $(CFLAGS)
32 RESINC_GCC =
33 LDFLAGS_GCC = $(LDFLAGS)
34 LIB_GCC = -m32 $(LIB) -lm -lpthread -lX11 -lxcb -lXau -lXdmcp -lbsd -lrt -Wl,-Bdynamic -ldl
35
36 ###################################
37 #MinGW | EDIT 3/11
38 ###################################
39 CC_WIN = i686-w64-mingw32-gcc
40 CXX_WIN = i686-w64-mingw32-g++
41 AR_WIN = i686-w64-mingw32-ar
42 LD_WIN = i686-w64-mingw32-g++
43 WINDRES_WIN = i686-w64-mingw32-windres
44
45 INC_WIN = $(INC)
46 LIBDIR_WIN = -L$(WORKDIR)/../lib/mingw32
47 CFLAGS_WIN = -m32  $(CFLAGS) -mwindows -DWIN32 -D_WIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
48 RESINC_WIN =
49 LDFLAGS_WIN =  $(LDFLAGS)
50 LIB_WIN = -m32 $(LIB) -mwindows -lole32 -luuid -lcomctl32 -lpthread
51
52 ###################################
53 # ANDROID | EDIT 4/11
54 ###################################
55 JAVA_HOME=/usr/lib/jvm/java-1.12.0-openjdk-amd64
56 ANDROID_SDK_ROOT=/usr/lib/android-sdk
57 ANDROID_NDK_ROOT=/usr/lib/android-ndk
58 ANDROID_BUILD_TOOLS_VERSION=debian
59 ANDROID_PLATORM_VERSION=23
60 ANDROID_KEYSTORE_PATH=~/.android/debug.keystore
61 ANDROID_KEYSTORE_NAME=androiddebugkey
62 ANDROID_KEYSTORE_PW=android
63 ANDROID_ARCH=arm
64 ANDROID_ARCH_VER=armeabi-v7a
65 ANDROID_COMPILER_PREFIX=arm-linux-androideabi
66
67 # dependent on values above
68 ANDROID_PLATORM=android-$(ANDROID_PLATORM_VERSION)
69 ANDROID_CP=$(ANDROID_SDK_ROOT)/platforms/$(ANDROID_PLATORM)/android.jar
70 ADB=$(ANDROID_SDK_ROOT)/platform-tools/adb
71 AAPT=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/aapt
72 DX=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/dx
73 ZIPALIGN=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/zipalign
74 JAVAC=$(JAVA_HOME)/bin/javac
75 JARSIGNER=$(JAVA_HOME)/bin/jarsigner
76
77 # Android app src subdirectory
78 ANDROID_SRC=$(WORKDIR)/android-src
79 ANDROID_SOURCES=$(shell find $(ANDROID_SRC) -name *.java)
80
81 # output dirs
82 GENDIR_ANDROID=$(WORKDIR)/obj/Android/gen
83 CLASSDIR_ANDROID=$(WORKDIR)/obj/Android/class
84 OUT_ANDROID=$(WORKDIR)/bin/Android
85
86 ###################################
87 # ANDROID ARM | EDIT 5/11
88 ###################################
89 # Add android ndk toolchain
90 TOOLCHAIN_ANDROID_PATH =$(ANDROID_NDK_ROOT)/toolchains/$(ANDROID_COMPILER_PREFIX)*/prebuilt/linux-x86_64/bin/
91 CC_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-gcc
92 CXX_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-g++
93 AR_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-ar
94 LD_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-g++
95 WINDRES_ANDROID =
96
97 INC_ANDROID=$(INC) -I$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libcxx/include
98 INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/android/support/include
99 INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include
100 LIBDIR_ANDROID = -L$(WORKDIR)/../lib/android_$(ANDROID_ARCH)
101 LIBDIR_ANDROID += -L$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(ANDROID_ARCH_VER)
102 CFLAGS_ANDROID  = $(CFLAGS) --sysroot=$(ANDROID_NDK_ROOT)/platforms/$(ANDROID_PLATORM)/arch-$(ANDROID_ARCH) -D_ANDROID
103 RESINC_ANDROID =
104 LDFLAGS_ANDROID  =  $(LDFLAGS) -shared --sysroot=$(ANDROID_NDK_ROOT)/platforms/$(ANDROID_PLATORM)/arch-$(ANDROID_ARCH)
105 LIB_ANDROID  = $(LIB) -lc++ -lNX11 -lnano-X -lm -Wl,-Bdynamic -lallegro
106
107 ###################################
108 #RELEASE GCC SETTINGS | EDIT: 6/11
109 ###################################
110 INC_RELEASE_GCC = $(INC_GCC)
111 CFLAGS_RELEASE_GCC = $(CFLAGS_GCC) -O2
112 RESINC_RELEASE_GCC = $(RESINC_GCC)
113 RCFLAGS_RELEASE_GCC = $(RCFLAGS_GCC)
114 LIBDIR_RELEASE_GCC = $(LIBDIR_GCC)
115 LIB_RELEASE_GCC = $(LIB_GCC)
116 LDFLAGS_RELEASE_GCC = $(LDFLAGS_GCC) -s
117 OBJDIR_RELEASE_GCC = $(WORKDIR)/obj/Release_Linux
118 DEP_RELEASE_GCC =
119 OUT_RELEASE_GCC = $(WORKDIR)/bin/Release_Linux
120
121 ###################################
122 #DEBUG GCC SETTINGS | EDIT: 7/11
123 ###################################
124 INC_DEBUG_GCC = $(INC_GCC)
125 CFLAGS_DEBUG_GCC = $(CFLAGS_GCC) -g
126 RESINC_DEBUG_GCC = $(RESINC_GCC)
127 RCFLAGS_DEBUG_GCC = $(RCFLAGS_GCC)
128 LIBDIR_DEBUG_GCC = $(LIBDIR_GCC)
129 LIB_DEBUG_GCC = $(LIB_GCC)
130 LDFLAGS_DEBUG_GCC = $(LDFLAGS_GCC)
131 OBJDIR_DEBUG_GCC = $(WORKDIR)/obj/Debug_Linux
132 DEP_DEBUG_GCC =
133 OUT_DEBUG_GCC = $(WORKDIR)/bin/Debug_Linux
134
135 ###################################
136 #RELEASE MinGW SETTINGS | EDIT: 8/11
137 ###################################
138 INC_RELEASE_WIN = $(INC_WIN)
139 CFLAGS_RELEASE_WIN = $(CFLAGS_WIN) -O2
140 RESINC_RELEASE_WIN = $(RESINC_WIN)
141 RCFLAGS_RELEASE_WIN = $(RCFLAGS_WIN)
142 LIBDIR_RELEASE_WIN = $(LIBDIR_WIN)
143 LIB_RELEASE_WIN = $(LIB_WIN)
144 LDFLAGS_RELEASE_WIN = $(LDFLAGS_WIN) -s
145 OBJDIR_RELEASE_WIN = $(WORKDIR)/obj/Release_Windows
146 DEP_RELEASE_WIN =
147 OUT_RELEASE_WIN = $(WORKDIR)/bin/Release_Windows
148
149 ###################################
150 #DEBUG MinGW SETTINGS | EDIT: 9/11
151 ###################################
152 INC_DEBUG_WIN = $(INC_WIN)
153 CFLAGS_DEBUG_WIN = $(CFLAGS_WIN) -g
154 RESINC_DEBUG_WIN = $(RESINC_WIN)
155 RCFLAGS_DEBUG_WIN = $(RCFLAGS_WIN)
156 LIBDIR_DEBUG_WIN = $(LIBDIR_WIN)
157 LIB_DEBUG_WIN = $(LIB_WIN)
158 LDFLAGS_DEBUG_WIN = $(LDFLAGS_WIN)
159 OBJDIR_DEBUG_WIN = $(WORKDIR)/obj/Debug_Windows
160 DEP_DEBUG_WIN =
161 OUT_DEBUG_WIN = $(WORKDIR)/bin/Debug_Windows
162
163 ###################################
164 #RELEASE ANDROID SETTINGS | EDIT: 10/11
165 ###################################
166 INC_RELEASE_ANDROID = $(INC_ANDROID)
167 CFLAGS_RELEASE_ANDROID = $(CFLAGS_ANDROID) -O2
168 RESINC_RELEASE_ANDROID = $(RESINC_ANDROID)
169 RCFLAGS_RELEASE_ANDROID = $(RCFLAGS_ANDROID)
170 LIBDIR_RELEASE_ANDROID = $(LIBDIR_ANDROID)
171 LIB_RELEASE_ANDROID= $(LIB_ANDROID)
172 LDFLAGS_RELEASE_ANDROID = $(LDFLAGS_ANDROID) -s
173 OBJDIR_RELEASE_ANDROID = $(WORKDIR)/obj/Release_Android
174 DEP_RELEASE_ANDROID =
175 OUT_RELEASE_ANDROID = $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)
176
177 ###################################
178 #DEBUG ANDROID SETTINGS | EDIT: 11/11
179 ###################################
180 INC_DEBUG_ANDROID = $(INC_ANDROID)
181 CFLAGS_DEBUG_ANDROID = $(CFLAGS_ANDROID) -g
182 RESINC_DEBUG_ANDROID = $(RESINC_ANDROID)
183 RCFLAGS_DEBUG_ANDROID = $(RCFLAGS_ANDROID)
184 LIBDIR_DEBUG_ANDROID = $(LIBDIR_ANDROID)
185 LIB_DEBUG_ANDROID = $(LIB_ANDROID)
186 LDFLAGS_DEBUG_ANDROID = $(LDFLAGS_ANDROID)
187 OBJDIR_DEBUG_ANDROID = $(WORKDIR)/obj/Debug_Android
188 DEP_DEBUG_ANDROID =
189 OUT_DEBUG_ANDROID = $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)
190
191 ############################
192 #OBJECT LISTS | DO NOT EDIT!
193 ############################
194 OBJ_DEBUG_GCC = $(addprefix $(OBJDIR_DEBUG_GCC)/,$(SOURCES:%.cxx=%.o))
195 OBJ_RELEASE_GCC = $(addprefix $(OBJDIR_RELEASE_GCC)/,$(SOURCES:%.cxx=%.o))
196 OBJ_DEBUG_WIN = $(addprefix $(OBJDIR_DEBUG_WIN)/,$(SOURCES:%.cxx=%.o))
197 OBJ_RELEASE_WIN = $(addprefix $(OBJDIR_RELEASE_WIN)/,$(SOURCES:%.cxx=%.o))
198 OBJ_DEBUG_ANDROID = $(addprefix $(OBJDIR_DEBUG_ANDROID)/,$(SOURCES:%.cxx=%.o))
199 OBJ_RELEASE_ANDROID = $(addprefix $(OBJDIR_RELEASE_ANDROID)/,$(SOURCES:%.cxx=%.o))
200
201 ##########################
202 #FUNCTIONS | DO NOT EDIT!
203 ##########################
204
205 ######## General
206 all: make_fluid debug release
207 clean: clean_debug_linux clean_release_linux clean_debug_windows clean_release_windows clean_debug_android clean_release_android clean_android_apk
208 rebuild: clean debug release
209
210 debug Debug: debug_linux debug_windows debug_android android_apk
211 release Release:  release_linux release_windows release_android android_apk
212
213 make_fluid:
214         $(WORKDIR)/../tools/fluid -c $(WORKDIR)/ViewFluid.fld
215
216 ######## DEBUG GCC
217 before_debug_linux:
218         test -d $(OUT_DEBUG_GCC) || mkdir -p $(OUT_DEBUG_GCC)
219         test -d $(OBJDIR_DEBUG_GCC) || mkdir -p $(OBJDIR_DEBUG_GCC)
220
221 after_debug_linux:
222
223 debug_linux: before_debug_linux out_debug_linux after_debug_linux
224
225 out_debug_linux: before_debug_linux $(OBJ_DEBUG_GCC) $(DEP_DEBUG_GCC)
226         $(LD_GCC) $(LDFLAGS_DEBUG_GCC) $(LIBDIR_GCC) $(LIBDIR_DEBUG_GCC) $(OBJ_DEBUG_GCC) $(LIB_DEBUG_GCC)  -o $(OUT_DEBUG_GCC)/$(PROJNAME)
227
228 $(OBJDIR_DEBUG_GCC)/%.o: %.cxx
229         $(CXX_GCC) $(CFLAGS_DEBUG_GCC) $(INC_DEBUG_GCC) -c $< -D_DEBUG -o $@
230
231 clean_debug_linux:
232         rm -f $(OBJ_DEBUG_GCC) $(OUT_DEBUG_GCC)/$(PROJNAME)
233         rm -rf $(OUT_DEBUG_GCC)
234         rm -rf $(OBJDIR_DEBUG_GCC)
235
236 ######## RELEASE GCC
237 before_release_linux:
238         test -d $(OUT_RELEASE_GCC) || mkdir -p $(OUT_RELEASE_GCC)
239         test -d $(OBJDIR_RELEASE_GCC) || mkdir -p $(OBJDIR_RELEASE_GCC)
240
241 after_release_linux:
242
243 release_linux: before_release_linux out_release_linux after_release_linux
244
245 out_release_linux: before_release_linux $(OBJ_RELEASE_GCC) $(DEP_RELEASE_GCC)
246         $(LD_GCC) $(LDFLAGS_RELEASE_GCC) $(LIBDIR_GCC) $(LIBDIR_RELEASE_GCC) $(OBJ_RELEASE_GCC) $(LIB_RELEASE_GCC)  -o $(OUT_RELEASE_GCC)/$(PROJNAME)
247
248 $(OBJDIR_RELEASE_GCC)/%.o: %.cxx
249         $(CXX_GCC) $(CFLAGS_RELEASE_GCC) $(INC_RELEASE_GCC) -c $< -D_RELEASE -o $@
250
251 clean_release_linux:
252         rm -f $(OBJ_RELEASE_GCC) $(OUT_RELEASE_GCC)/$(PROJNAME)
253         rm -rf $(OUT_RELEASE_GCC)
254         rm -rf $(OBJDIR_RELEASE_GCC)
255
256 ######## DEBUG WIN
257 before_debug_windows:
258         test -d $(OUT_DEBUG_WIN) || mkdir -p $(OUT_DEBUG_WIN)
259         test -d $(OBJDIR_DEBUG_WIN) || mkdir -p $(OBJDIR_DEBUG_WIN)
260         $(WINDRES_WIN) main.rc $(OBJDIR_DEBUG_WIN)/mainres.o
261
262 after_debug_windows:
263
264 debug_windows: before_debug_windows out_debug_windows after_debug_windows
265
266 out_debug_windows: before_debug_windows $(OBJ_DEBUG_WIN) $(DEP_DEBUG_WIN)
267         $(LD_WIN) $(LDFLAGS_DEBUG_WIN) $(LIBDIR_WIN) $(LIBDIR_DEBUG_WIN) $(OBJ_DEBUG_WIN) $(OBJDIR_DEBUG_WIN)/mainres.o $(LIB_DEBUG_WIN)  -o $(OUT_DEBUG_WIN)/$(PROJNAME).exe
268
269 $(OBJDIR_DEBUG_WIN)/%.o: %.cxx
270         $(CXX_WIN) $(CFLAGS_DEBUG_WIN) $(INC_DEBUG_WIN) -c $< -D_DEBUG -o $@
271
272 clean_debug_windows:
273         rm -f $(OBJ_DEBUG_WIN) $(OUT_DEBUG_WIN)/$(PROJNAME).exe
274         rm -rf $(OUT_DEBUG_WIN)
275         rm -rf $(OBJDIR_DEBUG_WIN)
276
277 ######## RELEASE WIN
278 before_release_windows:
279         test -d $(OUT_RELEASE_WIN) || mkdir -p $(OUT_RELEASE_WIN)
280         test -d $(OBJDIR_RELEASE_WIN) || mkdir -p $(OBJDIR_RELEASE_WIN)
281         $(WINDRES_WIN) main.rc $(OBJDIR_RELEASE_WIN)/mainres.o
282
283 after_release_windows:
284
285 release_windows: before_release_windows out_release_windows after_release_windows
286
287 out_release_windows: before_release_windows $(OBJ_RELEASE_WIN) $(DEP_RELEASE_WIN)
288         $(LD_WIN) $(LDFLAGS_RELEASE_WIN) $(LIBDIR_WIN) $(LIBDIR_RELEASE_WIN) $(OBJ_RELEASE_WIN) $(OBJDIR_RELEASE_WIN)/mainres.o $(LIB_RELEASE_WIN)  -o $(OUT_RELEASE_WIN)/$(PROJNAME).exe
289
290 $(OBJDIR_RELEASE_WIN)/%.o: %.cxx
291         $(CXX_WIN) $(CFLAGS_RELEASE_WIN) $(INC_RELEASE_WIN) -c $< -D_RELEASE -o $@
292
293 clean_release_windows:
294         rm -f $(OBJ_RELEASE_WIN) $(OUT_RELEASE_WIN)/$(PROJNAME).exe
295         rm -rf $(OUT_RELEASE_WIN)
296         rm -rf $(OBJDIR_RELEASE_WIN)
297
298 ######## DEBUG ANDROID
299 before_debug_android:
300         test -d $(OUT_DEBUG_ANDROID) || mkdir -p $(OUT_DEBUG_ANDROID)
301         test -d $(OBJDIR_DEBUG_ANDROID) || mkdir -p $(OBJDIR_DEBUG_ANDROID)
302
303 after_debug_android:
304
305 debug_android: before_debug_android out_debug_android after_debug_android
306
307 out_debug_android: before_debug_android $(OBJ_DEBUG_ANDROID) $(DEP_DEBUG_ANDROID)
308         $(LD_ANDROID) $(LDFLAGS_DEBUG_ANDROID) $(LIBDIR_ANDROID) $(LIBDIR_DEBUG_ANDROID) $(OBJ_DEBUG_ANDROID) $(LIB_DEBUG_ANDROID)  -o $(OUT_DEBUG_ANDROID)/lib$(PROJNAME).so
309
310 $(OBJDIR_DEBUG_ANDROID)/%.o: %.cxx
311         $(CXX_ANDROID) $(CFLAGS_DEBUG_ANDROID) $(INC_DEBUG_ANDROID) -c $< -D_DEBUG -o $@
312
313 clean_debug_android:
314         rm -f $(OBJ_DEBUG_ANDROID) $(OUT_DEBUG_ANDROID)/$(PROJNAME)
315         rm -rf $(OUT_DEBUG_ANDROID)
316         rm -rf $(OBJDIR_DEBUG_ANDROID)
317
318 ######## RELEASE ANDROID ARM
319 before_release_android:
320         test -d $(OUT_RELEASE_ANDROID) || mkdir -p $(OUT_RELEASE_ANDROID)
321         test -d $(OBJDIR_RELEASE_ANDROID) || mkdir -p $(OBJDIR_RELEASE_ANDROID)
322
323 after_release_android:
324
325 release_android: before_release_android out_release_android after_release_android android_apk
326
327 out_release_android: before_release_android $(OBJ_RELEASE_ANDROID) $(DEP_RELEASE_ANDROID)
328         $(LD_ANDROID) $(LDFLAGS_RELEASE_ANDROID) $(LIBDIR_ANDROID) $(LIBDIR_RELEASE_ANDROID) $(OBJ_RELEASE_ANDROID) $(LIB_RELEASE_ANDROID)  -o $(OUT_RELEASE_ANDROID)/lib$(PROJNAME).so
329
330 $(OBJDIR_RELEASE_ANDROID)/%.o: %.cxx
331         $(CXX_ANDROID) $(CFLAGS_RELEASE_ANDROID) $(INC_RELEASE_ANDROID) -c $< -D_RELEASE -o $@
332
333 clean_release_android:
334         rm -f $(OBJ_RELEASE_ANDROID) $(OUT_RELEASE_ANDROID)/$(PROJNAME)
335         rm -rf $(OUT_RELEASE_ANDROID)
336         rm -rf $(OBJDIR_RELEASE_ANDROID)
337
338 ######## ANDROID APK
339 before_android_apk:
340         test -d $(OUT_ANDROID) || mkdir -p $(OUT_ANDROID)
341         test -d $(GENDIR_ANDROID) || mkdir -p $(GENDIR_ANDROID)
342         test -d $(CLASSDIR_ANDROID) || mkdir -p $(CLASSDIR_ANDROID)
343         test -d $(ANDROID_SRC)/res/mipmap-hdpi || mkdir -p $(ANDROID_SRC)/res/mipmap-hdpi
344         test -d $(ANDROID_SRC)/java/liballeg || mkdir -p $(ANDROID_SRC)/java/liballeg
345         cp $(WORKDIR)/../lib/android_arm/liballeg/* $(ANDROID_SRC)/java/liballeg
346         cp $(WORKDIR)/../lib/android_arm/liballegro.so $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)/
347         cp $(WORKDIR)/Icon.png $(ANDROID_SRC)/res/mipmap-hdpi/ic_launcher.png
348         $(AAPT) package -f -m -J $(GENDIR_ANDROID) -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP)
349
350 after_android_apk:
351         $(JARSIGNER) -keystore $(ANDROID_KEYSTORE_PATH) -storepass '$(ANDROID_KEYSTORE_PW)' $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned  $(ANDROID_KEYSTORE_NAME)
352         $(ZIPALIGN) -f 4 $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned  $(OUT_ANDROID)/$(PROJNAME).apk
353
354 android_apk: before_android_apk out_apk after_android_apk
355
356 out_apk: 
357         $(JAVAC) -classpath $(ANDROID_CP) -sourcepath 'src:$(GENDIR_ANDROID)' -d '$(CLASSDIR_ANDROID)' -target 1.7 -source 1.7 $(ANDROID_SOURCES)
358         $(DX) --dex --output=$(GENDIR_ANDROID)/classes.dex $(CLASSDIR_ANDROID)
359         $(AAPT) package -f -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP) -F $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned
360         cd $(GENDIR_ANDROID) && $(AAPT) add $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned classes.dex
361         cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/lib$(PROJNAME).so
362         cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/liballegro.so
363
364 clean_android_apk:
365         rm -rf $(OUT_ANDROID)
366         rm -rf $(GENDIR_ANDROID)
367         rm -rf $(CLASSDIR_ANDROID)
368         rm -rf $(ANDROID_SRC)/java/liballeg
369         rm -rf $(ANDROID_SRC)/res/mipmap-hdpi
370
371 apk_install_adb:
372         $(ADB) get-state 1>/dev/null 2>&1 && $(ADB) install -r $(OUT_ANDROID)/$(PROJNAME).apk
373
374 generate_android_toolchain:
375         $(ANDROID_NDK_ROOT)/build/tools/make_standalone_toolchain.py --api=$(ANDROID_PLATORM_VERSION) --install-dir=$(WORKDIR)/android_$(ANDROID_ARCH)_toolchain --arch=$(ANDROID_ARCH)
376
377 .PHONY: before_debug_linux out_debug_linux after_debug_linux before_release_linux out_release_linux after_release_linux before_debug_windows out_debug_windows after_debug_windows
378 .PHONY: before_debug_android out_debug_android after_debug_android before_release_android out_release_android after_release_android before_release_windows out_release_windows after_release_windows