############################################################################ # Workfile: Makefile # Author: Daniel Giritzer, S1810567004 (daniel@giritzer.eu) # Date: 03.12.2018 # Description: Universal Makefile for Unix based Operating Systems ############################################################################ ################################### #GENERAL | EDIT 1/14 ################################### WORKDIR = $(shell pwd) SOURCES := $(shell ls *.cxx) PROJNAME = _template LIBDIR = INC = -I$(WORKDIR)/../include/ LDFLAGS = -std=c++11 -static-libstdc++ -static-libgcc -Wl,-Bstatic CFLAGS = -Wall -fexceptions -std=c++11 -static-libstdc++ -static-libgcc LIB = -lfltk_images -lfltk_png -lfltk_z -lfltk_jpeg -lfltk -lfreetype ################################### #LINUX32 | EDIT 2/14 ################################### CC_LINUX32 = gcc CXX_LINUX32 = g++ AR_LINUX32 = ar LD_LINUX32 = g++ WINDRES_LINUX32 = INC_LINUX32 = $(INC) -I$(WORKDIR)/../lib_include/linux32 LIBDIR_LINUX32 = -L$(WORKDIR)/../lib/linux32 CFLAGS_LINUX32 = -m32 $(CFLAGS) RESINC_LINUX32 = LDFLAGS_LINUX32 = -m32 $(LDFLAGS) LIB_LINUX32 = $(LIB) -lm -lX11 -lxcb -lXau -lXdmcp -Wl,-Bdynamic -lpthread -lrt -ldl ################################### #LINUXARM | EDIT 3/14 ################################### CC_LINUXARM = arm-linux-gnueabihf-gcc CXX_LINUXARM = arm-linux-gnueabihf-g++ AR_LINUXARM = arm-linux-gnueabihf-ar LD_LINUXARM = arm-linux-gnueabihf-g++ WINDRES_LINUXARM = INC_LINUXARM = $(INC) -I$(WORKDIR)/../lib_include/linux_arm LIBDIR_LINUXARM = -L$(WORKDIR)/../lib/linux_arm CFLAGS_LINUXARM = $(CFLAGS) RESINC_LINUXARM = LDFLAGS_LINUXARM = $(LDFLAGS) LIB_LINUXARM = $(LIB) -lm -Wl,-Bdynamic -lX11 -lxcb -lXau -lXdmcp -lpthread -lrt -ldl ################################### #MinGW | EDIT 4/14 ################################### CC_WIN = i686-w64-mingw32-gcc CXX_WIN = i686-w64-mingw32-g++ AR_WIN = i686-w64-mingw32-ar LD_WIN = i686-w64-mingw32-g++ WINDRES_WIN = i686-w64-mingw32-windres INC_WIN = $(INC) -I$(WORKDIR)/../lib_include/mingw32 LIBDIR_WIN = -L$(WORKDIR)/../lib/mingw32 CFLAGS_WIN = -m32 $(CFLAGS) -mwindows -DWIN32 -D_WIN32 -DUSE_OPENGL32 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 RESINC_WIN = $(WORKDIR)/appinfo LDFLAGS_WIN = -m32 $(LDFLAGS) -mwindows -static LIB_WIN = $(LIB) -lole32 -luuid -lcomctl32 -lpthread ################################### # ANDROID | EDIT 5/14 ################################### JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 ANDROID_SDK_ROOT=/usr/lib/android-sdk ANDROID_NDK_ROOT=/usr/lib/android-ndk ANDROID_BUILD_TOOLS_VERSION=debian ANDROID_PLATORM_VERSION=23 ANDROID_KEYSTORE_PATH=~/.android/debug.keystore ANDROID_KEYSTORE_NAME=androiddebugkey ANDROID_KEYSTORE_PW=android ANDROID_ARCH=arm ANDROID_ARCH_VER=armeabi-v7a ANDROID_COMPILER_PREFIX=arm-linux-androideabi # dependent on values above ANDROID_PLATORM=android-$(ANDROID_PLATORM_VERSION) ANDROID_CP=$(ANDROID_SDK_ROOT)/platforms/$(ANDROID_PLATORM)/android.jar ADB=$(ANDROID_SDK_ROOT)/platform-tools/adb AAPT=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/aapt DX=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/dx ZIPALIGN=$(ANDROID_SDK_ROOT)/build-tools/$(ANDROID_BUILD_TOOLS_VERSION)/zipalign JAVAC=$(JAVA_HOME)/bin/javac JARSIGNER=$(JAVA_HOME)/bin/jarsigner # Android app src subdirectory ANDROID_SRC=$(WORKDIR)/android ANDROID_SOURCES=$(shell find $(ANDROID_SRC) -name *.java) # output dirs GENDIR_ANDROID=$(WORKDIR)/obj/Android/gen CLASSDIR_ANDROID=$(WORKDIR)/obj/Android/class OUT_ANDROID=$(WORKDIR)/bin/Android ################################### # ANDROID ARM | EDIT 6/14 ################################### # Add android ndk toolchain TOOLCHAIN_ANDROID_PATH =$(ANDROID_NDK_ROOT)/toolchains/$(ANDROID_COMPILER_PREFIX)*/prebuilt/linux-x86_64/bin/ CC_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-gcc CXX_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-g++ AR_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-ar LD_ANDROID = $(TOOLCHAIN_ANDROID_PATH)/$(ANDROID_COMPILER_PREFIX)-g++ WINDRES_ANDROID = INC_ANDROID=$(INC) -I$(WORKDIR)/../lib_include/android_arm INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libcxx/include INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/android/support/include INC_ANDROID+=-I$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++abi/libcxxabi/include LIBDIR_ANDROID = -L$(WORKDIR)/../lib/android_$(ANDROID_ARCH) LIBDIR_ANDROID += -L$(ANDROID_NDK_ROOT)/sources/cxx-stl/llvm-libc++/libs/$(ANDROID_ARCH_VER) CFLAGS_ANDROID = $(CFLAGS) --sysroot=$(ANDROID_NDK_ROOT)/platforms/$(ANDROID_PLATORM)/arch-$(ANDROID_ARCH) -D_ANDROID RESINC_ANDROID = assets LDFLAGS_ANDROID = $(LDFLAGS) -shared --sysroot=$(ANDROID_NDK_ROOT)/platforms/$(ANDROID_PLATORM)/arch-$(ANDROID_ARCH) LIB_ANDROID = $(LIB) -lc++ -lNX11 -lnano-X -lfreetype -lm -Wl,-Bdynamic -lallegro RESLIST_ANDROID=$(shell find $(RESINC_ANDROID) -type f -follow) ################################### #RELEASE LINUX32 SETTINGS | EDIT: 7/14 ################################### INC_RELEASE_LINUX32 = $(INC_LINUX32) CFLAGS_RELEASE_LINUX32 = $(CFLAGS_LINUX32) -O2 RESINC_RELEASE_LINUX32 = $(RESINC_LINUX32) RCFLAGS_RELEASE_LINUX32 = $(RCFLAGS_LINUX32) LIBDIR_RELEASE_LINUX32 = $(LIBDIR_LINUX32) LIB_RELEASE_LINUX32 = $(LIB_LINUX32) LDFLAGS_RELEASE_LINUX32 = $(LDFLAGS_LINUX32) -s OBJDIR_RELEASE_LINUX32 = $(WORKDIR)/obj/Release_Linux32 DEP_RELEASE_LINUX32 = OUT_RELEASE_LINUX32 = $(WORKDIR)/bin/Release_Linux32 ################################### #DEBUG LINUX32 SETTINGS | EDIT: 8/14 ################################### INC_DEBUG_LINUX32 = $(INC_LINUX32) CFLAGS_DEBUG_LINUX32 = $(CFLAGS_LINUX32) -g RESINC_DEBUG_LINUX32 = $(RESINC_LINUX32) RCFLAGS_DEBUG_LINUX32 = $(RCFLAGS_LINUX32) LIBDIR_DEBUG_LINUX32 = $(LIBDIR_LINUX32) LIB_DEBUG_LINUX32 = $(LIB_LINUX32) LDFLAGS_DEBUG_LINUX32 = $(LDFLAGS_LINUX32) OBJDIR_DEBUG_LINUX32 = $(WORKDIR)/obj/Debug_Linux32 DEP_DEBUG_LINUX32 = OUT_DEBUG_LINUX32 = $(WORKDIR)/bin/Debug_Linux32 ################################### #RELEASE LINUXARM SETTINGS | EDIT: 9/14 ################################### INC_RELEASE_LINUXARM = $(INC_LINUXARM) CFLAGS_RELEASE_LINUXARM = $(CFLAGS_LINUXARM) -O2 RESINC_RELEASE_LINUXARM = $(RESINC_LINUXARM) RCFLAGS_RELEASE_LINUXARM = $(RCFLAGS_LINUXARM) LIBDIR_RELEASE_LINUXARM = $(LIBDIR_LINUXARM) LIB_RELEASE_LINUXARM = $(LIB_LINUXARM) LDFLAGS_RELEASE_LINUXARM = $(LDFLAGS_LINUXARM) -s OBJDIR_RELEASE_LINUXARM = $(WORKDIR)/obj/Release_LinuxARM DEP_RELEASE_LINUXARM = OUT_RELEASE_LINUXARM = $(WORKDIR)/bin/Release_LinuxARM ################################### #DEBUG LINUXARM SETTINGS | EDIT: 10/14 ################################### INC_DEBUG_LINUXARM = $(INC_LINUXARM) CFLAGS_DEBUG_LINUXARM = $(CFLAGS_LINUXARM) -g RESINC_DEBUG_LINUXARM = $(RESINC_LINUXARM) RCFLAGS_DEBUG_LINUXARM = $(RCFLAGS_LINUXARM) LIBDIR_DEBUG_LINUXARM = $(LIBDIR_LINUXARM) LIB_DEBUG_LINUXARM = $(LIB_LINUXARM) LDFLAGS_DEBUG_LINUXARM = $(LDFLAGS_LINUXARM) OBJDIR_DEBUG_LINUXARM = $(WORKDIR)/obj/Debug_LinuxARM DEP_DEBUG_LINUXARM = OUT_DEBUG_LINUXARM = $(WORKDIR)/bin/Debug_LinuxARM ################################### #RELEASE MinGW SETTINGS | EDIT: 11/14 ################################### INC_RELEASE_WIN = $(INC_WIN) CFLAGS_RELEASE_WIN = $(CFLAGS_WIN) -O2 RESINC_RELEASE_WIN = $(RESINC_WIN) RCFLAGS_RELEASE_WIN = $(RCFLAGS_WIN) LIBDIR_RELEASE_WIN = $(LIBDIR_WIN) LIB_RELEASE_WIN = $(LIB_WIN) LDFLAGS_RELEASE_WIN = $(LDFLAGS_WIN) -s OBJDIR_RELEASE_WIN = $(WORKDIR)/obj/Release_Windows DEP_RELEASE_WIN = OUT_RELEASE_WIN = $(WORKDIR)/bin/Release_Windows ################################### #DEBUG MinGW SETTINGS | EDIT: 12/14 ################################### INC_DEBUG_WIN = $(INC_WIN) CFLAGS_DEBUG_WIN = $(CFLAGS_WIN) -g RESINC_DEBUG_WIN = $(RESINC_WIN) RCFLAGS_DEBUG_WIN = $(RCFLAGS_WIN) LIBDIR_DEBUG_WIN = $(LIBDIR_WIN) LIB_DEBUG_WIN = $(LIB_WIN) LDFLAGS_DEBUG_WIN = $(LDFLAGS_WIN) OBJDIR_DEBUG_WIN = $(WORKDIR)/obj/Debug_Windows DEP_DEBUG_WIN = OUT_DEBUG_WIN = $(WORKDIR)/bin/Debug_Windows ################################### #RELEASE ANDROID SETTINGS | EDIT: 13/14 ################################### INC_RELEASE_ANDROID = $(INC_ANDROID) CFLAGS_RELEASE_ANDROID = $(CFLAGS_ANDROID) -O2 RESINC_RELEASE_ANDROID = $(RESINC_ANDROID) RCFLAGS_RELEASE_ANDROID = $(RCFLAGS_ANDROID) LIBDIR_RELEASE_ANDROID = $(LIBDIR_ANDROID) LIB_RELEASE_ANDROID= $(LIB_ANDROID) LDFLAGS_RELEASE_ANDROID = $(LDFLAGS_ANDROID) -s OBJDIR_RELEASE_ANDROID = $(WORKDIR)/obj/Release_Android DEP_RELEASE_ANDROID = OUT_RELEASE_ANDROID = $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER) ################################### #DEBUG ANDROID SETTINGS | EDIT: 14/14 ################################### INC_DEBUG_ANDROID = $(INC_ANDROID) CFLAGS_DEBUG_ANDROID = $(CFLAGS_ANDROID) -g RESINC_DEBUG_ANDROID = $(RESINC_ANDROID) RCFLAGS_DEBUG_ANDROID = $(RCFLAGS_ANDROID) LIBDIR_DEBUG_ANDROID = $(LIBDIR_ANDROID) LIB_DEBUG_ANDROID = $(LIB_ANDROID) LDFLAGS_DEBUG_ANDROID = $(LDFLAGS_ANDROID) OBJDIR_DEBUG_ANDROID = $(WORKDIR)/obj/Debug_Android DEP_DEBUG_ANDROID = OUT_DEBUG_ANDROID = $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER) ############################ #OBJECT LISTS | DO NOT EDIT! ############################ OBJ_DEBUG_LINUX32 = $(addprefix $(OBJDIR_DEBUG_LINUX32)/,$(SOURCES:%.cxx=%.o)) OBJ_RELEASE_LINUX32 = $(addprefix $(OBJDIR_RELEASE_LINUX32)/,$(SOURCES:%.cxx=%.o)) OBJ_DEBUG_LINUXARM = $(addprefix $(OBJDIR_DEBUG_LINUXARM)/,$(SOURCES:%.cxx=%.o)) OBJ_RELEASE_LINUXARM = $(addprefix $(OBJDIR_RELEASE_LINUXARM)/,$(SOURCES:%.cxx=%.o)) OBJ_DEBUG_WIN = $(addprefix $(OBJDIR_DEBUG_WIN)/,$(SOURCES:%.cxx=%.o)) OBJ_DEBUG_WIN+=$(OBJDIR_DEBUG_WIN)/mainres.o OBJ_RELEASE_WIN = $(addprefix $(OBJDIR_RELEASE_WIN)/,$(SOURCES:%.cxx=%.o)) OBJ_RELEASE_WIN+=$(OBJDIR_RELEASE_WIN)/mainres.o OBJ_DEBUG_ANDROID = $(addprefix $(OBJDIR_DEBUG_ANDROID)/,$(SOURCES:%.cxx=%.o)) OBJ_RELEASE_ANDROID = $(addprefix $(OBJDIR_RELEASE_ANDROID)/,$(SOURCES:%.cxx=%.o)) ########################## #FUNCTIONS | DO NOT EDIT! ########################## ######## General all: make_fluid debug release 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 rebuild: clean debug release debug Debug: debug_linux32 debug_linuxarm debug_windows debug_android android_apk release Release: release_linux32 release_linuxarm release_windows release_android android_apk make_fluid: $(WORKDIR)/../tools/fluid -c $(WORKDIR)/ViewFluid.fld ######## DEBUG LINUX32 before_debug_linux32: test -d $(OUT_DEBUG_LINUX32) || mkdir -p $(OUT_DEBUG_LINUX32) test -d $(OBJDIR_DEBUG_LINUX32) || mkdir -p $(OBJDIR_DEBUG_LINUX32) after_debug_linux32: debug_linux32: before_debug_linux32 out_debug_linux32 after_debug_linux32 out_debug_linux32: before_debug_linux32 $(OBJ_DEBUG_LINUX32) $(DEP_DEBUG_LINUX32) $(LD_LINUX32) $(LDFLAGS_DEBUG_LINUX32) $(LIBDIR_LINUX32) $(LIBDIR_DEBUG_LINUX32) $(OBJ_DEBUG_LINUX32) $(LIB_DEBUG_LINUX32) -o $(OUT_DEBUG_LINUX32)/$(PROJNAME) $(OBJDIR_DEBUG_LINUX32)/%.o: %.cxx $(CXX_LINUX32) $(CFLAGS_DEBUG_LINUX32) $(INC_DEBUG_LINUX32) -c $< -D_DEBUG -o $@ clean_debug_linux32: rm -f $(OBJ_DEBUG_LINUX32) $(OUT_DEBUG_LINUX32)/$(PROJNAME) rm -rf $(OUT_DEBUG_LINUX32) rm -rf $(OBJDIR_DEBUG_LINUX32) ######## RELEASE LINUX32 before_release_linux32: test -d $(OUT_RELEASE_LINUX32) || mkdir -p $(OUT_RELEASE_LINUX32) test -d $(OBJDIR_RELEASE_LINUX32) || mkdir -p $(OBJDIR_RELEASE_LINUX32) after_release_linux32: release_linux32: before_release_linux32 out_release_linux32 after_release_linux32 out_release_linux32: before_release_linux32 $(OBJ_RELEASE_LINUX32) $(DEP_RELEASE_LINUX32) $(LD_LINUX32) $(LDFLAGS_RELEASE_LINUX32) $(LIBDIR_LINUX32) $(LIBDIR_RELEASE_LINUX32) $(OBJ_RELEASE_LINUX32) $(LIB_RELEASE_LINUX32) -o $(OUT_RELEASE_LINUX32)/$(PROJNAME) $(OBJDIR_RELEASE_LINUX32)/%.o: %.cxx $(CXX_LINUX32) $(CFLAGS_RELEASE_LINUX32) $(INC_RELEASE_LINUX32) -c $< -D_RELEASE -o $@ clean_release_linux32: rm -f $(OBJ_RELEASE_LINUX32) $(OUT_RELEASE_LINUX32)/$(PROJNAME) rm -rf $(OUT_RELEASE_LINUX32) rm -rf $(OBJDIR_RELEASE_LINUX32) ######## DEBUG LINUXARM before_debug_linuxarm: test -d $(OUT_DEBUG_LINUXARM) || mkdir -p $(OUT_DEBUG_LINUXARM) test -d $(OBJDIR_DEBUG_LINUXARM) || mkdir -p $(OBJDIR_DEBUG_LINUXARM) after_debug_linuxarm: debug_linuxarm: before_debug_linuxarm out_debug_linuxarm after_debug_linuxarm out_debug_linuxarm: before_debug_linuxarm $(OBJ_DEBUG_LINUXARM) $(DEP_DEBUG_LINUXARM) $(LD_LINUXARM) $(LDFLAGS_DEBUG_LINUXARM) $(LIBDIR_LINUXARM) $(LIBDIR_DEBUG_LINUXARM) $(OBJ_DEBUG_LINUXARM) $(LIB_DEBUG_LINUXARM) -o $(OUT_DEBUG_LINUXARM)/$(PROJNAME) $(OBJDIR_DEBUG_LINUXARM)/%.o: %.cxx $(CXX_LINUXARM) $(CFLAGS_DEBUG_LINUXARM) $(INC_DEBUG_LINUXARM) -c $< -D_DEBUG -o $@ clean_debug_linuxarm: rm -f $(OBJ_DEBUG_LINUXARM) $(OUT_DEBUG_LINUXARM)/$(PROJNAME) rm -rf $(OUT_DEBUG_LINUXARM) rm -rf $(OBJDIR_DEBUG_LINUXARM) ######## RELEASE LINUXARM before_release_linuxarm: test -d $(OUT_RELEASE_LINUXARM) || mkdir -p $(OUT_RELEASE_LINUXARM) test -d $(OBJDIR_RELEASE_LINUXARM) || mkdir -p $(OBJDIR_RELEASE_LINUXARM) after_release_linuxarm: release_linuxarm: before_release_linuxarm out_release_linuxarm after_release_linuxarm out_release_linuxarm: before_release_linuxarm $(OBJ_RELEASE_LINUXARM) $(DEP_RELEASE_LINUXARM) $(LD_LINUXARM) $(LDFLAGS_RELEASE_LINUXARM) $(LIBDIR_LINUXARM) $(LIBDIR_RELEASE_LINUXARM) $(OBJ_RELEASE_LINUXARM) $(LIB_RELEASE_LINUXARM) -o $(OUT_RELEASE_LINUXARM)/$(PROJNAME) $(OBJDIR_RELEASE_LINUXARM)/%.o: %.cxx $(CXX_LINUXARM) $(CFLAGS_RELEASE_LINUXARM) $(INC_RELEASE_LINUXARM) -c $< -D_RELEASE -o $@ clean_release_linuxarm: rm -f $(OBJ_RELEASE_LINUXARM) $(OUT_RELEASE_LINUXARM)/$(PROJNAME) rm -rf $(OUT_RELEASE_LINUXARM) rm -rf $(OBJDIR_RELEASE_LINUXARM) ######## DEBUG WIN before_debug_windows: test -d $(OUT_DEBUG_WIN) || mkdir -p $(OUT_DEBUG_WIN) test -d $(OBJDIR_DEBUG_WIN) || mkdir -p $(OBJDIR_DEBUG_WIN) $(WINDRES_WIN) $(RESINC_WIN)/main.rc $(OBJDIR_DEBUG_WIN)/mainres.o after_debug_windows: debug_windows: before_debug_windows out_debug_windows after_debug_windows out_debug_windows: before_debug_windows $(OBJ_DEBUG_WIN) $(DEP_DEBUG_WIN) $(LD_WIN) $(LDFLAGS_DEBUG_WIN) $(LIBDIR_WIN) $(LIBDIR_DEBUG_WIN) $(OBJ_DEBUG_WIN) $(LIB_DEBUG_WIN) -o $(OUT_DEBUG_WIN)/$(PROJNAME).exe $(OBJDIR_DEBUG_WIN)/%.o: %.cxx $(CXX_WIN) $(CFLAGS_DEBUG_WIN) $(INC_DEBUG_WIN) -c $< -D_DEBUG -o $@ clean_debug_windows: rm -f $(OBJ_DEBUG_WIN) $(OUT_DEBUG_WIN)/$(PROJNAME).exe rm -rf $(OUT_DEBUG_WIN) rm -rf $(OBJDIR_DEBUG_WIN) ######## RELEASE WIN before_release_windows: test -d $(OUT_RELEASE_WIN) || mkdir -p $(OUT_RELEASE_WIN) test -d $(OBJDIR_RELEASE_WIN) || mkdir -p $(OBJDIR_RELEASE_WIN) $(WINDRES_WIN) $(RESINC_WIN)/main.rc $(OBJDIR_RELEASE_WIN)/mainres.o after_release_windows: release_windows: before_release_windows out_release_windows after_release_windows out_release_windows: before_release_windows $(OBJ_RELEASE_WIN) $(DEP_RELEASE_WIN) $(LD_WIN) $(LDFLAGS_RELEASE_WIN) $(LIBDIR_WIN) $(LIBDIR_RELEASE_WIN) $(OBJ_RELEASE_WIN) $(LIB_RELEASE_WIN) -o $(OUT_RELEASE_WIN)/$(PROJNAME).exe $(OBJDIR_RELEASE_WIN)/%.o: %.cxx $(CXX_WIN) $(CFLAGS_RELEASE_WIN) $(INC_RELEASE_WIN) -c $< -D_RELEASE -o $@ clean_release_windows: rm -f $(OBJ_RELEASE_WIN) $(OUT_RELEASE_WIN)/$(PROJNAME).exe rm -rf $(OUT_RELEASE_WIN) rm -rf $(OBJDIR_RELEASE_WIN) ######## DEBUG ANDROID before_debug_android: test -d $(OUT_DEBUG_ANDROID) || mkdir -p $(OUT_DEBUG_ANDROID) test -d $(OBJDIR_DEBUG_ANDROID) || mkdir -p $(OBJDIR_DEBUG_ANDROID) after_debug_android: debug_android: before_debug_android out_debug_android after_debug_android android_apk out_debug_android: before_debug_android $(OBJ_DEBUG_ANDROID) $(DEP_DEBUG_ANDROID) $(LD_ANDROID) $(LDFLAGS_DEBUG_ANDROID) $(LIBDIR_ANDROID) $(LIBDIR_DEBUG_ANDROID) $(OBJ_DEBUG_ANDROID) $(LIB_DEBUG_ANDROID) -o $(OUT_DEBUG_ANDROID)/lib$(PROJNAME).so $(OBJDIR_DEBUG_ANDROID)/%.o: %.cxx $(CXX_ANDROID) $(CFLAGS_DEBUG_ANDROID) $(INC_DEBUG_ANDROID) -c $< -D_DEBUG -o $@ clean_debug_android: rm -f $(OBJ_DEBUG_ANDROID) $(OUT_DEBUG_ANDROID)/$(PROJNAME) rm -rf $(OUT_DEBUG_ANDROID) rm -rf $(OBJDIR_DEBUG_ANDROID) ######## RELEASE ANDROID ARM before_release_android: test -d $(OUT_RELEASE_ANDROID) || mkdir -p $(OUT_RELEASE_ANDROID) test -d $(OBJDIR_RELEASE_ANDROID) || mkdir -p $(OBJDIR_RELEASE_ANDROID) after_release_android: release_android: before_release_android out_release_android after_release_android android_apk out_release_android: before_release_android $(OBJ_RELEASE_ANDROID) $(DEP_RELEASE_ANDROID) $(LD_ANDROID) $(LDFLAGS_RELEASE_ANDROID) $(LIBDIR_ANDROID) $(LIBDIR_RELEASE_ANDROID) $(OBJ_RELEASE_ANDROID) $(LIB_RELEASE_ANDROID) -o $(OUT_RELEASE_ANDROID)/lib$(PROJNAME).so $(OBJDIR_RELEASE_ANDROID)/%.o: %.cxx $(CXX_ANDROID) $(CFLAGS_RELEASE_ANDROID) $(INC_RELEASE_ANDROID) -c $< -D_RELEASE -o $@ clean_release_android: rm -f $(OBJ_RELEASE_ANDROID) $(OUT_RELEASE_ANDROID)/$(PROJNAME) rm -rf $(OUT_RELEASE_ANDROID) rm -rf $(OBJDIR_RELEASE_ANDROID) ######## ANDROID APK before_android_apk: test -d $(OUT_ANDROID) || mkdir -p $(OUT_ANDROID) test -d $(GENDIR_ANDROID) || mkdir -p $(GENDIR_ANDROID) test -d $(CLASSDIR_ANDROID) || mkdir -p $(CLASSDIR_ANDROID) test -d $(ANDROID_SRC)/res/mipmap-hdpi || mkdir -p $(ANDROID_SRC)/res/mipmap-hdpi test -d $(ANDROID_SRC)/java/liballeg || mkdir -p $(ANDROID_SRC)/java/liballeg cp -r $(WORKDIR)/../lib/android_arm/liballeg/* $(ANDROID_SRC)/java/liballeg cp $(WORKDIR)/../lib/android_arm/liballegro.so $(ANDROID_SRC)/lib/$(ANDROID_ARCH_VER)/ cp $(WORKDIR)/appinfo/Icon.png $(ANDROID_SRC)/res/mipmap-hdpi/ic_launcher.png $(AAPT) package -f -m -J $(GENDIR_ANDROID) -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP) after_android_apk: $(JARSIGNER) -keystore $(ANDROID_KEYSTORE_PATH) -storepass '$(ANDROID_KEYSTORE_PW)' $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned $(ANDROID_KEYSTORE_NAME) $(ZIPALIGN) -f 4 $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned $(OUT_ANDROID)/$(PROJNAME).apk android_apk: before_android_apk out_apk $(RESLIST_ANDROID) after_android_apk out_apk: $(JAVAC) -classpath $(ANDROID_CP) -sourcepath 'src:$(GENDIR_ANDROID)' -d '$(CLASSDIR_ANDROID)' -target 1.7 -source 1.7 $(ANDROID_SOURCES) $(DX) --dex --output=$(GENDIR_ANDROID)/classes.dex $(CLASSDIR_ANDROID) $(AAPT) package -f -M $(ANDROID_SRC)/AndroidManifest.xml -S $(ANDROID_SRC)/res -I $(ANDROID_CP) -F $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned cd $(GENDIR_ANDROID) && $(AAPT) add $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned classes.dex cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/lib$(PROJNAME).so cd $(ANDROID_SRC) && $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned lib/$(ANDROID_ARCH_VER)/liballegro.so # pack found ressources into apk $(RESLIST_ANDROID): $(AAPT) add -v $(GENDIR_ANDROID)/$(PROJNAME).apk.unaligned $@ clean_android_apk: rm -rf $(OUT_ANDROID) rm -rf $(GENDIR_ANDROID) rm -rf $(CLASSDIR_ANDROID) rm -rf $(ANDROID_SRC)/java/liballeg rm -rf $(ANDROID_SRC)/res/mipmap-hdpi # target to install apk apk_install_adb: $(ADB) get-state 1>/dev/null 2>&1 && $(ADB) install -r $(OUT_ANDROID)/$(PROJNAME).apk generate_android_toolchain: $(ANDROID_NDK_ROOT)/build/tools/make_standalone_toolchain.py --api=$(ANDROID_PLATORM_VERSION) --install-dir=$(WORKDIR)/android_$(ANDROID_ARCH)_toolchain --arch=$(ANDROID_ARCH) .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 .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 .PHONY: before_debug_linuxarm out_debug_linuxarm after_debug_linuxarm before_release_linuxarm out_release_linuxarm after_release_linuxarm .PHONY: $(RESLIST_ANDROID)