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