diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf9110af76afe83ed3f2ed89d0d55ec29f8cf486..b241509430319e4ba8fd2a572decb67557f025ea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1521,13 +1521,12 @@ if(UNIX AND NOT CYGWIN)
 endif(UNIX AND NOT CYGWIN)
 
 add_custom_target(get_headers
-  COMMAND ${CMAKE_COMMAND} -E remove_directory Headers
   COMMAND ${CMAKE_COMMAND} -E make_directory Headers/gmsh
   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
 foreach(FILE ${GMSH_API})
-  add_custom_command(TARGET get_headers POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
-                    ${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Headers/gmsh/
-                    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
+  add_custom_command(TARGET get_headers POST_BUILD COMMAND ${CMAKE_COMMAND} 
+    -E copy_if_different ${FILE} ${CMAKE_CURRENT_BINARY_DIR}/Headers/gmsh/
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
 endforeach(FILE)
 
 find_program(MAKEINFO makeinfo)
diff --git a/contrib/mobile/utils/onelab_android_build.sh b/contrib/mobile/utils/onelab_android_build.sh
index ddb9b33d97a9f332c2c38adcaf71171bb77516bf..ddbd672d239d7d3333e87ecb39795e10061238ac 100755
--- a/contrib/mobile/utils/onelab_android_build.sh
+++ b/contrib/mobile/utils/onelab_android_build.sh
@@ -47,13 +47,12 @@ cd $getdp_svn
 svn up
 if [ ! -d "$getdp_svn/build_android" ] || [ ! -f "$getdp_svn/build_android/CMakeCache.txt" ]; then
   mkdir $getdp_svn/build_android
-  cd $getdp_svn/build_android
-  export PETSC_DIR=
-  export PETSC_ARCH=
-  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" -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
 fi
 cd $getdp_svn/build_android
+export PETSC_DIR=
+export PETSC_ARCH=
+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" -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
 make get_headers
@@ -62,16 +61,16 @@ check
 # Onelab/Mobile interface
 if [ ! -d "$gmsh_svn/contrib/mobile/build_android" ] || [ ! -f "$gmsh_svn/contrib/mobile/build_android/CMakeCache.txt" ]; then
   mkdir $gmsh_svn/contrib/mobile/build_android
-  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" \
-	-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" ..
 fi
 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" \
+      -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" ..
+check
 make androidOnelab -j$cmake_thread
 check
 make androidProject