#------------------------------------------------------------------------------- # Copyright (c) 2010 Sourcefabric O.P.S. # # This file is part of the Campcaster project. # http://campcaster.sourcefabric.org/ # To report bugs, send an e-mail to bugs@campware.org # # Campcaster is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # Campcaster 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Campcaster; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- # General command definitions #------------------------------------------------------------------------------- MKDIR = mkdir -p RM = rm -f RMDIR = rm -rf DOXYGEN = doxygen DOXYTAG = doxytag XSLTPROC = xsltproc ECHO = @echo FLAWFINDER = flawfinder CP = cp -f #------------------------------------------------------------------------------- # Basic directory and file definitions #------------------------------------------------------------------------------- BASE_DIR = . BIN_DIR = ${BASE_DIR}/bin DOC_DIR = ${BASE_DIR}/doc DOXYGEN_DIR = ${DOC_DIR}/doxygen COVERAGE_DIR = ${DOC_DIR}/coverage ETC_DIR = ${BASE_DIR}/etc SRC_DIR = ${BASE_DIR}/src TMP_DIR = ${BASE_DIR}/tmp prefix = @prefix@ PACKAGE_VERSION = @PACKAGE_VERSION@ USR_DIR = ${prefix} USR_BIN_DIR = ${USR_DIR}/bin USR_DOC_DIR = ${USR_DIR}/doc USR_ETC_DIR = ${USR_DIR}/etc USR_LIB_DIR = ${USR_DIR}/lib USR_VAR_DIR = ${USR_DIR}/var HOSTNAME = @HOSTNAME@ APACHE_GROUP = @APACHE_GROUP@ WWW_DOCROOT = @WWW_DOCROOT@ WWW_PORT = @WWW_PORT@ SCHEDULER_PORT = @SCHEDULER_PORT@ DB_SERVER = @DB_SERVER@ DATABASE = @DATABASE@ DB_USER = @DB_USER@ DB_PASSWORD = @DB_PASSWORD@ CREATE_LS_DATABASE = @CREATE_LS_DATABASE@ INIT_LS_DATABASE = @INIT_LS_DATABASE@ CREATE_ODBC_DATA_SOURCE = @CREATE_ODBC_DATA_SOURCE@ CONFIGURE_APACHE = @CONFIGURE_APACHE@ STATION_AUDIO_OUT = "@STATION_AUDIO_OUT@" STUDIO_AUDIO_OUT = "@STUDIO_AUDIO_OUT@" STUDIO_AUDIO_CUE = "@STUDIO_AUDIO_CUE@" #export LD_LIBRARY_PATH:=${prefix}/lib:${LD_LIBRARY_PATH} #export PKG_CONFIG_PATH:=${prefix}/lib/pkgconfig:${PKG_CONFIG_PATH} DEBUG = @DEBUG@ #DOXYGEN_CONFIG = ${ETC_DIR}/doxygen.config #XMLRPC-DOXYGEN_CONFIG = ${ETC_DIR}/xmlrpc-doxygen.config # #XMLRPCXX_DOC_DIR = ${BASE_DIR}/usr/share/doc/xmlrpc++ #EXTERNAL_DOC_PAGES = ${XMLRPCXX_DOC_DIR}/XmlRpcServerMethod_8h-source.html \ # ${XMLRPCXX_DOC_DIR}/classXmlRpc_1_1XmlRpcServerMethod.html \ # ${XMLRPCXX_DOC_DIR}/classXmlRpc_1_1XmlRpcServerMethod-members.html #TAGFILE = ${DOXYGEN_DIR}/xmlrpc++.tag # #TESTRESULTS_XSLT = ${ETC_DIR}/testResultsToHtml.xsl #TESTRESULTS_IN = ${ETC_DIR}/testResults.xml #TESTRESULTS_FILE = ${DOC_DIR}/testResults.html # #FLAWFINDER_FILE = ${DOC_DIR}/flawfinderReport.html # TOOLS_DIR = ${SRC_DIR}/tools #LIBODBCXX_DIR = ${TOOLS_DIR}/libodbc++ #LIBODBCXX_VERSION = libodbc++-0.2.5 #XMLRPCXX_DIR = ${TOOLS_DIR}/xmlrpc++ #XMLRPCXX_VERSION = xmlrpc++-20040713 #TAGLIB_DIR = ${TOOLS_DIR}/taglib #TAGLIB_VERSION = taglib-1.5 PEAR_DIR = ${TOOLS_DIR}/pear MODULES_DIR = ${SRC_DIR}/modules #CORE_DIR = ${MODULES_DIR}/core #AUTHENTICATION_DIR = ${MODULES_DIR}/authentication #DB_DIR = ${MODULES_DIR}/db #STORAGE_CLIENT_DIR = ${MODULES_DIR}/storageClient #PLAYLIST_EXECUTOR_DIR = ${MODULES_DIR}/playlistExecutor #EVENT_SCHEDULER_DIR = ${MODULES_DIR}/eventScheduler #SCHEDULER_CLIENT_DIR = ${MODULES_DIR}/schedulerClient #WIDGETS_DIR = ${MODULES_DIR}/widgets #ALIB_DIR = ${MODULES_DIR}/alib GETID3_DIR = ${MODULES_DIR}/getid3 HTML_UI_DIR = ${MODULES_DIR}/htmlUI STORAGE_ADMIN_DIR = ${MODULES_DIR}/storageAdmin STORAGE_SERVER_DIR = ${MODULES_DIR}/storageServer #PRODUCTS_DIR = ${SRC_DIR}/products #SCHEDULER_DIR = ${PRODUCTS_DIR}/scheduler #GLIVESUPPORT_DIR = ${PRODUCTS_DIR}/gLiveSupport #SCHEDULER_EXE = ${SCHEDULER_DIR}/tmp/campcaster-scheduler #GLIVESUPPORT_EXE = ${GLIVESUPPORT_DIR}/tmp/campcaster-studio #------------------------------------------------------------------------------- # Targets #------------------------------------------------------------------------------- .PHONY: all clean depclean distclean .PHONY: setup tools_setup modules_setup .PHONY: start stop status all: setup help: ${ECHO} "Campcaster project main Makefile" ${ECHO} "http://campcaster.sourcefabric.org/" ${ECHO} "Copyright (c) 2010 Sourcefabric O.P.S. under the GNU GPL" ${ECHO} "" ${ECHO} "Useful targets for this makefile:" ${ECHO} " all - set up and compile everthing" ${ECHO} " install - install everything" # ${ECHO} " doc - build autogenerated documentation" ${ECHO} " clean - clean all modules" ${ECHO} " check - check all modules" ${ECHO} "" ${ECHO} "Some less frequently used targets:" ${ECHO} " setup - set up the development environment" # ${ECHO} " doxygen - build autogenerated doxygen documentation only" # ${ECHO} " compile - compile all modules" # ${ECHO} " recompile - recompile all modules" #doc: doxygen testresults flawfinder # #doxygen: # ${DOXYGEN} ${DOXYGEN_CONFIG} # ${DOXYGEN} ${XMLRPC-DOXYGEN_CONFIG} # #testresults: # ${XSLTPROC} ${TESTRESULT_XSLT} ${TESTRESULTS_IN} > ${TESTRESULTS_FILE} # #flawfinder: # ${FLAWFINDER} -c --immediate --html \ # ${CORE_DIR}/include ${CORE_DIR}/src \ # ${AUTHENTICATION_DIR}/include ${AUTHENTICATION_DIR}/src \ # ${DB_DIR}/include ${DB_DIR}/src \ # ${STORAGE_CLIENT_DIR}/include ${STORAGE_CLIENT_DIR}/src \ # ${PLAYLIST_EXECUTOR_DIR}/include \ # ${PLAYLIST_EXECUTOR_DIR}/src \ # ${EVENT_SCHEDULER_DIR}/include ${EVENT_SCHEDULER_DIR}/src \ # ${SCHEDULER_CLIENT_DIR}/include ${SCHEDULER_CLIENT_DIR}/src \ # ${WIDGETS_DIR}/include ${WIDGETS_DIR}/src \ # ${SCHEDULER_DIR}/src > ${FLAWFINDER_FILE} \ # ${GLIVESUPPORT_DIR}/src > ${FLAWFINDER_FILE} \ clean: # ${RMDIR} ${DOXYGEN_DIR}/html # ${RMDIR} ${COVERAGE_DIR}/* # ${RM} ${TMP_DIR}/*.stamp # ${RM} ${TMP_DIR}/ac* ${TMP_DIR}/config* ${TMP_DIR}/install-sh # ${RMDIR} ${TMP_DIR}/auto* # setup: ${TMP_DIR}/setup.stamp ${TMP_DIR}/setup.stamp: tools_setup modules_setup touch ${TMP_DIR}/setup.stamp recompile: modprod_distclean modules_setup products_setup tools_setup: ${TMP_DIR}/tools_setup.stamp ${TMP_DIR}/tools_setup.stamp: # cd ${LIBODBCXX_DIR}/${LIBODBCXX_VERSION} && ./configure --prefix=${prefix} # ${MAKE} -C ${LIBODBCXX_DIR}/${LIBODBCXX_VERSION} install # # cd ${XMLRPCXX_DIR}/${XMLRPCXX_VERSION} && ./configure --prefix=${prefix} # ${MAKE} -C ${XMLRPCXX_DIR}/${XMLRPCXX_VERSION} install # # cd ${TAGLIB_DIR}/${TAGLIB_VERSION} && ./configure --prefix=${prefix} # ${MAKE} -C ${TAGLIB_DIR}/${TAGLIB_VERSION} install # cd ${PEAR_DIR} && ./configure --prefix=${prefix} ${MAKE} -C ${PEAR_DIR} install touch ${TMP_DIR}/tools_setup.stamp tools_distclean: # -${MAKE} -C ${LIBODBCXX_DIR}/${LIBODBCXX_VERSION} distclean # -${MAKE} -C ${XMLRPCXX_DIR}/${XMLRPCXX_VERSION} distclean # -${MAKE} -C ${TAGLIB_DIR}/${TAGLIB_VERSION} distclean ${RM} ${TMP_DIR}/tools_setup.stamp #doxytag_setup: ${TMP_DIR}/doxytag_setup.stamp #${TMP_DIR}/doxytag_setup.stamp: # ${DOXYTAG} -t ${TAGFILE} ${EXTERNAL_DOC_PAGES} # touch ${TMP_DIR}/doxytag_setup.stamp modules_setup: ${TMP_DIR}/modules_setup.stamp ${TMP_DIR}/modules_setup.stamp: # cd ${ALIB_DIR} && ./configure --prefix=${prefix} \ # PACKAGE_VERSION=${PACKAGE_VERSION} cd ${GETID3_DIR} && ./configure --prefix=${prefix} \ PACKAGE_VERSION=${PACKAGE_VERSION} cd ${HTML_UI_DIR} && ./configure --prefix=${prefix} \ --with-apache-group=${APACHE_GROUP} \ --with-www-docroot=${WWW_DOCROOT} \ --with-configure-apache=${CONFIGURE_APACHE} \ --with-storage-server=${prefix}/var/Campcaster/storageServer \ PACKAGE_VERSION=${PACKAGE_VERSION} cd ${STORAGE_ADMIN_DIR} && ./configure --prefix=${prefix} \ --with-storage-server=${prefix}/var/Campcaster/storageServer \ --with-phppart-dir=${prefix}/var/Campcaster/storageAdmin \ PACKAGE_VERSION=${PACKAGE_VERSION} cd ${STORAGE_SERVER_DIR} && \ ./configure --prefix=${prefix} \ --with-apache-group=${APACHE_GROUP} \ --with-hostname=${HOSTNAME} \ --with-www-docroot=${WWW_DOCROOT} \ --with-www-port=${WWW_PORT} \ --with-scheduler-port=${SCHEDULER_PORT} \ --with-database-server=${DB_SERVER} \ --with-database=${DATABASE} \ --with-database-user=${DB_USER} \ --with-database-password=${DB_PASSWORD} \ --with-init-database=${INIT_LS_DATABASE} \ PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${CORE_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${AUTHENTICATION_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${DB_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${STORAGE_CLIENT_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${PLAYLIST_EXECUTOR_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${EVENT_SCHEDULER_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${SCHEDULER_CLIENT_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${WIDGETS_DIR} && \ # ./configure --prefix=${prefix} --enable-debug=${DEBUG} \ # PACKAGE_VERSION=${PACKAGE_VERSION} touch ${TMP_DIR}/modules_setup.stamp #products_setup: ${TMP_DIR}/products_setup.stamp #${TMP_DIR}/products_setup.stamp: # cd ${SCHEDULER_DIR} && \ # ./configure --prefix=${prefix} \ # --enable-debug=${DEBUG} \ # --with-hostname=${HOSTNAME} \ # --with-www-port=${WWW_PORT} \ # --with-scheduler-port=${SCHEDULER_PORT} \ # --with-database-server=${DB_SERVER} \ # --with-database=${DATABASE} \ # --with-database-user=${DB_USER} \ # --with-database-password=${DB_PASSWORD} \ # --with-audio-out=${STATION_AUDIO_OUT} \ # --with-create-odbc-data-source=${CREATE_ODBC_DATA_SOURCE} \ # --with-init-database=${INIT_LS_DATABASE} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # cd ${GLIVESUPPORT_DIR} && \ # ./configure --prefix=${prefix} \ # --enable-debug=${DEBUG} \ # --with-hostname=${HOSTNAME} \ # --with-www-port=${WWW_PORT} \ # --with-scheduler-port=${SCHEDULER_PORT} \ # --with-database-server=${DB_SERVER} \ # --with-database=${DATABASE} \ # --with-database-user=${DB_USER} \ # --with-database-password=${DB_PASSWORD} \ # --with-audio-out=${STUDIO_AUDIO_OUT} \ # --with-audio-cue=${STUDIO_AUDIO_CUE} \ # PACKAGE_VERSION=${PACKAGE_VERSION} # touch ${TMP_DIR}/products_setup.stamp distclean: clean tools_distclean modprod_distclean modprod_distclean: # ${MAKE} -C ${CORE_DIR} distclean # ${MAKE} -C ${AUTHENTICATION_DIR} distclean # ${MAKE} -C ${DB_DIR} distclean # ${MAKE} -C ${STORAGE_CLIENT_DIR} distclean # ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} distclean # ${MAKE} -C ${EVENT_SCHEDULER_DIR} distclean # ${MAKE} -C ${SCHEDULER_CLIENT_DIR} distclean # ${MAKE} -C ${WIDGETS_DIR} distclean # ${MAKE} -C ${SCHEDULER_DIR} distclean # ${MAKE} -C ${GLIVESUPPORT_DIR} distclean # ${RM} ${TMP_DIR}/compile.stamp ${RM} ${TMP_DIR}/modules_setup.stamp # ${RM} ${TMP_DIR}/products_setup.stamp depclean: # ${MAKE} -C ${CORE_DIR} depclean # ${MAKE} -C ${AUTHENTICATION_DIR} depclean # ${MAKE} -C ${DB_DIR} depclean # ${MAKE} -C ${STORAGE_CLIENT_DIR} depclean # ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} depclean # ${MAKE} -C ${EVENT_SCHEDULER_DIR} depclean # ${MAKE} -C ${SCHEDULER_CLIENT_DIR} depclean # ${MAKE} -C ${WIDGETS_DIR} depclean # ${MAKE} -C ${SCHEDULER_DIR} depclean # ${MAKE} -C ${GLIVESUPPORT_DIR} depclean -${MAKE} -C ${STORAGE_SERVER_DIR} depclean #compile: ${TMP_DIR}/compile.stamp #${TMP_DIR}/compile.stamp: # ${MAKE} -C ${CORE_DIR} all # ${MAKE} -C ${AUTHENTICATION_DIR} all # ${MAKE} -C ${DB_DIR} all # ${MAKE} -C ${STORAGE_CLIENT_DIR} all # ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} all # ${MAKE} -C ${EVENT_SCHEDULER_DIR} all # ${MAKE} -C ${SCHEDULER_CLIENT_DIR} all # ${MAKE} -C ${WIDGETS_DIR} all # ${MAKE} -C ${SCHEDULER_DIR} all # ${MAKE} -C ${GLIVESUPPORT_DIR} all # touch ${TMP_DIR}/compile.stamp #check: # -${MAKE} -C ${CORE_DIR} check # -${MAKE} -C ${AUTHENTICATION_DIR} check # -${MAKE} -C ${DB_DIR} check # -${MAKE} -C ${STORAGE_CLIENT_DIR} check # -${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} check # hangs on edge.campware.org # -${MAKE} -C ${EVENT_SCHEDULER_DIR} check # -${MAKE} -C ${SCHEDULER_CLIENT_DIR} check # -${MAKE} -C ${WIDGETS_DIR} check # no tests defined # -${MAKE} -C ${SCHEDULER_DIR} check # has database issues # -${MAKE} -C ${GLIVESUPPORT_DIR} check # has database issues # -${MAKE} -C ${STORAGE_SERVER_DIR} check # has database issues start: ${SCHEDULER_EXE} ${MAKE} -C ${SCHEDULER_DIR} start stop: ${SCHEDULER_EXE} ${MAKE} -C ${SCHEDULER_DIR} stop status: ${SCHEDULER_EXE} ${MAKE} -C ${SCHEDULER_DIR} status #run: ${GLIVESUPPORT_EXE} # ${MAKE} -C ${GLIVESUPPORT_DIR} run #------------------------------------------------------------------------------- # Installation related targets #------------------------------------------------------------------------------- .PHONY: install create_database setup_install_dirs .PHONY: install_modules install: setup setup_install_dirs create_database install_modules ${MKDIR} ${USR_ETC_DIR}/apache ${CP} ${ETC_DIR}/apache/*.conf ${USR_ETC_DIR}/apache ${MKDIR} ${USR_BIN_DIR} ${CP} ${BIN_DIR}/postInstallStation.sh ${USR_BIN_DIR} # ${CP} ${ETC_DIR}/campcaster-scheduler ${USR_ETC_DIR} ${CP} ${ETC_DIR}/pg_hba.conf ${USR_ETC_DIR} create_database: ifeq (@CREATE_LS_DATABASE@,yes) ${SCHEDULER_DIR}/bin/createDatabase.sh --database=${DATABASE} \ --dbserver=${DB_SERVER} \ --dbuser=${DB_USER} \ --dbpassword=${DB_PASSWORD} endif setup_install_dirs: ${MKDIR} ${USR_BIN_DIR} # ${MKDIR} ${USR_DOC_DIR} ${MKDIR} ${USR_ETC_DIR} ${MKDIR} ${USR_LIB_DIR} ${MKDIR} ${USR_VAR_DIR} install_modules: # ${MAKE} -C ${ALIB_DIR} install ${MAKE} -C ${GETID3_DIR} install ${MAKE} -C ${HTML_UI_DIR} install ${MAKE} -C ${STORAGE_ADMIN_DIR} install ${MAKE} -C ${STORAGE_SERVER_DIR} install # ${MAKE} -C ${CORE_DIR} install # ${MAKE} -C ${AUTHENTICATION_DIR} install # ${MAKE} -C ${DB_DIR} install # ${MAKE} -C ${STORAGE_CLIENT_DIR} install # ${MAKE} -C ${PLAYLIST_EXECUTOR_DIR} install # ${MAKE} -C ${EVENT_SCHEDULER_DIR} install # ${MAKE} -C ${SCHEDULER_CLIENT_DIR} install # ${MAKE} -C ${WIDGETS_DIR} install #install_products: # ${MAKE} -C ${SCHEDULER_DIR} install # ${MAKE} -C ${GLIVESUPPORT_DIR} install