260 lines
8.0 KiB
Makefile
260 lines
8.0 KiB
Makefile
#-------------------------------------------------------------------------------
|
|
# StorageServer - file storage component
|
|
# Copyright (c) 2010 Sourcefabric O.P.S.
|
|
#
|
|
# This file is part of the Campcaster project.
|
|
#
|
|
# 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
|
|
#
|
|
# @configure_input@
|
|
#-------------------------------------------------------------------------------
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# General command definitions
|
|
#-------------------------------------------------------------------------------
|
|
SHELL = /bin/bash
|
|
MKDIR = mkdir -p
|
|
RM = rm -f
|
|
RMDIR = rm -rf
|
|
DOXYGEN = doxygen
|
|
CP = cp -rP
|
|
SED = sed
|
|
ECHO = echo
|
|
CAT = cat
|
|
PHP = php
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Misc
|
|
#-------------------------------------------------------------------------------
|
|
|
|
MODULE_NAME = storageServer
|
|
TAR_C = tar -cj --exclude .svn --exclude '*~' -C ${BASE_DIR} -f
|
|
DIST_EXT = .tgz
|
|
DATE = `date +%y%m%d`
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Basic directory and file definitions
|
|
#-------------------------------------------------------------------------------
|
|
#BASE_DIR = @builddir@
|
|
BASE_DIR = .
|
|
BIN_DIR = ${BASE_DIR}/bin
|
|
DOC_DIR = ${BASE_DIR}/doc
|
|
DOXYGEN_DIR = ${DOC_DIR}/doxygen
|
|
ETC_DIR = ${BASE_DIR}/etc
|
|
INCLUDE_DIR = ${BASE_DIR}/include
|
|
LIB_DIR = ${BASE_DIR}/lib
|
|
SRC_DIR = ${BASE_DIR}/src
|
|
TMP_DIR = ${BASE_DIR}/tmp
|
|
VAR_DIR = ${BASE_DIR}/var
|
|
|
|
prefix = @prefix@
|
|
|
|
USR_DIR = ${prefix}
|
|
USR_INCLUDE_DIR = ${USR_DIR}/include
|
|
USR_LIB_DIR = ${USR_DIR}/lib
|
|
USR_VAR_DIR = ${USR_DIR}/var
|
|
|
|
DOXYGEN_CONFIG = ${ETC_DIR}/doxygen.config
|
|
|
|
PHP_DIR = ${VAR_DIR}
|
|
INSTALL_DIR = ${PHP_DIR}/install
|
|
STOR_DIR = ${PHP_DIR}/stor
|
|
ACCESS_DIR = ${PHP_DIR}/access
|
|
TRANS_DIR = ${PHP_DIR}/trans
|
|
BUFF_DIR = ${STOR_DIR}/buffer
|
|
TEST_RUNNER = ${PHP_DIR}/xmlrpc/testRunner.sh
|
|
|
|
DEST_DIR = ${USR_VAR_DIR}/Campcaster/storageServer
|
|
DEST_VAR_DIR = ${DEST_DIR}/var
|
|
DEST_BIN_DIR = ${DEST_DIR}/bin
|
|
|
|
HOSTNAME = @HOSTNAME@
|
|
APACHE_GROUP = @APACHE_GROUP@
|
|
WWW_PORT = @WWW_PORT@
|
|
DB_SERVER = @DB_SERVER@
|
|
DATABASE = @DATABASE@
|
|
DB_USER = @DB_USER@
|
|
DB_PASSWORD = @DB_PASSWORD@
|
|
SCHEDULER_PORT = @SCHEDULER_PORT@
|
|
WWW_DOCROOT = @WWW_DOCROOT@
|
|
PHP_URL_PREFIX = @URL_PREFIX@
|
|
|
|
SCHEDULER_URL_PREFIX =
|
|
SCHEDULER_XML_RPC_PREFIX = RC2
|
|
|
|
USR_LIB_DIR_S=$(shell ${ECHO} ${USR_LIB_DIR} | ${SED} -e "s/\//\\\\\\\\\//g")
|
|
PHP_URL_PREFIX_S=$(shell ${ECHO} ${PHP_URL_PREFIX} | ${SED} -e "s/\//\\\\\\\\\//g")
|
|
|
|
REPLACE_SED_STRING="s/ls_lib_dir/${USR_LIB_DIR_S}/; \
|
|
s/ls_dbuser/${DB_USER}/; \
|
|
s/ls_dbpassword/${DB_PASSWORD}/; \
|
|
s/ls_dbserver/${DB_SERVER}/; \
|
|
s/ls_database/${DATABASE}/; \
|
|
s/ls_apache_group/${APACHE_GROUP}/; \
|
|
s/ls_storageUrlPath/\/${PHP_URL_PREFIX_S}\/storageServer\/var/; \
|
|
s/ls_php_host/${HOSTNAME}/; \
|
|
s/ls_php_port/${WWW_PORT}/; \
|
|
s/ls_archiveUrlPath/\/${PHP_URL_PREFIX_S}\/archiveServer\/var/; \
|
|
s/ls_scheduler_urlPrefix/${SCHEDULER_URL_PREFIX}/; \
|
|
s/ls_scheduler_xmlRpcPrefix/${SCHEDULER_XML_RPC_PREFIX}/; \
|
|
s/ls_scheduler_host/${HOSTNAME}/; \
|
|
s/ls_scheduler_port/${SCHEDULER_PORT}/;"
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Configuration parameters
|
|
#-------------------------------------------------------------------------------
|
|
#CPPFLAGS = @CPPFLAGS@
|
|
#CXXFLAGS = @CXXFLAGS@ @DEFS@ -I${USR_INCLUDE_DIR} -I${INCLUDE_DIR} -I${TMP_DIR}\
|
|
# -pedantic -Wall
|
|
#LDFLAGS = @LDFLAGS@ -L${USR_LIB_DIR} -L${LIB_DIR}
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Dependencies
|
|
#-------------------------------------------------------------------------------
|
|
#HELLO_LIB_OBJS = ${TMP_DIR}/Hello.o
|
|
#TEST_RUNNER_OBJS = ${TMP_DIR}/HelloTest.o ${TMP_DIR}/TestRunner.o
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Targets
|
|
#-------------------------------------------------------------------------------
|
|
.PHONY: all dir_setup doc clean docclean depclean distclean dist install
|
|
.PHONY: db_init db_clean testonly transtest storage reset
|
|
.PHONY: copy_files create_database init_database
|
|
|
|
all:
|
|
|
|
doc:
|
|
${DOXYGEN} ${DOXYGEN_CONFIG}
|
|
|
|
clean: db_clean
|
|
${RMDIR} ${STOR_DIR}
|
|
${RMDIR} ${ACCESS_DIR}
|
|
${RMDIR} ${TRANS_DIR}
|
|
|
|
docclean:
|
|
${RMDIR} ${DOXYGEN_DIR}/html
|
|
|
|
depclean: clean
|
|
|
|
dist:
|
|
${TAR_C} ${MODULE_NAME}${DATE}${DIST_EXT} *
|
|
|
|
distclean: clean docclean
|
|
|
|
testonly: ${TEST_RUNNER}
|
|
${TEST_RUNNER}
|
|
|
|
check: all testonly
|
|
|
|
install: copy_files create_database init_database
|
|
|
|
copy_files:
|
|
${MKDIR} ${DEST_DIR}
|
|
${MKDIR} ${DEST_VAR_DIR}
|
|
${MKDIR} ${DEST_BIN_DIR}
|
|
${MKDIR} ${DEST_VAR_DIR}/access
|
|
${MKDIR} ${DEST_VAR_DIR}/cron
|
|
${MKDIR} ${DEST_VAR_DIR}/install
|
|
${MKDIR} ${DEST_VAR_DIR}/install/upgrade
|
|
${MKDIR} ${DEST_VAR_DIR}/stor
|
|
${MKDIR} ${DEST_VAR_DIR}/stor/buffer
|
|
${MKDIR} ${DEST_VAR_DIR}/trans
|
|
${MKDIR} ${DEST_VAR_DIR}/xmlrpc
|
|
${CP} ${VAR_DIR}/*.{php,xml} ${DEST_VAR_DIR}
|
|
${CP} ${VAR_DIR}/cron/*.php ${DEST_VAR_DIR}/cron
|
|
${CP} ${VAR_DIR}/install/*.php \
|
|
${DEST_VAR_DIR}/install
|
|
${CP} ${VAR_DIR}/install/upgrade/*.php \
|
|
${DEST_VAR_DIR}/install/upgrade
|
|
${CP} ${VAR_DIR}/xmlrpc/*.php \
|
|
${DEST_VAR_DIR}/xmlrpc
|
|
${CAT} ${VAR_DIR}/conf.php.template | ${SED} -e ${REPLACE_SED_STRING} \
|
|
> ${DEST_VAR_DIR}/conf.php
|
|
${CP} ${BIN_DIR}/backup.sh ${BIN_DIR}/restore.php \
|
|
${DEST_BIN_DIR}
|
|
|
|
chgrp ${APACHE_GROUP} ${DEST_VAR_DIR}/access
|
|
chgrp ${APACHE_GROUP} ${DEST_VAR_DIR}/stor
|
|
chgrp ${APACHE_GROUP} ${DEST_VAR_DIR}/stor/buffer
|
|
chgrp ${APACHE_GROUP} ${DEST_VAR_DIR}/trans
|
|
chmod g+sw ${DEST_VAR_DIR}/access
|
|
chmod g+sw ${DEST_VAR_DIR}/stor
|
|
chmod g+sw ${DEST_VAR_DIR}/stor/buffer
|
|
chmod g+sw ${DEST_VAR_DIR}/trans
|
|
|
|
${RM} ${WWW_DOCROOT}/${PHP_URL_PREFIX}
|
|
ln -sf ${USR_VAR_DIR}/Campcaster ${WWW_DOCROOT}/${PHP_URL_PREFIX}
|
|
|
|
create_database:
|
|
ifeq (@CREATE_LS_DATABASE@,yes)
|
|
${BIN_DIR}/createDatabase.sh --database=${DATABASE} \
|
|
--dbserver=${DB_SERVER} \
|
|
--dbuser=${DB_USER} \
|
|
--dbpassword=${DB_PASSWORD}
|
|
endif
|
|
|
|
init_database:
|
|
ifeq (@INIT_LS_DATABASE@,yes)
|
|
-cd ${DEST_VAR_DIR}/install && ${PHP} -q install.php
|
|
endif
|
|
|
|
|
|
recheck: clean check
|
|
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Specific targets
|
|
#-------------------------------------------------------------------------------
|
|
storage: db_init dir_setup
|
|
|
|
storagecheck: storage testonly
|
|
|
|
dir_setup:
|
|
bin/setupDirs.sh ${STOR_DIR} ${ACCESS_DIR} ${TRANS_DIR} ${BUFF_DIR}
|
|
|
|
db_init:
|
|
-cd var/install && php -q install.php
|
|
chgrp ${APACHE_GROUP} ${STOR_DIR} ${ACCESS_DIR} ${TRANS_DIR} ${BUFF_DIR}
|
|
chmod g+sw ${STOR_DIR} ${ACCESS_DIR} ${TRANS_DIR} ${BUFF_DIR}
|
|
|
|
db_clean:
|
|
-cd var/install && php -q uninstall.php
|
|
|
|
reset:
|
|
./bin/resetStorage.sh
|
|
|
|
transtest:
|
|
./var/tests/transTest.sh
|
|
# cd var/tests; php -q transTest.php
|
|
|
|
${TMP_DIR}:
|
|
${MKDIR} ${TMP_DIR}
|
|
|
|
${DOXYGEN_DIR}:
|
|
${MKDIR} ${DOXYGEN_DIR}
|
|
|
|
${TEST_RUNNER}:
|
|
|
|
#-------------------------------------------------------------------------------
|
|
# Pattern rules
|
|
#-------------------------------------------------------------------------------
|
|
#${TMP_DIR}/%.o : ${SRC_DIR}/%.cxx
|
|
# ${CXX} ${CPPFLAGS} ${CXXFLAGS} -c -o $@ $<
|
|
|