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

3 4 5
# Prefix for packaging
DESTDIR=

6
PERL=$$(which perl)
7
PERLVERSION=`perl -e '$$version = $$^V; $$version =~ s/v//; print $$version'`
Yadd's avatar
Yadd committed
8 9 10
SU=su -c
COMPRESS=tar czf
UNCOMPRESS=tar xzf
Clément OUDOT's avatar
Clément OUDOT committed
11
LISTCOMPRESSED=tar tzf
Yadd's avatar
Yadd committed
12
COMPRESSSUFFIX=tar.gz
13 14 15 16 17
# Perl options
#PERLOPTIONS="INSTALLDIRS=vendor"
PERLOPTIONS=

# Default directories install
Yadd's avatar
Yadd committed
18 19 20
PREFIX=/usr/local
LMPREFIX=$(PREFIX)/lemonldap-ng
RLMPREFIX=$(DESTDIR)/$(LMPREFIX)
21
# BIN dirs
Yadd's avatar
Yadd committed
22 23 24 25
BINDIR=$(LMPREFIX)/bin
RBINDIR=$(DESTDIR)/$(BINDIR)
DATADIR=$(LMPREFIX)/data
RDATADIR=$(DESTDIR)/$(DATADIR)
26

Yadd's avatar
Yadd committed
27
EXAMPLEROOT=`pwd`/example
28 29

# Document roots for Apache VirtualHosts
Yadd's avatar
Yadd committed
30 31 32 33 34 35 36
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
37 38
MANAGERSKINSDIR=$(MANAGERDIR)/skins
RMANAGERSKINSDIR=$(DESTDIR)/$(MANAGERSKINSDIR)
39
SESSIONSEXPLORERDIR=$(MANAGERDIR)
Yadd's avatar
Yadd committed
40 41 42 43 44 45 46 47 48
RSESSIONSEXPLORERDIR=$(DESTDIR)/$(SESSIONSEXPLORERDIR)
DOCDIR=$(DOCUMENTROOT)/doc
RDOCDIR=$(DESTDIR)/$(DOCDIR)
TESTDIR=$(DOCUMENTROOT)/test
RTESTDIR=$(DESTDIR)/$(TESTDIR)
EXAMPLESDIR=$(LMPREFIX)/examples
REXAMPLESDIR=$(DESTDIR)/$(EXAMPLESDIR)
TOOLSDIR=$(LMPREFIX)/tools
RTOOLSDIR=$(DESTDIR)/$(TOOLSDIR)
49 50

# Handler dir
Yadd's avatar
Yadd committed
51 52
HANDLERDIR=$(LMPREFIX)/handler
RHANDLERDIR=$(DESTDIR)/$(HANDLERDIR)
53 54

# Configuration dir
Yadd's avatar
Yadd committed
55 56 57 58
CONFDIR=$(LMPREFIX)/etc
RCONFDIR=$(DESTDIR)/$(CONFDIR)
CRONDIR=$(LMPREFIX)/etc/cron.d
RCRONDIR=$(DESTDIR)/$(CRONDIR)
59 60
CONFFILENAME=lemonldap-ng.ini
STORAGECONFFILE=$(CONFDIR)/$(CONFFILENAME)
61

62
# LL::NG configuration storage dir
Yadd's avatar
Yadd committed
63 64
FILECONFIGDIR=$(DATADIR)/conf
RFILECONFIGDIR=$(DESTDIR)/$(FILECONFIGDIR)
65

66
# LL::NG sessions storage dir
Yadd's avatar
Yadd committed
67 68 69
APACHESESSIONFILEDIR=$(DATADIR)/sessions
RAPACHESESSIONFILEDIR=$(DESTDIR)/$(APACHESESSIONFILEDIR)
APACHESESSIONFILELOCKDIR=$(APACHESESSIONFILEDIR)/lock
70
RAPACHESESSIONFILELOCKDIR=$(DESTDIR)/$(APACHESESSIONFILELOCKDIR)
71

72 73 74 75 76 77 78
# LL::NG persistent sessions storage dir
APACHEPSESSIONFILEDIR=$(DATADIR)/psessions
RAPACHEPSESSIONFILEDIR=$(DESTDIR)/$(APACHEPSESSIONFILEDIR)
APACHEPSESSIONFILELOCKDIR=$(APACHEPSESSIONFILEDIR)/lock
RAPACHEPSESSIONFILELOCKDIR=$(DESTDIR)/$(APACHEPSESSIONFILELOCKDIR)

