diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce917a0575016b31e90d006e222940ada45b53e5..fbfbe15217d253aa1c5ef4e00d2289b5d24024e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,30 +6,32 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
 INCLUDE(cmake/base.cmake)
 INCLUDE(cmake/boost.cmake)
-INCLUDE(cmake/cpack.cmake)
-INCLUDE(cmake/eigen.cmake)
 INCLUDE(cmake/python.cmake)
 
 SET(PROJECT_NAME eigenpy)
 SET(PROJECT_DESCRIPTION "Wrapping Eigen3 -- numpy")
-SET(PROJECT_URL "http://github.com/stac-of-tasks/eigenpy")
+SET(PROJECT_URL "http://github.com/stack-of-tasks/eigenpy")
 
 # Disable -Werror on Unix for now.
 SET(CXX_DISABLE_WERROR True)
 SET(CMAKE_VERBOSE_MAKEFILE True)
 
-project(${PROJECT_NAME})
 SETUP_PROJECT()
 STRING(REPLACE "-pedantic" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
 
+IF(APPLE)
+  SET(CMAKE_MACOSX_RPATH TRUE)
+ENDIF(APPLE)
+
 # ----------------------------------------------------
 # --- DEPENDANCIES -----------------------------------
 # ----------------------------------------------------
-SEARCH_FOR_EIGEN()
+ADD_REQUIRED_DEPENDENCY("eigen3 >= 3.0.5")
 SET(BOOST_COMPONENTS python)
 SEARCH_FOR_BOOST()
 set(Python_ADDITIONAL_VERSIONS 2.7)
 FINDPYTHON()
+FIND_NUMPY()
 
 # ----------------------------------------------------
 # --- INCLUDE ----------------------------------------
@@ -66,39 +68,44 @@ ENDFOREACH(header)
 # ----------------------------------------------------
 # --- TARGETS ----------------------------------------
 # ----------------------------------------------------
-INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
+INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS} ${NUMPY_INCLUDE_DIRS})
+# Add Boost path to include directories.
 INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
 
-SET(eigenpy_SOURCES
+SET(${PROJECT_NAME}_SOURCES
   src/exception.cpp
   src/eigenpy.cpp
   src/details.cpp
   src/angle-axis.cpp
   src/quaternion.cpp
-  )
+)
 
-ADD_LIBRARY(eigenpy SHARED ${eigenpy_SOURCES})
-TARGET_LINK_LIBRARIES(eigenpy ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
-INSTALL(TARGETS eigenpy DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
+# With Darwin system, the library needs to be static for a complete exposion of eigen structure under Python
+IF(APPLE)
+  ADD_LIBRARY(${PROJECT_NAME} ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS})
+ELSE(APPLE)
+  ADD_LIBRARY(${PROJECT_NAME} SHARED ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_HEADERS})
+ENDIF(APPLE)
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
+PKG_CONFIG_USE_DEPENDENCY(${PROJECT_NAME} eigen3)
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
 
 # ----------------------------------------------------
 # --- UNIT TEST --------------------------------------
 # ----------------------------------------------------
 ADD_LIBRARY(matrix SHARED unittest/matrix.cpp)
-TARGET_LINK_LIBRARIES(matrix ${Boost_LIBRARIES} eigenpy)
+TARGET_LINK_LIBRARIES(matrix ${Boost_LIBRARIES} ${PROJECT_NAME})
 SET_TARGET_PROPERTIES(matrix PROPERTIES PREFIX "")
 
 ADD_LIBRARY(geometry SHARED unittest/geometry.cpp)
-TARGET_LINK_LIBRARIES(geometry ${Boost_LIBRARIES} eigenpy)
+TARGET_LINK_LIBRARIES(geometry ${Boost_LIBRARIES} ${PROJECT_NAME})
 SET_TARGET_PROPERTIES(geometry PROPERTIES PREFIX "")
 
-PKG_CONFIG_APPEND_CFLAGS(${_Eigen_CFLAGS})
 PKG_CONFIG_APPEND_CFLAGS("-I${PYTHON_INCLUDE_DIRS}")
-#PKG_CONFIG_APPEND_LIBS_RAW(${Boost_LIBRARIES})
+PKG_CONFIG_APPEND_CFLAGS("-I${NUMPY_INCLUDE_DIRS}")
 PKG_CONFIG_APPEND_LIBS("boost_python")
 PKG_CONFIG_APPEND_LIBS_RAW(${PYTHON_LIBRARIES})
 PKG_CONFIG_APPEND_LIBS(${PROJECT_NAME})
 
 SETUP_PROJECT_FINALIZE()
-SETUP_PROJECT_CPACK()
-
diff --git a/eigenpy.pc.cmake b/eigenpy.pc.cmake
deleted file mode 100644
index 1810450ffa0d87196719a704b0093aa199bd87c5..0000000000000000000000000000000000000000
--- a/eigenpy.pc.cmake
+++ /dev/null
@@ -1,13 +0,0 @@
-prefix=${CMAKE_INSTALL_PREFIX}
-exec_prefix=${install_pkg_prefix}
-libdir=${install_pkg_exec_prefix}/lib
-includedir=${install_pkg_prefix}/include
-datarootdir=${install_pkg_prefix}/share
-docdir=${install_pkg_datarootdir}/doc/${PROJECT_NAME}
-
-Name: ${PROJECT_NAME}
-Description: 
-Version: ${PROJECT_VERSION}
-Requires: ${PACKAGE_REQUIREMENTS}
-Libs: ${LIBDIR_KW}${install_pkg_libdir} ${${PROJECT_NAME}_LDFLAGS}
-Cflags: -I${install_pkg_include_dir} ${${PROJECT_NAME}_CXXFLAGS}