Makefile 30.1 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
MANAGERSITEDIR=$(MANAGERDIR)
Yadd's avatar
Yadd committed
38
RMANAGERSITEDIR=$(DESTDIR)/$(MANAGERSITEDIR)
Yadd's avatar
Yadd committed
39
40
MANAGERSTATICDIR=$(MANAGERSITEDIR)/static
RMANAGERSTATICDIR=$(DESTDIR)/$(MANAGERSTATICDIR)
Yadd's avatar
Yadd committed
41
MANAGERRELATIVESTATICDIR=/static
Yadd's avatar
Yadd committed
42
43
44
45
MANAGERPSGIDIR=$(MANAGERSITEDIR)/psgi
RMANAGERPSGIDIR=$(DESTDIR)/$(MANAGERPSGIDIR)
MANAGERTEMPLATESDIR=$(MANAGERSITEDIR)/templates
RMANAGERTEMPLATESDIR=$(DESTDIR)/$(MANAGERTEMPLATESDIR)
46
DOCDIR=$(DOCUMENTROOT)
Yadd's avatar
Yadd committed
47
RDOCDIR=$(DESTDIR)/$(DOCDIR)
48
49
50
DEFDOCDIR=$(DOCUMENTROOT)/doc
RDEFDOCDIR=$(DESTDIR)/$(DEFDOCDIR)
FRDOCDIR=$(DOCUMENTROOT)/fr-doc
Yadd's avatar
Yadd committed
51
52
53
54
55
56
TESTDIR=$(DOCUMENTROOT)/test
RTESTDIR=$(DESTDIR)/$(TESTDIR)
EXAMPLESDIR=$(LMPREFIX)/examples
REXAMPLESDIR=$(DESTDIR)/$(EXAMPLESDIR)
TOOLSDIR=$(LMPREFIX)/tools
RTOOLSDIR=$(DESTDIR)/$(TOOLSDIR)
57
58

# Handler dir
Yadd's avatar
Yadd committed
59
60
HANDLERDIR=$(LMPREFIX)/handler
RHANDLERDIR=$(DESTDIR)/$(HANDLERDIR)
61
62

# Configuration dir
Yadd's avatar
Yadd committed
63
64
65
66
CONFDIR=$(LMPREFIX)/etc
RCONFDIR=$(DESTDIR)/$(CONFDIR)
CRONDIR=$(LMPREFIX)/etc/cron.d
RCRONDIR=$(DESTDIR)/$(CRONDIR)
67
68
CONFFILENAME=lemonldap-ng.ini
STORAGECONFFILE=$(CONFDIR)/$(CONFFILENAME)
69

70
# LL::NG configuration storage dir
Yadd's avatar
Yadd committed
71
72
FILECONFIGDIR=$(DATADIR)/conf
RFILECONFIGDIR=$(DESTDIR)/$(FILECONFIGDIR)
73

74
# LL::NG sessions storage dir
Yadd's avatar
Yadd committed
75
76
77
APACHESESSIONFILEDIR=$(DATADIR)/sessions
RAPACHESESSIONFILEDIR=$(DESTDIR)/$(APACHESESSIONFILEDIR)
APACHESESSIONFILELOCKDIR=$(APACHESESSIONFILEDIR)/lock
78
RAPACHESESSIONFILELOCKDIR=$(DESTDIR)/$(APACHESESSIONFILELOCKDIR)
79

80
81
82
83
84
85
86
# LL::NG persistent sessions storage dir
APACHEPSESSIONFILEDIR=$(DATADIR)/psessions
RAPACHEPSESSIONFILEDIR=$(DESTDIR)/$(APACHEPSESSIONFILEDIR)
APACHEPSESSIONFILELOCKDIR=$(APACHEPSESSIONFILEDIR)/lock
RAPACHEPSESSIONFILELOCKDIR=$(DESTDIR)/$(APACHEPSESSIONFILELOCKDIR)

# LL::NG notifications storage dir
87
88
APACHEFILENOTIFDIR=$(DATADIR)/notifications
RFILENOTIFDIR=$(DESTDIR)/$(APACHEFILENOTIFDIR)
89

