Makefile 35 KB
Newer Older
1 2
#!/usr/bin/make

3 4 5
# Prefix for packaging
DESTDIR=

6
# Flag for optimizations
7 8
USEDEBIANLIBS=no
PROD=$(USEDEBIANLIBS)
Yadd's avatar
Yadd committed
9
USEEXTERNALLIBS=no
10 11 12 13 14

# Compression
JSCOMPRESS=$(PROD)
CSSCOMPRESS=$(PROD)

15
PERL=$$(which perl)
16
PERLVERSION=`perl -e '$$version = $$^V; $$version =~ s/v//; print $$version'`
Yadd's avatar
Yadd committed
17 18 19
SU=su -c
COMPRESS=tar czf
UNCOMPRESS=tar xzf
Clément OUDOT's avatar
Clément OUDOT committed
20
LISTCOMPRESSED=tar tzf
Yadd's avatar
Yadd committed
21
COMPRESSSUFFIX=tar.gz
22 23 24 25 26
# Perl options
#PERLOPTIONS="INSTALLDIRS=vendor"
PERLOPTIONS=

# Default directories install
Yadd's avatar
Yadd committed
27 28 29
PREFIX=/usr/local
LMPREFIX=$(PREFIX)/lemonldap-ng
RLMPREFIX=$(DESTDIR)/$(LMPREFIX)
30
# BIN dirs
Yadd's avatar
Yadd committed
31 32 33 34
BINDIR=$(LMPREFIX)/bin
RBINDIR=$(DESTDIR)/$(BINDIR)
DATADIR=$(LMPREFIX)/data
RDATADIR=$(DESTDIR)/$(DATADIR)
35

Yadd's avatar
Yadd committed
36
EXAMPLEROOT=`pwd`/example
37 38

# Document roots for Apache VirtualHosts
Yadd's avatar
Yadd committed
39 40 41 42 43 44 45
DOCUMENTROOT=$(LMPREFIX)/htdocs
PORTALDIR=$(DOCUMENTROOT)/portal
RPORTALDIR=$(DESTDIR)/$(PORTALDIR)
PORTALSKINSDIR=$(PORTALDIR)/skins
RPORTALSKINSDIR=$(DESTDIR)/$(PORTALSKINSDIR)
MANAGERDIR=$(DOCUMENTROOT)/manager
RMANAGERDIR=$(DESTDIR)/$(MANAGERDIR)
Yadd's avatar
Yadd committed
46
MANAGERSITEDIR=$(MANAGERDIR)
Yadd's avatar
Yadd committed
47
RMANAGERSITEDIR=$(DESTDIR)/$(MANAGERSITEDIR)
Yadd's avatar
Yadd committed
48 49
MANAGERSTATICDIR=$(MANAGERSITEDIR)/static
RMANAGERSTATICDIR=$(DESTDIR)/$(MANAGERSTATICDIR)
Yadd's avatar
Yadd committed
50
MANAGERRELATIVESTATICDIR=/static
Yadd's avatar
Yadd committed
51 52 53 54
MANAGERPSGIDIR=$(MANAGERSITEDIR)/psgi
RMANAGERPSGIDIR=$(DESTDIR)/$(MANAGERPSGIDIR)
MANAGERTEMPLATESDIR=$(MANAGERSITEDIR)/templates
RMANAGERTEMPLATESDIR=$(DESTDIR)/$(MANAGERTEMPLATESDIR)
55
DOCDIR=$(DOCUMENTROOT)
Yadd's avatar
Yadd committed
56
RDOCDIR=$(DESTDIR)/$(DOCDIR)
57 58 59
DEFDOCDIR=$(DOCUMENTROOT)/doc
RDEFDOCDIR=$(DESTDIR)/$(DEFDOCDIR)
FRDOCDIR=$(DOCUMENTROOT)/fr-doc
Yadd's avatar
Yadd committed
60 61 62 63 64 65
TESTDIR=$(DOCUMENTROOT)/test
RTESTDIR=$(DESTDIR)/$(TESTDIR)
EXAMPLESDIR=$(LMPREFIX)/examples
REXAMPLESDIR=$(DESTDIR)/$(EXAMPLESDIR)
TOOLSDIR=$(LMPREFIX)/tools
RTOOLSDIR=$(DESTDIR)/$(TOOLSDIR)
66 67

# Handler dir
Yadd's avatar
Yadd committed
68 69
HANDLERDIR=$(LMPREFIX)/handler
RHANDLERDIR=$(DESTDIR)/$(HANDLERDIR)
70 71

# Configuration dir
Yadd's avatar
Yadd committed
72 73 74 75
CONFDIR=$(LMPREFIX)/etc
RCONFDIR=$(DESTDIR)/$(CONFDIR)
CRONDIR=$(LMPREFIX)/etc/cron.d
RCRONDIR=$(DESTDIR)/$(CRONDIR)
76 77
CONFFILENAME=lemonldap-ng.ini
STORAGECONFFILE=$(CONFDIR)/$(CONFFILENAME)
78

79
# LL::NG configuration storage dir
Yadd's avatar
Yadd committed
80 81
FILECONFIGDIR=$(DATADIR)/conf
RFILECONFIGDIR=$(DESTDIR)/$(FILECONFIGDIR)
82

