Android build

Android build Openmw.

To successfully build openmw for android, you must at first build all dependencies from source for android For building all dependencies I used Debian, make ,g++ ,gcc , cmake. It is Ogre 1.9, Openal , boost , bullet , Sdl2 , Qt 4.8 , ffmpeg , freeimage , freetype ,mygui ,zzip ,zlib. You must use only crystax ndk for build ,because ndk from google will not build openmw because only crystax ndk used wchar and long long. Since all references to the crystax are dead, here crystax ndk. https://drive.google.com/file/d/0B5mOME9qjLFuZmZoXzJTSUMwQmM/edit?usp=sharing Than you should use cmake for android https://github.com/taka-no-me/android-cmake And google sdk http://developer.android.com/sdk/index.html Than you should add PATH for crystax ndk adn goole sdk. For building boost I used it. You must build Ogre with Boost ! https://github.com/MysticTreeGames/Boost-for-Android

Than you must build freetype http://www.freetype.org/ For example like this cmake /home/sylar/freetype -DCMAKE_TOOLCHAIN_FILE=/home/sylar/android-cmake-master/android.toolchain.cmake -DANDROID_NATIVE_API_LEVEL=14 Than you bust build freeimage. I used this tutorial for building http://freeimage.sourceforge.net/ http://recursify.com/blog/2013/05/25/building-freeimage-for-android Android.mk for building freeimage

