Changed variable names to closer match their usage

Changed the default values to the same as in makefiles
Added configured versions of maxscale.conf and maxscale init.d script
This commit is contained in:
Markus Makela
2014-09-15 14:12:55 +03:00
parent 46aca9d731
commit 1f56db310d
14 changed files with 177 additions and 34 deletions

View File

@ -2,16 +2,20 @@ cmake_minimum_required(VERSION 2.6)
include(macros.cmake) include(macros.cmake)
enable_testing() enable_testing()
set(INSTALL_DIR "/usr/local/skysql/" CACHE PATH "MaxScale installation directory.")
set(CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "Prefix prepended to install directories." FORCE) set(CMAKE_INSTALL_PREFIX "${INSTALL_DIR}" CACHE INTERNAL "Prefix prepended to install directories." FORCE)
set(BUILD_TYPE "Release" CACHE STRING "Build type, possible values are: Debug Release.")
set(CMAKE_BUILD_TYPE "${BUILD_TYPE}" CACHE INTERNAL "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. " FORCE) set(CMAKE_BUILD_TYPE "${BUILD_TYPE}" CACHE INTERNAL "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. " FORCE)
project(MaxScale) project(MaxScale)
set_maxscale_version() set_maxscale_version()
set_variables() set_variables()
set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/modules)
configure_file(${CMAKE_SOURCE_DIR}/server/include/version.h.in ${CMAKE_SOURCE_DIR}/server/include/version.h) configure_file(${CMAKE_SOURCE_DIR}/server/include/version.h.in ${CMAKE_SOURCE_DIR}/server/include/version.h)
configure_file(${CMAKE_SOURCE_DIR}/maxscale.conf.in ${CMAKE_SOURCE_DIR}/maxscale.conf)
configure_file(${CMAKE_SOURCE_DIR}/etc/init.d/maxscale.in ${CMAKE_SOURCE_DIR}/etc/init.d/maxscale)
if(NOT MYSQL_DIR) if(NOT MYSQL_DIR)
find_path(MYSQL_DIR mysql.h PATH_SUFFIXES mysql mariadb) find_path(MYSQL_DIR mysql.h PATH_SUFFIXES mysql mariadb)

View File

@ -1,8 +1,7 @@
add_executable(maxadmin maxadmin.c) add_executable(maxadmin maxadmin.c)
find_library(HIST edit) find_library(HIST edit)
#if(HIST) if(HIST)
# add_definitions(-DHISTORY) add_definitions(-DHISTORY)
# set(LIBS ${LIBS} {HIST}) target_link_libraries(maxadmin ${HIST})
#endif(HIST) endif()
set_target_properties(maxadmin PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
install(TARGETS maxadmin DESTINATION bin) install(TARGETS maxadmin DESTINATION bin)

157
etc/init.d/maxscale.in Normal file
View File

@ -0,0 +1,157 @@
#!/bin/sh
#
# maxscale: The SkySQL MaxScale database proxy
#
# description: MaxScale provides database specific proxy functionality
#
# processname: maxscale
#
### BEGIN INIT INFO
# Provides: maxscale
# Required-Start: $syslog $local_fs
# Required-Stop: $syslog $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: The maxscale database proxy
# Description: MaxScale is a database proxy server that can be used to front end
# database clusters offering different routing, filtering and protocol choices
### END INIT INFO
#############################################
# MaxScale HOME, PIDFILE, LIB
#############################################
export MAXSCALE_HOME=@INSTALL_DIR@
export MAXSCALE_PIDFILE=$MAXSCALE_HOME/log/maxscale.pid
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MAXSCALE_HOME/lib
###############################
# LSB Exit codes (non-Status)
###############################
_RETVAL_GENERIC=1
_RETVAL_NOT_INSTALLED=5
_RETVAL_NOT_RUNNING=7
###############################
# LSB Status action Exit codes
###############################
_RETVAL_STATUS_OK=0
_RETVAL_STATUS_NOT_RUNNING=3
# Sanity checks.
[ -x $MAXSCALE_HOME/bin/maxscale ] || exit $_RETVAL_NOT_INSTALLED
# Source function library.
. /etc/rc.d/init.d/functions
# we can rearrange this easily
processname=maxscale
servicename=maxscale
RETVAL=0
start() {
echo -n $"Starting MaxScale: "
my_check=`status -p $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale`
CHECK_RET=$?
[ $CHECK_RET -eq 0 ] && echo -n " found $my_check" && success && CHECK_RET=0
daemon --pidfile $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale >& /dev/null
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename
if [ $CHECK_RET -ne 0 ]; then
sleep 2
my_check=`status -p $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale`
CHECK_RET=$?
[ $CHECK_RET -eq 0 ] && echo -n $my_check && success || failure
fi
# Return rigth code
if [ $RETVAL -ne 0 ]; then
failure
RETVAL=$_RETVAL_NOT_RUNNING
fi
echo
return $RETVAL
}
stop() {
echo -n $"Stopping MaxScale: "
killproc -p $MAXSCALE_PIDFILE -TERM
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$servicename
# Return rigth code
if [ $RETVAL -ne 0 ]; then
RETVAL=$_RETVAL_NOT_RUNNING
fi
return $RETVAL
}
reload() {
echo -n $"Reloading MaxScale: "
killproc -p $MAXSCALE_PIDFILE $MAXSCALE_HOME/bin/maxscale -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
# return 0 on success
# return 3 on any error
echo -n $"Checking MaxScale status: "
status -p $MAXSCALE_PIDFILE 'MaxScale'
RETVAL=$?
if [ $RETVAL -ne 0 ]; then
echo -ne "\033[1A"
[ $RETVAL -eq 1 ] && warning || failure
echo -ne "\033[1B"
RETVAL=$_RETVAL_STATUS_NOT_RUNNING
else
echo -ne "\033[1A"
success
echo -ne "\033[1B"
RETVAL=$_RETVAL_STATUS_OK
fi
exit $RETVAL
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$servicename ]; then
stop
start
fi
;;
reload)
reload
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
;;
esac
exit $RETVAL