83
# LL::NG sessions storage dir
Yadd's avatar
Yadd committed
84 85 86
APACHESESSIONFILEDIR=$(DATADIR)/sessions
RAPACHESESSIONFILEDIR=$(DESTDIR)/$(APACHESESSIONFILEDIR)
APACHESESSIONFILELOCKDIR=$(APACHESESSIONFILEDIR)/lock
87
RAPACHESESSIONFILELOCKDIR=$(DESTDIR)/$(APACHESESSIONFILELOCKDIR)
88

89 90 91 92 93 94 95
# LL::NG persistent sessions storage dir
APACHEPSESSIONFILEDIR=$(DATADIR)/psessions
RAPACHEPSESSIONFILEDIR=$(DESTDIR)/$(APACHEPSESSIONFILEDIR)
APACHEPSESSIONFILELOCKDIR=$(APACHEPSESSIONFILEDIR)/lock
RAPACHEPSESSIONFILELOCKDIR=$(DESTDIR)/$(APACHEPSESSIONFILELOCKDIR)

# LL::NG notifications storage dir
96 97
APACHEFILENOTIFDIR=$(DATADIR)/notifications
RFILENOTIFDIR=$(DESTDIR)/$(APACHEFILENOTIFDIR)
98

99 100
# LL::NG captcha dir
CAPTCHADIR=$(DATADIR)/captcha
101 102
RCAPTCHADIR=$(DESTDIR)/$(CAPTCHADIR)

103
# Apache user/group
104 105 106
APACHEUSER=
APACHEGROUP=

107
# Apache version
Yadd's avatar
Yadd committed
108
APACHEVERSION=2.X
109

110
# DNS Domain for cookie and virtual hosts
111 112
DNSDOMAIN=example.com

113 114
# Virtual Host Listen IP and Port (*, *:80, ...)
VHOSTLISTEN=*:80
115
WEBSERVERPORT=19876
116

117
# Other
Yadd's avatar
Yadd committed
118 119 120 121
SRCCOMMONDIR=lemonldap-ng-common
SRCHANDLERDIR=lemonldap-ng-handler
SRCPORTALDIR=lemonldap-ng-portal
SRCMANAGERDIR=lemonldap-ng-manager
122 123 124

VERSION=`head -n1 changelog |sed -e 's/lemonldap-ng (//' -e 's/).*$$//'`
PORTALSKINS=`ls $(SRCPORTALDIR)/example/skins/`
125
DIFF=diff -aurN -x '*.tpl' -x '*.bak' -x .svn -x '*.map' -x '*.min.js' -x '*.min.css' -x '*.swp' --ignore-matching-lines='.*jquery.*' --ignore-matching-lines='.*lemonldap-ng\.ini.*'
126 127
DIFFPREFIX=

128

129
EXAMPLELANG=en # For static Manager example only
Clément OUDOT's avatar
Clément OUDOT committed
130
ERASECONFIG=1 # Set to 0 if you do not want to replace your configuration
131

132 133
MANAGERLIBSTOREMOVEFORDEBIAN=$(RMANAGERSTATICDIR)/bwr/jquery/ \
			$(RMANAGERSTATICDIR)/bwr/angular/ \
134
			$(RMANAGERSTATICDIR)/bwr/angular-animate/ \
135 136 137 138 139 140 141 142
			$(RMANAGERSTATICDIR)/bwr/angular-cookie/ \
			$(RMANAGERSTATICDIR)/bwr/bootstrap/ \
			$(RMANAGERSTATICDIR)/bwr/es5-shim/
PORTALLIBSTOREMOVEFORDEBIAN=$(RPORTALSKINSDIR)/bootstrap/fonts \
			$(RPORTALSKINSDIR)/bootstrap/css/bootstrap* \
			$(RPORTALSKINSDIR)/bootstrap/js/bootstrap* \
			$(RPORTALSKINSDIR)/common/js/jquery-* \
			$(RPORTALSKINSDIR)/common/js/jquery.cookie*
Yadd's avatar
Yadd committed
143 144
MANAGEREXTERNALLIBS=$(RMANAGERSTATICDIR)/bwr/
PORTALEXTERNALLIBS=$(PORTALLIBSTOREMOVEFORDEBIAN) $(RPORTALSKINSDIR)/common/js/jquery*
145

146
# GENERATED SRC FILESlemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm
147
MANAGERJSONSRC= scripts/jsongenerator.pl \
Yadd's avatar
Yadd committed
148
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build.pm \
149
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build/Attributes.pm \
150 151
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build/Tree.pm \
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Conf/Zero.pm
152 153
MANAGERJSONDST=$(SRCMANAGERDIR)/site/static/struct.json \
		$(SRCMANAGERDIR)/site/static/js/conftree.js \
Yadd's avatar
Yadd committed
154
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Attributes.pm \
155
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Constants.pm \
156
		$(SRCCOMMONDIR)/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm \
157
		$(SRCCOMMONDIR)/lib/Lemonldap/NG/Common/Conf/Constants.pm \
158
		_example/conf/lmConf-1.js
159 160

