diff --git a/CMakeLists.txt b/CMakeLists.txt
index 964f1091afb51e8138c5286ed30515186ebeab87..ef6751814e8a1a26d3cf07e840afd680d3e90ab3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -166,13 +166,18 @@ macro(find_all_libraries VARNAME LISTNAME PATH SUFFIX)
   endif(NUM_FOUND_LIBRARIES LESS NUM_LIST)
 endmacro(find_all_libraries)
 
+macro(set_config_option VARNAME STRING)
+  set(${VARNAME} TRUE)
+  list(APPEND CONFIG_OPTIONS ${STRING})
+  message(STATUS "Found " ${STRING})
+endmacro(set_config_option)
+
 # check if the machine is 64 bits (this is more reliable than using
 # CMAKE_SIZEOF_VOID_P, which does not seem to work e.g. on some Suse
 # machines)
 check_type_size("void*" SIZEOF_VOID_P)
 if(SIZEOF_VOID_P EQUAL 8)
-  set(HAVE_64BIT_SIZE_T TRUE)
-  list(APPEND CONFIG_OPTIONS "Have64BitSizeT")
+  set_config_option(HAVE_64BIT_SIZE_T "Have64BitSizeT")
 endif(SIZEOF_VOID_P EQUAL 8)
 
 if(ENABLE_BLAS_LAPACK)
@@ -191,16 +196,14 @@ if(ENABLE_BLAS_LAPACK)
     set(MKL_LIBS_REQUIRED libguide40 mkl_intel_c mkl_intel_thread mkl_core)
     find_all_libraries(LAPACK_LIBRARIES MKL_LIBS_REQUIRED "" ${MKL_PATH})
     if(LAPACK_LIBRARIES)
-      set(HAVE_BLAS TRUE)
-      set(HAVE_LAPACK TRUE)
-      list(APPEND CONFIG_OPTIONS "IntelMKL")
+      set_config_option(HAVE_BLAS "Blas(IntelMKL)")
+      set_config_option(HAVE_LAPACK "Lapack(IntelMKL)")
     else(LAPACK_LIBRARIES)
       set(REFLAPACK_LIBS_REQUIRED lapack blas g2c gcc)
       find_all_libraries(LAPACK_LIBRARIES REFLAPACK_LIBS_REQUIRED "" "")
       if(LAPACK_LIBRARIES)
-        set(HAVE_BLAS TRUE)
-        set(HAVE_LAPACK TRUE)
-        list(APPEND CONFIG_OPTIONS "RefBlas" "RefLapack")
+        set_config_option(HAVE_BLAS "Blas(Ref)")
+        set_config_option(HAVE_LAPACK "Lapack(Ref)")
       endif(LAPACK_LIBRARIES)
     endif(LAPACK_LIBRARIES)
   elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
@@ -214,22 +217,19 @@ if(ENABLE_BLAS_LAPACK)
     set(MKL_LIBS_REQUIRED mkl_gf_lp64 iomp5 mkl_gnu_thread mkl_core guide pthread)
     find_all_libraries(LAPACK_LIBRARIES MKL_LIBS_REQUIRED "" ${MKL_PATH})
     if(LAPACK_LIBRARIES)
