Makefile 29.3 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
MANAGERSITEDIR=$(MANAGERDIR)/site
RMANAGERSITEDIR=$(DESTDIR)/$(MANAGERSITEDIR)
39
DOCDIR=$(DOCUMENTROOT)
Yadd's avatar
Yadd committed
40
RDOCDIR=$(DESTDIR)/$(DOCDIR)
41 42 43
DEFDOCDIR=$(DOCUMENTROOT)/doc
RDEFDOCDIR=$(DESTDIR)/$(DEFDOCDIR)
FRDOCDIR=$(DOCUMENTROOT)/fr-doc
Yadd's avatar
Yadd committed
44 45 46 47 48 49
TESTDIR=$(DOCUMENTROOT)/test
RTESTDIR=$(DESTDIR)/$(TESTDIR)
EXAMPLESDIR=$(LMPREFIX)/examples
REXAMPLESDIR=$(DESTDIR)/$(EXAMPLESDIR)
TOOLSDIR=$(LMPREFIX)/tools
RTOOLSDIR=$(DESTDIR)/$(TOOLSDIR)
50 51

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

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

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

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

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

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

83 84
# LL::NG captcha dir
CAPTCHADIR=$(DATADIR)/captcha
85 86
RCAPTCHADIR=$(DESTDIR)/$(CAPTCHADIR)

87
# Apache user/group
88 89 90
APACHEUSER=
APACHEGROUP=

91 92 93
# Apache version
APACHEVERSION=2

94
# DNS Domain for cookie and virtual hosts
95 96
DNSDOMAIN=example.com

97 98 99
# Virtual Host Listen IP and Port (*, *:80, ...)
VHOSTLISTEN=*:80

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

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

Yadd's avatar
Yadd committed
112 113
DIFFPREFIX=

114
all:	configure common handler manager portal
Yadd's avatar
Yadd committed
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
	@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 :"
140
	@echo "   - install_doc_site      ($(DEFDOCDIR))"
Yadd's avatar
Yadd committed
141 142
	@echo "   - install_examples_site ($(EXAMPLESDIR))"
	@echo
Yadd's avatar
Yadd committed
143
	@echo "Other languages documentation (fr only for now)"
144 145
	@echo " - fr-doc                  (needs OmegaT)"
	@echo " - install_fr_doc_site"
Yadd's avatar
Yadd committed
146
	@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
204
	cd ${SRCPORTALDIR} && prove -b -I ../lemonldap-ng-common/blib/lib -I ../lemonldap-ng-handler/blib/lib -I../${SRCPORTALDIR}/blib/lib/ xt
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
Yadd's avatar
Yadd committed
206

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

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

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

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

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

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

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

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

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

install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
317 318
	@install -v -d ${RMANAGERDIR} ${RMANAGERSITEDIR} \
		$(RCONFDIR) ${RMANAGERDIR}
Yadd's avatar
Yadd committed
319
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
320
	# Sessions explorer and notifications explorer install
Yadd's avatar
Yadd committed
321
	@rm -rf $$(find ${RMANAGERDIR} ${RMANAGERSITEDIR} \
322
		$(RCONFDIR) -type d -name .svn)
323 324 325 326

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
327
		$(RPORTALDIR)/skins/ \
328 329
		$(RCRONDIR) $(RCONFDIR)
	@for skin in $$(ls lemonldap-ng-portal/example/skins/); do \
Yadd's avatar
Yadd committed
330 331
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
332
	done
Yadd's avatar
Yadd committed
333 334 335
	@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
336
	@cp -pR -f ${SRCPORTALDIR}/example/openid-configuration.pl ${RPORTALDIR}
Yadd's avatar
Yadd committed
337 338
	@cp -pR -f ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/register.pl ${RPORTALDIR}
339
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
340
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
341
		for skin in $$(ls lemonldap-ng-portal/example/skins/); do \
Yadd's avatar
Yadd committed
342 343
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
344 345 346
		done; \
	fi
	# Cron files
Yadd's avatar
Yadd committed
347
	@cp -f lemonldap-ng-portal/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
348
	@if [ ! "$(APACHEUSER)" ]; then \
349
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
350
	else \
351
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
352
	fi
353
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
354
	# Clean SVN files
Clément OUDOT's avatar
 
