Part of #685.
Change-Id: I92d9ad5705356b2ab1e132383a5fee79ade0f4d0
include(CTest)
mark_as_advanced(BUILD_TESTING)
#gmxtests target builds all binaries required for running gmxtest
-add_custom_target(gmxtests DEPENDS mdrun gmx links)
+add_custom_target(gmxtests DEPENDS gmx links)
IF(BUILD_TESTING)
enable_testing()
add_subdirectory(tests)
# To help us fund GROMACS development, we humbly ask that you cite
# the research papers on the package. Check out http://www.gromacs.org.
-add_subdirectory(mdrun)
-if (NOT GMX_FAHCORE)
- add_subdirectory(gmx)
-endif (NOT GMX_FAHCORE)
+include_directories(${CMAKE_SOURCE_DIR}/src/gromacs/gmxpreprocess)
+
+file(GLOB MDRUN_SOURCES mdrun/*.c mdrun/*.cpp)
+
+if(GMX_FAHCORE)
+ add_library(fahcore ${MDRUN_SOURCES})
+else()
+ file(GLOB GMX_EXECUTABLE_SOURCES gmx/*.c gmx/*.cpp)
+ add_executable(gmx ${GMX_EXECUTABLE_SOURCES} ${MDRUN_SOURCES})
+ target_link_libraries(gmx
+ ${GMX_EXTRA_LIBRARIES} libgromacs ${GMX_EXE_LINKER_FLAGS})
+ set_target_properties(gmx PROPERTIES
+ OUTPUT_NAME "gmx${GMX_BINARY_SUFFIX}"
+ COMPILE_FLAGS "${OpenMP_C_FLAGS}")
+
+ configure_file(CreateLinks.cmake.cmakein CreateLinks.cmake @ONLY)
+ set(CREATE_LINKS_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/CreateLinks.cmake)
+ # TODO: Currently this rule is always run and recreates the symlinks;
+ # it would be best to just adapt the rest of the build such that this is
+ # never needed (for now, this makes the binary directory seem like it was
+ # earlier).
+ add_custom_target(links ALL
+ ${CMAKE_COMMAND}
+ -DBINARY_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+ -DQUIETLY=TRUE
+ -P ${CREATE_LINKS_SCRIPT}
+ DEPENDS gmx
+ COMMENT "Creating symlinks for alternative binary names"
+ VERBATIM)
+
+ # TODO: Create man pages (currently not working since the old mechanism
+ # requires a target for each binary to which one can add a post-build role, and
+ # the symlinks do not have such targets).
+
+ install(TARGETS gmx
+ RUNTIME DESTINATION ${BIN_INSTALL_DIR})
+ if (GMX_SYMLINK_OLD_BINARY_NAMES)
+ install(SCRIPT ${CREATE_LINKS_SCRIPT} COMPONENT links)
+ endif ()
+endif()
# but this has some complications. As the same list is also needed for
# man page generation, this can wait for now.
set(SYMLINK_NAMES
+ mdrun
gmxcheck
gmxdump
grompp
+++ /dev/null
-#
-# This file is part of the GROMACS molecular simulation package.
-#
-# Copyright (c) 2010,2012,2013, by the GROMACS development team, led by
-# David van der Spoel, Berk Hess, Erik Lindahl, and including many
-# others, as listed in the AUTHORS file in the top-level source
-# directory and at http://www.gromacs.org.
-#
-# GROMACS is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public License
-# as published by the Free Software Foundation; either version 2.1
-# of the License, or (at your option) any later version.
-#
-# GROMACS is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with GROMACS; if not, see
-# http://www.gnu.org/licenses, or write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# If you want to redistribute modifications to GROMACS, please
-# consider that scientific software is very special. Version
-# control is crucial - bugs must be traceable. We will be happy to
-# consider code for inclusion in the official distribution, but
-# derived work must not be called official GROMACS. Details are found
-# in the README & COPYING files - if they are missing, get the
-# official version at http://www.gromacs.org.
-#
-# To help us fund GROMACS development, we humbly ask that you cite
-# the research papers on the package. Check out http://www.gromacs.org.
-include_directories(${CMAKE_SOURCE_DIR}/src/gromacs/gmxpreprocess)
-
-file(GLOB GMX_EXECUTABLE_SOURCES *.c *.cpp)
-
-add_executable(gmx ${GMX_EXECUTABLE_SOURCES})
-target_link_libraries(gmx libgromacs ${GMX_EXE_LINKER_FLAGS})
-set_target_properties(gmx PROPERTIES OUTPUT_NAME "gmx${GMX_BINARY_SUFFIX}")
-
-configure_file(CreateLinks.cmake.cmakein CreateLinks.cmake @ONLY)
-set(CREATE_LINKS_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/CreateLinks.cmake)
-# TODO: Currently this rule is always run and recreates the symlinks;
-# it would be best to just adapt the rest of the build such that this is
-# never needed (for now, this makes the binary directory seem like it was
-# earlier).
-add_custom_target(links ALL
- ${CMAKE_COMMAND}
- -DBINARY_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
- -DQUIETLY=TRUE
- -P ${CREATE_LINKS_SCRIPT}
- DEPENDS gmx
- COMMENT "Creating symlinks for alternative binary names"
- VERBATIM)
-
-# TODO: Create man pages (currently not working since the old mechanism
-# requires a target for each binary to which one can add a post-build role, and
-# the symlinks do not have such targets).
-# May be worth to wait until #685 and #969 are resolved; after these, it should
-# be possible to handle everything uniformly instead of having several
-# different CMake-side mechanisms.
-
-install(TARGETS gmx
- RUNTIME DESTINATION ${BIN_INSTALL_DIR})
-if (GMX_SYMLINK_OLD_BINARY_NAMES)
- install(SCRIPT ${CREATE_LINKS_SCRIPT} COMPONENT links)
-endif ()
#include "gromacs/gmxana/gmx_ana.h"
+#include "../mdrun/mdrun_main.h"
+
extern "C"
{
registerModule(manager, &gmx_x2top, "x2top",
"Generate a primitive topology from coordinates");
+ registerModule(manager, &gmx_mdrun, "mdrun",
+ "Perform a simulation, do a normal mode analysis or an energy minimization");
+
// Modules from gmx_ana.h.
registerModule(manager, &gmx_do_dssp, "do_dssp",
"Assign secondary structure and calculate solvent accessible surface area");
// TODO: Also include binaries from other directories than src/tools/:
// "g_xrama|Show animated Ramachandran plots");
// "mdrun|finds a potential energy minimum and calculates the Hessian");
- // "mdrun|performs a simulation, do a normal mode analysis or an energy minimization");
// "mdrun|with -rerun (re)calculates energies for trajectory frames");
// "ngmx|Display a trajectory");
}
+++ /dev/null
-include_directories(${CMAKE_SOURCE_DIR}/src/gromacs/gmxpreprocess)
-
-set(MDRUN_SOURCES
- do_gct.c gctio.c genalg.c ionize.c
- md.c mdrun.cpp membed.c
- pme_loadbal.c repl_ex.c runner.c xutils.c)
-
-if(GMX_FAHCORE)
- add_library(fahcore ${MDRUN_SOURCES})
-else(GMX_FAHCORE)
- add_executable(mdrun ${MDRUN_SOURCES})
- gmx_add_man_page(mdrun)
- target_link_libraries(mdrun ${GMX_EXTRA_LIBRARIES} libgromacs
- ${GMX_EXE_LINKER_FLAGS})
- set_target_properties(mdrun PROPERTIES OUTPUT_NAME "mdrun${GMX_BINARY_SUFFIX}"
- COMPILE_FLAGS "${OpenMP_C_FLAGS}")
- install(TARGETS mdrun DESTINATION ${BIN_INSTALL_DIR} COMPONENT mdrun)
-
- # Create the custom install-mdrun target
- if (BUILD_SHARED_LIBS)
- # If shared libraries are used, we need to install the libraries in
- # addition to the mdrun binary.
- add_custom_target(install-mdrun
- COMMAND ${CMAKE_COMMAND} -DCOMPONENT=libraries
- -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
- COMMAND ${CMAKE_COMMAND} -DCOMPONENT=mdrun
- -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
- COMMENT "Installing mdrun")
- else (BUILD_SHARED_LIBS)
- add_custom_target(install-mdrun
- COMMAND ${CMAKE_COMMAND} -DCOMPONENT=mdrun
- -P ${CMAKE_BINARY_DIR}/cmake_install.cmake
- COMMENT "Installing mdrun")
- endif (BUILD_SHARED_LIBS)
- add_dependencies(install-mdrun mdrun)
-endif(GMX_FAHCORE)
* And Hey:
* Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
*/
+#include "mdrun_main.h"
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "gromacs/legacyheaders/statutil.h"
#include "gromacs/legacyheaders/typedefs.h"
-#include "gromacs/commandline/cmdlinemodulemanager.h"
-
int gmx_mdrun(int argc, char *argv[])
{
const char *desc[] = {
return rc;
}
-
-int main(int argc, char *argv[])
-{
- return gmx::CommandLineModuleManager::runAsMainCMain(argc, argv, &gmx_mdrun);
-}
--- /dev/null
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2013, by the GROMACS development team, led by
+ * David van der Spoel, Berk Hess, Erik Lindahl, and including many
+ * others, as listed in the AUTHORS file in the top-level source
+ * directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+#ifndef GMX_PROGRAMS_MDRUN_MDRUN_H
+#define GMX_PROGRAMS_MDRUN_MDRUN_H
+
+int gmx_mdrun(int argc, char *argv[]);
+
+#endif