diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7ec949c3919231541d26dc2d2df423ec72b505ec..58e58be476480d5e8a0a464e8d88f3f95d521499 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1238,10 +1238,12 @@ endmacro(unix2dos)
 if(WIN32 OR CYGWIN)
   if(ENABLE_OS_SPECIFIC_INSTALL)
     set(GMSH_BIN .)
+    set(GMSH_LIB .)
     set(GMSH_DOC .)
     set(GMSH_MAN .)
   else(ENABLE_OS_SPECIFIC_INSTALL)
     set(GMSH_BIN bin)
+    set(GMSH_LIB lib)
     set(GMSH_DOC share/doc/gmsh)
     set(GMSH_MAN share/man/man1)
   endif(ENABLE_OS_SPECIFIC_INSTALL)
@@ -1257,10 +1259,12 @@ elseif(APPLE AND ENABLE_OS_SPECIFIC_INSTALL)
   # set these so that the files get installed nicely in the MacOSX
   # .app bundle
   set(GMSH_BIN ../MacOS)
+  set(GMSH_LIB ../MacOS)
   set(GMSH_DOC ../../..)
   set(GMSH_MAN ../../..)
 else(WIN32 OR CYGWIN)
   set(GMSH_BIN bin)
+  set(GMSH_LIB lib)
   set(GMSH_DOC share/doc/gmsh)
   set(GMSH_MAN share/man/man1)
 endif(WIN32 OR CYGWIN)
@@ -1269,10 +1273,10 @@ endif(WIN32 OR CYGWIN)
 # (e.g. "make lib" or "make shared" followed by "make install/fast")
 install(TARGETS gmsh DESTINATION ${GMSH_BIN} OPTIONAL)
 if(ENABLE_BUILD_LIB)
-  install(TARGETS lib DESTINATION lib OPTIONAL)
+  install(TARGETS lib DESTINATION ${GMSH_LIB} OPTIONAL)
 endif(ENABLE_BUILD_LIB)
 if(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
-  install(TARGETS shared DESTINATION lib OPTIONAL)
+  install(TARGETS shared DESTINATION ${GMSH_LIB} OPTIONAL)
 endif(ENABLE_BUILD_SHARED OR ENABLE_BUILD_DYNAMIC)
 
 install(FILES ${ONELAB_PY} DESTINATION ${GMSH_BIN})