1 ############################################################################
3 # Author: Daniel Giritzer, S1810567004 (daniel@giritzer.eu)
5 # Description: Universal Makefile for Unix based Operating Systems
6 ############################################################################
8 ###################################
10 ###################################
11 WORKDIR = $(shell pwd)
12 SOURCES := $(shell ls *.cxx)
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 -lfreetype
20 ###################################
22 ###################################
30 LIBDIR_LINUX32 = -L$(WORKDIR)/../lib/linux32
31 CFLAGS_LINUX32 = -m32 $(CFLAGS)
33 LDFLAGS_LINUX32 = $(LDFLAGS)
34 LIB_LINUX32 = -m32 $(LIB) -lm -lX11 -lxcb -lXau -lXdmcp -Wl,-Bdynamic -lpthread -lrt -ldl
36 ###################################
38 ###################################
39 CC_LINUXARM = arm-linux-gnueabihf-gcc
40 CXX_LINUXARM = arm-linux-gnueabihf-g++
41 AR_LINUXARM = arm-linux-gnueabihf-ar
42 LD_LINUXARM = arm-linux-gnueabihf-g++
46 LIBDIR_LINUXARM = -L$(WORKDIR)/../lib/linux_arm
47 CFLAGS_LINUXARM = $(CFLAGS)
49 LDFLAGS_LINUXARM = $(LDFLAGS)
50 LIB_LINUXARM = $(LIB) -lm -Wl,-Bdynamic -lX11 -lxcb -lXau -lXdmcp -lpthread -lrt -ldl
52 ###################################
54 ###################################
55 CC_WIN = i686-w64-mingw32-gcc
56 CXX_WIN = i686-w64-mingw32-g++
57 AR_WIN = i686-w64-mingw32-ar
58 LD_WIN = i686-w64-mingw32-g++
59 WINDRES_WIN = i686-w64-mingw32-windres
62 LIBDIR_WIN = -L$(WORKDIR)/../lib/mingw32
63 CFLAGS_WIN = -m32 $(CFLAGS) -mwindows -DWIN32 -D_WIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
65 LDFLAGS_WIN = $(LDFLAGS) -static
66 LIB_WIN = -m32 $(LIB) -mwindows -lole32 -luuid -lcomctl32 -lpthread
68 ###################################
70 ###################################
71 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
72 ANDROID_SDK_ROOT=/usr/lib/android-sdk
73 ANDROID_NDK_ROOT=/usr/lib/android-ndk
74 ANDROID_BUILD_TOOLS_VERSION=debian
75 ANDROID_PLATORM_VERSION=23
76 ANDROID_KEYSTORE_PATH=~/.android/debug.keystore
77 ANDROID_KEYSTORE_NAME=androiddebugkey
78 ANDROID_KEYSTORE_PW=android
80 ANDROID_ARCH_VER=armeabi-v7a
81 ANDROID_COMPILER_PREFIX=arm-linux-androideabi
83 # dependent on values above
84 ANDROID_PLATORM=android-$(ANDROID_PLATORM_VERSION)
85 ANDROID_CP=$(ANDROID_SDK_ROOT)/platforms/$(ANDROID_PLATORM)/android.jar
86 ADB=$(ANDROID_SDK_ROOT)/platform-tools/adb
87 AAPT=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/aapt
88 DX=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/dx
89 ZIPALIGN=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/zipalign
90 JAVAC=$(JAVA_HOME)/bin/javac
91 JARSIGNER=$(JAVA_HOME)/bin/jarsigner
93 # Android app src subdirectory
94 ANDROID_SRC=$(WORKDIR)/android-src
95 ANDROID_SOURCES=$(shell find $(ANDROID_SRC) -name *.java)
98 GENDIR_ANDROID=$(WORKDIR)/obj/Android/gen
99 CLASSDIR_ANDROID=$(WORKDIR)/obj/Android/class
100 OUT_ANDROID=$(WORKDIR)/bin/Android
102 ###################################
103 # ANDROID ARM | EDIT 6/14
104 ###################################
105 # Add android ndk toolchain
106 TOOLCHAIN_ANDROID_PATH =$(ANDROID_NDK_ROOT)/toolchains/$(ANDROID_COMPILER_PREFIX)*/prebuilt/linux-x86_64/bin/
107 CC_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-gcc
108 CXX_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-g++
109 AR_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-ar
110 LD_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-g++
113 INC_ANDROID=$(INC) -I$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libcxx/include
114 INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/android/support/include
115 INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include
116 LIBDIR_ANDROID = -L$(WORKDIR)/../lib/android_$(ANDROID_ARCH)
117 LIBDIR_ANDROID += -L$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(ANDROID_ARCH_VER)
118 CFLAGS_ANDROID = $(CFLAGS) --sysroot=$(ANDROID_NDK_ROOT)/platforms/$(ANDROID_PLATORM)/arch-$(ANDROID_ARCH) -D_ANDROID
120 LDFLAGS_ANDROID = $(LDFLAGS) -shared --sysroot=$(ANDROID_NDK_ROOT)/platforms/$(ANDROID_PLATORM)/arch-$(ANDROID_ARCH)
121 LIB_ANDROID = $(LIB) -lc++ -lNX11 -lnano-X -lm -Wl,-Bdynamic -lallegro
123 ###################################
124 #RELEASE LINUX32 SETTINGS | EDIT: 7/14
125 ###################################
126 INC_RELEASE_LINUX32 = $(INC_LINUX32)
127 CFLAGS_RELEASE_LINUX32 = $(CFLAGS_LINUX32) -O2
128 RESINC_RELEASE_LINUX32 = $(RESINC_LINUX32)
129 RCFLAGS_RELEASE_LINUX32 = $(RCFLAGS_LINUX32)
130 LIBDIR_RELEASE_LINUX32 = $(LIBDIR_LINUX32)
131 LIB_RELEASE_LINUX32 = $(LIB_LINUX32)
132 LDFLAGS_RELEASE_LINUX32 = $(LDFLAGS_LINUX32) -s
133 OBJDIR_RELEASE_LINUX32 = $(WORKDIR)/obj/Release_Linux32
134 DEP_RELEASE_LINUX32 =
135 OUT_RELEASE_LINUX32 = $(WORKDIR)/bin/Release_Linux32
137 ###################################
138 #DEBUG LINUX32 SETTINGS | EDIT: 8/14
139 ###################################
140 INC_DEBUG_LINUX32 = $(INC_LINUX32)
141 CFLAGS_DEBUG_LINUX32 = $(CFLAGS_LINUX32) -g
142 RESINC_DEBUG_LINUX32 = $(RESINC_LINUX32)
143 RCFLAGS_DEBUG_LINUX32 = $(RCFLAGS_LINUX32)
144 LIBDIR_DEBUG_LINUX32 = $(LIBDIR_LINUX32)
145 LIB_DEBUG_LINUX32 = $(LIB_LINUX32)
146 LDFLAGS_DEBUG_LINUX32 = $(LDFLAGS_LINUX32)
147 OBJDIR_DEBUG_LINUX32 = $(WORKDIR)/obj/Debug_Linux32
149 OUT_DEBUG_LINUX32 = $(WORKDIR)/bin/Debug_Linux32
151 ###################################
152 #RELEASE LINUXARM SETTINGS | EDIT: 9/14
153 ###################################
154 INC_RELEASE_LINUXARM = $(INC_LINUXARM)
155 CFLAGS_RELEASE_LINUXARM = $(CFLAGS_LINUXARM) -O2
156 RESINC_RELEASE_LINUXARM = $(RESINC_LINUXARM)
157 RCFLAGS_RELEASE_LINUXARM = $(RCFLAGS_LINUXARM)
158 LIBDIR_RELEASE_LINUXARM = $(LIBDIR_LINUXARM)
159 LIB_RELEASE_LINUXARM = $(LIB_LINUXARM)
160 LDFLAGS_RELEASE_LINUXARM = $(LDFLAGS_LINUXARM) -s
161 OBJDIR_RELEASE_LINUXARM = $(WORKDIR)/obj/Release_LinuxARM
162 DEP_RELEASE_LINUXARM =
163 OUT_RELEASE_LINUXARM = $(WORKDIR)/bin/Release_LinuxARM
165 ###################################
166 #DEBUG LINUXARM SETTINGS | EDIT: 10/14
167 ###################################
168 INC_DEBUG_LINUXARM = $(INC_LINUXARM)
169 CFLAGS_DEBUG_LINUXARM = $(CFLAGS_LINUXARM) -g
170 RESINC_DEBUG_LINUXARM = $(RESINC_LINUXARM)
171 RCFLAGS_DEBUG_LINUXARM = $(RCFLAGS_LINUXARM)
172 LIBDIR_DEBUG_LINUXARM = $(LIBDIR_LINUXARM)
173 LIB_DEBUG_LINUXARM = $(LIB_LINUXARM)
174 LDFLAGS_DEBUG_LINUXARM = $(LDFLAGS_LINUXARM)
175 OBJDIR_DEBUG_LINUXARM = $(WORKDIR)/obj/Debug_LinuxARM
177 OUT_DEBUG_LINUXARM = $(WORKDIR)/bin/Debug_LinuxARM
179 ###################################
180 #RELEASE MinGW SETTINGS | EDIT: 11/14
181 ###################################
182 INC_RELEASE_WIN = $(INC_WIN)
183 CFLAGS_RELEASE_WIN = $(CFLAGS_WIN) -O2
184 RESINC_RELEASE_WIN = $(RESINC_WIN)
185 RCFLAGS_RELEASE_WIN = $(RCFLAGS_WIN)
186 LIBDIR_RELEASE_WIN = $(LIBDIR_WIN)
187 LIB_RELEASE_WIN = $(LIB_WIN)
188 LDFLAGS_RELEASE_WIN = $(LDFLAGS_WIN) -s
189 OBJDIR_RELEASE_WIN = $(WORKDIR)/obj/Release_Windows
191 OUT_RELEASE_WIN = $(WORKDIR)/bin/Release_Windows
193 ###################################
194 #DEBUG MinGW SETTINGS | EDIT: 12/14
195 ###################################
196 INC_DEBUG_WIN = $(INC_WIN)
197 CFLAGS_DEBUG_WIN = $(CFLAGS_WIN) -g
198 RESINC_DEBUG_WIN = $(RESINC_WIN)
199 RCFLAGS_DEBUG_WIN = $(RCFLAGS_WIN)
200 LIBDIR_DEBUG_WIN = $(LIBDIR_WIN)
201 LIB_DEBUG_WIN = $(LIB_WIN)
202 LDFLAGS_DEBUG_WIN = $(LDFLAGS_WIN)
203 OBJDIR_DEBUG_WIN = $(WORKDIR)/obj/Debug_Windows
205 OUT_DEBUG_WIN = $(WORKDIR)/bin/Debug_Windows
207 ###################################
208 #RELEASE ANDROID SETTINGS | EDIT: 13/14
209 ###################################
210 INC_RELEASE_ANDROID = $(INC_ANDROID)
211 CFLAGS_RELEASE_ANDROID = $(CFLAGS_ANDROID) -O2
212 RESINC_RELEASE_ANDROID = $(RESINC_ANDROID)
213 RCFLAGS_RELEASE_ANDROID = $(RCFLAGS_ANDROID)
214 LIBDIR_RELEASE_ANDROID = $(LIBDIR_ANDROID)
215 LIB_RELEASE_ANDROID= $(LIB_ANDROID)
216 LDFLAGS_RELEASE_ANDROID = $(LDFLAGS_ANDROID) -s
217 OBJDIR_RELEASE_ANDROID = $(WORKDIR)/obj/Release_Android
218 DEP_RELEASE_ANDROID =
219 OUT_RELEASE_ANDROID = $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)
221 ###################################
222 #DEBUG ANDROID SETTINGS | EDIT: 14/14
223 ###################################
224 INC_DEBUG_ANDROID = $(INC_ANDROID)
225 CFLAGS_DEBUG_ANDROID = $(CFLAGS_ANDROID) -g
226 RESINC_DEBUG_ANDROID = $(RESINC_ANDROID)
227 RCFLAGS_DEBUG_ANDROID = $(RCFLAGS_ANDROID)
228 LIBDIR_DEBUG_ANDROID = $(LIBDIR_ANDROID)
229 LIB_DEBUG_ANDROID = $(LIB_ANDROID)
230 LDFLAGS_DEBUG_ANDROID = $(LDFLAGS_ANDROID)
231 OBJDIR_DEBUG_ANDROID = $(WORKDIR)/obj/Debug_Android
233 OUT_DEBUG_ANDROID = $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)
235 ############################
236 #OBJECT LISTS | DO NOT EDIT!
237 ############################
238 OBJ_DEBUG_LINUX32 = $(addprefix $(OBJDIR_DEBUG_LINUX32)/,$(SOURCES:%.cxx=%.o))
239 OBJ_RELEASE_LINUX32 = $(addprefix $(OBJDIR_RELEASE_LINUX32)/,$(SOURCES:%.cxx=%.o))
240 OBJ_DEBUG_LINUXARM = $(addprefix $(OBJDIR_DEBUG_LINUXARM)/,$(SOURCES:%.cxx=%.o))
241 OBJ_RELEASE_LINUXARM = $(addprefix $(OBJDIR_RELEASE_LINUXARM)/,$(SOURCES:%.cxx=%.o))
242 OBJ_DEBUG_WIN = $(addprefix $(OBJDIR_DEBUG_WIN)/,$(SOURCES:%.cxx=%.o))
243 OBJ_RELEASE_WIN = $(addprefix $(OBJDIR_RELEASE_WIN)/,$(SOURCES:%.cxx=%.o))
244 OBJ_DEBUG_ANDROID = $(addprefix $(OBJDIR_DEBUG_ANDROID)/,$(SOURCES:%.cxx=%.o))
245 OBJ_RELEASE_ANDROID = $(addprefix $(OBJDIR_RELEASE_ANDROID)/,$(SOURCES:%.cxx=%.o))
247 ##########################
248 #FUNCTIONS | DO NOT EDIT!
249 ##########################
252 all: make_fluid debug release
253 clean: clean_debug_linux32 clean_release_linux32 clean_debug_linuxarm clean_release_linuxarm clean_debug_windows clean_release_windows clean_debug_android clean_release_android clean_android_apk
254 rebuild: clean debug release
256 debug Debug: debug_linux32 debug_linuxarm debug_windows debug_android android_apk
257 release Release: release_linux32 release_linuxarm release_windows release_android android_apk
260 $(WORKDIR)/../tools/fluid -c $(WORKDIR)/ViewFluid.fld
262 ######## DEBUG LINUX32
263 before_debug_linux32:
264 test -d $(OUT_DEBUG_LINUX32) || mkdir -p $(OUT_DEBUG_LINUX32)
265 test -d $(OBJDIR_DEBUG_LINUX32) || mkdir -p $(OBJDIR_DEBUG_LINUX32)
269 debug_linux32: before_debug_linux32 out_debug_linux32 after_debug_linux32
271 out_debug_linux32: before_debug_linux32 $(OBJ_DEBUG_LINUX32) $(DEP_DEBUG_LINUX32)
272 $(LD_LINUX32) $(LDFLAGS_DEBUG_LINUX32) $(LIBDIR_LINUX32) $(LIBDIR_DEBUG_LINUX32) $(OBJ_DEBUG_LINUX32) $(LIB_DEBUG_LINUX32) -o $(OUT_DEBUG_LINUX32)/$(PROJNAME)
274 $(OBJDIR_DEBUG_LINUX32)/%.o: %.cxx
275 $(CXX_LINUX32) $(CFLAGS_DEBUG_LINUX32) $(INC_DEBUG_LINUX32) -c $< -D_DEBUG -o $@
278 rm -f $(OBJ_DEBUG_LINUX32) $(OUT_DEBUG_LINUX32)/$(PROJNAME)
279 rm -rf $(OUT_DEBUG_LINUX32)
280 rm -rf $(OBJDIR_DEBUG_LINUX32)
282 ######## RELEASE LINUX32
283 before_release_linux32:
284 test -d $(OUT_RELEASE_LINUX32) || mkdir -p $(OUT_RELEASE_LINUX32)
285 test -d $(OBJDIR_RELEASE_LINUX32) || mkdir -p $(OBJDIR_RELEASE_LINUX32)
287 after_release_linux32:
289 release_linux32: before_release_linux32 out_release_linux32 after_release_linux32
291 out_release_linux32: before_release_linux32 $(OBJ_RELEASE_LINUX32) $(DEP_RELEASE_LINUX32)
292 $(LD_LINUX32) $(LDFLAGS_RELEASE_LINUX32) $(LIBDIR_LINUX32) $(LIBDIR_RELEASE_LINUX32) $(OBJ_RELEASE_LINUX32) $(LIB_RELEASE_LINUX32) -o $(OUT_RELEASE_LINUX32)/$(PROJNAME)
294 $(OBJDIR_RELEASE_LINUX32)/%.o: %.cxx
295 $(CXX_LINUX32) $(CFLAGS_RELEASE_LINUX32) $(INC_RELEASE_LINUX32) -c $< -D_RELEASE -o $@
297 clean_release_linux32:
298 rm -f $(OBJ_RELEASE_LINUX32) $(OUT_RELEASE_LINUX32)/$(PROJNAME)
299 rm -rf $(OUT_RELEASE_LINUX32)
300 rm -rf $(OBJDIR_RELEASE_LINUX32)
302 ######## DEBUG LINUXARM
303 before_debug_linuxarm:
304 test -d $(OUT_DEBUG_LINUXARM) || mkdir -p $(OUT_DEBUG_LINUXARM)
305 test -d $(OBJDIR_DEBUG_LINUXARM) || mkdir -p $(OBJDIR_DEBUG_LINUXARM)
307 after_debug_linuxarm:
309 debug_linuxarm: before_debug_linuxarm out_debug_linuxarm after_debug_linuxarm
311 out_debug_linuxarm: before_debug_linuxarm $(OBJ_DEBUG_LINUXARM) $(DEP_DEBUG_LINUXARM)
312 $(LD_LINUXARM) $(LDFLAGS_DEBUG_LINUXARM) $(LIBDIR_LINUXARM) $(LIBDIR_DEBUG_LINUXARM) $(OBJ_DEBUG_LINUXARM) $(LIB_DEBUG_LINUXARM) -o $(OUT_DEBUG_LINUXARM)/$(PROJNAME)
314 $(OBJDIR_DEBUG_LINUXARM)/%.o: %.cxx
315 $(CXX_LINUXARM) $(CFLAGS_DEBUG_LINUXARM) $(INC_DEBUG_LINUXARM) -c $< -D_DEBUG -o $@
317 clean_debug_linuxarm:
318 rm -f $(OBJ_DEBUG_LINUXARM) $(OUT_DEBUG_LINUXARM)/$(PROJNAME)
319 rm -rf $(OUT_DEBUG_LINUXARM)
320 rm -rf $(OBJDIR_DEBUG_LINUXARM)
322 ######## RELEASE LINUXARM
323 before_release_linuxarm:
324 test -d $(OUT_RELEASE_LINUXARM) || mkdir -p $(OUT_RELEASE_LINUXARM)
325 test -d $(OBJDIR_RELEASE_LINUXARM) || mkdir -p $(OBJDIR_RELEASE_LINUXARM)
327 after_release_linuxarm:
329 release_linuxarm: before_release_linuxarm out_release_linuxarm after_release_linuxarm
331 out_release_linuxarm: before_release_linuxarm $(OBJ_RELEASE_LINUXARM) $(DEP_RELEASE_LINUXARM)
332 $(LD_LINUXARM) $(LDFLAGS_RELEASE_LINUXARM) $(LIBDIR_LINUXARM) $(LIBDIR_RELEASE_LINUXARM) $(OBJ_RELEASE_LINUXARM) $(LIB_RELEASE_LINUXARM) -o $(OUT_RELEASE_LINUXARM)/$(PROJNAME)
334 $(OBJDIR_RELEASE_LINUXARM)/%.o: %.cxx
335 $(CXX_LINUXARM) $(CFLAGS_RELEASE_LINUXARM) $(INC_RELEASE_LINUXARM) -c $< -D_RELEASE -o $@
337 clean_release_linuxarm:
338 rm -f $(OBJ_RELEASE_LINUXARM) $(OUT_RELEASE_LINUXARM)/$(PROJNAME)
339 rm -rf $(OUT_RELEASE_LINUXARM)
340 rm -rf $(OBJDIR_RELEASE_LINUXARM)
343 before_debug_windows:
344 test -d $(OUT_DEBUG_WIN) || mkdir -p $(OUT_DEBUG_WIN)
345 test -d $(OBJDIR_DEBUG_WIN) || mkdir -p $(OBJDIR_DEBUG_WIN)
346 $(WINDRES_WIN) main.rc $(OBJDIR_DEBUG_WIN)/mainres.o
350 debug_windows: before_debug_windows out_debug_windows after_debug_windows
352 out_debug_windows: before_debug_windows $(OBJ_DEBUG_WIN) $(DEP_DEBUG_WIN)
353 $(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
355 $(OBJDIR_DEBUG_WIN)/%.o: %.cxx
356 $(CXX_WIN) $(CFLAGS_DEBUG_WIN) $(INC_DEBUG_WIN) -c $< -D_DEBUG -o $@
359 rm -f $(OBJ_DEBUG_WIN) $(OUT_DEBUG_WIN)/$(PROJNAME).exe
360 rm -rf $(OUT_DEBUG_WIN)
361 rm -rf $(OBJDIR_DEBUG_WIN)
364 before_release_windows:
365 test -d $(OUT_RELEASE_WIN) || mkdir -p $(OUT_RELEASE_WIN)
366 test -d $(OBJDIR_RELEASE_WIN) || mkdir -p $(OBJDIR_RELEASE_WIN)
367 $(WINDRES_WIN) main.rc $(OBJDIR_RELEASE_WIN)/mainres.o
369 after_release_windows:
371 release_windows: before_release_windows out_release_windows after_release_windows
373 out_release_windows: before_release_windows $(OBJ_RELEASE_WIN) $(DEP_RELEASE_WIN)
374 $(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
376 $(OBJDIR_RELEASE_WIN)/%.o: %.cxx
377 $(CXX_WIN) $(CFLAGS_RELEASE_WIN) $(INC_RELEASE_WIN) -c $< -D_RELEASE -o $@
379 clean_release_windows:
380 rm -f $(OBJ_RELEASE_WIN) $(OUT_RELEASE_WIN)/$(PROJNAME).exe
381 rm -rf $(OUT_RELEASE_WIN)
382 rm -rf $(OBJDIR_RELEASE_WIN)
384 ######## DEBUG ANDROID
385 before_debug_android:
386 test -d $(OUT_DEBUG_ANDROID) || mkdir -p $(OUT_DEBUG_ANDROID)
387 test -d $(OBJDIR_DEBUG_ANDROID) || mkdir -p $(OBJDIR_DEBUG_ANDROID)
391 debug_android: before_debug_android out_debug_android after_debug_android
393 out_debug_android: before_debug_android $(OBJ_DEBUG_ANDROID) $(DEP_DEBUG_ANDROID)
394 $(LD_ANDROID) $(LDFLAGS_DEBUG_ANDROID) $(LIBDIR_ANDROID) $(LIBDIR_DEBUG_ANDROID) $(OBJ_DEBUG_ANDROID) $(LIB_DEBUG_ANDROID) -o $(OUT_DEBUG_ANDROID)/lib$(PROJNAME).so
396 $(OBJDIR_DEBUG_ANDROID)/%.o: %.cxx
397 $(CXX_ANDROID) $(CFLAGS_DEBUG_ANDROID) $(INC_DEBUG_ANDROID) -c $< -D_DEBUG -o $@
400 rm -f $(OBJ_DEBUG_ANDROID) $(OUT_DEBUG_ANDROID)/$(PROJNAME)
401 rm -rf $(OUT_DEBUG_ANDROID)
402 rm -rf $(OBJDIR_DEBUG_ANDROID)
404 ######## RELEASE ANDROID ARM
405 before_release_android:
406 test -d $(OUT_RELEASE_ANDROID) || mkdir -p $(OUT_RELEASE_ANDROID)
407 test -d $(OBJDIR_RELEASE_ANDROID) || mkdir -p $(OBJDIR_RELEASE_ANDROID)
409 after_release_android:
411 release_android: before_release_android out_release_android after_release_android android_apk
413 out_release_android: before_release_android $(OBJ_RELEASE_ANDROID) $(DEP_RELEASE_ANDROID)
414 $(LD_ANDROID) $(LDFLAGS_RELEASE_ANDROID) $(LIBDIR_ANDROID) $(LIBDIR_RELEASE_ANDROID) $(OBJ_RELEASE_ANDROID) $(LIB_RELEASE_ANDROID) -o $(OUT_RELEASE_ANDROID)/lib$(PROJNAME).so
416 $(OBJDIR_RELEASE_ANDROID)/%.o: %.cxx
417 $(CXX_ANDROID) $(CFLAGS_RELEASE_ANDROID) $(INC_RELEASE_ANDROID) -c $< -D_RELEASE -o $@
419 clean_release_android:
420 rm -f $(OBJ_RELEASE_ANDROID) $(OUT_RELEASE_ANDROID)/$(PROJNAME)
421 rm -rf $(OUT_RELEASE_ANDROID)
422 rm -rf $(OBJDIR_RELEASE_ANDROID)
426 test -d $(OUT_ANDROID) || mkdir -p $(OUT_ANDROID)
427 test -d $(GENDIR_ANDROID) || mkdir -p $(GENDIR_ANDROID)
428 test -d $(CLASSDIR_ANDROID) || mkdir -p $(CLASSDIR_ANDROID)
429 test -d $(ANDROID_SRC)/res/mipmap-hdpi || mkdir -p $(ANDROID_SRC)/res/mipmap-hdpi
430 test -d $(ANDROID_SRC)/java/liballeg || mkdir -p $(ANDROID_SRC)/java/liballeg
431 cp -r $(WORKDIR)/../lib/android_arm/liballeg/* $(ANDROID_SRC)/java/liballeg
432 cp $(WORKDIR)/../lib/android_arm/liballegro.so $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)/
433 cp $(WORKDIR)/Icon.png $(ANDROID_SRC)/res/mipmap-hdpi/ic_launcher.png
434 $(AAPT) package -f -m -J $(GENDIR_ANDROID) -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP)
437 $(JARSIGNER) -keystore $(ANDROID_KEYSTORE_PATH) -storepass '$(ANDROID_KEYSTORE_PW)' $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned $(ANDROID_KEYSTORE_NAME)
438 $(ZIPALIGN) -f 4 $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned $(OUT_ANDROID)/$(PROJNAME).apk
440 android_apk: before_android_apk out_apk after_android_apk
443 $(JAVAC) -classpath $(ANDROID_CP) -sourcepath 'src:$(GENDIR_ANDROID)' -d '$(CLASSDIR_ANDROID)' -target 1.7 -source 1.7 $(ANDROID_SOURCES)
444 $(DX) --dex --output=$(GENDIR_ANDROID)/classes.dex $(CLASSDIR_ANDROID)
445 $(AAPT) package -f -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP) -F $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned
446 cd $(GENDIR_ANDROID) && $(AAPT) add $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned classes.dex
447 cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/lib$(PROJNAME).so
448 cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/liballegro.so
451 rm -rf $(OUT_ANDROID)
452 rm -rf $(GENDIR_ANDROID)
453 rm -rf $(CLASSDIR_ANDROID)
454 rm -rf $(ANDROID_SRC)/java/liballeg
455 rm -rf $(ANDROID_SRC)/res/mipmap-hdpi
458 $(ADB) get-state 1>/dev/null 2>&1 && $(ADB) install -r $(OUT_ANDROID)/$(PROJNAME).apk
460 generate_android_toolchain:
461 $(ANDROID_NDK_ROOT)/build/tools/make_standalone_toolchain.py --api=$(ANDROID_PLATORM_VERSION) --install-dir=$(WORKDIR)/android_$(ANDROID_ARCH)_toolchain --arch=$(ANDROID_ARCH)
463 .PHONY: before_debug_linux32 out_debug_linux32 after_debug_linux32 before_release_linux32 out_release_linux32 after_release_linux32 before_debug_windows out_debug_windows after_debug_windows
464 .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
465 .PHONY: before_debug_linuxarm out_debug_linuxarm after_debug_linuxarm before_release_linuxarm out_release_linuxarm after_release_linuxarm