# Javascript and CSS to minify
Yadd's avatar
Yadd committed
161 162
JSSRCFILES:=$(shell find $(SRCMANAGERDIR)/site/static/js $(SRCPORTALDIR)/example -type f -name '*.js' ! -name '*.min.js')
CSSSRCFILES:=$(shell find $(SRCMANAGERDIR)/site/static/css  $(SRCPORTALDIR)/example -type f -name '*.css' ! -name '*.min.css')
163 164 165 166

# Minified files
JSDSTFILES=$(JSSRCFILES:.js=.min.js)
CSSDSTFILES=$(CSSSRCFILES:.css=.min.css)
Yadd's avatar
Yadd committed
167

168
all:	configure common handler manager portal
Yadd's avatar
Yadd committed
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
	@echo
	@echo "Building succeed. Now run :"
	@echo " - make test to verify your installation"
	@echo " - make install to install all"
	@echo
	@echo 'Other targets :'
	@echo " * Partial build :"
	@echo "   - portal, manager, handler"
	@echo " * Doxygen documentation"
	@echo "   - doxygen (to build Doxygen documentation in doc/devel/)"
	@echo
	@echo 'Other targets launched by "make install" :'
	@echo " * Perl libraries install :"
	@echo "   - install_libs          (all Perl libraries)"
	@echo "   - install_portal_libs"
	@echo "   - install_manager_libs"
	@echo "   - install_handler_libs"
	@echo " * Binaries install :"
	@echo "   - install_bin           ($(BINDIR))"
	@echo " * Web sites install :"
	@echo "   - install_site          (all sites including install_doc_site)"
	@echo "   - install_portal_site   ($(PORTALDIR))"
	@echo "   - install_manager_site  ($(MANAGERDIR))"
	@echo "   - install_handler_site  ($(HANDLERDIR))"
	@echo " * Documentation install :"
194
	@echo "   - install_doc_site      ($(DEFDOCDIR))"
Yadd's avatar
Yadd committed
195 196
	@echo "   - install_examples_site ($(EXAMPLESDIR))"
	@echo
Yadd's avatar
Yadd committed
197
	@echo "Other languages documentation (fr only for now)"
198 199
	@echo " - fr-doc                  (needs OmegaT)"
	@echo " - install_fr_doc_site"
Yadd's avatar
Yadd committed
200
	@echo
201

Yadd's avatar
Yadd committed
202 203 204
#
# Minification
#
205 206 207
minify: $(JSDSTFILES) $(CSSDSTFILES)

%.min.css: %.css
Yadd's avatar
Fault  
Yadd committed
208
	@echo "Compressing $*.css"
209
	@yui-compressor $*.css > $*.min.css
210 211

%.min.js: %.js
Yadd's avatar
Fault  
Yadd committed
212
	@echo "Compressing $*.js"
213
	@yui-compressor $*.js > $*.min.js
214

Yadd's avatar
Yadd committed
215

216 217 218
#
# Perl libraries configuration
#
Yadd's avatar
Yadd committed
219

220
json:	$(MANAGERJSONDST)
Yadd's avatar
Yadd committed
221
	@if which yui-compressor; then $(MAKE) minify; fi
Yadd's avatar
Yadd committed
222

223
$(MANAGERJSONDST):	$(MANAGERJSONSRC)
224
	./scripts/jsongenerator.pl
Yadd's avatar
Yadd committed
225

Yadd's avatar
Yadd committed
226
configure:	json common_conf handler_conf portal_conf manager_conf
227

228 229 230 231 232 233 234 235 236
common_conf:	${SRCCOMMONDIR}/Makefile

handler_conf:	${SRCHANDLERDIR}/Makefile

portal_conf:	${SRCPORTALDIR}/Makefile

manager_conf:	${SRCMANAGERDIR}/Makefile

${SRCCOMMONDIR}/Makefile:
Yadd's avatar
Yadd committed
237
	@cd ${SRCCOMMONDIR}; LMNGCONFFILE=$(STORAGECONFFILE) $(PERL) Makefile.PL $(PERLOPTIONS)
238