# LL::NG notifications storage dir
79 80
APACHEFILENOTIFDIR=$(DATADIR)/notifications
RFILENOTIFDIR=$(DESTDIR)/$(APACHEFILENOTIFDIR)
81

82 83 84 85 86 87 88 89
# LL::NG captcha data dir
CAPTCHADIR=$(DATADIR)/captcha/data
RCAPTCHADIR=$(DESTDIR)/$(CAPTCHADIR)

# LL::NG captcha output dir
CAPTCHAOUTPUTDIR=$(PORTALDIR)/captcha_output
RCAPTCHAOUTPUTDIR=$(DESTDIR)/$(CAPTCHAOUTPUTDIR)

90
# Apache user/group
91 92 93
APACHEUSER=
APACHEGROUP=

94 95 96
# Apache version
APACHEVERSION=2

97
# DNS Domain for cookie and virtual hosts
98 99
DNSDOMAIN=example.com

100 101 102
# Virtual Host Listen IP and Port (*, *:80, ...)
VHOSTLISTEN=*:80

103
# Other
Yadd's avatar
Yadd committed
104
VERSION=`head -n1 changelog |sed -e 's/lemonldap-ng (//' -e 's/).*$$//'`
Yadd's avatar
Yadd committed
105 106
PORTALSKINS=`ls lemonldap-ng-portal/example/skins/`
MANAGERSKINS=`ls lemonldap-ng-manager/example/skins/`
107
DIFF=diff -aurN -x '*.bak' -x .svn -x '*.swp' --ignore-matching-lines='.*jquery.*' --ignore-matching-lines='.*lemonldap-ng\.ini.*'
108

Yadd's avatar
Yadd committed
109 110 111 112
SRCCOMMONDIR=lemonldap-ng-common
SRCHANDLERDIR=lemonldap-ng-handler
SRCPORTALDIR=lemonldap-ng-portal
SRCMANAGERDIR=lemonldap-ng-manager
113
EXAMPLELANG=en # For static Manager example only
Clément OUDOT's avatar
Clément OUDOT committed
114
ERASECONFIG=1 # Set to 0 if you do not want to replace your configuration
115

Yadd's avatar
Yadd committed
116 117
DIFFPREFIX=

118
all:	configure common handler manager portal
Yadd's avatar
Yadd committed
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
	@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 :"
	@echo "   - install_doc_site      ($(DOCDIR))"
	@echo "   - install_examples_site ($(EXAMPLESDIR))"
	@echo
147

148 149 150
#
# Perl libraries configuration
#
Yadd's avatar
Yadd committed
151

152 153 154
configure:	common_conf handler_conf portal_conf manager_conf

common_conf:
Yadd's avatar
Yadd committed
155
	@cd ${SRCCOMMONDIR}; LMNGCONFFILE=$(STORAGECONFFILE) $(PERL) Makefile.PL $(PERLOPTIONS)
156 157 158
	@touch common_conf

