MakeAndroid 5.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #armeabi-v7a, x86, armeabi
  2. ABI=armeabi
  3. #e.g. C:/Users/Egor/Documents/Android/ndk/android-ndk-r10d
  4. ANDK_DIR=$(subst \,/,$(ANDROID_NDK))
  5. TOOLCHAINS_VER=4.9
  6. ANDROID_API=android-12
  7. BUILD_TYPE=Release
  8. OUTPUT_DIR=Bin/Android/$(ABI)
  9. URHO3D_SRC_DIR=Urho3D/Source
  10. URHO3D_ANDROID_DIR=Urho3D/Urho3D_Android/$(ABI)
  11. ifeq ($(OS), Darwin)
  12. PREBUILT_DIR=darwin-x86_64
  13. else
  14. PREBUILT_DIR=windows-x86_64
  15. WINDOWS_EXT=.exe
  16. endif
  17. ifeq ($(ABI), x86)
  18. PLATFORM=x86
  19. ANDK_GCC=$(ANDK_DIR)/toolchains/x86-$(TOOLCHAINS_VER)/prebuilt/$(PREBUILT_DIR)/bin/i686-linux-android-gcc$(WINDOWS_EXT)
  20. ANDK_GPP=$(ANDK_DIR)/toolchains/x86-$(TOOLCHAINS_VER)/prebuilt/$(PREBUILT_DIR)/bin/i686-linux-android-g++$(WINDOWS_EXT)
  21. ANDK_STRIP=$(ANDK_DIR)/toolchains/x86-$(TOOLCHAINS_VER)/prebuilt/$(PREBUILT_DIR)/bin/i686-linux-android-strip$(WINDOWS_EXT)
  22. else
  23. PLATFORM=arm
  24. ANDK_GCC=$(ANDK_DIR)/toolchains/arm-linux-androideabi-$(TOOLCHAINS_VER)/prebuilt/$(PREBUILT_DIR)/bin/arm-linux-androideabi-gcc$(WINDOWS_EXT)
  25. ANDK_GPP=$(ANDK_DIR)/toolchains/arm-linux-androideabi-$(TOOLCHAINS_VER)/prebuilt/$(PREBUILT_DIR)/bin/arm-linux-androideabi-g++$(WINDOWS_EXT)
  26. ANDK_STRIP=$(ANDK_DIR)/toolchains/arm-linux-androideabi-$(TOOLCHAINS_VER)/prebuilt/$(PREBUILT_DIR)/bin/arm-linux-androideabi-strip$(WINDOWS_EXT)
  27. endif
  28. C_FLAGS=-fexceptions -fPIC --sysroot=$(ANDK_DIR)/platforms/$(ANDROID_API)/arch-$(PLATFORM) -funwind-tables -funswitch-loops -finline-limit=300 -fsigned-char -no-canonical-prefixes -fdata-sections -ffunction-sections -Wa,--noexecstack -fstack-protector -fomit-frame-pointer -fstrict-aliasing -O3 -DNDEBUG -isystem $(ANDK_DIR)/platforms/$(ANDROID_API)/arch-$(PLATFORM)/usr/include -isystem $(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/include -isystem $(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/libs/$(ABI)/include -isystem $(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/include/backward -I$(URHO3D_ANDROID_DIR)/include -I$(URHO3D_ANDROID_DIR)/include/Urho3D/ThirdParty -I$(URHO3D_ANDROID_DIR)/include/Urho3D/ThirdParty/Bullet -I$(URHO3D_SRC_DIR)/Source/Samples
  29. C_DEFINES=-DANDROID -DHAVE_STDINT_H -DKNET_UNIX -DURHO3D_ANGELSCRIPT -DURHO3D_FILEWATCHER -DURHO3D_LOGGING -DURHO3D_NAVIGATION -DURHO3D_NETWORK -DURHO3D_OPENGL -DURHO3D_PHYSICS -DURHO3D_PROFILING -DURHO3D_SSE -DURHO3D_STATIC_DEFINE -DURHO3D_URHO2D
  30. CXX_FLAGS=-fexceptions -frtti -std=c++11 -fpermissive -fPIC --sysroot=$(ANDK_DIR)/platforms/$(ANDROID_API)/arch-$(PLATFORM) -funwind-tables -funswitch-loops -finline-limit=300 -fsigned-char -no-canonical-prefixes -fdata-sections -ffunction-sections -Wa,--noexecstack -Wno-invalid-offsetof -fstack-protector -fomit-frame-pointer -fstrict-aliasing -O3 -DNDEBUG -isystem $(ANDK_DIR)/platforms/$(ANDROID_API)/arch-$(PLATFORM)/usr/include -isystem $(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/include -isystem $(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/libs/$(ABI)/include -isystem $(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/include/backward -I$(URHO3D_ANDROID_DIR)/include -I$(URHO3D_ANDROID_DIR)/include/Urho3D/ThirdParty -I$(URHO3D_ANDROID_DIR)/include/Urho3D/ThirdParty/Bullet -I$(URHO3D_SRC_DIR)/Source/Samples
  31. CXX_DEFINES=-DANDROID -DHAVE_STDINT_H -DKNET_UNIX -DURHO3D_ANGELSCRIPT -DURHO3D_FILEWATCHER -DURHO3D_LOGGING -DURHO3D_NAVIGATION -DURHO3D_NETWORK -DURHO3D_OPENGL -DURHO3D_PHYSICS -DURHO3D_PROFILING -DURHO3D_SSE -DURHO3D_STATIC_DEFINE -DURHO3D_URHO2D
  32. ApplicationProxy.o:
  33. $(ANDK_GPP) $(CXX_DEFINES) $(CXX_FLAGS) -o $(OUTPUT_DIR)/ApplicationProxy.cpp.o -c bindings/src/ApplicationProxy.cpp
  34. Glue.o:
  35. $(ANDK_GPP) $(CXX_DEFINES) $(CXX_FLAGS) -o $(OUTPUT_DIR)/glue.cpp.o -c bindings/src/glue.cpp
  36. Vector.o:
  37. $(ANDK_GPP) $(CXX_DEFINES) $(CXX_FLAGS) -o $(OUTPUT_DIR)/Vector.cpp.o -c bindings/src/Vector.cpp
  38. Binding.o:
  39. $(ANDK_GPP) $(CXX_DEFINES) $(CXX_FLAGS) -o $(OUTPUT_DIR)/binding.cpp.o -c bindings/generated/binding.cpp
  40. Events.o:
  41. $(ANDK_GPP) $(CXX_DEFINES) $(CXX_FLAGS) -o $(OUTPUT_DIR)/events.cpp.o -c bindings/generated/events.cpp
  42. SDL.o:
  43. $(ANDK_GCC) $(C_DEFINES) $(C_FLAGS) -o $(OUTPUT_DIR)/SDL_android_main.c.o -c $(URHO3D_SRC_DIR)/Source/ThirdParty/SDL/src/main/android/SDL_android_main.c
  44. Urho3D_Android:
  45. rm -rf $(URHO3D_ANDROID_DIR) && mkdir -p $(URHO3D_ANDROID_DIR) && cd $(URHO3D_SRC_DIR) && cmake -E make_directory ../Urho3D_Android/$(ABI) && cmake -E chdir ../Urho3D_Android/$(ABI) cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=$(CURDIR)/$(URHO3D_SRC_DIR)/CMake/Toolchains/android.toolchain.cmake .../Urho3D_Android/$(ABI) -DANDROID=1 -DANDROID_ABI=$(ABI) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) $(CURDIR)/$(URHO3D_SRC_DIR)/
  46. libUrho3D.a: Urho3D_Android
  47. cd $(URHO3D_ANDROID_DIR) && make Urho3D
  48. MakeBinDirectory:
  49. mkdir -p $(OUTPUT_DIR)
  50. objects: MakeBinDirectory ApplicationProxy.o Glue.o Vector.o Binding.o Events.o SDL.o
  51. libmono-urho.so: libUrho3D.a objects
  52. $(ANDK_GCC) -fPIC -fexceptions -frtti -fPIC --sysroot=$(ANDK_DIR)/platforms/$(ANDROID_API)/arch-$(PLATFORM) -funwind-tables -funswitch-loops -finline-limit=300 -fsigned-char -no-canonical-prefixes -fdata-sections -ffunction-sections -Wa,--noexecstack -Wno-invalid-offsetof -fstack-protector -fomit-frame-pointer -fstrict-aliasing -O3 -DNDEBUG -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libmono-urho.so -o $(OUTPUT_DIR)/libmono-urho.so $(OUTPUT_DIR)/ApplicationProxy.cpp.o $(OUTPUT_DIR)/Vector.cpp.o $(OUTPUT_DIR)/Glue.cpp.o $(OUTPUT_DIR)/events.cpp.o $(OUTPUT_DIR)/binding.cpp.o $(OUTPUT_DIR)/SDL_android_main.c.o $(URHO3D_ANDROID_DIR)/libs/$(ABI)/libUrho3D.a -ldl -llog -landroid -lGLESv1_CM -lGLESv2 "$(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/libs/$(ABI)/libgnustl_static.a" "$(ANDK_DIR)/sources/cxx-stl/gnu-libstdc++/$(TOOLCHAINS_VER)/libs/$(ABI)/libsupc++.a" -lm && $(ANDK_STRIP) $(OUTPUT_DIR)/libmono-urho.so && cd $(OUTPUT_DIR) && rm *.o