-string(REPLACE ";" "\t" install_HEADERS "${install_HEADERS}")
-string(REPLACE ";" "\t" install_libs "${install_libs}")
-set(uninstall_bins "${install_bins}")
-string(REPLACE "${PROJECT_DIRECTORY}/src/smpi" "${prefix}/bin" uninstall_bins "${uninstall_bins}")
-string(REPLACE "${PROJECT_DIRECTORY}/tools/gras" "${prefix}/bin" uninstall_bins "${uninstall_bins}")
-string(REPLACE "${PROJECT_DIRECTORY}/tools/tesh" "${prefix}/bin" uninstall_bins "${uninstall_bins}")
-string(REPLACE "${PROJECT_DIRECTORY}/tools/MSG_visualization/colorize.pl" "${prefix}/bin/simgrid_colorizer.pl" uninstall_bins "${uninstall_bins}")
-string(REPLACE "${PROJECT_DIRECTORY}/src/.libs" "${prefix}/lib" uninstall_libs "${install_libs}")
-string(REPLACE "./" "${prefix}/" uninstall_HEADERS "${install_HEADERS}")
-
-string(REPLACE "/usr/lib/ruby" "" install_link_ruby "${RUBY_INCLUDE_PATH}")
-
-add_custom_target(install-simgrid
-COMMAND mkdir -p ${prefix}
-COMMAND mkdir -p ${prefix}/bin
-COMMAND mkdir -p ${prefix}/lib
-COMMAND mkdir -p ${prefix}/include
-COMMAND mkdir -p ${prefix}/doc
-COMMAND mkdir -p ${prefix}/doc/simgrid
-COMMAND mkdir -p ${prefix}/doc/simgrid/html
-COMMAND cp ${install_bins} ${prefix}/bin
-COMMAND cp ${PROJECT_DIRECTORY}/tools/MSG_visualization/colorize.pl ${prefix}/bin/simgrid_colorizer.pl
-COMMAND echo "install bin ok"
-COMMAND cp ${install_libs} ${prefix}/lib
-COMMAND echo "install lib ok"
-COMMAND cp --parent ${install_HEADERS} ${prefix}
-COMMAND echo "install include ok"
-COMMAND cp -rf ${PROJECT_DIRECTORY}/doc/html/ ${prefix}/doc/simgrid
-COMMAND echo "install doc ok"
-WORKING_DIRECTORY "${PROJECT_DIRECTORY}/"
-)
+# libraries
+install(TARGETS simgrid gras
+ DESTINATION $ENV{DESTDIR}${prefix}/lib/)
+
+install(FILES ${CMAKE_BINARY_DIR}/lib/libsimgrid_static.a
+ RENAME libsimgrid.a
+ DESTINATION $ENV{DESTDIR}${prefix}/lib/)
+
+if(enable_smpi)
+ install(TARGETS smpi
+ DESTINATION $ENV{DESTDIR}${prefix}/lib/)
+endif(enable_smpi)
+
+# include files
+foreach(file ${install_HEADERS})
+ get_filename_component(location ${file} PATH)
+ install(FILES ${file}
+ DESTINATION $ENV{DESTDIR}${prefix}/${location})
+endforeach(file ${install_HEADERS})
+
+# example files
+foreach(file ${examples_to_install_in_doc})
+ string(REPLACE "${PROJECT_DIRECTORY}/examples/" "" file ${file})
+ get_filename_component(location ${file} PATH)
+ install(FILES "examples/${file}"
+ DESTINATION $ENV{DESTDIR}${prefix}/doc/simgrid/examples/${location})
+endforeach(file ${examples_to_install_in_doc})
+
+# bindings cruft
+if(HAVE_JAVA)
+ install(FILES ${CMAKE_BINARY_DIR}/simgrid.jar
+ DESTINATION $ENV{DESTDIR}${prefix}/share/)
+endif(HAVE_JAVA)
+
+if(HAVE_LUA)
+ add_custom_target(absolute_liblink ALL
+ COMMAND ${CMAKE_COMMAND} -E create_symlink $ENV{DESTDIR}${prefix}/lib/libsimgrid.so ${CMAKE_BINARY_DIR}/libsimgrid.so)
+ install(FILES ${CMAKE_BINARY_DIR}/libsimgrid.so
+ DESTINATION $ENV{DESTDIR}${prefix}/lib/lua/5.1
+ RENAME simgrid.so)
+endif(HAVE_LUA)
+
+if(HAVE_RUBY)
+ string(REGEX REPLACE "^.*ruby/" "" install_link_ruby "${RUBY_ARCH_DIR}")
+ install(FILES ${CMAKE_BINARY_DIR}/libsimgrid.so
+ ${PROJECT_DIRECTORY}/src/bindings/ruby/simgrid.rb
+ DESTINATION $ENV{DESTDIR}${prefix}/lib/ruby/${install_link_ruby}/)
+endif(HAVE_RUBY)
+
+###########################################
+### Fill in the "make uninstall" target ###
+###########################################