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)
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(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)
project(MaxScale)
set_maxscale_version()
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}/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)
find_path(MYSQL_DIR mysql.h PATH_SUFFIXES mysql mariadb)

View File

@ -1,8 +1,7 @@
add_executable(maxadmin maxadmin.c)
find_library(HIST edit)
#if(HIST)
# add_definitions(-DHISTORY)
# set(LIBS ${LIBS} {HIST})
#endif(HIST)
set_target_properties(maxadmin PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib)
if(HIST)
add_definitions(-DHISTORY)
target_link_libraries(maxadmin ${HIST})
endif()
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,7 +1,6 @@
cmake_minimum_required(VERSION 2.6)
add_library(log_manager SHARED log_manager.cc)
target_link_libraries(log_manager utils)
install(TARGETS log_manager DESTINATION lib)
if(BUILD_TESTS)
add_subdirectory(test)
add_subdirectory(test)
endif()

View File

@ -10,6 +10,12 @@ endmacro()
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
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,6 +1,5 @@
set(QUERY_CLASSIFIER_HEADERS query_classifier.h)
add_library(query_classifier SHARED query_classifier.cc ${MYSQL_HEADERS})
install(TARGETS query_classifier DESTINATION lib)
if(BUILD_TESTS)
add_subdirectory(test)
add_subdirectory(test)
endif()

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
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)
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)
install(TARGETS maxscale DESTINATION bin)
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)
install(TARGETS maxkeys DESTINATION bin)
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)
install(TARGETS maxpasswd DESTINATION bin)

View File

@ -1,32 +1,26 @@
if(BUILD_RABBITMQ)
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)
install(TARGETS mqfilter DESTINATION modules)
endif(BUILD_RABBITMQ)
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)
install(TARGETS regexfilter DESTINATION modules)
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)
install(TARGETS testfilter DESTINATION modules)
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)
install(TARGETS qlafilter DESTINATION modules)
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)
install(TARGETS tee DESTINATION modules)
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)
install(TARGETS topfilter DESTINATION modules)

View File

@ -1,14 +1,11 @@
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)
install(TARGETS mysqlmon DESTINATION modules)
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)
install(TARGETS galeramon DESTINATION modules)
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)
install(TARGETS ndbclustermon DESTINATION modules)

View File

@ -1,25 +1,20 @@
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)
install(TARGETS MySQLClient DESTINATION modules)
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)
install(TARGETS MySQLBackend DESTINATION modules)
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)
install(TARGETS telnetd DESTINATION modules)
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)
install(TARGETS HTTPD DESTINATION modules)
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)
install(TARGETS maxscaled DESTINATION modules)

View File

@ -1,20 +1,16 @@
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)
install(TARGETS testroute DESTINATION modules)
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)
install(TARGETS readconnroute DESTINATION modules)
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)
install(TARGETS debugcli DESTINATION modules)
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)
install(TARGETS cli DESTINATION modules)

View File

@ -1,5 +1,4 @@
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)
install(TARGETS readwritesplit DESTINATION modules)
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)
add_library(utils skygw_utils.cc ${UTILS_HEADERS})