Since my phone supports manual armeabi-v7a I used this architecture for building. For example. ndk-build APP_PLATFORM=android-14 APP_ABI=armeabi-v7a LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) GLOBAL_C_INCLUDES := \ $(LOCAL_PATH)/../Source \ $(LOCAL_PATH)/../Source \ $(LOCAL_PATH)/../Source/DeprecationManager \ $(LOCAL_PATH)/../Source/FreeImage \ $(LOCAL_PATH)/../Source/FreeImageLib \ $(LOCAL_PATH)/../Source/FreeImageToolkit \ $(LOCAL_PATH)/../Source/LibJPEG \ $(LOCAL_PATH)/../Source/LibMNG \ $(LOCAL_PATH)/../Source/LibOpenJPEG \ $(LOCAL_PATH)/../Source/LibPNG \ $(LOCAL_PATH)/../Source/LibTIFF \ $(LOCAL_PATH)/../Source/Metadata \ $(LOCAL_PATH)/../Source/OpenEXR \ $(LOCAL_PATH)/../Source/OpenEXR/Copyrights \ $(LOCAL_PATH)/../Source/OpenEXR/Half \ $(LOCAL_PATH)/../Source/OpenEXR/Iex \ $(LOCAL_PATH)/../Source/OpenEXR/IlmImf \ $(LOCAL_PATH)/../Source/OpenEXR/IlmThread \ $(LOCAL_PATH)/../Source/OpenEXR/Imath \ $(LOCAL_PATH)/../Source/ZLib \ LOCAL_SRC_FILES = ../Source/FreeImage/BitmapAccess.cpp ../Source/FreeImage/ColorLookup.cpp ../Source/FreeImage/FreeImage.cpp ../Source/FreeImage/FreeImageC.c ../Source/FreeImage/FreeImageIO.cpp ../Source/FreeImage/GetType.cpp ../Source/FreeImage/MemoryIO.cpp ../Source/FreeImage/PixelAccess.cpp ../Source/FreeImage/J2KHelper.cpp ../Source/FreeImage/MNGHelper.cpp ../Source/FreeImage/Plugin.cpp ../Source/FreeImage/PluginBMP.cpp ../Source/FreeImage/PluginCUT.cpp ../Source/FreeImage/PluginDDS.cpp ../Source/FreeImage/PluginEXR.cpp ../Source/FreeImage/PluginG3.cpp ../Source/FreeImage/PluginGIF.cpp ../Source/FreeImage/PluginHDR.cpp ../Source/FreeImage/PluginICO.cpp ../Source/FreeImage/PluginIFF.cpp ../Source/FreeImage/PluginJ2K.cpp ../Source/FreeImage/PluginJNG.cpp ../Source/FreeImage/PluginJP2.cpp ../Source/FreeImage/PluginJPEG.cpp ../Source/FreeImage/PluginKOALA.cpp ../Source/FreeImage/PluginMNG.cpp ../Source/FreeImage/PluginPCD.cpp ../Source/FreeImage/PluginPCX.cpp ../Source/FreeImage/PluginPFM.cpp ../Source/FreeImage/PluginPICT.cpp ../Source/FreeImage/PluginPNG.cpp ../Source/FreeImage/PluginPNM.cpp ../Source/FreeImage/PluginPSD.cpp ../Source/FreeImage/PluginRAS.cpp ../Source/FreeImage/PluginSGI.cpp ../Source/FreeImage/PluginTARGA.cpp ../Source/FreeImage/PluginTIFF.cpp ../Source/FreeImage/PluginWBMP.cpp ../Source/FreeImage/PluginXBM.cpp ../Source/FreeImage/PluginXPM.cpp ../Source/FreeImage/PSDParser.cpp ../Source/FreeImage/TIFFLogLuv.cpp ../Source/FreeImage/Conversion.cpp ../Source/FreeImage/Conversion16_555.cpp ../Source/FreeImage/Conversion16_565.cpp ../Source/FreeImage/Conversion24.cpp ../Source/FreeImage/Conversion32.cpp ../Source/FreeImage/Conversion4.cpp ../Source/FreeImage/Conversion8.cpp ../Source/FreeImage/ConversionFloat.cpp ../Source/FreeImage/ConversionRGB16.cpp ../Source/FreeImage/ConversionRGBF.cpp ../Source/FreeImage/ConversionType.cpp ../Source/FreeImage/ConversionUINT16.cpp ../Source/FreeImage/Halftoning.cpp ../Source/FreeImage/tmoColorConvert.cpp ../Source/FreeImage/tmoDrago03.cpp ../Source/FreeImage/tmoFattal02.cpp ../Source/FreeImage/tmoReinhard05.cpp ../Source/FreeImage/ToneMapping.cpp ../Source/FreeImage/NNQuantizer.cpp ../Source/FreeImage/WuQuantizer.cpp ../Source/DeprecationManager/Deprecated.cpp ../Source/DeprecationManager/DeprecationMgr.cpp ../Source/FreeImage/CacheFile.cpp ../Source/FreeImage/MultiPage.cpp ../Source/FreeImage/ZLibInterface.cpp ../Source/Metadata/Exif.cpp ../Source/Metadata/FIRational.cpp ../Source/Metadata/FreeImageTag.cpp ../Source/Metadata/IPTC.cpp ../Source/Metadata/TagConversion.cpp ../Source/Metadata/TagLib.cpp ../Source/Metadata/XTIFF.cpp ../Source/FreeImageToolkit/Background.cpp ../Source/FreeImageToolkit/BSplineRotate.cpp ../Source/FreeImageToolkit/Channels.cpp ../Source/FreeImageToolkit/ClassicRotate.cpp ../Source/FreeImageToolkit/Colors.cpp ../Source/FreeImageToolkit/CopyPaste.cpp ../Source/FreeImageToolkit/Display.cpp ../Source/FreeImageToolkit/Flip.cpp ../Source/FreeImageToolkit/JPEGTransform.cpp ../Source/FreeImageToolkit/MultigridPoissonSolver.cpp ../Source/FreeImageToolkit/Rescale.cpp ../Source/FreeImageToolkit/Resize.cpp ../Source/LibJPEG/./jaricom.c ../Source/LibJPEG/jcapimin.c ../Source/LibJPEG/jcapistd.c ../Source/LibJPEG/./jcarith.c ../Source/LibJPEG/jccoefct.c ../Source/LibJPEG/jccolor.c ../Source/LibJPEG/jcdctmgr.c ../Source/LibJPEG/jchuff.c ../Source/LibJPEG/jcinit.c ../Source/LibJPEG/jcmainct.c ../Source/LibJPEG/jcmarker.c ../Source/LibJPEG/jcmaster.c ../Source/LibJPEG/jcomapi.c ../Source/LibJPEG/jcparam.c ../Source/LibJPEG/jcprepct.c ../Source/LibJPEG/jcsample.c ../Source/LibJPEG/jctrans.c ../Source/LibJPEG/jdapimin.c ../Source/LibJPEG/jdapistd.c ../Source/LibJPEG/./jdarith.c ../Source/LibJPEG/jdatadst.c ../Source/LibJPEG/jdatasrc.c ../Source/LibJPEG/jdcoefct.c ../Source/LibJPEG/jdcolor.c ../Source/LibJPEG/jddctmgr.c ../Source/LibJPEG/jdhuff.c ../Source/LibJPEG/jdinput.c ../Source/LibJPEG/jdmainct.c ../Source/LibJPEG/jdmarker.c ../Source/LibJPEG/jdmaster.c ../Source/LibJPEG/jdmerge.c ../Source/LibJPEG/jdpostct.c ../Source/LibJPEG/jdsample.c ../Source/LibJPEG/jdtrans.c ../Source/LibJPEG/jerror.c ../Source/LibJPEG/jfdctflt.c ../Source/LibJPEG/jfdctfst.c ../Source/LibJPEG/jfdctint.c ../Source/LibJPEG/jidctflt.c ../Source/LibJPEG/jidctfst.c ../Source/LibJPEG/jidctint.c ../Source/LibJPEG/jmemmgr.c ../Source/LibJPEG/jmemnobs.c ../Source/LibJPEG/jquant1.c ../Source/LibJPEG/jquant2.c ../Source/LibJPEG/jutils.c ../Source/LibJPEG/transupp.c ../Source/LibPNG/./png.c ../Source/LibPNG/./pngerror.c ../Source/LibPNG/./pngget.c ../Source/LibPNG/./pngmem.c ../Source/LibPNG/./pngpread.c ../Source/LibPNG/./pngread.c ../Source/LibPNG/./pngrio.c ../Source/LibPNG/./pngrtran.c ../Source/LibPNG/./pngrutil.c ../Source/LibPNG/./pngset.c ../Source/LibPNG/./pngtrans.c ../Source/LibPNG/./pngwio.c ../Source/LibPNG/./pngwrite.c ../Source/LibPNG/./pngwtran.c ../Source/LibPNG/./pngwutil.c ../Source/LibTIFF4/./tif_aux.c ../Source/LibTIFF4/./tif_close.c ../Source/LibTIFF4/./tif_codec.c ../Source/LibTIFF4/./tif_color.c ../Source/LibTIFF4/./tif_compress.c ../Source/LibTIFF4/./tif_dir.c ../Source/LibTIFF4/./tif_dirinfo.c ../Source/LibTIFF4/./tif_dirread.c ../Source/LibTIFF4/./tif_dirwrite.c ../Source/LibTIFF4/./tif_dumpmode.c ../Source/LibTIFF4/./tif_error.c ../Source/LibTIFF4/./tif_extension.c ../Source/LibTIFF4/./tif_fax3.c ../Source/LibTIFF4/./tif_fax3sm.c ../Source/LibTIFF4/./tif_flush.c ../Source/LibTIFF4/./tif_getimage.c ../Source/LibTIFF4/./tif_jpeg.c ../Source/LibTIFF4/./tif_luv.c ../Source/LibTIFF4/./tif_lzma.c ../Source/LibTIFF4/./tif_lzw.c ../Source/LibTIFF4/./tif_next.c ../Source/LibTIFF4/./tif_ojpeg.c ../Source/LibTIFF4/./tif_open.c ../Source/LibTIFF4/./tif_packbits.c ../Source/LibTIFF4/./tif_pixarlog.c ../Source/LibTIFF4/./tif_predict.c ../Source/LibTIFF4/./tif_print.c ../Source/LibTIFF4/./tif_read.c ../Source/LibTIFF4/./tif_strip.c ../Source/LibTIFF4/./tif_swab.c ../Source/LibTIFF4/./tif_thunder.c ../Source/LibTIFF4/./tif_tile.c ../Source/LibTIFF4/./tif_version.c ../Source/LibTIFF4/./tif_warning.c ../Source/LibTIFF4/./tif_write.c ../Source/LibTIFF4/./tif_zip.c ../Source/ZLib/./adler32.c ../Source/ZLib/./compress.c ../Source/ZLib/./crc32.c ../Source/ZLib/./deflate.c ../Source/ZLib/./gzclose.c ../Source/ZLib/./gzlib.c ../Source/ZLib/./gzread.c ../Source/ZLib/./gzwrite.c ../Source/ZLib/./infback.c ../Source/ZLib/./inffast.c ../Source/ZLib/./inflate.c ../Source/ZLib/./inftrees.c ../Source/ZLib/./trees.c ../Source/ZLib/./uncompr.c ../Source/ZLib/./zutil.c ../Source/LibOpenJPEG/bio.c ../Source/LibOpenJPEG/./cidx_manager.c ../Source/LibOpenJPEG/cio.c ../Source/LibOpenJPEG/dwt.c ../Source/LibOpenJPEG/event.c ../Source/LibOpenJPEG/image.c ../Source/LibOpenJPEG/j2k.c ../Source/LibOpenJPEG/j2k_lib.c ../Source/LibOpenJPEG/jp2.c ../Source/LibOpenJPEG/jpt.c ../Source/LibOpenJPEG/mct.c ../Source/LibOpenJPEG/mqc.c ../Source/LibOpenJPEG/openjpeg.c ../Source/LibOpenJPEG/./phix_manager.c ../Source/LibOpenJPEG/pi.c ../Source/LibOpenJPEG/./ppix_manager.c ../Source/LibOpenJPEG/raw.c ../Source/LibOpenJPEG/t1.c ../Source/LibOpenJPEG/t2.c ../Source/LibOpenJPEG/tcd.c ../Source/LibOpenJPEG/tgt.c ../Source/LibOpenJPEG/./thix_manager.c ../Source/LibOpenJPEG/./tpix_manager.c ../Source/OpenEXR/./IlmImf/ImfAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfB44Compressor.cpp ../Source/OpenEXR/./IlmImf/ImfBoxAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfChannelList.cpp ../Source/OpenEXR/./IlmImf/ImfChannelListAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfChromaticities.cpp ../Source/OpenEXR/./IlmImf/ImfChromaticitiesAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfCompressionAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfCompressor.cpp ../Source/OpenEXR/./IlmImf/ImfConvert.cpp ../Source/OpenEXR/./IlmImf/ImfCRgbaFile.cpp ../Source/OpenEXR/./IlmImf/ImfDoubleAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfEnvmap.cpp ../Source/OpenEXR/./IlmImf/ImfEnvmapAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfFloatAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfFrameBuffer.cpp ../Source/OpenEXR/./IlmImf/ImfFramesPerSecond.cpp ../Source/OpenEXR/./IlmImf/ImfHeader.cpp ../Source/OpenEXR/./IlmImf/ImfHuf.cpp ../Source/OpenEXR/./IlmImf/ImfInputFile.cpp ../Source/OpenEXR/./IlmImf/ImfIntAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfIO.cpp ../Source/OpenEXR/./IlmImf/ImfKeyCode.cpp ../Source/OpenEXR/./IlmImf/ImfKeyCodeAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfLineOrderAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfLut.cpp ../Source/OpenEXR/./IlmImf/ImfMatrixAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfMisc.cpp ../Source/OpenEXR/./IlmImf/ImfOpaqueAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfOutputFile.cpp ../Source/OpenEXR/./IlmImf/ImfPizCompressor.cpp ../Source/OpenEXR/./IlmImf/ImfPreviewImage.cpp ../Source/OpenEXR/./IlmImf/ImfPreviewImageAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfPxr24Compressor.cpp ../Source/OpenEXR/./IlmImf/ImfRational.cpp ../Source/OpenEXR/./IlmImf/ImfRationalAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfRgbaFile.cpp ../Source/OpenEXR/./IlmImf/ImfRgbaYca.cpp ../Source/OpenEXR/./IlmImf/ImfRleCompressor.cpp ../Source/OpenEXR/./IlmImf/ImfScanLineInputFile.cpp ../Source/OpenEXR/./IlmImf/ImfStandardAttributes.cpp ../Source/OpenEXR/./IlmImf/ImfStdIO.cpp ../Source/OpenEXR/./IlmImf/ImfStringAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfStringVectorAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfTestFile.cpp ../Source/OpenEXR/./IlmImf/ImfThreading.cpp ../Source/OpenEXR/./IlmImf/ImfTileDescriptionAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfTiledInputFile.cpp ../Source/OpenEXR/./IlmImf/ImfTiledMisc.cpp ../Source/OpenEXR/./IlmImf/ImfTiledOutputFile.cpp ../Source/OpenEXR/./IlmImf/ImfTiledRgbaFile.cpp ../Source/OpenEXR/./IlmImf/ImfTileOffsets.cpp ../Source/OpenEXR/./IlmImf/ImfTimeCode.cpp ../Source/OpenEXR/./IlmImf/ImfTimeCodeAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfVecAttribute.cpp ../Source/OpenEXR/./IlmImf/ImfVersion.cpp ../Source/OpenEXR/./IlmImf/ImfWav.cpp ../Source/OpenEXR/./IlmImf/ImfZipCompressor.cpp ../Source/OpenEXR/./Imath/ImathBox.cpp ../Source/OpenEXR/./Imath/ImathColorAlgo.cpp ../Source/OpenEXR/./Imath/ImathFun.cpp ../Source/OpenEXR/./Imath/ImathMatrixAlgo.cpp ../Source/OpenEXR/./Imath/ImathRandom.cpp ../Source/OpenEXR/./Imath/ImathShear.cpp ../Source/OpenEXR/./Imath/ImathVec.cpp ../Source/OpenEXR/./Iex/IexBaseExc.cpp ../Source/OpenEXR/./Iex/IexThrowErrnoExc.cpp ../Source/OpenEXR/./Half/half.cpp ../Source/OpenEXR/./IlmThread/IlmThread.cpp ../Source/OpenEXR/./IlmThread/IlmThreadMutex.cpp ../Source/OpenEXR/./IlmThread/IlmThreadPool.cpp ../Source/OpenEXR/./IlmThread/IlmThreadSemaphore.cpp LOCAL_MODULE := FreeImage