90
91
# LL::NG captcha dir
CAPTCHADIR=$(DATADIR)/captcha
92
93
RCAPTCHADIR=$(DESTDIR)/$(CAPTCHADIR)

94
# Apache user/group
95
96
97
APACHEUSER=
APACHEGROUP=

98
# Apache version
Yadd's avatar
Yadd committed
99
APACHEVERSION=2.X
100

101
# DNS Domain for cookie and virtual hosts
102
103
DNSDOMAIN=example.com

104
105
106
# Virtual Host Listen IP and Port (*, *:80, ...)
VHOSTLISTEN=*:80

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

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

Yadd's avatar
Yadd committed
119
120
DIFFPREFIX=

121
all:	configure common handler manager portal
Yadd's avatar
Yadd committed
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 :"
147
	@echo "   - install_doc_site      ($(DEFDOCDIR))"
Yadd's avatar
Yadd committed
148
149
	@echo "   - install_examples_site ($(EXAMPLESDIR))"
	@echo
Yadd's avatar
Yadd committed
150
	@echo "Other languages documentation (fr only for now)"
151
152
	@echo " - fr-doc                  (needs OmegaT)"
	@echo " - install_fr_doc_site"
Yadd's avatar
Yadd committed
153
	@echo
154

155
156
157
#
# Perl libraries configuration
#
Yadd's avatar
Yadd committed
158

159
160
161
configure:	common_conf handler_conf portal_conf manager_conf

common_conf:
Yadd's avatar
Yadd committed
162
	@cd ${SRCCOMMONDIR}; LMNGCONFFILE=$(STORAGECONFFILE) $(PERL) Makefile.PL $(PERLOPTIONS)
163
164
165
	@touch common_conf

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

