Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
new attempt
[simgrid.git] / buildtools / Cmake / MakeLib.cmake
index 11d16ef..bddc356 100644 (file)
@@ -11,22 +11,14 @@ include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Supernovae.cmake)
 add_library(simgrid SHARED ${simgrid_sources})
 set_target_properties(simgrid PROPERTIES VERSION ${libsimgrid_version})
 
-add_library(gras SHARED ${gras_sources})
-set_target_properties(gras PROPERTIES VERSION ${libgras_version})
-
 if(enable_lib_static)
   add_library(simgrid_static STATIC ${simgrid_sources})
 endif()
 
-if(enable_smpi)
-  add_library(smpi SHARED ${SMPI_SRC})
-  set_target_properties(smpi PROPERTIES VERSION ${libsmpi_version})
-  if(enable_lib_static)
-    add_library(smpi_static STATIC ${SMPI_SRC})
-  endif()
+if(enable_java)
+  include(${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/MakeJava.cmake)
 endif()
 
-add_dependencies(gras maintainer_files)
 add_dependencies(simgrid maintainer_files)
 
 # if supernovaeing, we need some depends to make sure that the source gets generated
@@ -35,38 +27,18 @@ if (enable_supernovae)
   if(enable_lib_static)
     add_dependencies(simgrid_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c)
   endif()
-  add_dependencies(gras ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_gras.c)
 
   if(enable_smpi)
-    add_dependencies(smpi ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
+    add_dependencies(simgrid ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
     if(enable_lib_static)
-      add_dependencies(smpi_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
+      add_dependencies(simgrid_static ${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_smpi.c)
     endif()
   endif()
 endif()
 
-# Compute the dependencies of GRAS
-##################################
-set(GRAS_DEP "-lm -pthread")
-
-if(HAVE_POSIX_GETTIME)
-  SET(GRAS_DEP "${GRAS_DEP} -lrt")
-endif()
-
-# the following is probably unneed since it kills the previous
-# GRAS_DEP (and is thus probably invalid).
-# My guess is that pthread is never true [Mt]
-# FIXME: KILLME if we get a working windows with that?
-if(with_context MATCHES windows)
-  if(pthread)
-    SET(GRAS_DEP "msg")
-  endif()
-endif()
-target_link_libraries(gras     ${GRAS_DEP})
-
 # Compute the dependencies of SimGrid
 #####################################
-set(SIMGRID_DEP "-lm -lpcre")
+set(SIMGRID_DEP "-lm -lstdc++")
 
 if(pthread)
   if(${CONTEXT_THREADS})
@@ -118,6 +90,7 @@ if(HAVE_MC)
   # The availability of libunwind was checked in CompleteInFiles.cmake
   #   (that includes FindLibunwind.cmake), so simply load it now.
   
+  SET(SIMGRID_DEP "${SIMGRID_DEP} -lunwind")
   # This supposes that the host machine is either an AMD or a X86.
   # This is deeply wrong, and should be fixed by manually loading -lunwind-PLAT (FIXME)
   if(PROCESSOR_x86_64)
@@ -127,6 +100,10 @@ if(HAVE_MC)
   endif()
 endif()
 
+if(MMALLOC_WANT_OVERRIDE_LEGACY AND HAVE_GNU_LD)
+  SET(SIMGRID_DEP "${SIMGRID_DEP} -ldl")
+endif()
+
 if(HAVE_NS3)
   if(${NS3_VERSION} EQUAL 310)
     SET(SIMGRID_DEP "${SIMGRID_DEP} -lns3")
@@ -141,28 +118,20 @@ if(HAVE_POSIX_GETTIME)
   SET(SIMGRID_DEP "${SIMGRID_DEP} -lrt")
 endif()
 
-target_link_libraries(simgrid  ${SIMGRID_DEP})
-
 # Compute the dependencies of SMPI
 ##################################
-set(SMPI_LDEP "")
-if(APPLE)
-  set(SMPI_LDEP "-Wl,-U -Wl,_smpi_simulated_main")
-endif()
-if(enable_smpi)
-  target_link_libraries(smpi   simgrid ${SMPI_LDEP})
+if(enable_smpi AND APPLE)
+  set(SIMGRID_DEP "${SIMGRID_DEP} -Wl,-U -Wl,_smpi_simulated_main")
 endif()
 
+target_link_libraries(simgrid  ${SIMGRID_DEP})
+
 # Pass dependencies to static libs
 ##################################
 if(enable_lib_static)
   target_link_libraries(simgrid_static         ${SIMGRID_DEP})
   add_dependencies(simgrid_static maintainer_files)
   set_target_properties(simgrid_static PROPERTIES OUTPUT_NAME simgrid)
-  if(enable_smpi)
-    target_link_libraries(smpi_static  simgrid ${SMPI_LDEP})
-    set_target_properties(smpi_static PROPERTIES OUTPUT_NAME smpi)
-  endif()
 endif()
 
 # Dependencies from maintainer mode