LOCAL_CPP_FEATURES := rtti exceptions GLOBAL_CFLAGS  := -O3 -DHAVE_CONFIG_H=1 -DFREEIMAGE_LIB -isystem

ifeq ($(TARGET_ARCH),x86) LOCAL_CFLAGS  := $(GLOBAL_CFLAGS) else LOCAL_CFLAGS  := -mfpu=vfp -mfloat-abi=softfp -fno-short-enums -O3 -fPIC $(GLOBAL_CFLAGS) endif

LOCAL_C_INCLUDES := $(GLOBAL_C_INCLUDES)

include $(BUILD_STATIC_LIBRARY)

Next you must build ogre from source. I build ogre 1.9 with this tutorial. http://www.ogre3d.org/tikiwiki/tiki-index.php?page=CMake+Quick+Start+Guide&tikiversion=Android You must add it if((opt = miscParams->find("externalWindowHandle")) != end) {               mWindow = (ANativeWindow*)(Ogre::StringConverter::parseInt(opt->second)); }

and it if (!mEglConfig) {			_createInternalResources(mWindow, config); mHwGamma = false; } mEglDisplay = mGLSupport->getGLDisplay;

to /sinbad-ogre-7c776867621e/RenderSystems/GLES2/src/EGL/Android/OgreAndroidEGLWindow.cpp ogre otherwise not be able to work with sdl2 ,because android can have only one active window. Also in Ogre 1.9 forgot to add this line to cmake file if(ANDROID) set(CMAKE_FIND_ROOT_PATH ${OGRE_DEPENDENCIES_DIR} "${CMAKE_FIND_ROOT_PATH}") endif