View File

@ -1,4 +1,3 @@
cmake_minimum_required(VERSION 2.6)
add_library(log_manager SHARED log_manager.cc) add_library(log_manager SHARED log_manager.cc)
target_link_libraries(log_manager utils) target_link_libraries(log_manager utils)
install(TARGETS log_manager DESTINATION lib) install(TARGETS log_manager DESTINATION lib)

View File

@ -10,6 +10,12 @@ endmacro()
macro(set_variables) macro(set_variables)
# Installation directory
set(INSTALL_DIR "/usr/local/skysql/" CACHE PATH "MaxScale installation directory.")
# Build type
set(BUILD_TYPE "Release" CACHE STRING "Build type, possible values are:None (no optimization), Debug, Release.")
# hostname or IP address of MaxScale's host # hostname or IP address of MaxScale's host
set(TEST_HOST "127.0.0.1" CACHE STRING "hostname or IP address of MaxScale's host") set(TEST_HOST "127.0.0.1" CACHE STRING "hostname or IP address of MaxScale's host")

2
maxscale.conf.in Normal file
View File

@ -0,0 +1,2 @@
@INSTALL_DIR@/modules
@INSTALL_DIR@/lib

View File

@ -1,4 +1,3 @@
set(QUERY_CLASSIFIER_HEADERS query_classifier.h)
add_library(query_classifier SHARED query_classifier.cc ${MYSQL_HEADERS}) add_library(query_classifier SHARED query_classifier.cc ${MYSQL_HEADERS})
install(TARGETS query_classifier DESTINATION lib) install(TARGETS query_classifier DESTINATION lib)
if(BUILD_TESTS) if(BUILD_TESTS)

View File

