diff --git a/CMakeLists.txt b/CMakeLists.txt
index e8d1626aca35a2738df037b4d8ff8fa4ecaec81d..f7e4ae35531f30e9876c8e1b2550fd75330fe66f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -749,6 +749,9 @@ if( CHAMELEON_SCHED_STARPU )
                 list(INSERT CHAMELEON_DEP 0 ${STARPU_LIBRARIES})
             endif()
         endif()
+        unset(CMAKE_REQUIRED_FLAGS)
+        unset(CMAKE_REQUIRED_INCLUDES)
+        unset(CMAKE_REQUIRED_LIBRARIES)
     else ( STARPU_FOUND )
         if(MORSE_VERBOSE_FIND_PACKAGE)
             if(NOT HWLOC_FOUND OR NOT HWLOC_LIBRARIES)
@@ -864,6 +867,9 @@ if( CHAMELEON_SCHED_PARSEC )
               list(INSERT CHAMELEON_DEP 0 ${PARSEC_LIBRARIES})
           endif()
       endif()
+      unset(CMAKE_REQUIRED_FLAGS)
+      unset(CMAKE_REQUIRED_INCLUDES)
+      unset(CMAKE_REQUIRED_LIBRARIES)
     else ( PARSEC_FOUND )
         if(MORSE_VERBOSE_FIND_PACKAGE)
             if(NOT HWLOC_FOUND OR NOT HWLOC_LIBRARIES)
@@ -953,12 +959,10 @@ if( CHAMELEON_SCHED_QUARK )
 endif()
 
 # getopt
-unset(CMAKE_REQUIRED_FLAGS)
-unset(CMAKE_REQUIRED_DEFINITIONS)
-unset(CMAKE_REQUIRED_INCLUDES)
-unset(CMAKE_REQUIRED_LIBRARIES)
 check_include_files(getopt.h CHAMELEON_HAVE_GETOPT_H)
-check_function_exists(getopt_long CHAMELEON_HAVE_GETOPT_LONG)
+if (CHAMELEON_HAVE_GETOPT_H)
+  check_function_exists(getopt_long CHAMELEON_HAVE_GETOPT_LONG)
+endif()
 
 # Add option to exploit cublas API v2
 # -----------------------------------