| 1 | 3 | ahitrov@rambler.ru | ############################################################################## | 
   
        | 2 |  |  | # $HeadURL$ | 
   
        | 3 |  |  | # $Id$ | 
   
        | 4 |  |  | # | 
   
        | 5 |  |  | # Project default & calculated settings | 
   
        | 6 |  |  | ############################################################################### | 
   
        | 7 |  |  |  | 
   
        | 8 |  |  |  | 
   
        | 9 |  |  | # it must! | 
   
        | 10 |  |  | PROJECT_NAME ?=			$(error "ERROR: PROJECT_NAME not defined") | 
   
        | 11 |  |  |  | 
   
        | 12 |  |  | ifeq (${DB_TYPE},NONE) | 
   
        | 13 |  |  | PGSQL_PORT = | 
   
        | 14 |  |  | PGSQL_BASE = | 
   
        | 15 |  |  |  | 
   
        | 16 |  |  | BASE_HOST = | 
   
        | 17 |  |  | BASE_USER = | 
   
        | 18 |  |  | BASE_PASSWD = | 
   
        | 19 |  |  | else | 
   
        | 20 |  |  | PGSQL_PORT ?=			$(error "ERROR: PGSQL_PORT not defined") | 
   
        | 21 |  |  | PGSQL_BASE ?=			$(error "ERROR: PGSQL_BASE not defined") | 
   
        | 22 |  |  |  | 
   
        | 23 |  |  | BASE_HOST ?=			$(error "ERROR: BASE_HOST not defined") | 
   
        | 24 |  |  | BASE_USER ?=			$(error "ERROR: BASE_USER not defined") | 
   
        | 25 |  |  | BASE_PASSWD ?=			$(error "ERROR: BASE_PASSWD not defined") | 
   
        | 26 |  |  | endif | 
   
        | 27 |  |  |  | 
   
        | 28 |  |  | # additional DB for replications | 
   
        | 29 |  |  | MASTER_BASE_HOST ?=		${BASE_HOST} | 
   
        | 30 |  |  | MASTER_BASE_NAME ?=		${PGSQL_BASE} | 
   
        | 31 |  |  | MASTER_BASE_PASSWD ?=		${BASE_PASSWD} | 
   
        | 32 |  |  | MASTER_BASE_PORT ?=		${PGSQL_PORT} | 
   
        | 33 |  |  | MASTER_BASE_USER ?=		${BASE_USER} | 
   
        | 34 |  |  |  | 
   
        | 35 |  |  | # additional ports if any | 
   
        | 36 |  |  | PROJECT_REQUIRED ?= | 
   
        | 37 |  |  |  | 
   
        | 38 |  |  | # defaults | 
   
        | 39 |  |  | PRELOADS ?= | 
   
        | 40 |  |  | PERSISTENT_CONN ?=		YES | 
   
        | 41 |  |  | PGSQL_REAL_PREPARE ?=		YES | 
   
        | 42 |  |  |  | 
   
        | 43 |  |  | MEMCACHED_BACKEND ?=		Cache::Memcached | 
   
        | 44 |  |  | MEMCACHED_ENABLE ?=		NO | 
   
        | 45 |  |  | MEMCACHED_SELECT_TIMEOUT ?=	0.5 | 
   
        | 46 |  |  | MEMCACHED_SERVERS ?= | 
   
        | 47 |  |  | MEMCACHED_ENABLE_COMPRESS ?=	YES | 
   
        | 48 |  |  | MEMCACHED_DELAYED ?=		NO | 
   
        | 49 |  |  | MEMCACHED_SET_MODE ?=		SET | 
   
        | 50 |  |  |  | 
   
        | 51 |  |  | STORE_METHOD ?=			TOAST | 
   
        | 52 |  |  | CASCADE ?=			YES | 
   
        | 53 |  |  |  | 
   
        | 54 |  |  | # TODO drop PREVIEW! | 
   
        | 55 |  |  | PREVIEW ?=			150x150 | 
   
        | 56 |  |  | AUTH_COOKIE ?=			rsid | 
   
        | 57 |  |  |  | 
   
        | 58 |  |  | DEFAULT_HANDLER ?=		HTML::Mason::ApacheHandler | 
   
        | 59 |  |  | DEFAULT_ESCAPE_FLAGS ?= | 
   
        | 60 |  |  |  | 
   
        | 61 |  |  | # main preamble hanler | 
   
        | 62 |  |  | PREAMBLE_HANDLER ?= | 
   
        | 63 |  |  | # extra preamble handlers relative path | 
   
        | 64 |  |  | PREAMBLE_HANDLER_PATH ?= | 
   
        | 65 |  |  |  | 
   
        | 66 |  |  | RSYNC_DIRS ?= | 
   
        | 67 |  |  |  | 
   
        | 68 |  |  | # apache pool | 
   
        | 69 |  |  | ${PROJECT_LC}_START_SERVERS ?=	1 | 
   
        | 70 |  |  | START_SERVERS ?=		${${PROJECT_LC}_START_SERVERS} | 
   
        | 71 |  |  |  | 
   
        | 72 |  |  | ${PROJECT_LC}_MAX_CLIENTS ?=	3 | 
   
        | 73 |  |  | MAX_CLIENTS ?=			${${PROJECT_LC}_MAX_CLIENTS} | 
   
        | 74 |  |  |  | 
   
        | 75 |  |  | ${PROJECT_LC}_MIN_SPARE_SERVERS ?= 1 | 
   
        | 76 |  |  | MIN_SPARE_SERVERS ?=		${${PROJECT_LC}_MIN_SPARE_SERVERS} | 
   
        | 77 |  |  |  | 
   
        | 78 |  |  | ${PROJECT_LC}_MAX_SPARE_SERVERS ?=	${shell perl -e 'print ${MIN_SPARE_SERVERS}+1'} | 
   
        | 79 |  |  | MAX_SPARE_SERVERS ?=		${${PROJECT_LC}_MAX_SPARE_SERVERS} | 
   
        | 80 |  |  |  | 
   
        | 81 |  |  | ${PROJECT_LC}_SPARE_REAPER_DELAY ?= 0 | 
   
        | 82 |  |  | SPARE_REAPER_DELAY ?=		${${PROJECT_LC}_SPARE_REAPER_DELAY} | 
   
        | 83 |  |  |  | 
   
        | 84 |  |  | SPARE_REAPER_DELAY_FAKEMOD ?=	${shell perl -e 'print ${SPARE_REAPER_DELAY} ? "http_core" : "nonexistent"'} | 
   
        | 85 |  |  |  | 
   
        | 86 |  |  | # logging | 
   
        | 87 |  |  | ${PROJECT_LC}_HTTPD_ELOG_LEVEL ?= info | 
   
        | 88 |  |  | HTTPD_ELOG_LEVEL ?=		${${PROJECT_LC}_HTTPD_ELOG_LEVEL} | 
   
        | 89 |  |  |  | 
   
        | 90 |  |  | # kinds of limits | 
   
        | 91 |  |  | MAX_PROCESS_SIZE ?=		65535 | 
   
        | 92 |  |  | LIMIT_CMD ?=			/usr/bin/limits | 
   
        | 93 |  |  | LIMIT_VMEMORY_HTTPD ?=		256m | 
   
        | 94 |  |  | LISTEN_BACK_LOG_PERCHILD ?=	5 | 
   
        | 95 |  |  | LISTEN_BACK_LOG ?=		${shell perl -e 'print ${LISTEN_BACK_LOG_PERCHILD}*${MAX_CLIENTS}'} | 
   
        | 96 |  |  |  | 
   
        | 97 |  |  | # logging options | 
   
        | 98 |  |  | RSYSLOG_ENABLE ?=		NO | 
   
        | 99 |  |  | RSYSLOG_HOST ?=			lc.park.rambler.ru | 
   
        | 100 |  |  | LOGGER ?=			${LOCAL}/bin/clogger | 
   
        | 101 |  |  |  | 
   
        | 102 |  |  | # disable 'start' command | 
   
        | 103 |  |  | DISABLE ?=			${${PROJECT_LC}_DISABLE} | 
   
        | 104 |  |  |  | 
   
        | 105 |  |  | # cronolog options | 
   
        | 106 |  |  | CRONOLOG_ENABLE ?=		NO | 
   
        | 107 |  |  | CRONOLOG_FORMAT ?=		%Y/%m/%d/ | 
   
        | 108 |  |  |  | 
   
        | 109 |  |  | # load cron tab | 
   
        | 110 |  |  | CRON_ENABLE ?=			NO | 
   
        | 111 |  |  |  | 
   
        | 112 |  |  | LOCALE ?=			ru_RU.KOI8-R | 
   
        | 113 |  |  |  | 
   
        | 114 |  |  | # use mtt or old rewrite? | 
   
        | 115 |  |  | USE_MTT ?=			NO | 
   
        | 116 |  |  |  | 
   
        | 117 |  |  | # use READONLY mode | 
   
        | 118 |  |  | READONLY ?=			NO | 
   
        | 119 |  |  |  | 
   
        | 120 |  |  | # later captcha setting | 
   
        | 121 |  |  | USE_CAPTCHA ?=			NO | 
   
        | 122 |  |  | ifeq (${USE_CAPTCHA},YES) | 
   
        | 123 |  |  | CORE_REQUIRED +=		Authen-Captcha | 
   
        | 124 |  |  | endif | 
   
        | 125 |  |  |  | 
   
        | 126 |  |  | # Calculated | 
   
        | 127 |  |  | MODULES = | 
   
        | 128 |  |  | ifeq (${shell perl -e 'print lc "${DEVELOPMENT}"'},yes) | 
   
        | 129 |  |  | MODULES =			${PROJ_SRC}/${PROJECT}/lib | 
   
        | 130 |  |  | endif | 
   
        | 131 |  |  | MODULES +=			${PROJ_USR}/${PROJECT}/lib | 
   
        | 132 |  |  | ifneq (${PLUGINS},) | 
   
        | 133 |  |  | MODULES +=			${addprefix ${PLUG_USR}/,${addsuffix /lib,${PLUGINS}}} | 
   
        | 134 |  |  | endif | 
   
        | 135 |  |  | MODULES +=			${CORE_USR}/lib | 
   
        | 136 |  |  |  | 
   
        | 137 |  |  | PLUGIN_COMP ?=			${shell perl -e 'print lc "${DEVELOPMENT}" eq "yes" ? "${PLUG_SRC}" : "${PLUG_USR}"'} | 
   
        | 138 |  |  | MASON_COMP ?=			${shell perl -e 'print lc "${DEVELOPMENT}" eq "yes" ? "${PROJ_SRC}" : "${PROJ_USR}"'}/${PROJECT}/comps | 
   
        | 139 |  |  | CORE_COMP ?=			${shell perl -e 'print lc "${DEVELOPMENT}" eq "yes" ? "${CORE_SRC}" : "${CORE_USR}"'}/comps | 
   
        | 140 |  |  | RSYNC_ROOT ?=			${PROJ_USR}/${PROJECT}/comps | 
   
        | 141 |  |  | BINARY ?=			${MASON_COMP}/binary | 
   
        | 142 |  |  | ifdef FRONTENDS | 
   
        | 143 |  |  | FILES ?=			${addprefix http://, ${addsuffix /dav/${PROJECT_LC}, ${FRONTENDS}}} | 
   
        | 144 |  |  | else | 
   
        | 145 |  |  | FILES ?=			${MASON_COMP}/files | 
   
        | 146 |  |  | endif | 
   
        | 147 |  |  | IMAGES ?=			${MASON_COMP}/images | 
   
        | 148 |  |  | STATIC_SOURCE_TOUCH_FILE ?=	${MASON_COMP}/.touch | 
   
        | 149 |  |  |  | 
   
        | 150 |  |  | HTTPD_DOCS ?=			${MASON_COMP}/www | 
   
        | 151 |  |  | CONF ?=				${PROJ_USR}/${PROJECT}/conf | 
   
        | 152 |  |  |  | 
   
        | 153 |  |  | # pregenerate static | 
   
        | 154 |  |  | PREGEN_GLOB ?=			keeper project state | 
   
        | 155 |  |  | PREGEN_LIST ?= | 
   
        | 156 |  |  |  | 
   
        | 157 |  |  | # Mason caching | 
   
        | 158 |  |  | MASON_CACHE_ENABLED ?=		YES | 
   
        | 159 |  |  |  | 
   
        | 160 |  |  | # Mason caching via Memcached | 
   
        | 161 |  |  | MASON_MEMCACHED_BACKEND ?=	${MEMCACHED_BACKEND} | 
   
        | 162 |  |  | MASON_MEMCACHED_DEBUG ?=	NO | 
   
        | 163 |  |  | MASON_MEMCACHED_ENABLED ?=	NO | 
   
        | 164 |  |  | MASON_MEMCACHED_NAMESPACE ?=	${PROJECT}:${PROJECT_VERSION} | 
   
        | 165 |  |  | MASON_MEMCACHED_SERVERS ?= | 
   
        | 166 |  |  |  | 
   
        | 167 |  |  | # overrides | 
   
        | 168 |  |  | ifeq (${DB_TYPE},SINGLE) | 
   
        | 169 |  |  | BASE_HOST = | 
   
        | 170 |  |  | endif | 
   
        | 171 |  |  |  | 
   
        | 172 |  |  | # psql wrappers | 
   
        | 173 |  |  | PSQL ?=				${shell export PATH=${LOCAL}/pgsql/bin:$${PATH};	\ | 
   
        | 174 |  |  | PSQL=`which psql`;				\ | 
   
        | 175 |  |  | if [ -x "$${PSQL}" ]; then			\ | 
   
        | 176 |  |  | echo $${PSQL};				\ | 
   
        | 177 |  |  | else						\ | 
   
        | 178 |  |  | echo 'echo "ERROR: No executable psql found";';		\ | 
   
        | 179 |  |  | echo 'echo "HINT:  Add path to psql to your environment PATH";';	\ | 
   
        | 180 |  |  | echo 'exit 1;';				\ | 
   
        | 181 |  |  | fi;} | 
   
        | 182 |  |  |  | 
   
        | 183 |  |  | PGDUMP ?=			${shell export PATH=${LOCAL}/pgsql/bin:$${PATH};	\ | 
   
        | 184 |  |  | PGDUMP=`which pg_dump`;				\ | 
   
        | 185 |  |  | if [ -x "$${PGDUMP}" ]; then			\ | 
   
        | 186 |  |  | echo $${PGDUMP};			\ | 
   
        | 187 |  |  | else						\ | 
   
        | 188 |  |  | echo 'echo "ERROR: No executable pg_dump found";';			\ | 
   
        | 189 |  |  | echo 'echo "HINT:  Add path to pg_dump to your environment PATH";';	\ | 
   
        | 190 |  |  | echo 'exit 1;';				\ | 
   
        | 191 |  |  | fi;} | 
   
        | 192 |  |  |  | 
   
        | 193 |  |  | # rsync wrappers | 
   
        | 194 |  |  | RSYNC =				${shell export PATH=${LOCAL}/bin:$${PATH};		\ | 
   
        | 195 |  |  | RSYNC=`which rsync`;				\ | 
   
        | 196 |  |  | if [ -x "$${RSYNC}" ]; then			\ | 
   
        | 197 |  |  | echo $${RSYNC};				\ | 
   
        | 198 |  |  | else						\ | 
   
        | 199 |  |  | echo 'echo "ERROR: No executable rsync found";';			\ | 
   
        | 200 |  |  | echo 'echo "HINT:  Add path to rsync to your environment PATH,";';	\ | 
   
        | 201 |  |  | echo 'echo "       or install with: make port_install PORT=rsync``";';	\ | 
   
        | 202 |  |  | echo 'exit 1;';				\ | 
   
        | 203 |  |  | fi;} | 
   
        | 204 |  |  |  | 
   
        | 205 |  |  | CONVERT =				${shell export PATH=${LOCAL}/bin:$${PATH}; which convert} | 
   
        | 206 |  |  | ifeq (${CONVERT},) | 
   
        | 207 |  |  | ${error ERROR: No executable convert found, you need to install ImageMagick first} | 
   
        | 208 |  |  | endif |