@ -6,17 +6,14 @@ add_executable(maxscale atomic.c buffer.c spinlock.c gateway.c
gw_utils.c utils.c dcb.c load_utils.c session.c service.c server.c gw_utils.c utils.c dcb.c load_utils.c session.c service.c server.c
poll.c config.c users.c hashtable.c dbusers.c thread.c gwbitmask.c poll.c config.c users.c hashtable.c dbusers.c thread.c gwbitmask.c
monitor.c adminusers.c secrets.c filter.c modutil.c hint.c housekeeper.c) monitor.c adminusers.c secrets.c filter.c modutil.c hint.c housekeeper.c)
set_target_properties(maxscale PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(maxscale utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z rt m) target_link_libraries(maxscale utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z rt m)
install(TARGETS maxscale DESTINATION bin) install(TARGETS maxscale DESTINATION bin)
add_executable(maxkeys maxkeys.c secrets.c utils.c) add_executable(maxkeys maxkeys.c secrets.c utils.c)
set_target_properties(maxkeys PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(maxkeys utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z rt m) target_link_libraries(maxkeys utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z rt m)
install(TARGETS maxkeys DESTINATION bin) install(TARGETS maxkeys DESTINATION bin)
add_executable(maxpasswd maxpasswd.c secrets.c utils.c) add_executable(maxpasswd maxpasswd.c secrets.c utils.c)
set_target_properties(maxpasswd PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(maxpasswd utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z rt m) target_link_libraries(maxpasswd utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z rt m)
install(TARGETS maxpasswd DESTINATION bin) install(TARGETS maxpasswd DESTINATION bin)

View File

@ -1,32 +1,26 @@
if(BUILD_RABBITMQ) if(BUILD_RABBITMQ)
add_library(mqfilter SHARED mqfilter.c) add_library(mqfilter SHARED mqfilter.c)
set_target_properties(mqfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(mqfilter utils query_classifier log_manager rabbitmq) target_link_libraries(mqfilter utils query_classifier log_manager rabbitmq)
install(TARGETS mqfilter DESTINATION modules) install(TARGETS mqfilter DESTINATION modules)
endif(BUILD_RABBITMQ) endif(BUILD_RABBITMQ)
add_library(regexfilter SHARED regexfilter.c) add_library(regexfilter SHARED regexfilter.c)
set_target_properties(regexfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(regexfilter utils log_manager) target_link_libraries(regexfilter utils log_manager)
install(TARGETS regexfilter DESTINATION modules) install(TARGETS regexfilter DESTINATION modules)
add_library(testfilter SHARED testfilter.c) add_library(testfilter SHARED testfilter.c)
set_target_properties(testfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(testfilter utils log_manager) target_link_libraries(testfilter utils log_manager)
install(TARGETS testfilter DESTINATION modules) install(TARGETS testfilter DESTINATION modules)
add_library(qlafilter SHARED qlafilter.c) add_library(qlafilter SHARED qlafilter.c)
set_target_properties(qlafilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(qlafilter utils log_manager) target_link_libraries(qlafilter utils log_manager)
install(TARGETS qlafilter DESTINATION modules) install(TARGETS qlafilter DESTINATION modules)
add_library(tee SHARED tee.c) add_library(tee SHARED tee.c)
set_target_properties(tee PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(tee utils log_manager) target_link_libraries(tee utils log_manager)
install(TARGETS tee DESTINATION modules) install(TARGETS tee DESTINATION modules)
add_library(topfilter SHARED topfilter.c) add_library(topfilter SHARED topfilter.c)
set_target_properties(topfilter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(topfilter utils log_manager) target_link_libraries(topfilter utils log_manager)
install(TARGETS topfilter DESTINATION modules) install(TARGETS topfilter DESTINATION modules)

View File

@ -1,14 +1,11 @@
add_library(mysqlmon SHARED mysql_mon.c) add_library(mysqlmon SHARED mysql_mon.c)
set_target_properties(mysqlmon PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(mysqlmon utils log_manager mysqld) target_link_libraries(mysqlmon utils log_manager mysqld)
install(TARGETS mysqlmon DESTINATION modules) install(TARGETS mysqlmon DESTINATION modules)
add_library(galeramon SHARED galera_mon.c) add_library(galeramon SHARED galera_mon.c)
set_target_properties(galeramon PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(galeramon utils log_manager mysqld) target_link_libraries(galeramon utils log_manager mysqld)
install(TARGETS galeramon DESTINATION modules) install(TARGETS galeramon DESTINATION modules)
add_library(ndbclustermon SHARED ndbcluster_mon.c) add_library(ndbclustermon SHARED ndbcluster_mon.c)
set_target_properties(ndbclustermon PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(ndbclustermon utils log_manager mysqld) target_link_libraries(ndbclustermon utils log_manager mysqld)
install(TARGETS ndbclustermon DESTINATION modules) install(TARGETS ndbclustermon DESTINATION modules)

View File

@ -1,25 +1,20 @@
add_library(MySQLClient SHARED mysql_client.c mysql_common.c) add_library(MySQLClient SHARED mysql_client.c mysql_common.c)
set_target_properties(MySQLClient PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(MySQLClient utils log_manager) target_link_libraries(MySQLClient utils log_manager)
install(TARGETS MySQLClient DESTINATION modules) install(TARGETS MySQLClient DESTINATION modules)
add_library(MySQLBackend SHARED mysql_backend.c mysql_common.c) add_library(MySQLBackend SHARED mysql_backend.c mysql_common.c)
set_target_properties(MySQLBackend PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(MySQLBackend utils log_manager) target_link_libraries(MySQLBackend utils log_manager)
install(TARGETS MySQLBackend DESTINATION modules) install(TARGETS MySQLBackend DESTINATION modules)
add_library(telnetd SHARED telnetd.c) add_library(telnetd SHARED telnetd.c)
set_target_properties(telnetd PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(telnetd utils log_manager) target_link_libraries(telnetd utils log_manager)
install(TARGETS telnetd DESTINATION modules) install(TARGETS telnetd DESTINATION modules)
add_library(HTTPD SHARED httpd.c) add_library(HTTPD SHARED httpd.c)
set_target_properties(HTTPD PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(HTTPD utils log_manager) target_link_libraries(HTTPD utils log_manager)
install(TARGETS HTTPD DESTINATION modules) install(TARGETS HTTPD DESTINATION modules)
add_library(maxscaled SHARED maxscaled.c) add_library(maxscaled SHARED maxscaled.c)
set_target_properties(maxscaled PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(maxscaled utils log_manager) target_link_libraries(maxscaled utils log_manager)
install(TARGETS maxscaled DESTINATION modules) install(TARGETS maxscaled DESTINATION modules)

View File

@ -1,20 +1,16 @@
add_library(testroute SHARED testroute.c) add_library(testroute SHARED testroute.c)
set_target_properties(testroute PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(testroute utils log_manager) target_link_libraries(testroute utils log_manager)
install(TARGETS testroute DESTINATION modules) install(TARGETS testroute DESTINATION modules)
add_library(readconnroute SHARED readconnroute.c) add_library(readconnroute SHARED readconnroute.c)
set_target_properties(readconnroute PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(readconnroute utils log_manager) target_link_libraries(readconnroute utils log_manager)
install(TARGETS readconnroute DESTINATION modules) install(TARGETS readconnroute DESTINATION modules)
add_library(debugcli SHARED debugcli.c debugcmd.c) add_library(debugcli SHARED debugcli.c debugcmd.c)
set_target_properties(debugcli PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(debugcli utils log_manager) target_link_libraries(debugcli utils log_manager)
install(TARGETS debugcli DESTINATION modules) install(TARGETS debugcli DESTINATION modules)
add_library(cli SHARED cli.c debugcmd.c) add_library(cli SHARED cli.c debugcmd.c)
set_target_properties(cli PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(cli utils log_manager) target_link_libraries(cli utils log_manager)
install(TARGETS cli DESTINATION modules) install(TARGETS cli DESTINATION modules)

View File

@ -1,5 +1,4 @@
add_library(readwritesplit SHARED readwritesplit.c) add_library(readwritesplit SHARED readwritesplit.c)
set_target_properties(readwritesplit PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
target_link_libraries(readwritesplit utils ssl pthread log_manager query_classifier mysqld) target_link_libraries(readwritesplit utils ssl pthread log_manager query_classifier mysqld)
install(TARGETS readwritesplit DESTINATION modules) install(TARGETS readwritesplit DESTINATION modules)
if(BUILD_TESTS) if(BUILD_TESTS)

View File

@ -1,3 +1,2 @@
cmake_minimum_required(VERSION 2.6)
set(UTILS_HEADERS skygw_debug.h skygw_types.h skygw_utils.h) set(UTILS_HEADERS skygw_debug.h skygw_types.h skygw_utils.h)
add_library(utils skygw_utils.cc ${UTILS_HEADERS}) add_library(utils skygw_utils.cc ${UTILS_HEADERS})