diff --git a/cmake/install_layout.cmake b/cmake/install_layout.cmake index a14ef05c5..4e3095e8e 100644 --- a/cmake/install_layout.cmake +++ b/cmake/install_layout.cmake @@ -9,3 +9,24 @@ set(MAXSCALE_DOCDIR ${CMAKE_INSTALL_DOCDIR}/maxscale CACHE PATH "Documentation i # These are the only hard-coded absolute paths set(MAXSCALE_VARDIR /var CACHE PATH "Data file path (usually /var/)") set(MAXSCALE_CONFDIR /etc CACHE PATH "Configuration file installation path (/etc/)") + +# Default values for directories and subpaths where files are searched. These +# are used in `server/include/gwdirs.h.in`. + +set(DEFAULT_PID_SUBPATH "run/maxscale" CACHE PATH "Default PID file subpath") +set(DEFAULT_LOG_SUBPATH "log/maxscale" CACHE PATH "Default log subpath") +set(DEFAULT_DATA_SUBPATH "lib/maxscale" CACHE PATH "Default datadir subpath") +set(DEFAULT_LIB_SUBPATH "${MAXSCALE_LIBDIR}" CACHE PATH "Default library subpath") +set(DEFAULT_CACHE_SUBPATH "cache/maxscale" CACHE PATH "Default cache subpath") +set(DEFAULT_LANG_SUBPATH "lib/maxscale" CACHE PATH "Default language file subpath") +set(DEFAULT_EXEC_SUBPATH "${MAXSCALE_BINDIR}" CACHE PATH "Default executable subpath") +set(DEFAULT_CONFIG_SUBPATH "etc" CACHE PATH "Default configuration subpath") + +set(DEFAULT_PIDDIR ${MAXSCALE_VARDIR}/${DEFAULT_PID_SUBPATH} CACHE PATH "Default PID file directory") +set(DEFAULT_LOGDIR ${MAXSCALE_VARDIR}/${DEFAULT_LOG_SUBPATH} CACHE PATH "Default log directory") +set(DEFAULT_DATADIR ${MAXSCALE_VARDIR}/${DEFAULT_DATA_SUBPATH} CACHE PATH "Default datadir path") +set(DEFAULT_LIBDIR ${CMAKE_INSTALL_PREFIX}/${DEFAULT_LIB_SUBPATH}/ CACHE PATH "Default library path") +set(DEFAULT_CACHEDIR ${MAXSCALE_VARDIR}/${DEFAULT_CACHE_SUBPATH} CACHE PATH "Default cache directory") +set(DEFAULT_LANGDIR ${MAXSCALE_VARDIR}/${DEFAULT_LANG_SUBPATH} CACHE PATH "Default language file directory") +set(DEFAULT_EXECDIR ${CMAKE_INSTALL_PREFIX}/${DEFAULT_EXEC_SUBPATH} CACHE PATH "Default executable directory") +set(DEFAULT_CONFIGDIR /${DEFAULT_CONFIG_SUBPATH} CACHE PATH "Default configuration directory") diff --git a/cmake/package_tgz.cmake b/cmake/package_tgz.cmake index 06ccf201e..cd30b7ce2 100644 --- a/cmake/package_tgz.cmake +++ b/cmake/package_tgz.cmake @@ -2,14 +2,16 @@ message(STATUS "Generating tar.gz packages") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE) set(MAXSCALE_BINDIR /bin CACHE PATH "" FORCE) -set(MAXSCALE_LIBDIR /lib CACHE PATH "" FORCE) +set(MAXSCALE_LIBDIR /lib/maxscale CACHE PATH "" FORCE) set(MAXSCALE_SHAREDIR /share CACHE PATH "" FORCE) set(MAXSCALE_DOCDIR /share CACHE PATH "" FORCE) set(MAXSCALE_VARDIR /var CACHE PATH "" FORCE) set(MAXSCALE_CONFDIR /etc CACHE PATH "" FORCE) set(CMAKE_INSTALL_PREFIX "/" CACHE PATH "" FORCE) -set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib" CACHE PATH "" FORCE) +set(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/maxscale/" CACHE PATH "" FORCE) set(CMAKE_INSTALL_DATADIR /share CACHE PATH "" FORCE) +set(DEFAULT_LIB_SUBPATH /lib/maxscale CACHE PATH "" FORCE) +set(DEFAULT_LIBDIR "/usr/local/maxscale/lib/maxscale" CACHE PATH "" FORCE) set(CPACK_GENERATOR "TGZ") # Include the var directories in the tarball diff --git a/server/include/gwdirs.h.in b/server/include/gwdirs.h.in index 0a2c0dab1..d607b021d 100644 --- a/server/include/gwdirs.h.in +++ b/server/include/gwdirs.h.in @@ -21,30 +21,31 @@ EXTERN_C_BLOCK_BEGIN -// NOTE: If you make changes here, ensure they are compatible with the -// situation in /CMakeLists.txt, where directories are installed. -#define MXS_DEFAULT_PID_SUBPATH "run/maxscale" -#define MXS_DEFAULT_LOG_SUBPATH "log/maxscale" -#define MXS_DEFAULT_DATA_SUBPATH "lib/maxscale" -#define MXS_DEFAULT_LIB_SUBPATH "@MAXSCALE_LIBDIR@" -#define MXS_DEFAULT_CACHE_SUBPATH "cache/maxscale" -#define MXS_DEFAULT_LANG_SUBPATH "lib/maxscale" -#define MXS_DEFAULT_EXEC_SUBPATH "@MAXSCALE_BINDIR@" -#define MXS_DEFAULT_CONFIG_SUBPATH "etc" +/** + * All of the following DEFAULT_* variables are defined in cmake/install_layout.cmake + */ +#define MXS_DEFAULT_PID_SUBPATH "@DEFAULT_PID_SUBPATH@" +#define MXS_DEFAULT_LOG_SUBPATH "@DEFAULT_LOG_SUBPATH@" +#define MXS_DEFAULT_DATA_SUBPATH "@DEFAULT_DATA_SUBPATH@" +#define MXS_DEFAULT_LIB_SUBPATH "@DEFAULT_LIB_SUBPATH@" +#define MXS_DEFAULT_CACHE_SUBPATH "@DEFAULT_CACHE_SUBPATH@" +#define MXS_DEFAULT_LANG_SUBPATH "@DEFAULT_LANG_SUBPATH@" +#define MXS_DEFAULT_EXEC_SUBPATH "@DEFAULT_EXEC_SUBPATH@" +#define MXS_DEFAULT_CONFIG_SUBPATH "@DEFAULT_CONFIG_SUBPATH@" /** Default file locations, configured by CMake */ static const char* default_cnf_fname = "maxscale.cnf"; -static const char* default_configdir = "/" MXS_DEFAULT_CONFIG_SUBPATH; +static const char* default_configdir = "@DEFAULT_CONFIGDIR@"; /*< This should be changed to just /run eventually, * the /var/run folder is an old standard and the newer FSH 3.0 * uses /run for PID files.*/ -static const char* default_piddir = "@MAXSCALE_VARDIR@/" MXS_DEFAULT_PID_SUBPATH; -static const char* default_logdir = "@MAXSCALE_VARDIR@/" MXS_DEFAULT_LOG_SUBPATH; -static const char* default_datadir = "@MAXSCALE_VARDIR@/" MXS_DEFAULT_DATA_SUBPATH; -static const char* default_libdir = "@CMAKE_INSTALL_PREFIX@/" MXS_DEFAULT_LIB_SUBPATH; -static const char* default_cachedir = "@MAXSCALE_VARDIR@/" MXS_DEFAULT_CACHE_SUBPATH; -static const char* default_langdir = "@MAXSCALE_VARDIR@/" MXS_DEFAULT_LANG_SUBPATH; -static const char* default_execdir = "@CMAKE_INSTALL_PREFIX@/" MXS_DEFAULT_EXEC_SUBPATH; +static const char* default_piddir = "@DEFAULT_PIDDIR@"; +static const char* default_logdir = "@DEFAULT_LOGDIR@"; +static const char* default_datadir = "@DEFAULT_DATADIR@"; +static const char* default_libdir = "@DEFAULT_LIBDIR@"; +static const char* default_cachedir = "@DEFAULT_CACHEDIR@"; +static const char* default_langdir = "@DEFAULT_LANGDIR@"; +static const char* default_execdir = "@DEFAULT_EXECDIR@"; static char* configdir = NULL; static char* logdir = NULL;