Added test MPI preprocessor compile definitions
authorDawid Jagiela <lightnir@chem.univ.gda.pl>
Mon, 23 Apr 2012 11:41:40 +0000 (13:41 +0200)
committerDawid Jagiela <lightnir@chem.univ.gda.pl>
Mon, 23 Apr 2012 11:41:40 +0000 (13:41 +0200)
CMakeLists.txt
source/unres/src_MD/CMakeLists.txt

index 329c3ae..8251b09 100644 (file)
@@ -2,29 +2,74 @@
 # CMake project file for UNRES 
 #
 cmake_minimum_required(VERSION 2.8)
-
+   
 project(unrespack Fortran C)
 set(UNRES_MAJOR 3)
 set(UNRES_MINOR 1)
 set(UNRES_PATCH 0)
 set(UNRES_VERSION ${SIMPLE_MAJOR}.${SIMPLE_MINOR}.${SIMPLE_PATCH})
+  
+# Set makefile verbose on
+set( CMAKE_VERBOSE_MAKEFILE 1 )
 
-enable_language (Fortran)
+# MPI stuff
+if(MPIF_LOCAL_DIR)
+  find_library(MPIF_LIBRARY NAMES mpif77  NO_DEFAULT_PATH  PATHS  ${MPIF_LOCAL_DIR}/lib)
+  find_path( MPIF_INCLUDE_DIRECTORIES  NAMES mpif.h  NO_DEFAULT_PATH  PATHS  ${MPIF_LOCAL_DIR}/include  )
+else(MPIF_LOCAL_DIR)
+  find_library(MPIF_LIBRARY NAMES mpif77 PATHS 
+       /users/local/mpi64/mpich-1.2.7p1/lib 
+       /usr/lib
+        /usr/local/lib
+        /usr/local/mpi/lib
+  )
+  find_path( MPIF_INCLUDE_DIRECTORIES NAMES  mpif.h PATHS
+       /users/local/mpi64/mpich-1.2.7p1/include
+       /usr/include
+       /usr/local/include   
+       /usr/include/mpi
+       /usr/local/mpi/include
+  )
+endif(MPIF_LOCAL_DIR)
+
+set( MPIF_LIBRARIES  ${MPIF_LIBRARY})
+
+if ( MPIF_INCLUDE_DIRECTORIES AND MPIF_LIBRARIES )
+  set( MPIF_FOUND TRUE )
+  message("MPIF found")
+else ( MPIF_INCLUDE_DIRECTORIES AND MPIF_LIBRARIES )
+  set( MPIF_FOUND FALSE )
+  message("MPIF_ID: ${MPIF_INCLUDE_DIRECTORIES} MPIF_LIB: ${MPIF_LIBRARIES}")
+  message("MPIF not found")
+endif ( MPIF_INCLUDE_DIRECTORIES AND MPIF_LIBRARIES )
+# End OF MPI stuff
+
+
+if (MPIF_FOUND)
+  messege("MPI library "${MPIF_INCLUDE_DIRECTORIES} )
+endif(MPIF_FOUND) 
+
+SET(CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER>  ${CMAKE_START_TEMP_FILE} <FLAGS> <DEFINES> -c <SOURCE> -o <OBJECT> ${CMAKE_END_TEMP_FILE}")
 
+set(CPPFLAGS "-DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANGO -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+# Apply them to *.F sources
+add_definitions( ${CPPFLAGS} ) 
+
+
+enable_language (Fortran)
+   
 # make sure that the default is a RELEASE
 if (NOT CMAKE_BUILD_TYPE)
   set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
-      "Choose the type of build, options are: None Debug Release."
+       "Choose the type of build, options are: None Debug Release."
       FORCE)
 endif (NOT CMAKE_BUILD_TYPE)
-
-
+   
+  
 # Set the force field
 if (NOT UNRES_FF)
   set(UNRES_FF "GAB" "E0LL2Y" CACHE STRING "Choose the force field, options are: GAB E0LL2Y" )
   #message ( "Please set the Force field (UNRES_FF) to : GAB, 0ELE" )
 endif (NOT UNRES_FF)
-
+   
 add_subdirectory(source)
-
index 4e763ba..e3aa9a0 100644 (file)
@@ -23,34 +23,50 @@ set(UNRES_MD_SRC0 unres.F arcos.f cartprint.f chainbuild.F convert.f
 
 set(UNRES_MD_SRC3 energy_p_new_barrier.F energy_p_new-sep_barrier.F gradient_p.F )
 
+set(UNRES_MD_PP_SRC cartder.F chainbuild.F checkder_p.F compare_s1.F dihed_cons.F econstr_local.F 
+       energy_p_new_barrier.F energy_p_new-sep_barrier.F energy_split-sep.F entmcm.F gen_rand_conf.F
+       geomout.F gradient_p.F initialize_p.F intcartderiv.F lagrangian_lesyng.F mc.F mcm.F MD_A-MTS.F
+       minimize_p.F minim_mcmf.F MP.F MREMD.F parmread.F prng_32.F q_measure1.F q_measure3.F q_measure.F
+       rattle.F readpdb.F readrtns.F regularize.F rmsd.F sc_move.F stochfric.F test.F thread.F timing.F
+       unres.F ) 
 
 # Set compiler flags for different sourcefiles
-set(FFLAGS0 -c -O3 -ip -w ) 
-set(FFLAGS1 -c -w -g -d2 -CA -CB ) 
-set(FFLAGS2 -c -w -g -00 )
-set(FFLAGS3 -c -w -O3 -ipo -ipo_obj -opt_report )
+set(FFLAGS0 "-O3 -ip -w -I${MPIF_INCLUDE_DIRECTORIES}" ) 
+set(FFLAGS1 "-c -w -g -d2 -CA -CB -I${MPIF_INCLUDE_DIRECTORIES}" ) 
+set(FFLAGS2 "-c -w -g -00 -I${MPIF_INCLUDE_DIRECTORIES} ")
+set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report -I${MPIF_INCLUDE_DIRECTORIES}" )
 
-set_property(SOURCE ${UNRES_MD_SRC0} PROPERTY CMAKE_Fortran_FLAGS ${FFLAGS0} )
-set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
-set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
-set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY CMAKE_Fortran_FLAGS ${FFLAGS3} )
+set_property(SOURCE ${UNRES_MD_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+#set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
+#set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
+set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
 
 # Compile code
 
 if(UNRES_FF STREQUAL "GAB")
+# GAB forcefield compile Conditions 
 
-  set(CMAKE_CXX_FLAGS -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANGO
-  -DCRYST_BOND -DCRYST_THETA -DCRYST_SC )
-  set(UNRES_BIN unres_ifort_MPICH_GAB.exe )
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+# do ifort specific stuff
+# set preprocesor flags 
+  set(CPPFLAGS "-DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANGO -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+# Apply them to *.F sources
+#add_definitions( ${CPPFLAGS} ) 
 
-else(UNRES_FF strequal "E0LL2Y")
+#SET(CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} <FLAGS> -DLINUX -c <SOURCE> -o <OBJECT> ${CMAKE_END_TEMP_FILE}")
+#  set_property(SOURCE readrtns.F PROPERTY COMPILE_DEFINITIONS "-DMPI"  )  
+# Set output binary 
+  set(UNRES_BIN "unres_ifort_MPICH_GAB.exe" )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
 
-  set(CMAKE_CXX__FLAGS -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANG0 )
 
+else(UNRES_FF strequal "E0LL2Y")
+  set(CPPFLAGS -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANG0 )
 endif()
 
-
+set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "" )
 add_executable(compinfo compinfo.c)
 add_custom_command(OUTPUT cinfo.f COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true )
+#set_property(TARGET ${UNRES_BIN} PROPERTY COMPILE_DEFINITIONS MPI )
 add_executable(${UNRES_BIN} ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} cinfo.f )