99 lines
3.6 KiB
Makefile
99 lines
3.6 KiB
Makefile
$(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
|