diff --git a/Common/GmshConfig.h.in b/Common/GmshConfig.h.in
index 325b01a5a02908e024aa86352b384b7296e0a5b8..78ccc8e9c2c22410ff68afda0c45b674f8736285 100644
--- a/Common/GmshConfig.h.in
+++ b/Common/GmshConfig.h.in
@@ -68,6 +68,7 @@
 #cmakedefine HAVE_TAUCS
 #cmakedefine HAVE_TETGEN
 #cmakedefine HAVE_VORO3D
+#cmakedefine HAVE_ZIPPER
 
 #define GMSH_CONFIG_OPTIONS "${GMSH_CONFIG_OPTIONS}"
 
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 ae7712b1c91c5c0574a0e6260a1d8204700b28c8..692e100a4d0a25b18ce292bbf1f790de762c4617 100755
--- a/contrib/mobile/utils/android_petsc_reconfigure-armv7-android-linux.py
+++ b/contrib/mobile/utils/android_petsc_reconfigure-armv7-android-linux.py
@@ -1,4 +1,14 @@
-#!/usr/bin/python2
+#!/usr/bin/python
+
+######## FOR PETSC 3.6.0
+######## I had to
+########   change Cxx.py in the PETSc 3.6.0 distrib to replace CXXCPP by CPP
+########   edit src/system/err.c to remove the exception throwing code
+########   edit android_real/lib/petsc/conf/petscvariables:
+########         remove the dylib stuff
+########         and edit SL_LINKER_FUNCTION : just define as "-shared"
+########         add "-Wl,--unresolved-symbols=ignore-all" to fix undefined ref to 'main'
+
 if __name__ == '__main__':
   import sys
   import os
@@ -16,14 +26,10 @@ if __name__ == '__main__':
     '--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++',
+    '--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++ -I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/include/ -I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/include/backward -I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include',
     '--LDFLAGS= -L' + ndklibs + 'armeabi-v7a -L' + ndklibs2 + ' -lm',
     '--LD_SHARED=' + ndkbin + 'arm-linux-androideabi-ld',
-    '--download-blacs=0',
-    '--download-mumps=0',
-    '--download-parmetis=0',
-    '--download-scalapack=0',
-    '--download-umfpack=0',
+    '--CLINKER=' + ndkbin + 'arm-linux-androideabi-gcc',
     '--known-bits-per-byte=8',
     '--known-endian=little',
     '--known-level1-dcache-assoc=1',
@@ -48,11 +54,11 @@ if __name__ == '__main__':
     '--with-mpi=0',
     '--with-shared-libraries=1',
     '--with-x=0',
-    '-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',
+    '-I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/include/',
+    '-I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/include/backward',
+    '-I' + ndkroot + 'sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include',
     '-lstdc++',
     '-with-batch=1',
-    'PETSC_ARCH=armv7-android-linux',
+    'PETSC_ARCH=android_real',
   ]
   configure.petsc_configure(configure_options)
diff --git a/contrib/mobile/utils/ios_petsc_reconfigure-arm64-unknown-darwin.py b/contrib/mobile/utils/ios_petsc_reconfigure-arm64-unknown-darwin.py
index a27fcd122661041a316813e19d9009dada61e48c..d5068074d62a08a5f7c652564b89ff77ae7b4f1a 100755
--- a/contrib/mobile/utils/ios_petsc_reconfigure-arm64-unknown-darwin.py
+++ b/contrib/mobile/utils/ios_petsc_reconfigure-arm64-unknown-darwin.py
@@ -1,4 +1,4 @@
-#!/opt/local/bin/python
+#!/Users/geuzaine/anaconda/bin/python
 if __name__ == '__main__':
   import sys
   import os