239
${SRCHANDLERDIR}/Makefile:
Yadd's avatar
Yadd committed
240
	@cd ${SRCHANDLERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
241

242
${SRCPORTALDIR}/Makefile:
Yadd's avatar
Yadd committed
243
	@cd ${SRCPORTALDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
244

245
${SRCMANAGERDIR}/Makefile:
Yadd's avatar
Yadd committed
246
	@cd ${SRCMANAGERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
247

248 249 250
#
# Perl libraries make
#
251
common:		common_conf
252
	@$(MAKE) -C ${SRCCOMMONDIR}
253

254
handler:	handler_conf
255
	@$(MAKE) -C ${SRCHANDLERDIR}
256

257
portal:		portal_conf
258
	@$(MAKE) -C ${SRCPORTALDIR}
259

260
manager:	manager_conf
261
	$(MAKE) -C ${SRCMANAGERDIR}
262

Yadd's avatar
Yadd committed
263
test:		all common_test handler_test portal_test manager_test extra_test
264 265 266 267

common_test:	common
	@$(MAKE) -C ${SRCCOMMONDIR} test

Yadd's avatar
Yadd committed
268
handler_test:	handler
269
	@$(MAKE) -C ${SRCHANDLERDIR} test FULLPERL="$(PERL) -I../${SRCCOMMONDIR}/blib/lib/"
270

Yadd's avatar
Yadd committed
271
portal_test:	portal
272
	@$(MAKE) -C ${SRCPORTALDIR} test FULLPERL="$(PERL) -I../${SRCCOMMONDIR}/blib/lib/ -I../${SRCHANDLERDIR}/blib/lib/"
273

Yadd's avatar
Yadd committed
274
manager_test:	manager
275
	@$(MAKE) -C ${SRCMANAGERDIR} test FULLPERL="$(PERL) -I../${SRCCOMMONDIR}/blib/lib/ -I../${SRCHANDLERDIR}/blib/lib/"
276

Yadd's avatar
Yadd committed
277
extra_test:	all
278
	cd ${SRCPORTALDIR} && prove -b -I ../$(SRCCOMMONDIR)/blib/lib -I ../$(SRCHANDLERDIR)/blib/lib -I../${SRCPORTALDIR}/blib/lib/ xt
279
#	PERL_DL_NONLAZY=1 $(PERL) "-MExtUtils::Command::MM" "-e" "test_harness(0, 'lemonldap-ng-common/blib/lib', 'lemonldap-ng-handler/blib/lib', 'lemonldap-ng-manager/blib/lib', 'lemonldap-ng-portal/blib/lib')" extra-tests/*.t
Yadd's avatar
Yadd committed
280

281 282 283
e2e_test:	all prepare_test_server start_web_server launch_protractor stop_web_server

prepare_test_server:
Yadd's avatar
Yadd committed
284
	@mkdir -p e2e-tests/conf/sessions/lock e2e-tests/conf/persistents/lock
Yadd's avatar
Yadd committed
285
	@$(MAKE) install_webserver_conf \
286 287
		RCONFDIR=e2e-tests/conf \
		ERASECONFIG=1 \
288
		VHOSTLISTEN='*:$(WEBSERVERPORT)' \
289 290
		PORTALDIR=`pwd`/$(SRCPORTALDIR)/example \
		MANAGERDIR=`pwd`/$(SRCMANAGERDIR)/site \
291 292 293
		MANAGERPSGIDIR=`pwd`/e2e-tests \
		DEFDOCDIR=`pwd`/doc \
		FRDOCDIR=`pwd`/po-doc/fr
Yadd's avatar
Yadd committed
294 295
	@cp e2e-tests/lmConf-1.js e2e-tests/lemonldap-ng.ini e2e-tests/env.conf e2e-tests/conf/
	@perl -i -pe 'BEGIN{$$p=`pwd`;chomp $$p}s#__pwd__#$$p#;s/__port__/$(WEBSERVERPORT)/' e2e-tests/conf/lemonldap-ng.ini e2e-tests/conf/lmConf-1.js e2e-tests/conf/env.conf
296

Yadd's avatar
Yadd committed
297 298 299
e2e-tests/conf/apache2.pid: start_web_server

start_web_server:	all prepare_test_server
Yadd's avatar
Yadd committed
300
	# Clean old server if launched
301
	-@[ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid` && sleep 1
302
	# Start web server (designed for Debian, path may be broken else)
303 304
	@LLNG_DEFAULTCONFFILE=`pwd`/e2e-tests/conf/lemonldap-ng.ini /usr/sbin/apache2 -d `pwd`/e2e-tests -f apache2.conf -k start

Yadd's avatar
Yadd committed
305
reload_web_server:
Yadd's avatar
Yadd committed
306 307 308 309 310 311
	@if [ -e e2e-tests/conf/apache2.pid ]; then \
		LLNG_DEFAULTCONFFILE=`pwd`/e2e-tests/conf/lemonldap-ng.ini /usr/sbin/apache2 -d `pwd`/e2e-tests -f apache2.conf -k graceful; \
	else \
		$(MAKE) start_web_server; \
	fi

Yadd's avatar
Yadd committed
312
launch_protractor:	all e2e-tests/conf/apache2.pid
313
	# Start e2e tests
Yadd's avatar
Yadd committed
314
	# NB: you must have protractor installed (using npm install -g protractor)
Yadd's avatar
Yadd committed
315
	# and have run update-webdriver at least once and have a node.js > 4.0
316
	@WEBSERVERPORT=$(WEBSERVERPORT) protractor e2e-tests/protractor-conf.js
317 318 319

stop_web_server:
	# Stop web server
Yadd's avatar
Yadd committed
320
	-@ [ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid`
321
	# Clean
322
	@rm -rf e2e-tests/conf
Yadd's avatar
Yadd committed
323

324 325
restart_web_server: start_web_server

326 327 328 329
#
# INSTALL
#
install:	install_libs install_bin install_site
330

331 332 333
#
# Perl libraires install
#
Yadd's avatar
Yadd committed
334
install_libs:	common_install_libs install_handler_libs install_portal_libs install_manager_libs
335 336

common_install_libs:		common
337
	@$(MAKE) -C ${SRCCOMMONDIR} install
338

Yadd's avatar
Yadd committed
339
install_handler_libs:	handler
340
	@$(MAKE) -C ${SRCHANDLERDIR} install
341

Yadd's avatar
Yadd committed
342
install_portal_libs:		portal
343
	@$(MAKE) -C ${SRCPORTALDIR} install
344

Yadd's avatar
Yadd committed
345
install_manager_libs:	manager
346
	@$(MAKE) -C ${SRCMANAGERDIR} install
347

348
example:
Yadd's avatar
Yadd committed
349
	$(MAKE) install_site install_bin LMPREFIX=$(EXAMPLEROOT)
350

Yadd's avatar
Yadd committed
351
install_bin:	install_conf_dir
352 353
	# Binary install
	@install -v -d $(RBINDIR)
Yadd's avatar
Yadd committed
354
	@cp -f\
355
		${SRCHANDLERDIR}/example/scripts/purgeLocalCache \
Yadd's avatar
Yadd committed
356
		${SRCPORTALDIR}/example/scripts/purgeCentralCache \
357
		${SRCPORTALDIR}/example/scripts/buildPortalWSDL \
Yadd's avatar
Yadd committed
358
		${SRCCOMMONDIR}/scripts/convertConfig \
Yadd's avatar
Bugs :  
Yadd committed
359
		${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \
360
		${SRCCOMMONDIR}/scripts/rotateOidcKeys \
Yadd's avatar
Yadd committed
361 362
		${SRCMANAGERDIR}/scripts/lmConfigEditor \
		${SRCMANAGERDIR}/scripts/lemonldap-ng-cli \
Yadd's avatar
Yadd committed
363
			$(RBINDIR)
364 365
	@if [ ! "$(APACHEUSER)" ]; then \
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
366
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
367 368
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lmConfigEditor; \
369
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lemonldap-ng-cli; \
370 371 372
	fi
	@if [ ! "$(APACHEGROUP)" ]; then \
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
373
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
374 375
	else \
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lmConfigEditor; \
376
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lemonldap-ng-cli; \
377
	fi
378
	@chmod +x $(RBINDIR)/*
379 380 381 382

#
# SITE INSTALL
#
383
install_site:	install_manager_site install_portal_site install_handler_site install_test_site install_examples_site install_doc_site install_webserver_conf
384
	# Site install
385
	@install -v -d $(RCONFDIR)
Clément OUDOT's avatar
Clément OUDOT committed
386 387
	# Check if erase is wanted
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
388
		cp -f _example/etc/for_etc_hosts $(RCONFDIR); \
389
	fi
Yadd's avatar
Yadd committed
390
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/for_etc_hosts
391
	# Fix a lost of rights on the main directory
Yadd's avatar
Yadd committed
392
	@chmod 755 $(RBINDIR) $(RDOCUMENTROOT) $(REXAMPLESDIR) $(RHANDLERDIR) $(RPORTALSKINSDIR) $(RMANAGERSITEDIR) $(RTOOLSDIR) $(RCONFDIR) $(RDATADIR)
393
	@echo
394
	@echo "LemonLDAP::NG v${VERSION} is installed with these parameters:"
395 396 397 398 399
	@echo "  - System configuration: ${CONFDIR}"
	@echo "  - DNS domain (for cookies and virtual hosts): ${DNSDOMAIN}"
	@echo
	@echo "To finish configuration:"
	@echo
400 401 402 403
	@echo "1 - Add this in your Apache $(APACHEVERSION) configuration file:"
	@echo "      include ${CONFDIR}/portal-apache$(APACHEVERSION).conf"
	@echo "      include ${CONFDIR}/handler-apache$(APACHEVERSION).conf"
	@echo "      include ${CONFDIR}/manager-apache$(APACHEVERSION).conf"
404
	@echo "      include ${CONFDIR}/test-apache$(APACHEVERSION).conf"
405
	@echo
406 407
	@echo "2 - Restart Apache:"
	@echo "      apache$(APACHEVERSION)ctl restart"
408
	@echo
409
	@echo "3 - Run 'make postconf' as root to update /etc/hosts if your DNS service does not known auth.$(DNSDOMAIN) and manager.$(DNSDOMAIN)"
410
	@echo
411 412 413 414 415 416
	@echo "4 - Try to connect to http://test1.${DNSDOMAIN}/ or http://test2.${DNSDOMAIN}/ with demonstration accounts:"
	@echo "    - rtyler/rtyler"
	@echo "    - msmith/msmith"
	@echo "    - dwho/dwho"
	@echo
	@echo "5 - Connect to Manager at http://manager.${DNSDOMAIN}/ to edit configuration"
417
	@echo
418
	@if [ ! "$(APACHEUSER)" ]; then \
419
		echo;echo "    Warning, since APACHEUSER was not set, $(APACHESESSIONFILEDIR), $(APACHEPSESSIONFILEDIR), $(CAPTCHADIR) and $(CONFDIR) have permissive permissions."; \
420 421 422
		echo "    Fix them by yourself to restrict their view to apache process only"; \
	fi
	@echo
423

424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446
install_webserver_conf:
	@install -m 755 -v -d $(RCONFDIR)
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
		cp -f _example/etc/portal-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/handler-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/manager-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/test-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/handler-nginx.conf $(RCONFDIR); \
		cp -f _example/etc/test-nginx.conf $(RCONFDIR); \
		cp -f _example/etc/nginx-access-control $(RCONFDIR); \
		cp -f _example/etc/nginx-http-accounting $(RCONFDIR); \
		cp -f _example/etc/nginx-fcgi-accounting $(RCONFDIR); \
	fi
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g; \
			s#__PORTALDIR__#$(PORTALDIR)/#g; \
			s#__MANAGERDIR__#$(MANAGERDIR)/#g; \
			s#__MANAGERSTATICDIR__#$(MANAGERSTATICDIR)/#g; \
			s#__MANAGERPSGIDIR__#$(MANAGERPSGIDIR)/#g; \
			s#__TESTDIR__#$(TESTDIR)/#g; \
			s#__VHOSTLISTEN__#$(VHOSTLISTEN)#g; \
			s#__DEFDOCDIR__#$(DEFDOCDIR)/#g; \
			s#__FRDOCDIR__#$(FRDOCDIR)/#g;' $(RCONFDIR)/*apache*.conf $(RCONFDIR)/*nginx*.conf

447 448
install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
449 450 451
	@install -v -d ${RMANAGERDIR} $(RMANAGERSTATICDIR) $(RMANAGERPSGIDIR) \
		$(RMANAGERTEMPLATESDIR)
	@cp -pR $(SRCMANAGERDIR)/site/static/* $(RMANAGERSTATICDIR)
452
	@for f in $(SRCMANAGERDIR)/site/templates/*.tpl; do \
Yadd's avatar
Yadd committed
453 454 455 456 457
		./scripts/transform-templates \
			usedebianlibs $(USEDEBIANLIBS) \
			useexternallibs $(USEEXTERNALLIBS) \
			jsminified $(JSCOMPRESS) \
			cssminified $(CSSCOMPRESS) <$$f \
458 459
			> $(RMANAGERTEMPLATESDIR)/`basename $$f`; \
	done
Yadd's avatar
Yadd committed
460 461 462
	@if test "$(USEEXTERNALLIBS)" = "yes"; then \
		rm -rvf $(MANAGEREXTERNALLIBS) \
	elif test "$(USEDEBIANLIBS)" = "yes"; then \
463 464
		rm -rvf $(MANAGERLIBSTOREMOVEFORDEBIAN); \
	fi
Yadd's avatar
Yadd committed
465 466 467 468
	@cp -pR $(SRCMANAGERDIR)/eg/* $(RMANAGERPSGIDIR)
	# Clean svn files
	@rm -rf $$(find ${RMANAGERDIR} ${RMANAGERSTATICDIR} $(RMANAGERPSGIDIR) \
		$(RMANAGERTEMPLATESDIR) $(RCONFDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
469
	$(PERL) -i -pe 's#__MANAGERSTATICDIR__#$(MANAGERRELATIVESTATICDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
470
	$(PERL) -i -pe 's#__MANAGERTEMPLATESDIR__#$(MANAGERTEMPLATESDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
471 472 473 474

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
475
		$(RPORTALDIR)/skins/ \
476
		$(RCRONDIR) $(RCONFDIR)
477
	@for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
478 479
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
480
	done
Yadd's avatar
Yadd committed
481 482 483
	@cp -pR -f ${SRCPORTALDIR}/example/index_skin.pl ${RPORTALDIR}/index.pl
	@cp -pR -f ${SRCPORTALDIR}/example/mail.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/metadata.pl ${RPORTALDIR}
Clément OUDOT's avatar
Clément OUDOT committed
484
	@cp -pR -f ${SRCPORTALDIR}/example/openid-configuration.pl ${RPORTALDIR}
Yadd's avatar
Yadd committed
485 486
	@cp -pR -f ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/register.pl ${RPORTALDIR}
487
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
488
	@for f in `find $(RPORTALSKINSDIR) -type f -name '*.tpl'`; do \
489
		./scripts/transform-templates usedebianlibs $(USEDEBIANLIBS) jsminified $(JSCOMPRESS) cssminified $(CSSCOMPRESS) <$$f >$$f.tmp; \
Yadd's avatar
Yadd committed
490 491
		mv -f $$f.tmp $$f; \
	done
Yadd's avatar
Yadd committed
492 493 494
	@if test "$(USEEXTERNALLIBS)" = "yes"; then \
		rm -rvf $(PORTALEXTERNALLIBS) \
	elif test "$(USEDEBIANLIBS)" = "yes"; then \
495 496
		rm -rvf $(PORTALLIBSTOREMOVEFORDEBIAN); \
	fi
Yadd's avatar
Yadd committed
497
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
498
		for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
499 500
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
501 502 503
		done; \
	fi
	# Cron files
504
	@cp -f $(SRCPORTALDIR)/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
505
	@if [ ! "$(APACHEUSER)" ]; then \
506
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
507
	else \
508
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
509
	fi
510
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
511
	# Clean SVN files
Clément OUDOT's avatar
 
Clément OUDOT committed
512
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
513 514

install_handler_site:	install_conf_dir
515
	# Handler install
516
	@install -v -d ${RHANDLERDIR}
517
	@cp -f $(SRCHANDLERDIR)/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
518
	@if [ ! "$(APACHEUSER)" ]; then \
519
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
520 521 522 523
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
524
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
525 526

install_test_site:
527
	# Test site install
528
	@install -v -d $(RTESTDIR)
Yadd's avatar
Yadd committed
529
	@cp -pR -f _example/test/* $(RTESTDIR)
530
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
531
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
532
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
533 534

install_examples_site:
535
	# Examples install
536
	@install -v -d $(REXAMPLESDIR)
537
	@for i in manager portal handler; do \
Yadd's avatar
Yadd committed
538
		cp -a -f lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
539
	done
Yadd's avatar
Yadd committed
540
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
541
		$(REXAMPLESDIR)/manager/skins \
542
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
543
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
544
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
545

546
install_doc_site:
547
	# Offline documentation install
548 549
	@rm -rf $(RDEFDOCDIR)
	@install -v -d $(RDEFDOCDIR)
Yadd's avatar
Yadd committed
550
	@cp -a -f doc/* $(RDEFDOCDIR)
551

552
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
553
	# Configuration files install
554
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
555
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
556
		cp -f $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
557
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
558
	fi
559
	@cp _example/conf/lmConf-1.js $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
560
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
561
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
562
		s#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)#g;\
563
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;' $(RFILECONFIGDIR)/lmConf-1.js
564 565 566 567 568 569 570 571 572
	@if [ "$(APACHEUSER)" != "" ]; then \
		chown $(APACHEUSER) $(RFILECONFIGDIR) || exit 1; \
		if [ "$(APACHEGROUP)" != "" ]; then \
			chgrp $(APACHEGROUP) $(RFILECONFIGDIR) || exit 1; \
		fi; \
		chmod 770 $(RFILECONFIGDIR); \
	else \
		chmod 777 $(RFILECONFIGDIR); \
	fi
573 574
	@cp $(SRCCOMMONDIR)/tools/lmConfig.* $(SRCCOMMONDIR)/tools/apache-session-mysql.sql $(RTOOLSDIR)
	@cp $(SRCCOMMONDIR)/tools/sso.schema $(RTOOLSDIR)
Yadd's avatar
Yadd committed
575
	$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
576
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
577 578

install_sessions_dir:
579
	@install -m 777 -v -d $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR)
580 581
	# Fix Apache::Session directories permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
582
		chown $(APACHEUSER) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
583
		if [ "$(APACHEGROUP)" != "" ]; then \
584
			chgrp $(APACHEGROUP) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
585
		fi; \
586
		chmod 770 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
587
	else \
588
		chmod 777 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
589 590
	fi

591 592 593 594 595 596 597 598 599 600 601 602 603
install_notif_dir:
	@install -m 777 -v -d $(RFILENOTIFDIR)
	# Fix notifications directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
		chown $(APACHEUSER) $(RFILENOTIFDIR) || exit 1; \
		if [ "$(APACHEGROUP)" != "" ]; then \
			chgrp $(APACHEGROUP) $(RFILENOTIFDIR) || exit 1; \
		fi; \
		chmod 770 $(RFILENOTIFDIR); \
	else \
		chmod 777 $(RFILENOTIFDIR); \
	fi

604
install_captcha_dir:
605
	@install -m 777 -v -d $(RCAPTCHADIR)
606 607
	# Fix captcha directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
608
		chown $(APACHEUSER) $(RCAPTCHADIR) || exit 1; \
609
		if [ "$(APACHEGROUP)" != "" ]; then \
610
			chgrp $(APACHEGROUP) $(RCAPTCHADIR) || exit 1; \
611
		fi; \
612
		chmod 770 $(RCAPTCHADIR); \
613
	else \
614
		chmod 777 $(RCAPTCHADIR); \
615 616
	fi

617
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
618
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
619 620
	@echo "/etc/hosts was updated"

621
postconf: postconf_hosts
622 623
	@echo "Post configuration done"

624 625
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

626 627 628 629
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

630
handler_uninstall:	handler
631
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
632
	@rm -vf handler_uninstall
633 634

portal_uninstall:		portal
635
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
636
	@rm -vf portal_uninstall
637 638

manager_uninstall:	manager
639
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
640
	@rm -vf manager_uninstall
641

642
dist:	clean
643 644 645 646 647 648 649 650 651 652
	@mkdir -p lemonldap-ng-$(VERSION)
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\|rpm\)") lemonldap-ng-$(VERSION)
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@rm -rf lemonldap-ng-$(VERSION)/po-doc/fr/*
	@find $$dir -name '*.bak' -delete
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
	@rm -rf lemonldap-ng-$(VERSION)

rpm-dist:	clean
653
	@mkdir -p lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
654
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\)") lemonldap-ng-$(VERSION)
655 656
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
657
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
658
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
659
	@rm -rf lemonldap-ng-$(VERSION)
660

661

662 663
debian-dist:	clean
	@mkdir -p lemonldap-ng-$(VERSION)
664
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|rpm\)") lemonldap-ng-$(VERSION)
665 666
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
667 668 669 670
	@cp lemonldap-ng-$(VERSION)/_example/etc/handler-apache2.X.conf lemonldap-ng-$(VERSION)/_example/etc/handler-apache2.conf
	@cp lemonldap-ng-$(VERSION)/_example/etc/manager-apache2.X.conf lemonldap-ng-$(VERSION)/_example/etc/manager-apache2.conf
	@cp lemonldap-ng-$(VERSION)/_example/etc/portal-apache2.X.conf lemonldap-ng-$(VERSION)/_example/etc/portal-apache2.conf
	@cp lemonldap-ng-$(VERSION)/_example/etc/test-apache2.X.conf lemonldap-ng-$(VERSION)/_example/etc/test-apache2.conf
671 672 673
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
	@$(COMPRESS) lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
674 675 676

zip-dist:
	$(MAKE) dist "COMPRESS=zip -r" COMPRESSSUFFIX=zip
677

Yadd's avatar
Yadd committed
678 679 680 681 682 683 684 685
manifest:   configure
	@for i in ${SRCCOMMONDIR} ${SRCHANDLERDIR} ${SRCPORTALDIR} ${SRCMANAGERDIR}; do \
		cd $$i; \
		make manifest; \
		rm -vf MANIFEST.*; \
		cd -; \
	done

686
cpan:	clean configure common_cpan handler_cpan portal_cpan manager_cpan
Clément OUDOT's avatar
Clément OUDOT committed
687
	for i in Common Portal Handler Manager; do \
Yadd's avatar
Yadd committed
688
		$(UNCOMPRESS) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) \
Clément OUDOT's avatar
Clément OUDOT committed
689
			$$($(LISTCOMPRESSED) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) |grep META.yml); \
Yadd's avatar
Yadd committed
690
		mv Lemonldap-NG-$$i-*/META.yml lemonldap-ng-$$($(PERL) -e "print lc('$$i')")/; \
Yadd's avatar
Yadd committed
691
		rm -rf Lemonldap-NG-$$i*/; \
Yadd's avatar
Yadd committed
692
		done
693 694 695 696

common_cpan:	common_conf
	@$(MAKE) -C ${SRCCOMMONDIR} dist
	@mv ${SRCCOMMONDIR}/Lemonldap*.gz .
697 698

handler_cpan:	handler_conf
699 700
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
701 702

portal_cpan:		portal_conf
703 704
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
705 706

manager_cpan:	manager_conf
707 708
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
709

710
documentation:
711
	@cd doc/ && ../scripts/doc.pl
712

713
doxygen:	clean
Yadd's avatar
Yadd committed
714
	$(PERL) -i -pe 's/^(PROJECT_NUMBER\s*=\s*)\d.*$$/$${1}'$(VERSION)'/' Doxyfile
715 716 717 718 719 720
	COLLABORATIVE_GRAPH=1 doxygen Doxyfile
	mkdir doc/devel/tmp
	mv doc/devel/html/inherit* doc/devel/tmp/
	COLLABORATIVE_GRAPH=0 doxygen Doxyfile
	mv -f doc/devel/tmp/* doc/devel/html/
	rm -rf doc/devel/tmp
Yadd's avatar
Yadd committed
721
	$(PERL) -i -pe 's/Graphical Class Hierarchy/Class Collaboration Graph/' doc/devel/html/inherits.html doc/devel/html/tree.html
722 723
	# Some files are not generated
	for i in doc/devel/html/*dot; do dot -T png -o $${i/.dot/.png} $$i; rm -f $$i; done
724

725 726
distclean:	clean

Yadd's avatar
Yadd committed
727
clean:		common_clean handler_clean portal_clean manager_clean omegat-clean omegat-fr-clean stop_web_server
Yadd's avatar
Yadd committed
728
	@rm -f $$(find */ -name '*bak' -delete)
Yadd's avatar
Yadd committed
729
	@rm -rf $(EXAMPLEROOT) example/ doc/devel
Yadd's avatar
Yadd committed
730
	@rm -vf *gz *zip
Yadd's avatar
Yadd committed
731
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
732
	@echo "Cleaned"
733 734

common_clean:
Yadd's avatar
Yadd committed
735
	@if test -e ${SRCCOMMONDIR}/Makefile;then $(MAKE) -C ${SRCCOMMONDIR} distclean;fi
736 737 738
	@rm -vf common*

handler_clean:
Yadd's avatar
Yadd committed
739
	@if test -e ${SRCHANDLERDIR}/Makefile;then $(MAKE) -C ${SRCHANDLERDIR} distclean;fi
740 741 742
	@rm -vf handler*

portal_clean:
Yadd's avatar
Yadd committed
743
	@if test -e ${SRCPORTALDIR}/Makefile;then $(MAKE) -C ${SRCPORTALDIR} distclean;fi
744 745 746
	@rm -vf portal*

manager_clean:
Yadd's avatar
Yadd committed
747
	@if test -e ${SRCMANAGERDIR}/Makefile;then $(MAKE) -C ${SRCMANAGERDIR} distclean;fi
748 749
	@rm -vf manager*

750
debian-local-packages: debian-dist
Yadd's avatar
Yadd committed
751
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
752 753
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
754