$(shell mkdir -p $(ARCH)/AI debug/$(ARCH)/AI $(ARCH)/Scripting debug/$(ARCH)/Scripting \ $(ARCH)/out/vcmi/lib $(ARCH)/out/vcmi/server $(ARCH)/out/vcmi/AI/StupidAI \ $(ARCH)/out/vcmi/AI/GeniusAI $(ARCH)/out/vcmi/client $(ARCH)/out/vcmi/Scripting/ERM) GCC_VERSION:=4.8 ARCH:=armeabi-v7a SOURCES_LIB:=$(wildcard vcmi/lib/*.cpp vcmi/CConsoleHandler.cpp vcmi/CThreadHelper.cpp) OBJS_LIB:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_LIB)) SOURCES_SERVER:=$(wildcard vcmi/server/*.cpp) OBJS_SERVER:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_SERVER)) SOURCES_STUPIDAI:=$(wildcard vcmi/AI/StupidAI/*.cpp) OBJS_STUPIDAI:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_STUPIDAI)) SOURCES_GENIUSAI:=$(filter-out %/ExpertSystem.cpp, $(wildcard vcmi/AI/GeniusAI/*.cpp)) OBJS_GENIUSAI:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_GENIUSAI)) SOURCES_ERM:=$(wildcard vcmi/Scripting/ERM/*.cpp) OBJS_ERM:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_ERM)) SOURCES_CLIENT:=$(wildcard vcmi/client/*.cpp vcmi/CCallback.cpp) OBJS_CLIENT:=$(patsubst %.cpp, $(ARCH)/out/%.o, $(SOURCES_CLIENT)) all: AndroidData/binaries-$(ARCH).zip libapplication-$(ARCH).so AndroidData/binaries-$(ARCH).zip: $(ARCH)/vcmiserver $(ARCH)/AI/libGeniusAI.so $(ARCH)/AI/libStupidAI.so $(ARCH)/Scripting/libvcmiERM.so $(ARCH)/libvcmi.so rm -f $@ cd $(ARCH) && zip -r ../$@ $(foreach F, $^, $(patsubst $(ARCH)/%,%,$(F))) $(OBJS_SERVER) $(OBJS_LIB) $(OBJS_GENIUSAI) $(OBJS_STUPIDAI) $(OBJS_CLIENT) $(OBJS_ERM): $(ARCH)/out/%.o: %.cpp env GCCVER=$(GCC_VERSION) ../setEnvironment-$(ARCH).sh sh -c \ "\$$CXX \ -c \$$CXXFLAGS -Ivcmi -Ivcmi/lib \ -DDATA_DIR=\\\"/sdcard/Android/data/eu.vcmi/files\\\" \ -DBIN_DIR=\\\"/data/data/eu.vcmi/files\\\" \ -DLIB_DIR=\\\"/data/data/eu.vcmi/files\\\" \ -DWITH_AVCODEC_DECODE_VIDEO2=1 \ -Wstrict-aliasing -Wcast-align -Wpointer-arith -Waddress \ $< -o $@" # -Werror=strict-aliasing -Werror=cast-align -Werror=pointer-arith -Werror=address #ALLOW_UNRESOLVED_SYMBOLS=1 LINK_LIB= \ env GCCVER=$(GCC_VERSION) NO_SHARED_LIBS=1 SHARED_LIBRARY_NAME=`basename $@` \ ../setEnvironment-$(ARCH).sh sh -c \ "\$$CXX \ -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \ \$$LDFLAGS -L$(ARCH) \ -Wl,--undefined=__gnu_thumb1_case_uqi -Wl,--undefined=__gnu_thumb1_case_uhi \ -Wl,--undefined=__clzsi2 -lgcc \ -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread && \ cp $@ debug/$@ && \ \$$STRIP --strip-unneeded $@" #$(ARCH)/libvcmi.a: $(OBJS_LIB) # ar rcs $@ $^ $(ARCH)/libvcmi.so: $(OBJS_LIB) $(LINK_LIB) -lvcmi: $(ARCH)/libvcmi.so # cp -f $^ ../../../libs/$^ .PHONY: -lvcmi $(ARCH)/AI/libGeniusAI.so: $(OBJS_GENIUSAI) -lvcmi $(LINK_LIB) $(ARCH)/AI/libStupidAI.so: $(OBJS_STUPIDAI) -lvcmi $(LINK_LIB) $(ARCH)/Scripting/libvcmiERM.so: $(OBJS_ERM) -lvcmi $(LINK_LIB) $(ARCH)/vcmiserver: $(OBJS_SERVER) -lvcmi env GCCVER=$(GCC_VERSION) BUILD_EXECUTABLE=1 NO_SHARED_LIBS=1 ../setEnvironment-$(ARCH).sh sh -c \ "\$$CXX \ -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \ \$$LDFLAGS -L$(ARCH) -Wl,-rpath,/data/data/eu.vcmi/lib \ -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread && \ cp $@ debug/$@ && \ \$$STRIP --strip-unneeded $@" libapplication-$(ARCH).so: $(OBJS_CLIENT) -lvcmi env GCCVER=$(GCC_VERSION) ../setEnvironment-$(ARCH).sh sh -c \ "\$$CXX \ -Wl,--whole-archive $^ -Wl,--no-whole-archive -o $@ \ \$$LDFLAGS -L$(ARCH) \ -lboost_filesystem -lboost_iostreams -lboost_system -lboost_thread -lboost_program_options && \ cp $@ debug/$@" # No need to strip, it's done inside build.sh script clean: rm -rf armeabi* debug AndroidData/binaries-*.zip libapplication*.so .PHONY: clean