Than you must build mygui for ogre http://mygui.info/ And you should remove this line from cmake file add_definitions(-msse) Than you should build bullet. You can use cmake or ndk-build https://github.com/bulletphysics/bullet3 Android.mk LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := bullet LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/ \ $(LOCAL_PATH)/BulletCollision/BroadphaseCollision \ $(LOCAL_PATH)/BulletCollision/CollisionDispatch \ $(LOCAL_PATH)/BulletCollision/CollisionShapes \ $(LOCAL_PATH)/BulletCollision/NarrowPhaseCollision \ $(LOCAL_PATH)/BulletDynamics/ConstraintSolver \ $(LOCAL_PATH)/BulletDynamics/Dynamics \ $(LOCAL_PATH)/BulletDynamics/Vehicle \ $(LOCAL_PATH)/LinearMath \ $(LOCAL_PATH)/../libzip/ \ $(LOCAL_PATH)/../libpng/ \

LOCAL_ARM_MODE := arm LOCAL_STATIC_LIBRARIES := libzip libpng LOCAL_CFLAGS := $(LOCAL_C_INCLUDES:%=-I%) -O3 -DANDROID_NDK LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -ldl -llog -lGLESv1_CM -lGLESv2 -lz

LOCAL_SRC_FILES := \ BulletMultiThreaded/SpuCollisionObjectWrapper.cpp \ BulletMultiThreaded/SpuSampleTask/SpuSampleTask.cpp \ BulletMultiThreaded/SpuLibspe2Support.cpp \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.cpp \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.cpp \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.cpp \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.cpp \ BulletMultiThreaded/btThreadSupportInterface.cpp \ BulletMultiThreaded/SequentialThreadSupport.cpp \ BulletMultiThreaded/SpuGatheringCollisionDispatcher.cpp \ BulletMultiThreaded/Win32ThreadSupport.cpp \ BulletMultiThreaded/SpuFakeDma.cpp \ BulletMultiThreaded/PosixThreadSupport.cpp \ BulletMultiThreaded/SpuCollisionTaskProcess.cpp \ BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.cpp \ BulletMultiThreaded/SpuSampleTaskProcess.cpp \ BulletMultiThreaded/SpuSampleTask/SpuSampleTask.h \ BulletMultiThreaded/PpuAddressSpace.h \ BulletMultiThreaded/SpuSampleTaskProcess.h \ BulletMultiThreaded/SequentialThreadSupport.h \ BulletMultiThreaded/PlatformDefinitions.h \ BulletMultiThreaded/Win32ThreadSupport.h \ BulletMultiThreaded/SpuContactManifoldCollisionAlgorithm.h \ BulletMultiThreaded/btThreadSupportInterface.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuGatheringCollisionTask.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuConvexPenetrationDepthSolver.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuPreferredPenetrationDirections.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuCollisionShapes.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuLocalSupport.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuMinkowskiPenetrationDepthSolver.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/SpuContactResult.h \ BulletMultiThreaded/SpuGatheringCollisionDispatcher.h \ BulletMultiThreaded/SpuFakeDma.h \ BulletMultiThreaded/SpuSync.h \ BulletMultiThreaded/SpuCollisionObjectWrapper.h \ BulletMultiThreaded/SpuDoubleBuffer.h \ BulletMultiThreaded/SpuCollisionTaskProcess.h \ BulletMultiThreaded/PosixThreadSupport.h \ BulletMultiThreaded/SpuLibspe2Support.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.cpp \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/boxBoxDistance.h \ BulletMultiThreaded/SpuNarrowPhaseCollisionTask/Box.h\ LinearMath/btQuickprof.cpp \ LinearMath/btGeometryUtil.cpp \ LinearMath/btAlignedAllocator.cpp \ LinearMath/btSerializer.cpp \ LinearMath/btConvexHull.cpp \ LinearMath/btPolarDecomposition.cpp \ LinearMath/btVector3.cpp \ LinearMath/btConvexHullComputer.cpp \ LinearMath/btHashMap.h \ LinearMath/btConvexHull.h \ LinearMath/btAabbUtil2.h \ LinearMath/btGeometryUtil.h \ LinearMath/btQuadWord.h \ LinearMath/btPoolAllocator.h \ LinearMath/btPolarDecomposition.h \ LinearMath/btScalar.h \ LinearMath/btMinMax.h \ LinearMath/btVector3.h \ LinearMath/btList.h \ LinearMath/btStackAlloc.h \ LinearMath/btMatrix3x3.h \ LinearMath/btMotionState.h \ LinearMath/btAlignedAllocator.h \ LinearMath/btQuaternion.h \ LinearMath/btAlignedObjectArray.h \ LinearMath/btQuickprof.h \ LinearMath/btSerializer.h \ LinearMath/btTransformUtil.h \ LinearMath/btTransform.h \ LinearMath/btDefaultMotionState.h \ LinearMath/btIDebugDraw.h \ LinearMath/btRandom.h \ BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp \ BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp \ BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp \ BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp \ BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp \ BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp \ BulletCollision/NarrowPhaseCollision/btConvexCast.cpp \ BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp \ BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp \ BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp \ BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp \ BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp \ BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btCollisionObject.cpp \ BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btGhostObject.cpp \ BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp \ BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp \ BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp \ BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp \ BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp \ BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp \ BulletCollision/CollisionDispatch/btManifoldResult.cpp \ BulletCollision/CollisionDispatch/btCollisionWorld.cpp \ BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp \ BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp \ BulletCollision/CollisionDispatch/btUnionFind.cpp \ BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp \ BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp \ BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp \ BulletCollision/CollisionShapes/btTetrahedronShape.cpp \ BulletCollision/CollisionShapes/btShapeHull.cpp \ BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp \ BulletCollision/CollisionShapes/btCompoundShape.cpp \ BulletCollision/CollisionShapes/btConeShape.cpp \ BulletCollision/CollisionShapes/btConvexPolyhedron.cpp \ BulletCollision/CollisionShapes/btMultiSphereShape.cpp \ BulletCollision/CollisionShapes/btUniformScalingShape.cpp \ BulletCollision/CollisionShapes/btSphereShape.cpp \ BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp \ BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp \ BulletCollision/CollisionShapes/btTriangleMeshShape.cpp \ BulletCollision/CollisionShapes/btTriangleBuffer.cpp \ BulletCollision/CollisionShapes/btStaticPlaneShape.cpp \ BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp \ BulletCollision/CollisionShapes/btEmptyShape.cpp \ BulletCollision/CollisionShapes/btCollisionShape.cpp \ BulletCollision/CollisionShapes/btConvexShape.cpp \ BulletCollision/CollisionShapes/btConvex2dShape.cpp \ BulletCollision/CollisionShapes/btConvexInternalShape.cpp \ BulletCollision/CollisionShapes/btConvexHullShape.cpp \ BulletCollision/CollisionShapes/btTriangleCallback.cpp \ BulletCollision/CollisionShapes/btCapsuleShape.cpp \ BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp \ BulletCollision/CollisionShapes/btConcaveShape.cpp \ BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp \ BulletCollision/CollisionShapes/btBoxShape.cpp \ BulletCollision/CollisionShapes/btBox2dShape.cpp \ BulletCollision/CollisionShapes/btOptimizedBvh.cpp \ BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp \ BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp \ BulletCollision/CollisionShapes/btCylinderShape.cpp \ BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp \ BulletCollision/CollisionShapes/btStridingMeshInterface.cpp \ BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp \ BulletCollision/CollisionShapes/btTriangleMesh.cpp \ BulletCollision/BroadphaseCollision/btAxisSweep3.cpp \ BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp \ BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp \ BulletCollision/BroadphaseCollision/btMultiSapBroadphase.cpp \ BulletCollision/BroadphaseCollision/btDispatcher.cpp \ BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp \ BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp \ BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp \ BulletCollision/BroadphaseCollision/btDbvt.cpp \ BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp \ BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.h \ BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.h \ BulletCollision/NarrowPhaseCollision/btConvexCast.h \ BulletCollision/NarrowPhaseCollision/btGjkEpa2.h \ BulletCollision/NarrowPhaseCollision/btGjkPairDetector.h \ BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.h \ BulletCollision/NarrowPhaseCollision/btPointCollector.h \ BulletCollision/NarrowPhaseCollision/btConvexPenetrationDepthSolver.h \ BulletCollision/NarrowPhaseCollision/btSimplexSolverInterface.h \ BulletCollision/NarrowPhaseCollision/btRaycastCallback.h \ BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.h \ BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.h \ BulletCollision/NarrowPhaseCollision/btPersistentManifold.h \ BulletCollision/NarrowPhaseCollision/btGjkConvexCast.h \ BulletCollision/NarrowPhaseCollision/btManifoldPoint.h \ BulletCollision/NarrowPhaseCollision/btDiscreteCollisionDetectorInterface.h \ BulletCollision/CollisionDispatch/btCollisionObject.h \ BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h \ BulletCollision/CollisionDispatch/btGhostObject.h \ BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btCollisionCreateFunc.h \ BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.h \ BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.h \ BulletCollision/CollisionDispatch/btBoxBoxDetector.h \ BulletCollision/CollisionDispatch/btCollisionDispatcher.h \ BulletCollision/CollisionDispatch/SphereTriangleDetector.h \ BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btUnionFind.h \ BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btHashedSimplePairCache.h \ BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btSimulationIslandManager.h \ BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.h \ BulletCollision/CollisionDispatch/btCollisionWorld.h \ BulletCollision/CollisionDispatch/btInternalEdgeUtility.h \ BulletCollision/CollisionDispatch/btManifoldResult.h \ BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.h \ BulletCollision/CollisionDispatch/btCollisionConfiguration.h \ BulletCollision/CollisionShapes/btConvexShape.h \ BulletCollision/CollisionShapes/btConvex2dShape.h \ BulletCollision/CollisionShapes/btTriangleCallback.h \ BulletCollision/CollisionShapes/btPolyhedralConvexShape.h \ BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.h \ BulletCollision/CollisionShapes/btCompoundShape.h \ BulletCollision/CollisionShapes/btBoxShape.h \ BulletCollision/CollisionShapes/btBox2dShape.h \ BulletCollision/CollisionShapes/btMultiSphereShape.h \ BulletCollision/CollisionShapes/btCollisionMargin.h \ BulletCollision/CollisionShapes/btConcaveShape.h \ BulletCollision/CollisionShapes/btConvexTriangleMeshShape.h \ BulletCollision/CollisionShapes/btEmptyShape.h \ BulletCollision/CollisionShapes/btUniformScalingShape.h \ BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.h \ BulletCollision/CollisionShapes/btMaterial.h \ BulletCollision/CollisionShapes/btTriangleIndexVertexArray.h \ BulletCollision/CollisionShapes/btTriangleInfoMap.h \ BulletCollision/CollisionShapes/btSphereShape.h \ BulletCollision/CollisionShapes/btConvexPointCloudShape.h \ BulletCollision/CollisionShapes/btCapsuleShape.h \ BulletCollision/CollisionShapes/btHeightfieldTerrainShape.h \ BulletCollision/CollisionShapes/btCollisionShape.h \ BulletCollision/CollisionShapes/btStaticPlaneShape.h \ BulletCollision/CollisionShapes/btBvhTriangleMeshShape.h \ BulletCollision/CollisionShapes/btTriangleMeshShape.h \ BulletCollision/CollisionShapes/btStridingMeshInterface.h \ BulletCollision/CollisionShapes/btTriangleMesh.h \ BulletCollision/CollisionShapes/btTriangleBuffer.h \ BulletCollision/CollisionShapes/btShapeHull.h \ BulletCollision/CollisionShapes/btMinkowskiSumShape.h \ BulletCollision/CollisionShapes/btOptimizedBvh.h \ BulletCollision/CollisionShapes/btTriangleShape.h \ BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.h \ BulletCollision/CollisionShapes/btCylinderShape.h \ BulletCollision/CollisionShapes/btTetrahedronShape.h \ BulletCollision/CollisionShapes/btConvexInternalShape.h \ BulletCollision/CollisionShapes/btConeShape.h \ BulletCollision/CollisionShapes/btConvexHullShape.h \ BulletCollision/BroadphaseCollision/btAxisSweep3.h \ BulletCollision/BroadphaseCollision/btDbvtBroadphase.h \ BulletCollision/BroadphaseCollision/btSimpleBroadphase.h \ BulletCollision/BroadphaseCollision/btMultiSapBroadphase.h \ BulletCollision/BroadphaseCollision/btDbvt.h \ BulletCollision/BroadphaseCollision/btOverlappingPairCallback.h \ BulletCollision/BroadphaseCollision/btDispatcher.h \ BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h \ BulletCollision/BroadphaseCollision/btBroadphaseProxy.h \ BulletCollision/BroadphaseCollision/btOverlappingPairCache.h \ BulletCollision/BroadphaseCollision/btBroadphaseInterface.h \ BulletCollision/BroadphaseCollision/btQuantizedBvh.h \ BulletCollision/Gimpact/btGImpactBvh.cpp\ BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp\ BulletCollision/Gimpact/btTriangleShapeEx.cpp\ BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp\ BulletCollision/Gimpact/btGImpactShape.cpp\ BulletCollision/Gimpact/gim_box_set.cpp\ BulletCollision/Gimpact/gim_contact.cpp\ BulletCollision/Gimpact/gim_memory.cpp\ BulletCollision/Gimpact/gim_tri_collision.cpp \ BulletDynamics/Dynamics/btRigidBody.cpp \ BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp \ BulletDynamics/Dynamics/Bullet-C-API.cpp \ BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp \ BulletDynamics/ConstraintSolver/btFixedConstraint.cpp \ BulletDynamics/ConstraintSolver/btGearConstraint.cpp \ BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp \ BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp \ BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp \ BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp \ BulletDynamics/ConstraintSolver/btTypedConstraint.cpp \ BulletDynamics/ConstraintSolver/btContactConstraint.cpp \ BulletDynamics/ConstraintSolver/btSliderConstraint.cpp \ BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp \ BulletDynamics/ConstraintSolver/btHingeConstraint.cpp \ BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp \ BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp \ BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp \ BulletDynamics/Vehicle/btWheelInfo.cpp \ BulletDynamics/Vehicle/btRaycastVehicle.cpp \ BulletDynamics/Character/btKinematicCharacterController.cpp \ BulletDynamics/Character/btKinematicCharacterController.h \ BulletDynamics/Character/btCharacterControllerInterface.h \ BulletDynamics/Dynamics/btActionInterface.h \ BulletDynamics/Dynamics/btSimpleDynamicsWorld.h \ BulletDynamics/Dynamics/btRigidBody.h \ BulletDynamics/Dynamics/btDiscreteDynamicsWorld.h \ BulletDynamics/Dynamics/btDynamicsWorld.h \ BulletDynamics/ConstraintSolver/btSolverBody.h \ BulletDynamics/ConstraintSolver/btConstraintSolver.h \ BulletDynamics/ConstraintSolver/btConeTwistConstraint.h \ BulletDynamics/ConstraintSolver/btTypedConstraint.h \ BulletDynamics/ConstraintSolver/btContactSolverInfo.h \ BulletDynamics/ConstraintSolver/btContactConstraint.h \ BulletDynamics/ConstraintSolver/btPoint2PointConstraint.h \ BulletDynamics/ConstraintSolver/btJacobianEntry.h \ BulletDynamics/ConstraintSolver/btSolverConstraint.h \ BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.h \ BulletDynamics/ConstraintSolver/btGearConstraint.h \ BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.h \ BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.h \ BulletDynamics/ConstraintSolver/btSliderConstraint.h \ BulletDynamics/ConstraintSolver/btHingeConstraint.h \ BulletDynamics/ConstraintSolver/btHinge2Constraint.h \ BulletDynamics/ConstraintSolver/btUniversalConstraint.h \ BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.h \ BulletDynamics/Vehicle/btVehicleRaycaster.h \ BulletDynamics/Vehicle/btRaycastVehicle.h \ BulletDynamics/Vehicle/btWheelInfo.h \ BulletDynamics/Featherstone/btMultiBody.cpp \ BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp \ BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp \ BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp \ BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp \ BulletDynamics/Featherstone/btMultiBodyJointMotor.h \ BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.h \ BulletDynamics/Featherstone/btMultiBody.h \ BulletDynamics/Featherstone/btMultiBodyConstraintSolver.h \ BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.h \ BulletDynamics/Featherstone/btMultiBodyLink.h \ BulletDynamics/Featherstone/btMultiBodyLinkCollider.h \ BulletDynamics/Featherstone/btMultiBodySolverConstraint.h \ BulletDynamics/Featherstone/btMultiBodyConstraint.h \ BulletDynamics/Featherstone/btMultiBodyPoint2Point.h \ BulletDynamics/Featherstone/btMultiBodyConstraint.cpp \ BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp \ BulletDynamics/MLCPSolvers/btDantzigLCP.cpp \ BulletDynamics/MLCPSolvers/btMLCPSolver.cpp \ BulletDynamics/MLCPSolvers/btDantzigLCP.h \ BulletDynamics/MLCPSolvers/btDantzigSolver.h \ BulletDynamics/MLCPSolvers/btMLCPSolver.h \ BulletDynamics/MLCPSolvers/btMLCPSolverInterface.h \ BulletDynamics/MLCPSolvers/btPATHSolver.h \ BulletDynamics/MLCPSolvers/btSolveProjectedGaussSeidel.h \ BulletSoftBody/btDefaultSoftBodySolver.cpp \ BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp \ BulletSoftBody/btSoftBody.cpp \ BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp \ BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp \ BulletSoftBody/btSoftRigidDynamicsWorld.cpp \ BulletSoftBody/btSoftBodyHelpers.cpp \ BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp \ BulletSoftBody/btSparseSDF.h \ BulletSoftBody/btSoftRigidCollisionAlgorithm.h \ BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h \ BulletSoftBody/btSoftBody.h \ BulletSoftBody/btSoftSoftCollisionAlgorithm.h \ BulletSoftBody/btSoftBodyInternals.h \ BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.h \ BulletSoftBody/btSoftRigidDynamicsWorld.h \ BulletSoftBody/btSoftBodyHelpers.h