-      set(HAVE_BLAS TRUE)
-      set(HAVE_LAPACK TRUE)
-      list(APPEND CONFIG_OPTIONS "IntelMKL")
+      set_config_option(HAVE_BLAS "Blas(IntelMKL)")
+      set_config_option(HAVE_LAPACK "Lapack(IntelMKL)")
     endif(LAPACK_LIBRARIES)
   elseif(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
     # on SunOS we know blas and lapack are available in sunperf
-    set(HAVE_BLAS TRUE)
-    set(HAVE_LAPACK TRUE)
-    list(APPEND CONFIG_OPTIONS "SunPerf")
+    set_config_option(HAVE_BLAS "Blas(SubPerf)")
+    set_config_option(HAVE_LAPACK "Lapack(SunPerf)")
     set(LAPACK_FLAGS -library=sunperf)
   elseif(APPLE)
     # on Mac we also know that blas and lapack are available
     set(LAPACK_LIBRARIES "-framework vecLib")
-    set(HAVE_BLAS TRUE)
-    set(HAVE_LAPACK TRUE)
-    list(APPEND CONFIG_OPTIONS "VecLib")
+    set_config_option(HAVE_BLAS "Blas(VecLib)")
+    set_config_option(HAVE_LAPACK "Lapack(VecLib)")
   endif(MSVC)
   if(NOT HAVE_BLAS OR NOT HAVE_LAPACK)
     # if we haven't found blas and lapack without using the standard
@@ -237,12 +237,10 @@ if(ENABLE_BLAS_LAPACK)
     enable_language(Fortran)
     find_package(BLAS)
     if(BLAS_FOUND)
-      set(HAVE_BLAS TRUE)
-      list(APPEND CONFIG_OPTIONS "Blas")
+      set_config_option(HAVE_BLAS "Blas")
       find_package(LAPACK)
       if(LAPACK_FOUND)
-        set(HAVE_LAPACK TRUE)
-        list(APPEND CONFIG_OPTIONS "Lapack")
+        set_config_option(HAVE_LAPACK "Lapack")
       else(LAPACK_FOUND)
         set(LAPACK_LIBRARIES ${BLAS_LIBRARIES})
       endif(LAPACK_FOUND)
@@ -257,6 +255,10 @@ if(ENABLE_BLAS_LAPACK)
       endif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU")
     endif(BLAS_FOUND)
   endif(NOT HAVE_BLAS OR NOT HAVE_LAPACK)
+  if(NOT HAVE_BLAS OR NOT HAVE_LAPACK)
+    message("WARNING: Could not find Blas or Lapack: most meshing algorithms"
+            "will not be functional")
+  endif(NOT HAVE_BLAS OR NOT HAVE_LAPACK)
 endif(ENABLE_BLAS_LAPACK)
 
 add_subdirectory(Common)
@@ -265,31 +267,26 @@ add_subdirectory(Geo)
 
 if(ENABLE_MESH)
   add_subdirectory(Mesh)
-  set(HAVE_MESH TRUE)
-  list(APPEND CONFIG_OPTIONS "Mesh")
+  set_config_option(HAVE_MESH "Mesh")
 endif(ENABLE_MESH)
 
 if(ENABLE_SOLVER)
   add_subdirectory(Solver)
-  set(HAVE_SOLVER TRUE)
-  list(APPEND CONFIG_OPTIONS "Solver")
+  set_config_option(HAVE_SOLVER "Solver")
 endif(ENABLE_SOLVER)
 
 if(ENABLE_POST)
   add_subdirectory(Post)
-  set(HAVE_POST TRUE)
-  list(APPEND CONFIG_OPTIONS "Post")
+  set_config_option(HAVE_POST "Post")
   if(ENABLE_PLUGINS)
     add_subdirectory(Plugin)
-    set(HAVE_PLUGINS TRUE)
-    list(APPEND CONFIG_OPTIONS "Plugins")
+    set_config_option(HAVE_PLUGINS "Plugins")
   endif(ENABLE_PLUGINS)
 endif(ENABLE_POST)
 
 if(ENABLE_PARSER)
   add_subdirectory(Parser)
-  set(HAVE_PARSER TRUE)
-  list(APPEND CONFIG_OPTIONS "Parser")
+  set_config_option(HAVE_PARSER "Parser")
 endif(ENABLE_PARSER)
 
 if(ENABLE_FLTK)
@@ -298,13 +295,13 @@ if(ENABLE_FLTK)
   find_package(FLTK)
   if(FLTK_FOUND)
     add_subdirectory(Fltk)
-    set(HAVE_FLTK TRUE)
-    list(APPEND CONFIG_OPTIONS "Fltk")
+    set_config_option(HAVE_FLTK "Fltk")
     list(APPEND EXTERNAL_INCLUDES ${FLTK_INCLUDE_DIR})
     if(FLTK_CONFIG_SCRIPT)
       execute_process(COMMAND ${FLTK_CONFIG_SCRIPT} --api-version
                       OUTPUT_VARIABLE FLTK_VERSION)
-      message("-- Found fltk-config script for FLTK " ${FLTK_VERSION})
+      string(STRIP ${FLTK_VERSION} FLTK_VERSION)
+      message(STATUS "Found fltk-config script for FLTK " ${FLTK_VERSION})
     endif(FLTK_CONFIG_SCRIPT)
     if(ENABLE_NATIVE_FILE_CHOOSER)
       if(NOT FLTK_VERSION OR FLTK_VERSION EQUAL 1.1)
@@ -312,16 +309,14 @@ if(ENABLE_FLTK)
         include_directories(contrib/NativeFileChooser)
         add_definitions(-DFLTK1)
       endif(NOT FLTK_VERSION OR FLTK_VERSION EQUAL 1.1)
-      set(HAVE_NATIVE_FILE_CHOOSER TRUE)
-      list(APPEND CONFIG_OPTIONS "NativeFileChooser")
+      set_config_option(HAVE_NATIVE_FILE_CHOOSER "NativeFileChooser")
     endif(ENABLE_NATIVE_FILE_CHOOSER)
     if(ENABLE_FL_TREE)
       if(NOT FLTK_VERSION OR FLTK_VERSION EQUAL 1.1)
         add_subdirectory(contrib/Fl_Tree)
         include_directories(contrib/Fl_Tree)
       endif(NOT FLTK_VERSION OR FLTK_VERSION EQUAL 1.1)
-      set(HAVE_FL_TREE TRUE)
-      list(APPEND CONFIG_OPTIONS "FlTree")
+      set_config_option(HAVE_FL_TREE "FlTree")
     endif(ENABLE_FL_TREE)
     if(APPLE AND FLTK_VERSION EQUAL 1.3)
       # required for system sounds (until cmake updates find_package(FLTK))
@@ -334,8 +329,7 @@ elseif(ENABLE_QT)
   include(${QT_USE_FILE})
   if(QT_FOUND)
     add_subdirectory(Qt)
-    set(HAVE_QT TRUE)
-    list(APPEND CONFIG_OPTIONS "Qt")
+    set_config_option(HAVE_QT "Qt")
     list(APPEND EXTERNAL_INCLUDES ${QT_INCLUDE_DIR})
   endif(QT_FOUND)
 endif(ENABLE_FLTK)
@@ -351,8 +345,7 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
       find_library(FLTK_JPEG fltkjpeg)
     endif(NOT FLTK_JPEG)
     if(FLTK_JPEG)
-      set(HAVE_LIBJPEG TRUE) 
-      list(APPEND CONFIG_OPTIONS "FltkJpeg")
+      set_config_option(HAVE_LIBJPEG "Jpeg(Fltk)")
       list(APPEND EXTERNAL_LIBRARIES ${FLTK_JPEG})
       foreach(DIR ${FLTK_INCLUDE_DIR})
         list(APPEND EXTERNAL_INCLUDES ${DIR}/FL/images ${DIR}/jpeg)
@@ -362,8 +355,7 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
   if(NOT FLTK_JPEG)
     find_package(JPEG)
     if(JPEG_FOUND)
-      set(HAVE_LIBJPEG TRUE) 
-      list(APPEND CONFIG_OPTIONS "Jpeg")
+      set_config_option(HAVE_LIBJPEG "Jpeg")
       list(APPEND EXTERNAL_LIBRARIES ${JPEG_LIBRARIES})
       list(APPEND EXTERNAL_INCLUDES ${JPEG_INCLUDE_DIR})
     endif(JPEG_FOUND)
@@ -375,8 +367,7 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
       find_library(FLTK_Z fltkz)
     endif(NOT FLTK_Z)
     if(FLTK_Z)
-      set(HAVE_LIBZ TRUE) 
-      list(APPEND CONFIG_OPTIONS "FltkZlib")
+      set_config_option(HAVE_LIBZ "Zlib(Fltk)")
       list(APPEND EXTERNAL_LIBRARIES ${FLTK_Z})
       foreach(DIR ${FLTK_INCLUDE_DIR})
         list(APPEND EXTERNAL_INCLUDES ${DIR}/FL/images ${DIR}/zlib)
@@ -386,8 +377,7 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
   if(NOT FLTK_Z)
     find_package(ZLIB)
     if(ZLIB_FOUND)
-      set(HAVE_LIBZ TRUE) 
-      list(APPEND CONFIG_OPTIONS "Zlib")
+      set_config_option(HAVE_LIBZ "Zlib")
       list(APPEND EXTERNAL_LIBRARIES ${ZLIB_LIBRARIES})
       list(APPEND EXTERNAL_INCLUDES ${ZLIB_INCLUDE_DIR})
     endif(ZLIB_FOUND)
@@ -400,8 +390,7 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
         find_library(FLTK_PNG fltkpng)
       endif(NOT FLTK_PNG)
       if(FLTK_PNG)
-        set(HAVE_LIBPNG TRUE) 
-        list(APPEND CONFIG_OPTIONS "FltkPng")
+        set_config_option(HAVE_LIBPNG "Png(Fltk)")
         list(APPEND EXTERNAL_LIBRARIES ${FLTK_PNG})
         foreach(DIR ${FLTK_INCLUDE_DIR})
           list(APPEND EXTERNAL_INCLUDES ${DIR}/FL/images ${DIR}/png)
@@ -411,8 +400,7 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
     if(NOT FLTK_PNG)
       find_package(PNG)
       if(PNG_FOUND)
-        set(HAVE_LIBPNG TRUE)
-        list(APPEND CONFIG_OPTIONS "Png")
+        set_config_option(HAVE_LIBPNG "Png")
         list(APPEND EXTERNAL_LIBRARIES ${PNG_LIBRARIES})
         list(APPEND EXTERNAL_INCLUDES ${PNG_INCLUDE_DIR})
       endif(PNG_FOUND)
@@ -423,65 +411,53 @@ if(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
     message(SEND_ERROR "Could not find GLU")
   endif(NOT OPENGL_GLU_FOUND)
   add_subdirectory(Graphics)
-  set(HAVE_OPENGL TRUE)
-  list(APPEND CONFIG_OPTIONS "OpenGL")
+  set_config_option(HAVE_OPENGL "OpenGL")
 endif(HAVE_FLTK OR HAVE_QT OR ENABLE_GRAPHICS)
 
 if(ENABLE_ANN)
   add_subdirectory(contrib/ANN)
   include_directories(contrib/ANN/include)
-  set(HAVE_ANN TRUE)
-  list(APPEND CONFIG_OPTIONS "Ann")
+  set_config_option(HAVE_ANN "Ann")
 endif(ENABLE_ANN)
 
 if(ENABLE_CHACO)
   add_subdirectory(contrib/Chaco)
   include_directories(contrib/Chaco/main)
-  set(HAVE_CHACO TRUE)
-  list(APPEND CONFIG_OPTIONS "Chaco")
+  set_config_option(HAVE_CHACO "Chaco")
 endif(ENABLE_CHACO)
 
 if(ENABLE_DINTEGRATION)
   add_subdirectory(contrib/DiscreteIntegration)
   include_directories(contrib/DiscreteIntegration)
-  set(HAVE_DINTEGRATION TRUE)
-  list(APPEND CONFIG_OPTIONS "DIntegration")
+  set_config_option(HAVE_DINTEGRATION "DIntegration")
 endif(ENABLE_DINTEGRATION)
 
 if(ENABLE_GMM)
   include_directories(contrib/gmm)
-  set(HAVE_GMM TRUE)
-  list(APPEND CONFIG_OPTIONS "Gmm")
+  set_config_option(HAVE_GMM "Gmm")
 endif(ENABLE_GMM)
 
 if(ENABLE_KBIPACK)
   add_subdirectory(contrib/kbipack)
   include_directories(contrib/kbipack)
-  set(HAVE_KBIPACK TRUE)
-  list(APPEND CONFIG_OPTIONS "Kbipack")
+  set_config_option(HAVE_KBIPACK "Kbipack")
   find_library(GMP_LIB NAMES libgmp.a libgmp.dll.a)
   if(GMP_LIB)
-    message("-- Found GMP library")
-    set(HAVE_GMP TRUE)
+    set_config_option(HAVE_GMP "GMP")
     list(APPEND EXTERNAL_LIBRARIES ${GMP_LIB})
-  else(GMP_LIB)
-    message("-- GMP library not found")
   endif(GMP_LIB)
 endif(ENABLE_KBIPACK)
 
 if(ENABLE_MATHEX)
   add_subdirectory(contrib/MathEx)
   include_directories(contrib/MathEx)
-  set(HAVE_MATHEX TRUE)
-  list(APPEND CONFIG_OPTIONS "MathEx")
+  set_config_option(HAVE_MATHEX "MathEx")
 endif(ENABLE_MATHEX)
 
 if(ENABLE_MPI)
    find_package(MPI)
    if(MPI_FOUND)
-     message("-- Found MPI")
-     set(HAVE_MPI TRUE)
-     list(APPEND CONFIG_OPTIONS "MPI")
+     set_config_option(HAVE_MPI "MPI")
      list(APPEND EXTERNAL_INCLUDES ${MPI_INCLUDE_DIR})
      list(APPEND EXTERNAL_LIBRARIES ${MPI_LIBRARIES})
      include(CMakeForceCompiler)
@@ -492,15 +468,13 @@ endif(ENABLE_MPI)
 if(ENABLE_MPEG_ENCODE)
   add_subdirectory(contrib/mpeg_encode)
   include_directories(contrib/mpeg_encode/headers)
-  set(HAVE_MPEG_ENCODE TRUE)
-  list(APPEND CONFIG_OPTIONS "Mpeg")
+  set_config_option(HAVE_MPEG_ENCODE "Mpeg")
 endif(ENABLE_MPEG_ENCODE)
 
 if(ENABLE_METIS)
   add_subdirectory(contrib/Metis)
   include_directories(contrib/Metis)
-  set(HAVE_METIS TRUE)
-  list(APPEND CONFIG_OPTIONS "Metis")
+  set_config_option(HAVE_METIS "Metis")
   message("WARNING: By including Metis you have to comply with Metis' special "
           "licensing requirements stated in contrib/Metis/README.txt.")
 endif(ENABLE_METIS)
@@ -509,24 +483,21 @@ if(ENABLE_NETGEN)
   add_subdirectory(contrib/Netgen)
   include_directories(contrib/Netgen contrib/Netgen/libsrc/include 
                       contrib/Netgen/libsrc/interface)
-  set(HAVE_NETGEN TRUE)
-  list(APPEND CONFIG_OPTIONS "Netgen")
+  set_config_option(HAVE_NETGEN "Netgen")
   add_definitions(-DNO_PARALLEL_THREADS)
 endif(ENABLE_NETGEN)
 
 if(ENABLE_TETGEN_NEW AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/TetgenNew/tetgen.h)
   add_subdirectory(contrib/TetgenNew)
   include_directories(contrib/TetgenNew)
-  set(HAVE_TETGEN TRUE)
-  list(APPEND CONFIG_OPTIONS "TetgenNew")
+  set_config_option(HAVE_TETGEN "Tetgen(New)")
   add_definitions(-DTETLIBRARY)
   message("WARNING: You are including an experimental version of Tetgen "
           "that is KNOWN TO BE BUGGY on 64 bits archs and on WIN32/MSVC.")
 elseif(ENABLE_TETGEN AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/contrib/Tetgen/tetgen.h)
   add_subdirectory(contrib/Tetgen)
   include_directories(contrib/Tetgen)
-  set(HAVE_TETGEN TRUE)
-  list(APPEND CONFIG_OPTIONS "Tetgen")
+  set_config_option(HAVE_TETGEN "Tetgen")
   add_definitions(-DTETLIBRARY)
   message("WARNING: By including Tetgen you have to comply with Tetgen's "
           "special licensing requirements stated in contrib/Tetgen/LICENSE.")
@@ -537,8 +508,7 @@ if(ENABLE_FOURIER_MODEL)
   if(FFTW3_LIB)
     find_library(FOURIER_MODEL_LIB FourierModel)
     if(FOURIER_MODEL_LIB)
-      set(HAVE_FOURIER_MODEL TRUE)
-      list(APPEND CONFIG_OPTIONS "FourierModel")
+      set_config_option(HAVE_FOURIER_MODEL "FourierModel")
       list(APPEND EXTERNAL_LIBRARIES ${FOURIER_MODEL_LIB} ${FFTW3_LIB})
     endif(FOURIER_MODEL_LIB)
   endif(FFTW3_LIB)
@@ -550,16 +520,14 @@ if(ENABLE_MED OR ENABLE_CGNS)
     if(ENABLE_MED)
       find_library(MED_LIB med)
       if(MED_LIB)
-        set(HAVE_MED TRUE)
-        list(APPEND CONFIG_OPTIONS "Med")
+        set_config_option(HAVE_MED "Med")
         list(APPEND EXTERNAL_LIBRARIES ${MED_LIB})
       endif(MED_LIB)
     endif(ENABLE_MED)    
     if(ENABLE_CGNS)
       find_library(CGNS_LIB cgns)
       if(CGNS_LIB)
-        set(HAVE_LIBCGNS TRUE)
-        list(APPEND CONFIG_OPTIONS "Cgns")
+        set_config_option(HAVE_LIBCGNS "Cgns")
         list(APPEND EXTERNAL_LIBRARIES ${CGNS_LIB})
       endif(CGNS_LIB)
     endif(ENABLE_CGNS)    
@@ -572,8 +540,7 @@ if(ENABLE_MED OR ENABLE_CGNS)
       if(NOT HAVE_LIBZ) # necessary for non-GUI builds
         find_package(ZLIB)
         if(ZLIB_FOUND)
-          set(HAVE_LIBZ TRUE) 
-          list(APPEND CONFIG_OPTIONS "Zlib")
+          set_config_option(HAVE_LIBZ "Zlib")
           list(APPEND EXTERNAL_LIBRARIES ${ZLIB_LIBRARIES})
         endif(ZLIB_FOUND)
       endif(NOT HAVE_LIBZ)
@@ -589,9 +556,8 @@ if(ENABLE_TAUCS)
   if(TAUCS_LIB)
     find_path(TAUCS_INC "taucs.h" PATH_SUFFIXES src include)
     if(TAUCS_INC)
-      set(HAVE_TAUCS TRUE)
+      set_config_option(HAVE_TAUCS "Taucs")
       add_definitions(-DTAUCS_CILK)
-      list(APPEND CONFIG_OPTIONS "Taucs")
       list(APPEND EXTERNAL_LIBRARIES ${TAUCS_LIB})
       list(APPEND EXTERNAL_INCLUDES ${TAUCS_INC})
     endif(TAUCS_INC)
@@ -603,8 +569,7 @@ if(ENABLE_LUA)
   if(LUA_LIB)
     find_path(LUA_INC "lua.h" PATH_SUFFIXES src include)
     if(LUA_INC)
-      set(HAVE_LUA TRUE)
-      list(APPEND CONFIG_OPTIONS "Lua")
+      set_config_option(HAVE_LUA "Lua")
       list(APPEND EXTERNAL_LIBRARIES ${LUA_LIB})
       list(APPEND EXTERNAL_INCLUDES ${LUA_INC})
     endif(LUA_INC)
@@ -615,9 +580,7 @@ if(ENABLE_PETSC)
   set(ENV_PETSC_DIR $ENV{PETSC_DIR})
   set(ENV_PETSC_ARCH $ENV{PETSC_ARCH})
   if(EXISTS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables)
-    message(STATUS "Found PETSc 3")
-    set(HAVE_PETSC TRUE)
-    list(APPEND CONFIG_OPTIONS "PETSc")
+    set_config_option(HAVE_PETSC "PETSc")
     file(STRINGS ${ENV_PETSC_DIR}/${ENV_PETSC_ARCH}/conf/petscvariables 
          PETSC_VARIABLES NEWLINE_CONSUME)
     # find include directories
@@ -648,8 +611,7 @@ if(HAVE_PETSC AND ENABLE_SLEPC)
   set(ENV_SLEPC_DIR $ENV{SLEPC_DIR})
   find_library(SLEPC_LIB slepc PATHS ${ENV_SLEPC_DIR}/${ENV_PETSC_ARCH}/lib)
   if(SLEPC_LIB)
-    set(HAVE_SLEPC TRUE)
-    list(APPEND CONFIG_OPTIONS "SLEPc")
+    set_config_option(HAVE_SLEPC "SLEPc")
     list(APPEND EXTERNAL_LIBRARIES ${SLEPC_LIB})
     list(APPEND EXTERNAL_INCLUDES ${ENV_SLEPC_DIR}/include)
   endif(SLEPC_LIB)
@@ -687,8 +649,7 @@ if(ENABLE_OCC)
     find_path(OCC_INC "BRep_Tool.hxx" PATHS ENV CASROOT PATH_SUFFIXES inc 
               include opencascade)
     if(OCC_INC)
-      set(HAVE_OCC TRUE)
-      list(APPEND CONFIG_OPTIONS "OpenCascade")
+      set_config_option(HAVE_OCC "OpenCascade")
       list(APPEND EXTERNAL_LIBRARIES ${OCC_LIBS})
       list(APPEND EXTERNAL_INCLUDES ${OCC_INC})
       if(HAVE_64BIT_SIZE_T)
@@ -713,8 +674,7 @@ if(ENABLE_ACIS)
   if(ACIS_LIB)
     find_path(ACIS_INC "kernapi.hxx" PATH_SUFFIXES include)
     if(ACIS_INC)
-      set(HAVE_ACIS TRUE)
-      list(APPEND CONFIG_OPTIONS "Acis")
+      set_config_option(HAVE_ACIS "Acis")
       list(APPEND EXTERNAL_LIBRARIES ${ACIS_LIB})
       list(APPEND EXTERNAL_INCLUDES ${ACIS_INC})
     endif(ACIS_INC)
@@ -725,8 +685,7 @@ endif(ENABLE_ACIS)
 if(ENABLE_OSMESA)
   find_library(OSMESA_LIB OSMesa)
   if(OSMESA_LIB)
-    set(HAVE_OSMESA TRUE)
-    list(APPEND CONFIG_OPTIONS "OSMesa")
+    set_config_option(HAVE_OSMESA "OSMesa")
     list(APPEND EXTERNAL_LIBRARIES ${OSMESA_LIB})
   endif(OSMESA_LIB)
 endif(ENABLE_OSMESA)
@@ -736,8 +695,7 @@ if(HAVE_LUA AND ENABLE_READLINE)
   if(READLINE_LIB)
     find_path(READLINE_INC "readline.h" PATH_SUFFIXES src readline include)
     if(READLINE_INC)
-      set(HAVE_READLINE TRUE)
-      list(APPEND CONFIG_OPTIONS "Readline")
+      set_config_option(HAVE_READLINE "Readline")
       list(APPEND EXTERNAL_LIBRARIES ${READLINE_LIB})
       list(APPEND EXTERNAL_INCLUDES ${READLINE_INC})
     endif(READLINE_INC)
@@ -746,8 +704,7 @@ endif(HAVE_LUA AND ENABLE_READLINE)
 
 check_function_exists(vsnprintf HAVE_VSNPRINTF)
 if(NOT HAVE_VSNPRINTF)
-  set(HAVE_NO_VSNPRINTF TRUE)
-  list(APPEND CONFIG_OPTIONS "NoVsnprintf")
+  set_config_option(HAVE_NO_VSNPRINTF "NoVsnprintf")
 endif(NOT HAVE_VSNPRINTF)
 
 check_include_file(sys/socket.h HAVE_SYS_SOCKET_H)
@@ -757,15 +714,13 @@ endif(HAVE_SYS_SOCKET_H)
 
 check_type_size(socklen_t SOCKLEN_T_SIZE)
 if(NOT SOCKLEN_T_SIZE)
-  set(HAVE_NO_SOCKLEN_T TRUE)
-  list(APPEND CONFIG_OPTIONS "NoSocklenT")
+  set_config_option(HAVE_NO_SOCKLEN_T "NoSocklenT")
 endif(NOT SOCKLEN_T_SIZE)
 set(CMAKE_EXTRA_INCLUDE_FILES)
 
 check_include_file(dlfcn.h DLFCN_H)
 if(DLFCN_H)
-  set(HAVE_DLOPEN true)
-  list(APPEND CONFIG_OPTIONS "Dlopen")
+  set_config_option(HAVE_DLOPEN "Dlopen")
   list(APPEND EXTERNAL_LIBRARIES ${CMAKE_DL_LIB})
 endif(DLFCN_H)
 
@@ -867,10 +822,10 @@ set_target_properties(shared PROPERTIES OUTPUT_NAME Gmsh)
 if(HAVE_LAPACK AND LAPACK_FLAGS)
   set_target_properties(shared PROPERTIES LINK_FLAGS ${LAPACK_FLAGS})
 endif(HAVE_LAPACK AND LAPACK_FLAGS)
-IF(MSVC AND ENABLE_MSVC_STATIC_RUNTIME)
-message("WARNING: By enabling ENABLE_MSVC_STATIC_RUNTIME, shared library wont link."
-"Change in msvc /MT flag to /MD in the shared project properties")
-ENDIF(MSVC AND ENABLE_MSVC_STATIC_RUNTIME)		  
+if(MSVC AND ENABLE_MSVC_STATIC_RUNTIME)
+  message("WARNING: By enabling ENABLE_MSVC_STATIC_RUNTIME, shared library wont link."
+          "Change in msvc /MT flag to /MD in the shared project properties")
+endif(MSVC AND ENABLE_MSVC_STATIC_RUNTIME)		  
 target_link_libraries(shared ${LINK_LIBRARIES})
 
 # binary targets
@@ -1095,4 +1050,3 @@ message("")
 mark_as_advanced(BISON FLEX GMP_LIB GMSH_EXTRA_VERSION HDF5_LIB MAKEINFO 
                  MED_LIB OCC_INC SZ_LIB TAUCS_LIB LUA_LIB ACIS_LIB TEXI2PDF
                  READLINE_LIB)
-
diff --git a/Common/GmshDefines.h b/Common/GmshDefines.h
index 4859b4ef3c003245d39a2dfd57862bab3bdf776c..948ad4c51fab398792f4cb01d05f352e4453d079 100644
--- a/Common/GmshDefines.h
+++ b/Common/GmshDefines.h
@@ -6,133 +6,133 @@
 #ifndef _GMSH_DEFINES_H_
 #define _GMSH_DEFINES_H_
 
-// IO file formats
-#define FORMAT_MSH           1
-#define FORMAT_UNV           2
-#define FORMAT_GREF          3
-#define FORMAT_XPM           4
-#define FORMAT_PS            5
-#define FORMAT_BMP           6
-#define FORMAT_GIF           7
-#define FORMAT_GEO           8
-#define FORMAT_JPEG          9
-#define FORMAT_AUTO          10
-#define FORMAT_PPM           11
-#define FORMAT_YUV           12
-#define FORMAT_DMG           13
-#define FORMAT_SMS           14
-#define FORMAT_OPT           15
-#define FORMAT_VTK           16
-#define FORMAT_MPEG          17
-#define FORMAT_TEX           18
-#define FORMAT_VRML          19
-#define FORMAT_EPS           20
-#define FORMAT_PNG           22
-#define FORMAT_PDF           24
-#define FORMAT_POS           26
-#define FORMAT_STL           27
-#define FORMAT_P3D           28
-#define FORMAT_SVG           29
-#define FORMAT_MESH          30
-#define FORMAT_BDF           31
-#define FORMAT_CGNS          32
-#define FORMAT_MED           33
-#define FORMAT_DIFF          34
-#define FORMAT_BREP          35
-#define FORMAT_STEP          36
-#define FORMAT_IGES          37
-#define FORMAT_IR3           38
+// IO file formats (numbers should not be changed)
+#define FORMAT_MSH   1
+#define FORMAT_UNV   2
+#define FORMAT_GREF  3
+#define FORMAT_XPM   4
+#define FORMAT_PS    5
+#define FORMAT_BMP   6
+#define FORMAT_GIF   7
+#define FORMAT_GEO   8
+#define FORMAT_JPEG  9
+#define FORMAT_AUTO  10
+#define FORMAT_PPM   11
+#define FORMAT_YUV   12
+#define FORMAT_DMG   13
+#define FORMAT_SMS   14
+#define FORMAT_OPT   15
+#define FORMAT_VTK   16
+#define FORMAT_MPEG  17
+#define FORMAT_TEX   18
+#define FORMAT_VRML  19
+#define FORMAT_EPS   20
+#define FORMAT_PNG   22
+#define FORMAT_PDF   24
+#define FORMAT_POS   26
+#define FORMAT_STL   27
+#define FORMAT_P3D   28
+#define FORMAT_SVG   29
+#define FORMAT_MESH  30
+#define FORMAT_BDF   31
+#define FORMAT_CGNS  32
+#define FORMAT_MED   33
+#define FORMAT_DIFF  34
+#define FORMAT_BREP  35
+#define FORMAT_STEP  36
+#define FORMAT_IGES  37
+#define FORMAT_IR3   38
 
 // Element types
-#define TYPE_PNT 1
-#define TYPE_LIN 2
-#define TYPE_TRI 3
-#define TYPE_QUA 4
-#define TYPE_TET 5
-#define TYPE_PYR 6
-#define TYPE_PRI 7
-#define TYPE_HEX 8
-#define TYPE_POLYG 9
-#define TYPE_POLYH 10
+#define TYPE_PNT     1
+#define TYPE_LIN     2
+#define TYPE_TRI     3
+#define TYPE_QUA     4
+#define TYPE_TET     5
+#define TYPE_PYR     6
+#define TYPE_PRI     7
+#define TYPE_HEX     8
+#define TYPE_POLYG   9
+#define TYPE_POLYH   10
 
-// Element types in .msh file format
-#define MSH_LIN_2  1
-#define MSH_TRI_3  2
-#define MSH_QUA_4  3
-#define MSH_TET_4  4
-#define MSH_HEX_8  5
-#define MSH_PRI_6  6
-#define MSH_PYR_5  7
-#define MSH_LIN_3  8
-#define MSH_TRI_6  9
-#define MSH_QUA_9  10
-#define MSH_TET_10 11
-#define MSH_HEX_27 12
-#define MSH_PRI_18 13
-#define MSH_PYR_14 14
-#define MSH_PNT    15
-#define MSH_QUA_8  16
-#define MSH_HEX_20 17
-#define MSH_PRI_15 18
-#define MSH_PYR_13 19
-#define MSH_TRI_9  20
-#define MSH_TRI_10 21
-#define MSH_TRI_12 22
-#define MSH_TRI_15 23
-#define MSH_TRI_15I 24
-#define MSH_TRI_21 25
-#define MSH_LIN_4  26
-#define MSH_LIN_5  27
-#define MSH_LIN_6  28
-#define MSH_TET_20 29
-#define MSH_TET_35 30
-#define MSH_TET_56 31
-#define MSH_TET_34 32
-#define MSH_TET_52 33
-#define MSH_POLYG_ 34
-#define MSH_POLYH_ 35
-#define MSH_QUA_16 36
-#define MSH_QUA_25 37
-#define MSH_QUA_36 38
-#define MSH_QUA_12 39
-#define MSH_QUA_16I 40
-#define MSH_QUA_20 41
-#define MSH_TRI_28 42
-#define MSH_TRI_36 43
-#define MSH_TRI_45 44
-#define MSH_TRI_55 45
-#define MSH_TRI_66 46
-#define MSH_QUA_49 47
-#define MSH_QUA_64 48
-#define MSH_QUA_81 49
-#define MSH_QUA_100 50
-#define MSH_QUA_121 51
-#define MSH_TRI_18 52
-#define MSH_TRI_21I 53
-#define MSH_TRI_24 54
-#define MSH_TRI_27 55
-#define MSH_TRI_30 56
-#define MSH_QUA_24 57
-#define MSH_QUA_28 58
-#define MSH_QUA_32 59
-#define MSH_QUA_36I 60
-#define MSH_QUA_40 61
-#define MSH_LIN_7  62
-#define MSH_LIN_8  63
-#define MSH_LIN_9  64
-#define MSH_LIN_10  65
-#define MSH_LIN_11  66
-#define MSH_LIN_B 67
-#define MSH_TRI_B 68
-#define MSH_POLYG_B 69
-#define MSH_LIN_C 70
-#define MSH_TET_84 71
-#define MSH_TET_120 72
-#define MSH_TET_165 73
-#define MSH_TET_220 74
-#define MSH_TET_286 75
+// Element types in .msh file format (numbers should not be changed)
+#define MSH_LIN_2    1
+#define MSH_TRI_3    2
+#define MSH_QUA_4    3
+#define MSH_TET_4    4
+#define MSH_HEX_8    5
+#define MSH_PRI_6    6
+#define MSH_PYR_5    7
+#define MSH_LIN_3    8
+#define MSH_TRI_6    9
+#define MSH_QUA_9    10
+#define MSH_TET_10   11
+#define MSH_HEX_27   12
+#define MSH_PRI_18   13
+#define MSH_PYR_14   14
+#define MSH_PNT      15
+#define MSH_QUA_8    16
+#define MSH_HEX_20   17
+#define MSH_PRI_15   18
+#define MSH_PYR_13   19
+#define MSH_TRI_9    20
+#define MSH_TRI_10   21
+#define MSH_TRI_12   22
+#define MSH_TRI_15   23
+#define MSH_TRI_15I  24
+#define MSH_TRI_21   25
+#define MSH_LIN_4    26
+#define MSH_LIN_5    27
+#define MSH_LIN_6    28
+#define MSH_TET_20   29
+#define MSH_TET_35   30
+#define MSH_TET_56   31
+#define MSH_TET_34   32
+#define MSH_TET_52   33
+#define MSH_POLYG_   34
+#define MSH_POLYH_   35
+#define MSH_QUA_16   36
+#define MSH_QUA_25   37
+#define MSH_QUA_36   38
+#define MSH_QUA_12   39
+#define MSH_QUA_16I  40
+#define MSH_QUA_20   41
+#define MSH_TRI_28   42
+#define MSH_TRI_36   43
+#define MSH_TRI_45   44
+#define MSH_TRI_55   45
+#define MSH_TRI_66   46
+#define MSH_QUA_49   47
+#define MSH_QUA_64   48
+#define MSH_QUA_81   49
+#define MSH_QUA_100  50
+#define MSH_QUA_121  51
+#define MSH_TRI_18   52
+#define MSH_TRI_21I  53
+#define MSH_TRI_24   54
+#define MSH_TRI_27   55
+#define MSH_TRI_30   56
+#define MSH_QUA_24   57
+#define MSH_QUA_28   58
+#define MSH_QUA_32   59
+#define MSH_QUA_36I  60
+#define MSH_QUA_40   61
+#define MSH_LIN_7    62
+#define MSH_LIN_8    63
+#define MSH_LIN_9    64
+#define MSH_LIN_10   65
+#define MSH_LIN_11   66
+#define MSH_LIN_B    67
+#define MSH_TRI_B    68
+#define MSH_POLYG_B  69
+#define MSH_LIN_C    70
+#define MSH_TET_84   71
+#define MSH_TET_120  72
+#define MSH_TET_165  73
+#define MSH_TET_220  74
+#define MSH_TET_286  75
 
-#define MSH_NUM_TYPE 71
+#define MSH_NUM_TYPE 75
 
 // Geometric entities
 #define ENT_NONE     0
@@ -142,15 +142,15 @@
 #define ENT_VOLUME   (1<<3)
 #define ENT_ALL      (ENT_POINT | ENT_LINE | ENT_SURFACE | ENT_VOLUME)
 
-// 2D mesh algorithms (numbers should not be changed)
-#define ALGO_2D_MESHADAPT           1
-#define ALGO_2D_MESHADAPT_OLD       4
-#define ALGO_2D_DELAUNAY            5
-#define ALGO_2D_FRONTAL             6
+// 2D meshing algorithms (numbers should not be changed)
+#define ALGO_2D_MESHADAPT      1
+#define ALGO_2D_MESHADAPT_OLD  4
+#define ALGO_2D_DELAUNAY       5
+#define ALGO_2D_FRONTAL        6
 
-// 3D mesh algorithms (numbers should not be changed)
-#define ALGO_3D_DELAUNAY    1
-#define ALGO_3D_FRONTAL     4
+// 3D meshing algorithms (numbers should not be changed)
+#define ALGO_3D_DELAUNAY       1
+#define ALGO_3D_FRONTAL        4
 
 // Meshing methods
 #define MESH_NONE         0