Clément OUDOT committed
355
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
356 357

install_handler_site:	install_conf_dir
358
	# Handler install
359
	@install -v -d ${RHANDLERDIR}
Yadd's avatar
Yadd committed
360
	@cp -f lemonldap-ng-handler/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
361
	@if [ ! "$(APACHEUSER)" ]; then \
362
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
363 364 365 366
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
367
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
368 369

install_test_site:
370
	# Test site install
371
	@install -v -d $(RTESTDIR)
Yadd's avatar
Yadd committed
372
	@cp -pR -f _example/test/* $(RTESTDIR)
373
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
374
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
375
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
376 377

install_examples_site:
378
	# Examples install
379
	@install -v -d $(REXAMPLESDIR)
380
	@for i in manager portal handler; do \
Yadd's avatar
Yadd committed
381
		cp -a -f lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
382
	done
Yadd's avatar
Yadd committed
383
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
384
		$(REXAMPLESDIR)/manager/skins \
385
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
386
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
387
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
388

389
install_doc_site:
390
	# Offline documentation install
391 392
	@rm -rf $(RDEFDOCDIR)
	@install -v -d $(RDEFDOCDIR)
Yadd's avatar
Yadd committed
393
	@cp -a -f doc/* $(RDEFDOCDIR)
394

395
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
396
	# Configuration files install
397
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
398
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
399
		cp -f $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
400
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
401
	fi
402
	@cp _example/conf/lmConf-1 $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
403
	@$(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
404
	@$(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
405
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
406
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
407
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;' $(RFILECONFIGDIR)/lmConf-1
408 409 410 411 412 413 414 415 416
	@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
417
	@cp lemonldap-ng-common/tools/lmConfig.* lemonldap-ng-common/tools/apache-session-mysql.sql $(RTOOLSDIR)
418
	@cp lemonldap-ng-common/tools/sso.schema $(RTOOLSDIR)
419
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
420 421

install_sessions_dir:
422
	@install -m 777 -v -d $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR)
423 424
	# Fix Apache::Session directories permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
425
		chown $(APACHEUSER) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
426
		if [ "$(APACHEGROUP)" != "" ]; then \
427
			chgrp $(APACHEGROUP) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
428
		fi; \
429
		chmod 770 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
430
	else \
431
		chmod 777 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
432 433
	fi

434 435 436 437 438 439 440 441 442 443 444 445 446
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

447
install_captcha_dir:
448
	@install -m 777 -v -d $(RCAPTCHADIR)
449 450
	# Fix captcha directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
451
		chown $(APACHEUSER) $(RCAPTCHADIR) || exit 1; \
452
		if [ "$(APACHEGROUP)" != "" ]; then \
453
			chgrp $(APACHEGROUP) $(RCAPTCHADIR) || exit 1; \
454
		fi; \
455
		chmod 770 $(RCAPTCHADIR); \
456
	else \
457
		chmod 777 $(RCAPTCHADIR); \
458 459
	fi

460
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
461
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
462 463
	@echo "/etc/hosts was updated"

464
postconf: postconf_hosts
465 466
	@echo "Post configuration done"

467 468
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

469 470 471 472
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

473
handler_uninstall:	handler
474
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
475
	@rm -vf handler_uninstall
476 477

portal_uninstall:		portal
478
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
479
	@rm -vf portal_uninstall
480 481

manager_uninstall:	manager
482
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
483
	@rm -vf manager_uninstall
484

485
dist:	clean
486 487 488 489 490 491 492 493 494 495
	@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
496
	@mkdir -p lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
497
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\)") lemonldap-ng-$(VERSION)
498 499
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
500
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
501
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
502
	@rm -rf lemonldap-ng-$(VERSION)
503

504

505 506
debian-dist:	clean
	@mkdir -p lemonldap-ng-$(VERSION)
507
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|rpm\)") lemonldap-ng-$(VERSION)
508 509
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
510 511 512 513
	@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
514 515 516
	@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
517 518 519

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

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

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

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

handler_cpan:	handler_conf
542 543
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
544 545

portal_cpan:		portal_conf
546 547
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
548 549

manager_cpan:	manager_conf
550 551
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
552

553
documentation:
554
	@cd doc/ && ../scripts/doc.pl
555

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

568 569
distclean:	clean

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

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

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

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

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

593
debian-local-packages: debian-dist
Yadd's avatar
Yadd committed
594
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
595 596
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
597
	rm -rf lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
598
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
599
	cd lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
600 601 602 603
	export LOCALBUILD=1; debuild -e LOCALBUILD -us -uc -b --lintian-opts -i \
		--lintian-opts -v --lintian-opts -I --lintian-opts -E \
		--lintian-opts --color --lintian-opts auto --lintian-opts -L \
		--lintian-opts +=pedantic
Yadd's avatar
Yadd committed
604

605 606 607 608 609 610 611 612 613 614 615 616 617
debian-packages: debian-dist
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
	version=$(VERSION) && \
	cd /tmp/ && \
	rm -rf lemonldap-ng-$$version && \
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
	cd lemonldap-ng-$$version && \
	debuild -us -uc -b --lintian-opts -i \
		--lintian-opts -v --lintian-opts -I --lintian-opts -E \
		--lintian-opts --color --lintian-opts auto --lintian-opts -L \
		--lintian-opts +=pedantic

debian-install: debian-local-packages
Yadd's avatar
Yadd committed
618
	cd /tmp/lemonldap-ng-$(VERSION) && \
Yadd's avatar
Yadd committed
619 620 621 622 623 624
	$(SU) debi

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

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

Yadd's avatar
Yadd committed
626
debian-diff:
Yadd's avatar
Yadd committed
627
	@# Portal
Yadd's avatar
Yadd committed
628 629 630
	@$(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
631
	@for i in $(PORTALSKINS); do \
Yadd's avatar
Yadd committed
632
		$(DIFF) -x 'jquery*' lemonldap-ng-portal/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/portal-skins/$$i; \
Yadd's avatar
Yadd committed
633
	done ||true
Yadd's avatar
Yadd committed
634 635 636
	@$(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
Clément OUDOT's avatar
Clément OUDOT committed
637
	@$(DIFF) lemonldap-ng-portal/example/openid-configuration.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/openid-configuration.pl ||true
Yadd's avatar
Yadd committed
638
	@$(DIFF) lemonldap-ng-portal/example/cdc.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/cdc.pl ||true
639
	@$(DIFF) lemonldap-ng-portal/example/register.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/register.pl ||true
Yadd's avatar
Yadd committed
640
	@# Handler
Yadd's avatar
Yadd committed
641
	@$(DIFF) lemonldap-ng-handler/lib/Lemonldap/NG/Handler $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Handler ||true
642
	@$(DIFF) lemonldap-ng-handler/example/scripts/purgeLocalCache $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/purgeLocalCache ||true
Yadd's avatar
Yadd committed
643
	@# Common
Yadd's avatar
Yadd committed
644 645 646 647
	@$(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
648
	@# Manager
Yadd's avatar
Yadd committed
649 650 651 652
	@$(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
653
	@$(DIFF) lemonldap-ng-manager/example/notifications.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/notifications.pl ||true
654
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' lemonldap-ng-manager/example/scripts/lmConfigEditor $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lmConfigEditor ||true
655
	@$(DIFF) --ignore-matching-lines='giveUpPrivileges' lemonldap-ng-manager/example/scripts/lemonldap-ng-cli $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lemonldap-ng-cli ||true
Yadd's avatar
Yadd committed
656

657 658
default-diff:
	@# Portal
659
	@$(DIFF) lemonldap-ng-portal/lib/Lemonldap/NG/Portal /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Portal ||true
660 661 662
	@$(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
663 664
	@$(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
665
	@$(DIFF) lemonldap-ng-portal/example/register.pl $(LMPREFIX)/htdocs/portal/register.pl ||true
Clément OUDOT's avatar
SAML:  
Clément OUDOT committed
666
	@$(DIFF) lemonldap-ng-portal/example/metadata.pl $(LMPREFIX)/htdocs/portal/metadata.pl ||true
Clément OUDOT's avatar
Clément OUDOT committed
667
	@$(DIFF) lemonldap-ng-portal/example/openid-configuration.pl $(LMPREFIX)/htdocs/portal/openid-configuration.pl ||true
668
	@$(DIFF) lemonldap-ng-portal/example/cdc.pl $(LMPREFIX)/htdocs/portal/cdc.pl ||true
669
	@# Handler
670
	@$(DIFF) lemonldap-ng-handler/lib/Lemonldap/NG/Handler /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Handler ||true
671
	@$(DIFF) lemonldap-ng-handler/example/scripts/purgeLocalCache $(LMPREFIX)/bin/purgeLocalCache ||true
672
	@# Common
673 674
	@$(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
675 676 677
	@$(DIFF) lemonldap-ng-common/scripts/lmMigrateConfFiles2ini $(LMPREFIX)/bin/lmMigrateConfFiles2ini ||true
	@$(DIFF) lemonldap-ng-common/scripts/convertConfig $(LMPREFIX)/bin/convertConfig ||true
	@# Manager
678 679
	@$(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
680
	@$(DIFF) lemonldap-ng-manager/example/skins $(LMPREFIX)/htdocs/manager/skins ||true
681
	@$(DIFF) lemonldap-ng-manager/example/index.pl $(LMPREFIX)/htdocs/manager/index.pl ||true
682
	@$(DIFF) lemonldap-ng-manager/example/sessions.pl $(LMPREFIX)/htdocs/manager/sessions.pl ||true
683
	@$(DIFF) lemonldap-ng-manager/example/notifications.pl $(LMPREFIX)/htdocs/manager/notifications.pl ||true
684
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' lemonldap-ng-manager/example/scripts/lmConfigEditor $(LMPREFIX)/bin/lmConfigEditor ||true
685
	@$(DIFF) --ignore-matching-lines='giveUpPrivileges' lemonldap-ng-manager/example/scripts/lemonldap-ng-cli $(LMPREFIX)/bin/lemonldap-ng-cli ||true
686

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

Yadd's avatar
Yadd committed
691
tidy-js: clean
692
	find lemon*/ -type f -name '*.js' ! -name 'jq*' ! -name 'bootstrap*' -print -exec scripts/javascript-indent {} \;