@@ -6,9 +6,9 @@ if __name__ == '__main__':
   import configure
   configure_options = [
     '--CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang',
-    '--CFLAGS=-arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=7.0',
+    '--CFLAGS=-DPETSC_BLASLAPACK_UNDERSCORE -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk -miphoneos-version-min=7.0',
     '--CXX=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++',
-    '--CXXFLAGS=-arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min=7.0',
+    '--CXXFLAGS=-DPETSC_BLASLAPACK_UNDERSCORE -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk -miphoneos-version-min=7.0',
     '--known-bits-per-byte=8',
     '--known-endian=little',
     '--known-level1-dcache-assoc=1',
@@ -25,17 +25,17 @@ if __name__ == '__main__':
     '--known-sizeof-size_t=8',
     '--known-sizeof-void-p=8',
     '--with-batch=1',
-    '--with-blas-lib=/path/to/libf2cblas.a',
+    '--with-blas-lib=/Users/geuzaine/src/gmsh/contrib/mobile/frameworks_ios/petsc.framework/libf2cblas.a',
     '--with-clanguage=cxx',
     '--with-cmake=1',
     '--with-debugging=0',
     '--with-fc=0',
-    '--with-lapack-lib=/path/to/libf2clapack.a',
+    '--with-ios=1',
+    '--with-lapack-lib=/Users/geuzaine/src/gmsh/contrib/mobile/frameworks_ios/petsc.framework/libf2clapack.a',
     '--with-mpi=0',
-    '--with-parmetis=0',
-    '--with-scalapack=0',
     '--with-shared-libraries=0',
+    '--with-ssl=0',
     '--with-x=0',
-    'PETSC_ARCH=arm64-unknown-darwin',
+    'PETSC_ARCH=ios_real',
   ]
   configure.petsc_configure(configure_options)
diff --git a/contrib/mobile/utils/onelab_android_build.sh b/contrib/mobile/utils/onelab_android_build.sh
index a59de38742f16f61850ed3ac5de048d6a4711bb5..7738123ef78050a95817b2326aa68f1b8c6e8a6a 100755
--- a/contrib/mobile/utils/onelab_android_build.sh
+++ b/contrib/mobile/utils/onelab_android_build.sh
@@ -36,7 +36,7 @@ if [ ! -d "$gmsh_svn/build_android" ] || [ ! -f "$gmsh_svn/build_android/CMakeCa
   mkdir $gmsh_svn/build_android
 fi
 cd $gmsh_svn/build_android
-cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_SHARED=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_ANN=1 -DENABLE_TETGEN=1 -DBLAS_LIB="$petsc_lib/libf2cblas.so" -DLAPACK_LIB="$petsc_lib/libf2clapack.so" ..
+cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_SHARED=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_ANN=1 -DENABLE_TETGEN=1 -DENABLE_KBIPACK=1 -DENABLE_GMP=0 -DENABLE_ZIPPER=1 -DBLAS_LIB="$petsc_lib/libf2cblas.so" -DLAPACK_LIB="$petsc_lib/libf2clapack.so" ..
 check
 make androidGmsh -j$cmake_thread
 check
diff --git a/contrib/mobile/utils/onelab_ios_build.sh b/contrib/mobile/utils/onelab_ios_build.sh
index ae479714d62118679a1e57ab39d2834b40030e22..5080588d4c3711f1219e83b1cdc8b88664d52e08 100755
--- a/contrib/mobile/utils/onelab_ios_build.sh
+++ b/contrib/mobile/utils/onelab_ios_build.sh
@@ -29,7 +29,7 @@ function build_gmsh {
     mkdir $gmsh_svn/build_ios_$1
   fi
   cd $gmsh_svn/build_ios_$1
-  cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_ANN=1 -DENABLE_TETGEN=1 -DCMAKE_OSX_ARCHITECTURES="$1" ..
+  cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_ANN=1 -DENABLE_TETGEN=1 -DENABLE_KBIPACK=1 -DENABLE_GMP=0 -DENABLE_ZIPPER=1 -DCMAKE_OSX_ARCHITECTURES="$1" ..
   check
   $build_cmd
   check
diff --git a/contrib/mobile/utils/onelab_iossimulator_build.sh b/contrib/mobile/utils/onelab_iossimulator_build.sh
index 1fa4b42ccfc0669b2ca46023a04dd24bb4e6fc09..4f838ca2598a4b066bc4555b1fb89be6ff641c58 100755
--- a/contrib/mobile/utils/onelab_iossimulator_build.sh
+++ b/contrib/mobile/utils/onelab_iossimulator_build.sh
@@ -17,7 +17,7 @@ function build_gmsh {
     mkdir $gmsh_svn/build_iossimulator
   fi
   cd $gmsh_svn/build_iossimulator
-  cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_ANN=1 -DENABLE_TETGEN=1 ..
+  cmake $cmake_default -DENABLE_BLAS_LAPACK=1 -DENABLE_BUILD_LIB=1 -DENABLE_MATHEX=1 -DENABLE_MESH=1 -DENABLE_ONELAB=1 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_ANN=1 -DENABLE_TETGEN=1 -DENABLE_KBIPACK=1 -DENABLE_GMP=0 -DENABLE_ZIPPER=1 ..
   $build_cmd
   $headers_cmd
   cd -