########################################################################
# Specify install locations
########################################################################
-if ( NOT DEFINED GMXLIB )
- set(GMXLIB lib)
-endif()
-set(LIB_INSTALL_DIR "${GMX_INSTALL_PREFIX}${GMXLIB}")
+set(GMX_LIB_INSTALL_DIR lib CACHE STRING
+ "Library installation directory (default: lib)")
+set(GMX_DATA_INSTALL_DIR gromacs CACHE STRING
+ "Data installation directory under share/ (default: gromacs)")
+mark_as_advanced(GMX_LIB_INSTALL_DIR GMX_DATA_INSTALL_DIR)
+
+set(LIB_INSTALL_DIR ${GMX_INSTALL_PREFIX}${GMX_LIB_INSTALL_DIR})
set(BIN_INSTALL_DIR ${GMX_INSTALL_PREFIX}bin)
-set(DATA_INSTALL_DIR ${GMX_INSTALL_PREFIX}share/gromacs)
+set(DATA_INSTALL_DIR ${GMX_INSTALL_PREFIX}share/${GMX_DATA_INSTALL_DIR})
set(MAN_INSTALL_DIR ${GMX_INSTALL_PREFIX}share/man)
set(INCL_INSTALL_DIR ${GMX_INSTALL_PREFIX}include)
-set(GMXLIBDIR ${DATA_INSTALL_DIR}/top)
+set(GMXLIB_SEARCH_DIR share/${GMX_DATA_INSTALL_DIR}/top)
+set(GMXLIB_FALLBACK ${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}/top)
########################################################################
# Set up binary and library suffixing
##########################################################
# This is the real configuration part. We save the Gromacs
# things in separate vars, so we can remove them later.
-# If you move gromacs, change the next four line.
+# If you move gromacs, change the first line.
##########################################################
-GMXBIN=@BIN_INSTALL_DIR@
-GMXLDLIB=@LIB_INSTALL_DIR@
-GMXMAN=@MAN_INSTALL_DIR@
-GMXDATA=@DATA_INSTALL_DIR@
-
+GMXPREFIX=@CMAKE_INSTALL_PREFIX@
+GMXBIN=${GMXPREFIX}/@BIN_INSTALL_DIR@
+GMXLDLIB=${GMXPREFIX}/@LIB_INSTALL_DIR@
+GMXMAN=${GMXPREFIX}/@MAN_INSTALL_DIR@
+GMXDATA=${GMXPREFIX}/@DATA_INSTALL_DIR@
+
LD_LIBRARY_PATH=${GMXLDLIB}${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}
PKG_CONFIG_PATH=${GMXLDLIB}/pkgconfig${PKG_CONFIG_PATH:+:}${PKG_CONFIG_PATH}
PATH=${GMXBIN}${PATH:+:}${PATH}
test $shell && goto CSH
# if we got here, shell is bsh/bash/zsh/ksh
-. @BIN_INSTALL_DIR@/GMXRC.bash
+. @CMAKE_INSTALL_PREFIX@/@BIN_INSTALL_DIR@/GMXRC.bash
return
# csh/tcsh jump here
CSH:
-source @BIN_INSTALL_DIR@/GMXRC.csh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+source @CMAKE_INSTALL_PREFIX@/@BIN_INSTALL_DIR@/GMXRC.csh
##########################################################
# This is the real configuration part. We save the Gromacs
# things in separate vars, so we can remove them later.
-# If you move gromacs, change the next four line.
+# If you move gromacs, change the first line.
##########################################################
-setenv GMXBIN @BIN_INSTALL_DIR@
-setenv GMXLDLIB @LIB_INSTALL_DIR@
-setenv GMXMAN @MAN_INSTALL_DIR@
-setenv GMXDATA @DATA_INSTALL_DIR@
+setenv GMXPREFIX @CMAKE_INSTALL_PREFIX@
+setenv GMXBIN ${GMXPREFIX}/@BIN_INSTALL_DIR@
+setenv GMXLDLIB ${GMXPREFIX}/@LIB_INSTALL_DIR@
+setenv GMXMAN ${GMXPREFIX}/@MAN_INSTALL_DIR@
+setenv GMXDATA ${GMXPREFIX}/@DATA_INSTALL_DIR@
#make them begin with :
if ($?LD_LIBRARY_PATH) setenv LD_LIBRARY_PATH ":${LD_LIBRARY_PATH}"
# zsh configuration file for Gromacs
# only kept for backwards compatibility
-source @BIN_INSTALL_DIR@/GMXRC.bash
+source @CMAKE_INSTALL_PREFIX@/@BIN_INSTALL_DIR@/GMXRC.bash
endif (PC_GROMACS_CFLAGS_OTHER)
set(GROMACS_DEFINITIONS "${GMX_DEFS}" CACHE STRING "extra GROMACS definitions")
-find_library(GROMACS_LIBRARY NAMES ${GROMACS_LIBRARY_NAME} HINTS ${PC_GROMACS_LIBRARY_DIRS} @LIB_INSTALL_DIR@)
+find_library(GROMACS_LIBRARY NAMES ${GROMACS_LIBRARY_NAME}
+ HINTS ${PC_GROMACS_LIBRARY_DIRS} @CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@)
if (GROMACS_LIBRARY)
if("${GROMACS_LIBRARY}" MATCHES "lib(gmx|gromacs)[^;]*\\.a")
if(PC_GROMACS_LIBRARIES)
list(REMOVE_ITEM PC_GROMACS_LIBRARIES ${GROMACS_LIBRARY_NAME})
foreach (LIB ${PC_GROMACS_LIBRARIES})
- find_library(GROMACS_${LIB} NAMES ${LIB} HINTS ${PC_GROMACS_LIBRARY_DIRS} @INCL_INSTALL_DIR@)
+ find_library(GROMACS_${LIB} NAMES ${LIB}
+ HINTS ${PC_GROMACS_LIBRARY_DIRS} @CMAKE_INSTALL_PREFIX@/@INCL_INSTALL_DIR@)
list(APPEND GMX_DEP_LIBRARIES ${GROMACS_${LIB}})
unset(GROMACS_${LIB} CACHE)
endforeach(LIB)
#cmakedefine GMX_GIT_VERSION_INFO
/* Default location of data files */
-#define GMXLIBDIR "@GMXLIBDIR@"
+#define GMXLIB_SEARCH_DIR "@GMXLIB_SEARCH_DIR@"
+
+/* Default location of data files */
+#define GMXLIB_FALLBACK "@GMXLIB_FALLBACK@"
/* Binary suffix for the created binaries */
#define GMX_BINARY_SUFFIX "@GMX_BINARY_SUFFIX@"
found = gmx_fexist(libdir);
if (!found)
{
- sprintf(libdir, "%s%cshare%cgromacs%ctop%cgurgle.dat", parent,
- DIR_SEPARATOR, DIR_SEPARATOR,
- DIR_SEPARATOR, DIR_SEPARATOR);
- found = gmx_fexist(libdir);
- }
- if (!found)
- {
- sprintf(libdir, "%s%cshare%cgromacs-%s%ctop%cgurgle.dat", parent,
- DIR_SEPARATOR, DIR_SEPARATOR, VERSION,
- DIR_SEPARATOR, DIR_SEPARATOR);
- found = gmx_fexist(libdir);
- }
- if (!found)
- {
- sprintf(libdir, "%s%cshare%cgromacs%cgromacs-%s%ctop%cgurgle.dat", parent,
- DIR_SEPARATOR, DIR_SEPARATOR, DIR_SEPARATOR,
- VERSION, DIR_SEPARATOR, DIR_SEPARATOR);
+ sprintf(libdir, "%s%c%s%cgurgle.dat", parent,
+ DIR_SEPARATOR, GMXLIB_SEARCH_DIR, DIR_SEPARATOR);
found = gmx_fexist(libdir);
}
#endif
}
-gmx_bool get_libdir(char *libdir)
+void get_libdir(char *libdir)
{
#define GMX_BINNAME_MAX 512
char bin_name[GMX_BINNAME_MAX];
}
if (!found)
{
- return FALSE;
+ strcpy(libdir, GMXLIB_FALLBACK);
+ return;
}
}
else if (!filename_is_absolute(bin_name))
{
if (search_subdirs(CMAKE_SOURCE_DIR, libdir))
{
- return TRUE;
+ return;
}
}
#endif
found = search_subdirs("/opt", libdir);
}
#endif
- return found;
+ if (!found)
+ {
+ strcpy(libdir, GMXLIB_FALLBACK);
+ }
}
env_is_set = TRUE;
strncpy(libpath, lib, GMX_PATH_MAX);
}
- else if (!get_libdir(libpath))
+ else
{
- strncpy(libpath, GMXLIBDIR, GMX_PATH_MAX);
+ get_libdir(libpath);
}
ret = NULL;
env_is_set = TRUE;
strncat(libpath, lib, GMX_PATH_MAX);
}
- else if (!get_libdir(libpath+strlen(libpath)))
+ else
{
- strncat(libpath, GMXLIBDIR, GMX_PATH_MAX);
+ get_libdir(libpath + strlen(libpath));
}
}
s = libpath;
-gmx_bool get_libdir(char *libdir);
+void get_libdir(char *libdir);
char *low_gmxlibfn(const char *file, gmx_bool bAddCWD, gmx_bool bFatal);
-libdir=@LIB_INSTALL_DIR@
-includedir=@INCL_INSTALL_DIR@
+libdir=@CMAKE_INSTALL_PREFIX@/@LIB_INSTALL_DIR@
+includedir=@CMAKE_INSTALL_PREFIX@/@INCL_INSTALL_DIR@
Name: libgromacs@GMX_LIBS_SUFFIX@
Description: Gromacs library