Yadd's avatar
Yadd committed
693

694 695 696 697
# TRANSLATION TARGETS #

# 1. Internal targets

698 699
language_code:
	perl -e ' \
700 701 702 703 704 705 706 707 708 709
	print { \
		fr=> "FR-FR", \
	}->{$(1)}'

test_omegat_%_dir:
	 @if [ ! -d omegat.files/$* ]; then \
	 	echo "omegat.files/$* does not exist"; \
		exit 1; \
	fi

Yadd's avatar
Yadd committed
710 711
omegat-configuration-file:
	perl -pe 'BEGIN{$$p=`pwd`;chomp $$p;}s/__LANG__/$(OMEGATCODE)/;s/__PWD__/$$p/o;' omegat.files/_base.project >omegat.files/$(LANGCODE)/omegat.project
712

Yadd's avatar
Yadd committed
713
translation: omegat-configuration-file
714
	omegat omegat.files/$(LANGCODE) --quiet
715

Yadd's avatar
Yadd committed
716
translated-doc: omegat-configuration-file
717 718
	omegat omegat.files/$(LANGCODE) --mode=console-translate --quiet 2>/dev/null
	cd po-doc/$(LANGCODE)/pages/documentation && rm -rf current && ln -s $$(find * -maxdepth 0 -type d) current
Yadd's avatar
Yadd committed
719

720 721
# 2. Public targets

722
%-translation: test_omegat_%_dir omegat-%-clean
723 724
	$(eval CODE = $(call language_code,$*))
	$(MAKE) translation LANGCODE=$* OMEGATCODE=$(CODE)
Yadd's avatar
Yadd committed
725

726
%-doc: test_omegat_%_dir omegat-%-clean
727 728
	$(eval CODE = $(call language_code,$*))
	$(MAKE) translated-doc LANGCODE=$* OMEGATCODE=$(CODE)
729 730
	
omegat-clean:
731 732 733 734
	rm -rf omegat.files/*/omegat.project omegat.files/*/omegat/project_save*.bak

omegat-%-clean:
	rm -rf po-doc/$*/*
735

736
install_%_doc_site:
737 738
	@rm -rf $(RDOCDIR)/$*-doc || true
	@install -v -d $(RDOCDIR)/$*-doc
Yadd's avatar
Yadd committed
739
	@cp -dR -f po-doc/$*/* $(RDOCDIR)/$*-doc
740