handler_conf:
Yadd's avatar
Yadd committed
159
	@cd ${SRCHANDLERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
160 161 162
	@touch handler_conf

portal_conf:
Yadd's avatar
Yadd committed
163
	@cd ${SRCPORTALDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
164 165 166
	@touch portal_conf

manager_conf:
Yadd's avatar
Yadd committed
167
	@cd ${SRCMANAGERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
168
	@touch manager_conf
169

170 171 172
#
# Perl libraries make
#
173 174 175
common:		common_conf
	@$(MAKE) -C ${SRCCOMMONDIR}
	@touch common
176 177

handler:	handler_conf
178
	@$(MAKE) -C ${SRCHANDLERDIR}
179
	@touch handler
180 181

portal:		portal_conf
182
	@$(MAKE) -C ${SRCPORTALDIR}
183
	@touch portal
184 185

manager:	manager_conf
186
	@$(MAKE) -C ${SRCMANAGERDIR}
187
	@touch manager
188

Yadd's avatar
Yadd committed
189
test:		all common_test handler_test portal_test manager_test extra_test
190 191 192 193 194

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

handler_test:	handler common_test
195
	@$(MAKE) -C ${SRCHANDLERDIR} test FULLPERL="$(PERL) -I../${SRCCOMMONDIR}/blib/lib/"
196

197
portal_test:	portal handler_test common_test
198
	@$(MAKE) -C ${SRCPORTALDIR} test FULLPERL="$(PERL) -I../${SRCCOMMONDIR}/blib/lib/ -I../${SRCHANDLERDIR}/blib/lib/"
199

200
manager_test:	manager handler_test common_test
201
	@$(MAKE) -C ${SRCMANAGERDIR} test FULLPERL="$(PERL) -I../${SRCCOMMONDIR}/blib/lib/ -I../${SRCHANDLERDIR}/blib/lib/"
202

Yadd's avatar
Yadd committed
203
extra_test:	all
Yadd's avatar
Yadd committed
204 205
	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

206 207 208 209
#
# INSTALL
#
install:	install_libs install_bin install_site
210

211 212 213
#
# Perl libraires install
#
Yadd's avatar
Yadd committed
214
install_libs:	common_install_libs install_handler_libs install_portal_libs install_manager_libs
215 216

common_install_libs:		common
217
	@$(MAKE) -C ${SRCCOMMONDIR} install
218

Yadd's avatar
Yadd committed
219
install_handler_libs:	handler
220
	@$(MAKE) -C ${SRCHANDLERDIR} install
221

Yadd's avatar
Yadd committed
222
install_portal_libs:		portal
223
	@$(MAKE) -C ${SRCPORTALDIR} install
224

Yadd's avatar
Yadd committed
225
install_manager_libs:	manager
226
	@$(MAKE) -C ${SRCMANAGERDIR} install
227

228
example:
Yadd's avatar
Yadd committed
229
	$(MAKE) install_site install_bin LMPREFIX=$(EXAMPLEROOT)
230

Yadd's avatar
Yadd committed
231
install_bin:	install_conf_dir
232 233
	# Binary install
	@install -v -d $(RBINDIR)
Yadd's avatar
Yadd committed
234
	@cp --preserve=mode --remove-destination \
235
		${SRCHANDLERDIR}/example/scripts/purgeLocalCache \
Yadd's avatar
Yadd committed
236
		${SRCPORTALDIR}/example/scripts/purgeCentralCache \
237
		${SRCPORTALDIR}/example/scripts/buildPortalWSDL \
Yadd's avatar
Yadd committed
238
		${SRCCOMMONDIR}/scripts/convertConfig \
Yadd's avatar
Bugs :  
Yadd committed
239
		${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \
Yadd's avatar
Yadd committed
240 241
		${SRCMANAGERDIR}/example/scripts/lmConfigEditor \
			$(RBINDIR)
242 243 244 245 246 247 248 249 250 251
	@if [ ! "$(APACHEUSER)" ]; then \
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lmConfigEditor; \
	fi
	@if [ ! "$(APACHEGROUP)" ]; then \
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
	else \
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lmConfigEditor; \
	fi
252
	@chmod +x $(RBINDIR)/*
253 254 255 256

#
# SITE INSTALL
#
257
install_site:	install_manager_site install_portal_site install_handler_site install_test_site install_examples_site install_doc_site
258
	# Site install
259
	@install -v -d $(RCONFDIR)
Clément OUDOT's avatar
Clément OUDOT committed
260 261
	# Check if erase is wanted
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
262 263 264
		cp --remove-destination _example/etc/portal-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp --remove-destination _example/etc/handler-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp --remove-destination _example/etc/manager-apache$(APACHEVERSION).conf $(RCONFDIR); \
265
		cp --remove-destination _example/etc/test-apache$(APACHEVERSION).conf $(RCONFDIR); \
266 267
		cp --remove-destination _example/etc/for_etc_hosts $(RCONFDIR); \
	fi
Yadd's avatar
Yadd committed
268
	@$(PERL) -i -pe 's#__HANDLER__#${HANDLERDIR}/MyHandler.pm#; \
Clément OUDOT's avatar
Clément OUDOT committed
269 270 271 272
			s/__DNSDOMAIN__/$(DNSDOMAIN)/g; \
			s#__PORTALDIR__#$(PORTALDIR)/#g; \
			s#__MANAGERDIR__#$(MANAGERDIR)/#g; \
			s#__TESTDIR__#$(TESTDIR)/#g; \
273 274
			s#__VHOSTLISTEN__#$(VHOSTLISTEN)#g; \
			s#__DOCDIR__#$(DOCDIR)/#g;' $(RCONFDIR)/*apache*.conf
Yadd's avatar
Yadd committed
275
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/for_etc_hosts
276
	# Fix a lost of rights on the main directory
Clément OUDOT's avatar
Clément OUDOT committed
277
	@chmod 755 $(RBINDIR) $(RDOCUMENTROOT) $(REXAMPLESDIR) $(RHANDLERDIR) $(RPORTALSKINSDIR) $(RMANAGERSKINSDIR) $(RTOOLSDIR) $(RCONFDIR) $(RDATADIR)
278
	@echo
279
	@echo "LemonLDAP::NG v${VERSION} is installed with these parameters:"
280 281 282 283 284
	@echo "  - System configuration: ${CONFDIR}"
	@echo "  - DNS domain (for cookies and virtual hosts): ${DNSDOMAIN}"
	@echo
	@echo "To finish configuration:"
	@echo
285 286 287 288
	@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"
289
	@echo "      include ${CONFDIR}/test-apache$(APACHEVERSION).conf"
290
	@echo
291 292
	@echo "2 - Restart Apache:"
	@echo "      apache$(APACHEVERSION)ctl restart"
293
	@echo
294
	@echo "3 - Run 'make postconf' as root to update /etc/hosts if your DNS service does not known auth.$(DNSDOMAIN) and manager.$(DNSDOMAIN)"
295
	@echo
296 297 298 299 300 301
	@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"
302
	@echo
303
	@if [ ! "$(APACHEUSER)" ]; then \
304
		echo;echo "    Warning, since APACHEUSER was not set, $(APACHESESSIONFILEDIR), $(APACHEPSESSIONFILEDIR), $(CAPTCHADIR), $(RCAPTCHAOUTPUTDIR) and $(CONFDIR) have permissive permissions."; \
305 306 307
		echo "    Fix them by yourself to restrict their view to apache process only"; \
	fi
	@echo
308 309 310

install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
311
	@install -v -d ${RMANAGERDIR} ${RMANAGERSKINSDIR} \
312
		${RSESSIONSEXPLORERDIR} \
Yadd's avatar
Yadd committed
313 314 315 316 317 318
		$(RCONFDIR) ${RMANAGERDIR}/skins/
	@for skin in $$(ls lemonldap-ng-manager/example/skins/); do \
		[ -h $(RMANAGERDIR)/skins/$$skin ] && rm -f $(RMANAGERDIR)/skins/$$skin; \
		install -v -d $(RMANAGERSKINSDIR)/$$skin; \
	done
	@cp -pR --remove-destination ${SRCMANAGERDIR}/example/index.pl ${RMANAGERDIR}
Clément OUDOT's avatar
Clément OUDOT committed
319
	@cp -pR --remove-destination ${SRCMANAGERDIR}/example/notfound.html ${RMANAGERDIR}
Yadd's avatar
Yadd committed
320 321 322 323 324 325
	@cp -pR --remove-destination ${SRCMANAGERDIR}/example/skins/* $(RMANAGERSKINSDIR)
	@if [ "$(MANAGERDIR)/skins/" != "$(MANAGERSKINSDIR)/" ]; then \
		for skin in $$(ls lemonldap-ng-manager/example/skins/); do \
			rm -rf $(RMANAGERDIR)/skins/$$skin/; \
			ln -s $(MANAGERSKINSDIR)/$$skin $(RMANAGERDIR)/skins/$$skin; \
		done; \
326
	fi
Yadd's avatar
Yadd committed
327
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
328
	# Sessions explorer and notifications explorer install
329
	@cp -pR --remove-destination ${SRCMANAGERDIR}/example/sessions.pl $(RSESSIONSEXPLORERDIR)
330
	@cp -pR --remove-destination ${SRCMANAGERDIR}/example/notifications.pl $(RSESSIONSEXPLORERDIR)
Yadd's avatar
Yadd committed
331
	@rm -rf $$(find ${RMANAGERDIR} ${RMANAGERSKINSDIR} \
332
		${RSESSIONSEXPLORERDIR} \
333
		$(RCONFDIR) -type d -name .svn)
334 335 336 337

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
338
		$(RPORTALDIR)/skins/ \
339 340
		$(RCRONDIR) $(RCONFDIR)
	@for skin in $$(ls lemonldap-ng-portal/example/skins/); do \
Yadd's avatar
Yadd committed
341 342
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
343
	done
Yadd's avatar
Yadd committed
344
	@cp -pR --remove-destination ${SRCPORTALDIR}/example/index_skin.pl ${RPORTALDIR}/index.pl
345
	@cp -pR --remove-destination ${SRCPORTALDIR}/example/mail.pl ${RPORTALDIR}
Clément OUDOT's avatar
SAML:  
Clément OUDOT committed
346
	@cp -pR --remove-destination ${SRCPORTALDIR}/example/metadata.pl ${RPORTALDIR}
347
	@cp -pR --remove-destination ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
348
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
349
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
350
		for skin in $$(ls lemonldap-ng-portal/example/skins/); do \
Yadd's avatar
Yadd committed
351 352
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
353 354 355
		done; \
	fi
	# Cron files
356
	@cp --remove-destination lemonldap-ng-portal/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
357
	@if [ ! "$(APACHEUSER)" ]; then \
358
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
359
	else \
360
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
361
	fi
362
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
363
	# Clean SVN files
Clément OUDOT's avatar
 
Clément OUDOT committed
364
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
365 366

install_handler_site:	install_conf_dir
367
	# Handler install
368 369
	@install -v -d ${RHANDLERDIR}
	@cp --remove-destination ${SRCHANDLERDIR}/example/MyHandler.pm ${RHANDLERDIR}
370
	@cp --remove-destination ${SRCHANDLERDIR}/example/MyHandlerZimbra.pm ${RHANDLERDIR}
Clément OUDOT's avatar
Clément OUDOT committed
371
	@cp --remove-destination ${SRCHANDLERDIR}/example/MyHandlerSympa.pm ${RHANDLERDIR}
372
	@cp --remove-destination ${SRCHANDLERDIR}/example/MyHandlerSecureToken.pm ${RHANDLERDIR}
373
	@cp --remove-destination ${SRCHANDLERDIR}/example/MyUpdateCookieHandler.pm ${RHANDLERDIR}
374
	@cp --remove-destination ${SRCHANDLERDIR}/example/MyHandlerAuthBasic.pm ${RHANDLERDIR}
375 376
	@cp --remove-destination lemonldap-ng-handler/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
	@if [ ! "$(APACHEUSER)" ]; then \
377
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
378 379 380 381
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
382
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
383 384

install_test_site:
385
	# Test site install
386 387
	@install -v -d $(RTESTDIR)
	@cp -pR --remove-destination _example/test/* $(RTESTDIR)
388
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
389
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
390
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
391 392

install_examples_site:
393
	# Examples install
394
	@install -v -d $(REXAMPLESDIR)
395
	@for i in manager portal handler; do \
396 397
		cp -dpR --remove-destination lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
	done
Yadd's avatar
Yadd committed
398
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
399
		$(REXAMPLESDIR)/manager/skins \
400
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
401
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
402
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
403

404
install_doc_site:
405 406
	# Offline documentation install
	@rm -rf $(RDOCDIR)
407
	@install -v -d $(RDOCDIR)
Yadd's avatar
Yadd committed
408
	@cp -dR --remove-destination doc/* $(RDOCDIR)
409

410
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
411
	# Configuration files install
412
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
413
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
414
		cp --remove-destination $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
415
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
416
	fi
417
	@cp _example/conf/lmConf-1 $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
418
	@$(PERL) -000 -i -pe "s#^(globalStorageOptions\\n\\s+)'[^\\n]*?'\$$#\$${1}\'\\\$$data1 = {&39;Directory&39; => &39;$(APACHESESSIONFILEDIR)&39;,&39;LockDirectory&39; => &39;$(APACHESESSIONFILELOCKDIR)&39;};'#m" $(RFILECONFIGDIR)/lmConf-1
419
	@$(PERL) -000 -i -pe "s#^(persistentStorageOptions\\n\\s+)'[^\\n]*?'\$$#\$${1}\'\\\$$data1 = {&39;Directory&39; => &39;$(APACHEPSESSIONFILEDIR)&39;,&39;LockDirectory&39; => &39;$(APACHEPSESSIONFILELOCKDIR)&39;};'#m" $(RFILECONFIGDIR)/lmConf-1
Yadd's avatar
Yadd committed
420
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
421
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
Clément OUDOT's avatar
Clément OUDOT committed
422 423 424
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;\
		s#__CAPTCHADIR__#$(CAPTCHADIR)#g;\
		s#__CAPTCHAOUTPUTDIR__#$(CAPTCHAOUTPUTDIR)#g;' $(RFILECONFIGDIR)/lmConf-1
425 426 427 428 429 430 431 432 433
	@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
434
	@cp lemonldap-ng-common/tools/lmConfig.* lemonldap-ng-common/tools/apache-session-mysql.sql $(RTOOLSDIR)
435
	@cp lemonldap-ng-common/tools/sso.schema $(RTOOLSDIR)
436
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
437 438

install_sessions_dir:
439
	@install -m 777 -v -d $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR)
440 441
	# Fix Apache::Session directories permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
442
		chown $(APACHEUSER) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
443
		if [ "$(APACHEGROUP)" != "" ]; then \
444
			chgrp $(APACHEGROUP) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
445
		fi; \
446
		chmod 770 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
447
	else \
448
		chmod 777 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
449 450
	fi

451 452 453 454 455 456 457 458 459 460 461 462 463
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

464 465 466 467 468 469 470 471 472 473 474 475 476
install_captcha_dir:
	@install -m 777 -v -d $(RCAPTCHADIR) $(RCAPTCHAOUTPUTDIR)
	# Fix captcha directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
		chown $(APACHEUSER) $(RCAPTCHADIR) $(RCAPTCHAOUTPUTDIR) || exit 1; \
		if [ "$(APACHEGROUP)" != "" ]; then \
			chgrp $(APACHEGROUP) $(RCAPTCHADIR) $(RCAPTCHAOUTPUTDIR) || exit 1; \
		fi; \
		chmod 770 $(RCAPTCHADIR) $(RCAPTCHAOUTPUTDIR); \
	else \
		chmod 777 $(RCAPTCHADIR) $(RCAPTCHAOUTPUTDIR); \
	fi

477
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
478
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
479 480
	@echo "/etc/hosts was updated"

481
postconf: postconf_hosts
482 483
	@echo "Post configuration done"

484 485
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

486 487 488 489
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

490
handler_uninstall:	handler
491
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
492
	@rm -vf handler_uninstall
493 494

portal_uninstall:		portal
495
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
496
	@rm -vf portal_uninstall
497 498

manager_uninstall:	manager
499
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
500
	@rm -vf manager_uninstall
501

502
dist:	clean
503 504 505 506
	@mkdir -p lemonldap-ng-$(VERSION)
	@cp -pRH $$(find * -maxdepth 0|grep -v lemonldap-ng-$(VERSION)) lemonldap-ng-$(VERSION)
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
507
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
508
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
509
	@rm -rf lemonldap-ng-$(VERSION)
510

511
debian-dist:	dist
Yadd's avatar
Yadd committed
512 513 514 515
	@mv lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX)

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

Yadd's avatar
Yadd committed
517 518 519 520 521 522 523 524
manifest:   configure
	@for i in ${SRCCOMMONDIR} ${SRCHANDLERDIR} ${SRCPORTALDIR} ${SRCMANAGERDIR}; do \
		cd $$i; \
		make manifest; \
		rm -vf MANIFEST.*; \
		cd -; \
	done

525
cpan:	clean configure common_cpan handler_cpan portal_cpan manager_cpan
Clément OUDOT's avatar
Clément OUDOT committed
526
	for i in Common Portal Handler Manager; do \
Yadd's avatar
Yadd committed
527
		$(UNCOMPRESS) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) \
Clément OUDOT's avatar
Clément OUDOT committed
528
			$$($(LISTCOMPRESSED) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) |grep META.yml); \
Yadd's avatar
Yadd committed
529
		mv Lemonldap-NG-$$i-*/META.yml lemonldap-ng-$$($(PERL) -e "print lc('$$i')")/; \
Yadd's avatar
Yadd committed
530
		rm -rf Lemonldap-NG-$$i*/; \
Yadd's avatar
Yadd committed
531
		done
532 533 534 535

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

handler_cpan:	handler_conf
538 539
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
540 541

portal_cpan:		portal_conf
542 543
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
544 545

manager_cpan:	manager_conf
546 547
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
548

549
documentation:
550
	@cd doc/ && ../scripts/doc.pl
551

552
doxygen:	clean
Yadd's avatar
Yadd committed
553
	$(PERL) -i -pe 's/^(PROJECT_NUMBER\s*=\s*)\d.*$$/$${1}'$(VERSION)'/' Doxyfile
554 555 556 557 558 559
	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
560
	$(PERL) -i -pe 's/Graphical Class Hierarchy/Class Collaboration Graph/' doc/devel/html/inherits.html doc/devel/html/tree.html
561 562
	# 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
563

564 565 566
distclean:	clean

clean:		common_clean handler_clean portal_clean manager_clean
Yadd's avatar
Yadd committed
567
	@rm -f $$(find */ -name '*bak' -delete)
Yadd's avatar
Yadd committed
568
	@rm -rf $(EXAMPLEROOT) example/ doc/devel
Yadd's avatar
Yadd committed
569
	@rm -vf *gz *zip
Yadd's avatar
Yadd committed
570
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
571
	@echo "Cleaned"
572 573

common_clean:
Yadd's avatar
Yadd committed
574
	@if test -e ${SRCCOMMONDIR}/Makefile;then $(MAKE) -C ${SRCCOMMONDIR} distclean;fi
575 576 577
	@rm -vf common*

handler_clean:
Yadd's avatar
Yadd committed
578
	@if test -e ${SRCHANDLERDIR}/Makefile;then $(MAKE) -C ${SRCHANDLERDIR} distclean;fi
579 580 581
	@rm -vf handler*

portal_clean:
Yadd's avatar
Yadd committed
582
	@if test -e ${SRCPORTALDIR}/Makefile;then $(MAKE) -C ${SRCPORTALDIR} distclean;fi
583 584 585
	@rm -vf portal*

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

589
debian-packages: debian-dist
Yadd's avatar
Yadd committed
590
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
591 592
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
593
	rm -rf lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
594
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
595
	cd lemonldap-ng-$$version && \
596
	export LOCALBUILD=1; debuild -us -uc -b --lintian-opts -i --lintian-opts -v
Yadd's avatar
Yadd committed
597 598 599

debian-install: debian-packages
	cd /tmp/lemonldap-ng-$(VERSION) && \
Yadd's avatar
Yadd committed
600 601 602 603 604 605
	$(SU) debi

ubuntu-install:
	$(MAKE) debian-install SU=sudo

diff: debian-diff
Yadd's avatar
Yadd committed
606

Yadd's avatar
Yadd committed
607
debian-diff:
Yadd's avatar
Yadd committed
608
	@# Portal
Yadd's avatar
Yadd committed
609 610 611
	@$(DIFF) lemonldap-ng-portal/lib/Lemonldap/NG/Portal $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Portal ||true
	@$(DIFF) lemonldap-ng-portal/example/scripts/purgeCentralCache $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/purgeCentralCache ||true
	@$(DIFF) lemonldap-ng-portal/example/scripts/buildPortalWSDL $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/buildPortalWSDL ||true
Yadd's avatar
Yadd committed
612
	@for i in $(PORTALSKINS); do \
Yadd's avatar
Yadd committed
613
		$(DIFF) -x 'jquery*' lemonldap-ng-portal/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/portal-skins/$$i; \
Yadd's avatar
Yadd committed
614
	done ||true
Yadd's avatar
Yadd committed
615 616 617 618
	@$(DIFF) lemonldap-ng-portal/example/index_skin.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/index.pl ||true
	@$(DIFF) lemonldap-ng-portal/example/mail.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/mail.pl ||true
	@$(DIFF) lemonldap-ng-portal/example/metadata.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/metadata.pl ||true
	@$(DIFF) lemonldap-ng-portal/example/cdc.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/cdc.pl ||true
Yadd's avatar
Yadd committed
619
	@# Handler
Yadd's avatar
Yadd committed
620
	@$(DIFF) lemonldap-ng-handler/lib/Lemonldap/NG/Handler $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Handler ||true
621
	@$(DIFF) lemonldap-ng-handler/example/scripts/purgeLocalCache $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/purgeLocalCache ||true
Yadd's avatar
Yadd committed
622
	@# Common
Yadd's avatar
Yadd committed
623 624 625 626
	@$(DIFF) lemonldap-ng-common/lib/Lemonldap/NG/Common $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Common ||true
	@$(DIFF) lemonldap-ng-common/lib/Lemonldap/NG/Common.pm $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Common.pm ||true
	@$(DIFF) lemonldap-ng-common/scripts/lmMigrateConfFiles2ini $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lmMigrateConfFiles2ini ||true
	@$(DIFF) lemonldap-ng-common/scripts/convertConfig $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/convertConfig ||true
Yadd's avatar
Yadd committed
627
	@# Manager
Yadd's avatar
Yadd committed
628 629 630 631
	@$(DIFF) lemonldap-ng-manager/lib/Lemonldap/NG/Manager $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Manager ||true
	@$(DIFF) lemonldap-ng-manager/lib/Lemonldap/NG/Manager.pm $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Manager.pm ||true
	@$(DIFF) lemonldap-ng-manager/example/index.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/index.pl ||true
	@$(DIFF) lemonldap-ng-manager/example/sessions.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/sessions.pl ||true
632
	@$(DIFF) lemonldap-ng-manager/example/notifications.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/notifications.pl ||true
633
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' lemonldap-ng-manager/example/scripts/lmConfigEditor $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lmConfigEditor ||true
Yadd's avatar
Yadd committed
634
	@for i in $(MANAGERSKINS); do \
Yadd's avatar
Yadd committed
635
		$(DIFF) -x 'jquery*' lemonldap-ng-manager/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/manager-skins/$$i; \
Yadd's avatar
Yadd committed
636 637
	done ||true

638 639
default-diff:
	@# Portal
640
	@$(DIFF) lemonldap-ng-portal/lib/Lemonldap/NG/Portal /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Portal ||true
641 642 643
	@$(DIFF) lemonldap-ng-portal/example/scripts/purgeCentralCache $(LMPREFIX)/bin/purgeCentralCache ||true
	@$(DIFF) lemonldap-ng-portal/example/scripts/buildPortalWSDL $(LMPREFIX)/bin/buildPortalWSDL ||true
	@$(DIFF) lemonldap-ng-portal/example/skins $(LMPREFIX)/htdocs/portal/skins ||true
Clément OUDOT's avatar
Portal:  
Clément OUDOT committed
644 645
	@$(DIFF) lemonldap-ng-portal/example/index_skin.pl $(LMPREFIX)/htdocs/portal/index.pl ||true
	@$(DIFF) lemonldap-ng-portal/example/mail.pl $(LMPREFIX)/htdocs/portal/mail.pl ||true
Clément OUDOT's avatar
SAML:  
Clément OUDOT committed
646
	@$(DIFF) lemonldap-ng-portal/example/metadata.pl $(LMPREFIX)/htdocs/portal/metadata.pl ||true
647
	@$(DIFF) lemonldap-ng-portal/example/cdc.pl $(LMPREFIX)/htdocs/portal/cdc.pl ||true
648
	@# Handler
649
	@$(DIFF) lemonldap-ng-handler/lib/Lemonldap/NG/Handler /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Handler ||true
650
	@$(DIFF) lemonldap-ng-handler/example/MyHandler.pm $(LMPREFIX)/handler/MyHandler.pm ||true
651
	@$(DIFF) lemonldap-ng-handler/example/MyHandlerZimbra.pm $(LMPREFIX)/handler/MyHandlerZimbra.pm ||true
Clément OUDOT's avatar
Clément OUDOT committed
652
	@$(DIFF) lemonldap-ng-handler/example/MyHandlerSympa.pm $(LMPREFIX)/handler/MyHandlerSympa.pm ||true
653 654
	@$(DIFF) lemonldap-ng-handler/example/MyHandlerSecureToken.pm $(LMPREFIX)/handler/MyHandlerSecureToken.pm ||true
	@$(DIFF) lemonldap-ng-handler/example/MyUpdateCookieHandler.pm $(LMPREFIX)/handler/MyUpdateCookieHandler.pm ||true
655
	@$(DIFF) lemonldap-ng-handler/example/MyHandlerAuthBasic.pm $(LMPREFIX)/handler/MyHandlerAuthBasic.pm ||true
656
	@$(DIFF) lemonldap-ng-handler/example/scripts/purgeLocalCache $(LMPREFIX)/bin/purgeLocalCache ||true
657
	@# Common
658 659
	@$(DIFF) lemonldap-ng-common/lib/Lemonldap/NG/Common /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Common ||true
	@$(DIFF) lemonldap-ng-common/lib/Lemonldap/NG/Common.pm /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Common.pm ||true
660 661 662
	@$(DIFF) lemonldap-ng-common/scripts/lmMigrateConfFiles2ini $(LMPREFIX)/bin/lmMigrateConfFiles2ini ||true
	@$(DIFF) lemonldap-ng-common/scripts/convertConfig $(LMPREFIX)/bin/convertConfig ||true
	@# Manager
663 664
	@$(DIFF) lemonldap-ng-manager/lib/Lemonldap/NG/Manager /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Manager ||true
	@$(DIFF) lemonldap-ng-manager/lib/Lemonldap/NG/Manager.pm /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Manager.pm ||true
665
	@$(DIFF) lemonldap-ng-manager/example/skins $(LMPREFIX)/htdocs/manager/skins ||true
666
	@$(DIFF) lemonldap-ng-manager/example/index.pl $(LMPREFIX)/htdocs/manager/index.pl ||true
667
	@$(DIFF) lemonldap-ng-manager/example/sessions.pl $(LMPREFIX)/htdocs/manager/sessions.pl ||true
668
	@$(DIFF) lemonldap-ng-manager/example/notifications.pl $(LMPREFIX)/htdocs/manager/notifications.pl ||true
669
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' lemonldap-ng-manager/example/scripts/lmConfigEditor $(LMPREFIX)/bin/lmConfigEditor ||true
670

Yadd's avatar
Yadd committed
671
tidy: clean
Yadd's avatar
Yadd committed
672
	find lemon*/ -type f \( -name '*.pm' -or -name '*.pl' -or -name '*.t' \) -print -exec perltidy -b {} \;
Yadd's avatar
Yadd committed
673 674
	find lemon*/ -name '*.bak' -delete