include $(BUILD_SHARED_LIBRARY) Than you must build openal. http://repo.or.cz/w/openal-soft/android.git Tham you nust build qt 4.8 for android http://necessitas.kde.org/ I used this tutorual for building https://community.kde.org/Necessitas/CompileQtFramework Than you must build ffmpeg. Important ! You must use ffmpeg 1.26 http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/

my script for build ./configure \ --prefix=$(pwd)/android/$CPU \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-doc \ --disable-symver \ --cross-prefix=/home/sylar/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-asm \ --enable-cross-compile \ --sysroot=/home/sylar/android-ndk-r9d/platforms/android-19/arch-arm \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS"

Tnan you must build SDL2 https://www.libsdl.org/hg.php I used Sdl2 mercurial latest source.

then I started to build openmw. At first you must remove all lines associated with x server in FindOGRE.cmake and add GLES2 instead GLES. For example ogre_find_plugin(RenderSystem_GLES2 OgreGLES2RenderSystem.h RenderSystems/GLES2/include) next I add this to main cmake file set(CMAKE_FIND_ROOT_PATH ${OPENMW_DEPENDENCIES_DIR} "${CMAKE_FIND_ROOT_PATH}") And now I can build openmw with it cmake /home/sylar/openmw -DCMAKE_TOOLCHAIN_FILE=/home/sylar/android-cmake-master/android.toolchain.cmake -DOPENMW_DEPENDENCIES_DIR=/home/sylar/AndroidDependencies -DANDROID_NATIVE_API_LEVEL=14 next I remove line from main cmake file add_static_ogre_plugin(RenderSystem_GL) and add it add_static_ogre_plugin(RenderSystem_GLES2). Next I add I remove line add_library(openmw executable   ${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}    ${OPENMW_FILES}    ${GAME} ${GAME_HEADER}    ${APPLE_BUNDLE_RESOURCES} ) in /openmw/apps/openmw/Cmakelists.txt and add it. add_library(main SHARED   ${OPENMW_LIBS} ${OPENMW_LIBS_HEADER}    ${OPENMW_FILES}    ${GAME} ${GAME_HEADER}    ${APPLE_BUNDLE_RESOURCES} )

