diff --git a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java index cf7dc24ee21fb31bc7917737a6264022e6118416..4fb69e05158e41391e70b4175389b0366b39ee00 100644 --- a/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java +++ b/contrib/mobile/Android/src/org/geuz/onelab/Gmsh.java @@ -10,6 +10,7 @@ public class Gmsh implements Parcelable { System.loadLibrary("f2cblas"); System.loadLibrary("f2clapack"); System.loadLibrary("petsc"); + System.loadLibrary("slepc"); System.loadLibrary("Gmsh"); System.loadLibrary("GetDP"); System.loadLibrary("Onelab"); diff --git a/contrib/mobile/CMakeLists.txt b/contrib/mobile/CMakeLists.txt index d85a1ab15f16e77734dfa14e817b6bdf273bbb32..4d227d2722d6805e30e1cff45d7c1bd101d8b33e 100644 --- a/contrib/mobile/CMakeLists.txt +++ b/contrib/mobile/CMakeLists.txt @@ -155,10 +155,11 @@ if(ENABLE_BUILD_ANDROID) set_target_properties(androidOnelab PROPERTIES OUTPUT_NAME Onelab) target_link_libraries(androidOnelab ${LIBRARY_DEPS} ${EXTERNAL_LIBRARIES}) find_library(PETSC_LIB petsc PATH_SUFFIXES lib) + find_library(SLEPC_LIB slepc PATH_SUFFIXES lib) find_library(BLAS_LIB f2cblas PATH_SUFFIXES lib) find_library(LAPACK_LIB f2clapack PATH_SUFFIXES lib) set(ONELAB_LIB ${CMAKE_CURRENT_BINARY_DIR}/libs/libOnelab.so) - if(PETSC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB) + if(PETSC_LIB AND SLEPC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB) add_custom_target(androidProject COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/Onelab/ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/models/ @@ -168,6 +169,7 @@ if(ENABLE_BUILD_ANDROID) COMMAND ${CMAKE_COMMAND} -E copy ${GETDP_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/ COMMAND ${CMAKE_COMMAND} -E copy ${ONELAB_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/ COMMAND ${CMAKE_COMMAND} -E copy ${PETSC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/ + COMMAND ${CMAKE_COMMAND} -E copy ${SLEPC_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/ COMMAND ${CMAKE_COMMAND} -E copy ${LAPACK_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/ COMMAND ${CMAKE_COMMAND} -E copy ${BLAS_LIB} ${CMAKE_CURRENT_BINARY_DIR}/Onelab/libs/armeabi-v7a/ ) @@ -187,7 +189,7 @@ if(ENABLE_BUILD_ANDROID) message(STATUS " * Finally you can build the app with ant 'ant debug'") message(STATUS "") - else(PETSC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB) - message(STATUS "Cannot make Android project without PETSc or without BLAS or without LAPACK or without \"Onelab library\"") - endif(PETSC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB) + else(PETSC_LIB AND SLEPC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB) + message(STATUS "Cannot make Android project without PETSc or SLEPc or without BLAS or without LAPACK or without \"Onelab library\"") + endif(PETSC_LIB AND SLEPC_LIB AND BLAS_LIB AND LAPACK_LIB AND ONELAB_LIB) endif(ENABLE_BUILD_ANDROID) diff --git a/contrib/mobile/utils/android_petsc_reconfigure-armv7-android-linux.py b/contrib/mobile/utils/android_petsc_reconfigure-armv7-android-linux.py index d920a1baf9a6d06af5200e1a984d146d1c00dfa8..ae7712b1c91c5c0574a0e6260a1d8204700b28c8 100755 --- a/contrib/mobile/utils/android_petsc_reconfigure-armv7-android-linux.py +++ b/contrib/mobile/utils/android_petsc_reconfigure-armv7-android-linux.py @@ -4,16 +4,21 @@ if __name__ == '__main__': import os sys.path.insert(0, os.path.abspath('config')) import configure + ndkroot='/Users/geuzaine/android-ndk-r8b/' + ndkbin=ndkroot + 'toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin/' + ndklibs=ndkroot + 'toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/user/libs/' + ndklibs2=ndkroot + 'platforms/android-14/arch-arm/usr/lib/' + externallibs='/Users/geuzaine/src/gmsh/contrib/mobile/frameworks_android/petsc/' configure_options = [ - '--AR=/opt/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-ar', - '--CC=/opt/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc', - '--CFLAGS=--sysroot=/opt/android-ndk/platforms/android-8/arch-arm', - '--CPP=/opt/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-cpp', - '--CPPFLAGS=--sysroot=/opt/android-ndk/platforms/android-8/arch-arm', - '--CXX=/opt/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-g++', - '--CXXFLAGS=--sysroot=/opt/android-ndk/platforms/android-8/arch-arm -fsigned-char -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fdata-sections -ffunction-sections -fPIC -Wno-psabi -frtti -fexceptions -mthumb -O3 -fomit-frame-pointer -DNDEBUG -fPIC -isystem /opt/android-ndk/platforms/android-8/arch-arm/usr/include -isystem /opt/android-ndk/sources/cxx-stl/gnu-libstdc++/4.6/include -isystem /opt/android-ndk/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include -lstdc++', - '--LDFLAGS= -L/opt/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/user/libs/armeabi-v7a -L/home/maxime/Stage/_gmsh/CMakeFiles/ndklibs/armeabi-v7a -L/home/maxime/Stage/petsc-3.3-p6/armv7-unknown-linux/lib', - '--LD_SHARED=/opt/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-ld', + '--AR=' + ndkbin + 'arm-linux-androideabi-ar', + '--CC=' + ndkbin + 'arm-linux-androideabi-gcc', + '--CFLAGS=--sysroot=' + ndkroot + 'platforms/android-8/arch-arm', + '--CPP=' + ndkbin + 'arm-linux-androideabi-cpp', + '--CPPFLAGS=--sysroot=' + ndkroot + 'platforms/android-8/arch-arm', + '--CXX=' + ndkbin + 'arm-linux-androideabi-g++', + '--CXXFLAGS=--sysroot=' + ndkroot + 'platforms/android-8/arch-arm -fsigned-char -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fdata-sections -ffunction-sections -fPIC -Wno-psabi -frtti -fexceptions -mthumb -O3 -fomit-frame-pointer -DNDEBUG -fPIC -isystem ' + ndkroot + 'platforms/android-8/arch-arm/usr/include -isystem ' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/include -isystem ' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include -lstdc++', + '--LDFLAGS= -L' + ndklibs + 'armeabi-v7a -L' + ndklibs2 + ' -lm', + '--LD_SHARED=' + ndkbin + 'arm-linux-androideabi-ld', '--download-blacs=0', '--download-mumps=0', '--download-parmetis=0', @@ -34,18 +39,18 @@ if __name__ == '__main__': '--known-sizeof-short=2', '--known-sizeof-size_t=8', '--known-sizeof-void-p=8', - '--with-blas-lib=/home/maxime/Stage/petsc-3.3-p6/externalpackages/f2cblaslapack-3.1.1.q/libf2cblas.so', + '--with-blas-lib=' + externallibs + 'libf2cblas.so', '--with-clanguage=cxx', '--with-cmake=1', '--with-debugging=0', '--with-fc=0', - '--with-lapack-lib=/home/maxime/Stage/petsc-3.3-p6/externalpackages/f2clapacklapack-3.1.1.q/libf2clapack.so', + '--with-lapack-lib=' + externallibs + 'libf2clapack.so', '--with-mpi=0', '--with-shared-libraries=1', '--with-x=0', - '-I/opt/android-ndk/sources/cxx-stl/gnu-libstdc++/include/', - '-I/opt/android-ndk/sources/cxx-stl/gnu-libstdc++/include/backward', - '-I/opt/android-ndk/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include', + '-I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/include/', + '-I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/include/backward', + '-I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/libs/armeabi/include', '-lstdc++', '-with-batch=1', 'PETSC_ARCH=armv7-android-linux', diff --git a/contrib/mobile/utils/onelab_android_build.sh b/contrib/mobile/utils/onelab_android_build.sh index 3a8594680b7e6fa07f2cd57760459d06c3b721a5..a8c64b06ddd538df1282745ac93d3ba8023986fe 100755 --- a/contrib/mobile/utils/onelab_android_build.sh +++ b/contrib/mobile/utils/onelab_android_build.sh @@ -49,7 +49,7 @@ if [ ! -d "$getdp_svn/build_android" ] || [ ! -f "$getdp_svn/build_android/CMake mkdir $getdp_svn/build_android fi cd $getdp_svn/build_android -PETSC_DIR= PETSC_ARCH= SLEPC_DIR= cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_SHARED=1 -DENABLE_GMSH=1 -DENABLE_LEGACY=1 -DENABLE_PETSC=1 -DPETSC_INC="$petsc_lib/Headers;$petsc_lib/Headers/mpiuni" -DPETSC_LIBS="$petsc_lib/libpetsc.so" -DENABLE_SLEPC=1 -DSLEPC_INC="$slepc_lib/Headers/" -DSLEPC_LIB="$slepc_lib/libslepc.a" -DGMSH_INC="$gmsh_svn/build_android/Headers/" -DGMSH_LIB="$gmsh_svn/build_android/libs/libGmsh.so" -DBLAS_LAPACK_LIBRARIES="$petsc_lib/libf2cblas.so;$petsc_lib/libf2clapack.so" .. +PETSC_DIR= PETSC_ARCH= SLEPC_DIR= cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_SHARED=1 -DENABLE_GMSH=1 -DENABLE_LEGACY=1 -DENABLE_PETSC=1 -DPETSC_INC="$petsc_lib/Headers;$petsc_lib/Headers/mpiuni" -DPETSC_LIBS="$petsc_lib/libpetsc.so" -DENABLE_SLEPC=1 -DSLEPC_INC="$slepc_lib/Headers/" -DSLEPC_LIB="$slepc_lib/libslepc.so" -DGMSH_INC="$gmsh_svn/build_android/Headers/" -DGMSH_LIB="$gmsh_svn/build_android/libs/libGmsh.so" -DBLAS_LAPACK_LIBRARIES="$petsc_lib/libf2cblas.so;$petsc_lib/libf2clapack.so" .. check make androidGetdp -j$cmake_thread check @@ -64,7 +64,7 @@ cd $gmsh_svn/contrib/mobile/build_android cmake $cmake_default \ -DCMAKE_INCLUDE_PATH="$getdp_svn/" \ -DBLAS_LIB="$petsc_lib/libf2cblas.so" -DLAPACK_LIB="$petsc_lib/libf2clapack.so" \ - -DPETSC_LIB="$petsc_lib/libpetsc.so" \ + -DPETSC_LIB="$petsc_lib/libpetsc.so" -DSLEPC_LIB="$slepc_lib/libslepc.so" \ -DGMSH_INC="$gmsh_svn/build_android/Headers" -DGMSH_LIB="$gmsh_svn/build_android/libs/libGmsh.so" \ -DBENCHMARKSDIR="$getdp_svn/" \ -DGETDP_INC="$getdp_svn/build_android/Headers" -DGETDP_LIB="$getdp_svn/build_android/libs/libGetDP.so" ..