portal_conf:
Yadd's avatar
Yadd committed
170
	@cd ${SRCPORTALDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
171
172
173
	@touch portal_conf

manager_conf:
Yadd's avatar
Yadd committed
174
	@cd ${SRCMANAGERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
175
	@touch manager_conf
176

177
178
179
#
# Perl libraries make
#
180
181
182
common:		common_conf
	@$(MAKE) -C ${SRCCOMMONDIR}
	@touch common
183

Yadd's avatar
Yadd committed
184
handler:	handler_conf common
185
	@$(MAKE) -C ${SRCHANDLERDIR}
186
	@touch handler
187

Yadd's avatar
Yadd committed
188
portal:		portal_conf common
189
	@$(MAKE) -C ${SRCPORTALDIR}
190
	@touch portal
191

Yadd's avatar
Yadd committed
192
manager:	manager_conf handler
193
	@$(MAKE) -C ${SRCMANAGERDIR}
194
	@touch manager
195

Yadd's avatar
Yadd committed
196
test:		all common_test handler_test portal_test manager_test extra_test
197
198
199
200

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

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

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

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

Yadd's avatar
Yadd committed
210
extra_test:	all
211
	cd ${SRCPORTALDIR} && prove -b -I ../lemonldap-ng-common/blib/lib -I ../lemonldap-ng-handler/blib/lib -I../${SRCPORTALDIR}/blib/lib/ xt
212
#	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
213

Yadd's avatar
Yadd committed
214
215
216
e2e_test:
	protractor e2e-tests/protractor-conf.js

217
218
219
220
#
# INSTALL
#
install:	install_libs install_bin install_site
221

222
223
224
#
# Perl libraires install
#
Yadd's avatar
Yadd committed
225
install_libs:	common_install_libs install_handler_libs install_portal_libs install_manager_libs
226
227

common_install_libs:		common
228
	@$(MAKE) -C ${SRCCOMMONDIR} install
229

Yadd's avatar
Yadd committed
230
install_handler_libs:	handler
231
	@$(MAKE) -C ${SRCHANDLERDIR} install
232

Yadd's avatar
Yadd committed
233
install_portal_libs:		portal
234
	@$(MAKE) -C ${SRCPORTALDIR} install
235

Yadd's avatar
Yadd committed
236
install_manager_libs:	manager
237
	@$(MAKE) -C ${SRCMANAGERDIR} install
238

239
example:
Yadd's avatar
Yadd committed
240
	$(MAKE) install_site install_bin LMPREFIX=$(EXAMPLEROOT)
241

Yadd's avatar
Yadd committed
242
install_bin:	install_conf_dir
243
244
	# Binary install
	@install -v -d $(RBINDIR)
Yadd's avatar
Yadd committed
245
	@cp -f\
246
		${SRCHANDLERDIR}/example/scripts/purgeLocalCache \
Yadd's avatar
Yadd committed
247
		${SRCPORTALDIR}/example/scripts/purgeCentralCache \
248
		${SRCPORTALDIR}/example/scripts/buildPortalWSDL \
Yadd's avatar
Yadd committed
249
		${SRCCOMMONDIR}/scripts/convertConfig \
Yadd's avatar
Bugs :    
Yadd committed
250
		${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \
251
		${SRCCOMMONDIR}/scripts/rotateOidcKeys \
Yadd's avatar
Yadd committed
252
253
		${SRCMANAGERDIR}/scripts/lmConfigEditor \
		${SRCMANAGERDIR}/scripts/lemonldap-ng-cli \
Yadd's avatar
Yadd committed
254
			$(RBINDIR)
255
256
	@if [ ! "$(APACHEUSER)" ]; then \
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
257
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
258
259
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lmConfigEditor; \
260
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lemonldap-ng-cli; \
261
262
263
	fi
	@if [ ! "$(APACHEGROUP)" ]; then \
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
264
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
265
266
	else \
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lmConfigEditor; \
267
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lemonldap-ng-cli; \
268
	fi
269
	@chmod +x $(RBINDIR)/*
270
271
272
273

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

install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
335
336
337
338
339
340
341
342
	@install -v -d ${RMANAGERDIR} $(RMANAGERSTATICDIR) $(RMANAGERPSGIDIR) \
		$(RMANAGERTEMPLATESDIR)
	@cp -pR $(SRCMANAGERDIR)/site/static/* $(RMANAGERSTATICDIR)
	@cp -pR $(SRCMANAGERDIR)/site/templates/* $(RMANAGERTEMPLATESDIR)
	@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
343
	$(PERL) -i -pe 's#__MANAGERSTATICDIR__#$(MANAGERRELATIVESTATICDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
344
	$(PERL) -i -pe 's#__MANAGERTEMPLATESDIR__#$(MANAGERTEMPLATESDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
345
346
347
348

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
349
		$(RPORTALDIR)/skins/ \
350
351
		$(RCRONDIR) $(RCONFDIR)
	@for skin in $$(ls lemonldap-ng-portal/example/skins/); do \
Yadd's avatar
Yadd committed
352
353
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
354
	done
Yadd's avatar
Yadd committed
355
356
357
	@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
358
	@cp -pR -f ${SRCPORTALDIR}/example/openid-configuration.pl ${RPORTALDIR}
Yadd's avatar
Yadd committed
359
360
	@cp -pR -f ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/register.pl ${RPORTALDIR}
361
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
362
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
363
		for skin in $$(ls lemonldap-ng-portal/example/skins/); do \
Yadd's avatar
Yadd committed
364
365
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
366
367
368
		done; \
	fi
	# Cron files
Yadd's avatar
Yadd committed
369
	@cp -f lemonldap-ng-portal/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
370
	@if [ ! "$(APACHEUSER)" ]; then \
371
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
372
	else \
373
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
374
	fi
375
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
376
	# Clean SVN files
Clément OUDOT's avatar
   
Clément OUDOT committed
377
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
378
379

install_handler_site:	install_conf_dir
380
	# Handler install
381
	@install -v -d ${RHANDLERDIR}
Yadd's avatar
Yadd committed
382
	@cp -f lemonldap-ng-handler/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
383
	@if [ ! "$(APACHEUSER)" ]; then \
384
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
385
386
387
388
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
389
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
390
391

install_test_site:
392
	# Test site install
393
	@install -v -d $(RTESTDIR)
Yadd's avatar
Yadd committed
394
	@cp -pR -f _example/test/* $(RTESTDIR)
395
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
396
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
397
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
398
399

install_examples_site:
400
	# Examples install
401
	@install -v -d $(REXAMPLESDIR)
402
	@for i in manager portal handler; do \
Yadd's avatar
Yadd committed
403
		cp -a -f lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
404
	done
Yadd's avatar
Yadd committed
405
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
406
		$(REXAMPLESDIR)/manager/skins \
407
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
408
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
409
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
410

411
install_doc_site:
412
	# Offline documentation install
413
414
	@rm -rf $(RDEFDOCDIR)
	@install -v -d $(RDEFDOCDIR)
Yadd's avatar
Yadd committed
415
	@cp -a -f doc/* $(RDEFDOCDIR)
416

417
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
418
	# Configuration files install
419
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
420
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
421
		cp -f $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
422
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
423
	fi
424
	@cp _example/conf/lmConf-1.js $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
425
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
426
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
427
		s#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)#g;\
428
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;' $(RFILECONFIGDIR)/lmConf-1.js
429
430
431
432
433
434
435
436
437
	@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
438
	@cp lemonldap-ng-common/tools/lmConfig.* lemonldap-ng-common/tools/apache-session-mysql.sql $(RTOOLSDIR)
439
	@cp lemonldap-ng-common/tools/sso.schema $(RTOOLSDIR)
Yadd's avatar
Yadd committed
440
	$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
441
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
442
443

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

456
457
458
459
460
461
462
463
464
465
466
467
468
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

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

482
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
483
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
484
485
	@echo "/etc/hosts was updated"

486
postconf: postconf_hosts
487
488
	@echo "Post configuration done"

489
490
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

491
492
493
494
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

495
handler_uninstall:	handler
496
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
497
	@rm -vf handler_uninstall
498
499

portal_uninstall:		portal
500
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
501
	@rm -vf portal_uninstall
502
503

manager_uninstall:	manager
504
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
505
	@rm -vf manager_uninstall
506

507
dist:	clean
508
509
510
511
512
513
514
515
516
517
	@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
518
	@mkdir -p lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
519
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\)") lemonldap-ng-$(VERSION)
520
521
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
522
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
523
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
524
	@rm -rf lemonldap-ng-$(VERSION)
525

526

527
528
debian-dist:	clean
	@mkdir -p lemonldap-ng-$(VERSION)
529
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|rpm\)") lemonldap-ng-$(VERSION)
530
531
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
532
533
534
535
	@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
536
537
538
	@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
539
540
541

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

Yadd's avatar
Yadd committed
543
544
545
546
547
548
549
550
manifest:   configure
	@for i in ${SRCCOMMONDIR} ${SRCHANDLERDIR} ${SRCPORTALDIR} ${SRCMANAGERDIR}; do \
		cd $$i; \
		make manifest; \
		rm -vf MANIFEST.*; \
		cd -; \
	done

551
cpan:	clean configure common_cpan handler_cpan portal_cpan manager_cpan
Clément OUDOT's avatar
Clément OUDOT committed
552
	for i in Common Portal Handler Manager; do \
Yadd's avatar
Yadd committed
553
		$(UNCOMPRESS) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) \
Clément OUDOT's avatar
Clément OUDOT committed
554
			$$($(LISTCOMPRESSED) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) |grep META.yml); \
Yadd's avatar
Yadd committed
555
		mv Lemonldap-NG-$$i-*/META.yml lemonldap-ng-$$($(PERL) -e "print lc('$$i')")/; \
Yadd's avatar
Yadd committed
556
		rm -rf Lemonldap-NG-$$i*/; \
Yadd's avatar
Yadd committed
557
		done
558
559
560
561

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

handler_cpan:	handler_conf
564
565
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
566
567

portal_cpan:		portal_conf
568
569
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
570
571

manager_cpan:	manager_conf
572
573
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
574

575
documentation:
576
	@cd doc/ && ../scripts/doc.pl
577

578
doxygen:	clean
Yadd's avatar
Yadd committed
579
	$(PERL) -i -pe 's/^(PROJECT_NUMBER\s*=\s*)\d.*$$/$${1}'$(VERSION)'/' Doxyfile
580
581
582
583
584
585
	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
586
	$(PERL) -i -pe 's/Graphical Class Hierarchy/Class Collaboration Graph/' doc/devel/html/inherits.html doc/devel/html/tree.html
587
588
	# 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
589

590
591
distclean:	clean

592
clean:		common_clean handler_clean portal_clean manager_clean omegat-clean omegat-fr-clean
Yadd's avatar
Yadd committed
593
	@rm -f $$(find */ -name '*bak' -delete)
Yadd's avatar
Yadd committed
594
	@rm -rf $(EXAMPLEROOT) example/ doc/devel
Yadd's avatar
Yadd committed
595
	@rm -vf *gz *zip
Yadd's avatar
Yadd committed
596
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
597
	@echo "Cleaned"
598
599

common_clean:
Yadd's avatar
Yadd committed
600
	@if test -e ${SRCCOMMONDIR}/Makefile;then $(MAKE) -C ${SRCCOMMONDIR} distclean;fi
601
602
603
	@rm -vf common*

handler_clean:
Yadd's avatar
Yadd committed
604
	@if test -e ${SRCHANDLERDIR}/Makefile;then $(MAKE) -C ${SRCHANDLERDIR} distclean;fi
605
606
607
	@rm -vf handler*

portal_clean:
Yadd's avatar
Yadd committed
608
	@if test -e ${SRCPORTALDIR}/Makefile;then $(MAKE) -C ${SRCPORTALDIR} distclean;fi
609
610
611
	@rm -vf portal*

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

615
debian-local-packages: debian-dist
Yadd's avatar
Yadd committed
616
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
617
618
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
619
	rm -rf lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
620
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
621
	cd lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
622
623
624
625
	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
626

627
628
629
630
631
632
633
634
635
636
637
638
639
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
640
	cd /tmp/lemonldap-ng-$(VERSION) && \
Yadd's avatar
Yadd committed
641
642
643
644
645
646
	$(SU) debi

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

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

Yadd's avatar
Yadd committed
648
debian-diff:
Yadd's avatar
Yadd committed
649
	@# Portal
Yadd's avatar
Yadd committed
650
651
652
	@$(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
653
	@for i in $(PORTALSKINS); do \
Yadd's avatar
Yadd committed
654
		$(DIFF) -x 'jquery*' lemonldap-ng-portal/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/portal-skins/$$i; \
Yadd's avatar
Yadd committed
655
	done ||true
Yadd's avatar
Yadd committed
656
657
658
	@$(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
659
	@$(DIFF) lemonldap-ng-portal/example/openid-configuration.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/openid-configuration.pl ||true
Yadd's avatar
Yadd committed
660
	@$(DIFF) lemonldap-ng-portal/example/cdc.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/cdc.pl ||true
661
	@$(DIFF) lemonldap-ng-portal/example/register.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/register.pl ||true
Yadd's avatar
Yadd committed
662
	@# Handler
Yadd's avatar
Yadd committed
663
	@$(DIFF) lemonldap-ng-handler/lib/Lemonldap/NG/Handler $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Handler ||true
664
	@$(DIFF) lemonldap-ng-handler/example/scripts/purgeLocalCache $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/purgeLocalCache ||true
Yadd's avatar
Yadd committed
665
	@# Common
Yadd's avatar
Yadd committed
666
667
668
669
	@$(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
670
	@$(DIFF) lemonldap-ng-common/scripts/rotateOidcKeys $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/rotateOidcKeys ||true
Yadd's avatar
Yadd committed
671
	@# Manager
Yadd's avatar
Yadd committed
672
673
	@$(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
674
675
676
	@$(DIFF) lemonldap-ng-manager/eg $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/psgi ||true
	@$(DIFF) lemonldap-ng-manager/site/static $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/static ||true
	@$(DIFF) lemonldap-ng-manager/site/templates $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/templates ||true
677
678
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' lemonldap-ng-manager/scripts/lmConfigEditor $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lmConfigEditor ||true
	@$(DIFF) --ignore-matching-lines='giveUpPrivileges' lemonldap-ng-manager/scripts/lemonldap-ng-cli $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lemonldap-ng-cli ||true
Yadd's avatar
Yadd committed
679

680
681
default-diff:
	@# Portal
682
	@$(DIFF) lemonldap-ng-portal/lib/Lemonldap/NG/Portal /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Portal ||true
683
684
685
	@$(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
686
687
	@$(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
688
	@$(DIFF) lemonldap-ng-portal/example/register.pl $(LMPREFIX)/htdocs/portal/register.pl ||true
Clément OUDOT's avatar
SAML:    
Clément OUDOT committed
689
	@$(DIFF) lemonldap-ng-portal/example/metadata.pl $(LMPREFIX)/htdocs/portal/metadata.pl ||true
Clément OUDOT's avatar
Clément OUDOT committed
690
	@$(DIFF) lemonldap-ng-portal/example/openid-configuration.pl $(LMPREFIX)/htdocs/portal/openid-configuration.pl ||true
691
	@$(DIFF) lemonldap-ng-portal/example/cdc.pl $(LMPREFIX)/htdocs/portal/cdc.pl ||true
692
	@# Handler
693
	@$(DIFF) lemonldap-ng-handler/lib/Lemonldap/NG/Handler /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Handler ||true
694
	@$(DIFF) lemonldap-ng-handler/example/scripts/purgeLocalCache $(LMPREFIX)/bin/purgeLocalCache ||true
695
	@# Common
696
697
	@$(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
698
699
	@$(DIFF) lemonldap-ng-common/scripts/lmMigrateConfFiles2ini $(LMPREFIX)/bin/lmMigrateConfFiles2ini ||true
	@$(DIFF) lemonldap-ng-common/scripts/convertConfig $(LMPREFIX)/bin/convertConfig ||true
700
	@$(DIFF) lemonldap-ng-common/scripts/rotateOidcKeys $(LMPREFIX)/bin/rotateOidcKeys ||true
701
	@# Manager
702
703
	@$(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
704
705
706
	@$(DIFF) lemonldap-ng-manager/eg $(LMPREFIX)/htdocs/manager/psgi ||true
	@$(DIFF) lemonldap-ng-manager/site/static $(LMPREFIX)/htdocs/manager/static ||true
	@$(DIFF) lemonldap-ng-manager/site/templates $(LMPREFIX)/htdocs/manager/templates ||true
707
708
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' lemonldap-ng-manager/scripts/lmConfigEditor $(LMPREFIX)/bin/lmConfigEditor ||true
	@$(DIFF) --ignore-matching-lines='giveUpPrivileges' lemonldap-ng-manager/scripts/lemonldap-ng-cli $(LMPREFIX)/bin/lemonldap-ng-cli ||true
709

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

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

717
718
719
720
# TRANSLATION TARGETS #

# 1. Internal targets

721
722
language_code:
	perl -e ' \
723
724
725
726
727
728
729
730
731
732
	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
733
734
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
735

Yadd's avatar
Yadd committed
736
translation: omegat-configuration-file
737
	omegat omegat.files/$(LANGCODE) --quiet
738

Yadd's avatar
Yadd committed
739
translated-doc: omegat-configuration-file
740
741
	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
742

743
744
# 2. Public targets

745
%-translation: test_omegat_%_dir omegat-%-clean
746
747
	$(eval CODE = $(call language_code,$*))
	$(MAKE) translation LANGCODE=$* OMEGATCODE=$(CODE)
Yadd's avatar
Yadd committed
748

749
%-doc: test_omegat_%_dir omegat-%-clean
Yadd's avatar
Yadd committed
750
	mkdir -p po-doc/$*
751
752
	$(eval CODE = $(call language_code,$*))
	$(MAKE) translated-doc LANGCODE=$* OMEGATCODE=$(CODE)
753
754
	
omegat-clean:
755
756
757
	rm -rf omegat.files/*/omegat.project omegat.files/*/omegat/project_save*.bak

omegat-%-clean:
Yadd's avatar
Yadd committed
758
	rm -rf po-doc/$*
759

Yadd's avatar
Yadd committed
760
install_%_doc_site:
761
762
	@rm -rf $(RDOCDIR)/$*-doc || true
	@install -v -d $(RDOCDIR)/$*-doc
Yadd's avatar
Yadd committed
763
	@cp -dR -f po-doc/$*/* $(RDOCDIR)/$*-doc
764