also I add it

set(GAME   main.cpp    SDL_android_main.c    engine.cpp )
 * 1) //if(NOT WIN32)
 * 2) //  set(GAME ${GAME} crashcatcher.cpp)
 * 3) endif

set(BOOST_COMPONENTS system filesystem program_options thread wave atomic) target_link_libraries(main
 * 1) Main executable

${OGRE_STATIC_PLUGINS} )
 * 1) RenderSystem_GLES2Static
 * 2) //Plugin_OctreeSceneManagerStatic
 * 3) //Plugin_ParticleFXStatic
 * 4)   ${OGRE_Plugin_OctreeSceneManager_LIBRARY_REL}
 * 5) ${OGRE_Plugin_ParticleFX_LIBRARY_REL}
 * 6) ${OGRE_RenderSystem_GLES2_LIBRARY_REL}

target_link_libraries(main EGL android log dl

) target_link_libraries(main boost_atomic boost_chrono boost_date_time boost_filesystem boost_program_options boost_system boost_thread boost_wave ) target_link_libraries(main FreeImage freetype )
 * 1)   ${OGRE_Plugin_OctreeSceneManager_LIBRARY_REL}
 * 2) ${OGRE_Plugin_ParticleFX_LIBRARY_REL}
 * 3) ${OGRE_RenderSystem_GLES2_LIBRARY_REL}
 * 1)   ${OGRE_Plugin_OctreeSceneManager_LIBRARY_REL}
 * 2) ${OGRE_Plugin_ParticleFX_LIBRARY_REL}
 * 3) ${OGRE_RenderSystem_GLES2_LIBRARY_REL}
 * 1)   ${OGRE_Plugin_OctreeSceneManager_LIBRARY_REL}
 * 2) ${OGRE_Plugin_ParticleFX_LIBRARY_REL}
 * 3) ${OGRE_RenderSystem_GLES2_LIBRARY_REL}

target_link_libraries(main OgreMainStatic )
 * 1)   ${OGRE_Plugin_OctreeSceneManager_LIBRARY_REL}
 * 2) ${OGRE_Plugin_ParticleFX_LIBRARY_REL}
 * 3) ${OGRE_RenderSystem_GLES2_LIBRARY_REL}

target_link_libraries(main MyGUI.OgrePlatform MyGUIEngineStatic Plugin_StrangeButtonStatic cpufeatures ) Next I changed paths in /openmw/components/files/linuxpath.cpp for example return getEnv("XDG_DATA_HOME", "/sdcard/morrowind/share") / mName; Next I add patch in ogreinit.cpp and ogreinit.hpp I comment it // Set up logging first //    new Ogre::LogManager; //  Ogre::Log *log = Ogre::LogManager::getSingleton.createLog(logPath);
 * 1)   ${OGRE_Plugin_OctreeSceneManager_LIBRARY_REL}
 * 2) ${OGRE_Plugin_ParticleFX_LIBRARY_REL}
 * 3) ${OGRE_RenderSystem_GLES2_LIBRARY_REL}

// #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 // Use custom listener only on Windows // log->addListener(new LogListener(logPath)); //  #endif

// Disable logging to cout/cerr // log->setDebugOutputEnabled(false); and change plugin gl on gles2
 * 1) ifdef ENABLE_PLUGIN_GLES2
 * 2) include "OgreGLES2Plugin.h"
 * 3) endif

Ogre::GLES2Plugin* mGLES2Plugin; #endif
 * 1) ifdef ENABLE_PLUGIN_GLES2

Next you must add it to opt["externalWindowHandle"] = Ogre::StringConverter::toString((int) wmInfo.info.android.window ); opt["externalSurface"] = Ogre::StringConverter::toString((int) wmInfo.info.android.surface ); /openmw/extern/sdl4ogre/sdlwindowhelper.cpp Next I add this file to openmw SDL_android_main.c With it, I calle native c code from java wtih help jni. I rename main function in main.cpp to SDL_main.

Now you can build openmw lib

Next for eclipse project I use android-project example from SDL and use README-android.txt tutorial from sdl