Makefile 33.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
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
# Virtual Host Listen IP and Port (*, *:80, ...)
VHOSTLISTEN=*:80
106
WEBSERVERPORT=19876
107

108
# Other
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 114 115 116 117

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

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

121
# GENERATED SRC FILESlemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm
122
MANAGERJSONSRC= scripts/jsongenerator.pl \
Yadd's avatar
Yadd committed
123
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build.pm \
124
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build/Attributes.pm \
125 126
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build/Tree.pm \
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Conf/Zero.pm
127 128
MANAGERJSONDST=$(SRCMANAGERDIR)/site/static/struct.json \
		$(SRCMANAGERDIR)/site/static/js/conftree.js \
Yadd's avatar
Yadd committed
129
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Attributes.pm \
130
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Constants.pm \
131 132
		$(SRCCOMMONDIR)/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm \
		_example/conf/lmConf-1.js
133 134 135 136 137 138 139 140 141
PERLCOMMONSRC:=$(shell find $(SRCCOMMONDIR)/lib -name '*.pm')
PERLCOMMONDST=$(SRCCOMMONDIR)/blib/lib/Lemonldap/NG/Common.pm
PERLHANDLERSRC:=$(shell find $(SRCHANDLERDIR)/lib -name '*.pm')
PERLHANDLERDST=$(SRCHANDLERDIR)/blib/lib/Lemonldap/NG/Handler.pm
PERLPORTALSRC:=$(shell find $(SRCPORTALDIR)/lib -name '*.pm')
PERLPORTALDST=$(SRCPORTALDIR)/blib/lib/Lemonldap/NG/Portal.pm
PERLMANAGERSRC:=$(shell find $(SRCMANAGERDIR)/lib -name '*.pm')
PERLMANAGERDST=$(SRCMANAGERDIR)/blib/lib/Lemonldap/NG/Manager.pm

Yadd's avatar
Yadd committed
142 143
DIFFPREFIX=

144
all:	configure common handler manager portal
Yadd's avatar
Yadd committed
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
	@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 :"
170
	@echo "   - install_doc_site      ($(DEFDOCDIR))"
Yadd's avatar
Yadd committed
171 172
	@echo "   - install_examples_site ($(EXAMPLESDIR))"
	@echo
Yadd's avatar
Yadd committed
173
	@echo "Other languages documentation (fr only for now)"
174 175
	@echo " - fr-doc                  (needs OmegaT)"
	@echo " - install_fr_doc_site"
Yadd's avatar
Yadd committed
176
	@echo
177

178 179 180
#
# Perl libraries configuration
#
Yadd's avatar
Yadd committed
181

182
json:	$(MANAGERJSONDST)
Yadd's avatar
Yadd committed
183

184
$(MANAGERJSONDST):	$(MANAGERJSONSRC)
185
	./scripts/jsongenerator.pl
Yadd's avatar
Yadd committed
186

Yadd's avatar
Yadd committed
187
configure:	json common_conf handler_conf portal_conf manager_conf
188

189 190 191 192 193 194 195 196 197
common_conf:	${SRCCOMMONDIR}/Makefile

handler_conf:	${SRCHANDLERDIR}/Makefile

portal_conf:	${SRCPORTALDIR}/Makefile

manager_conf:	${SRCMANAGERDIR}/Makefile

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

200
${SRCHANDLERDIR}/Makefile:
Yadd's avatar
Yadd committed
201
	@cd ${SRCHANDLERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
202

203
${SRCPORTALDIR}/Makefile:
Yadd's avatar
Yadd committed
204
	@cd ${SRCPORTALDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
205

206
${SRCMANAGERDIR}/Makefile:
Yadd's avatar
Yadd committed
207
	@cd ${SRCMANAGERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
208

209 210 211
#
# Perl libraries make
#
212 213 214 215 216 217 218 219 220
common:		$(PERLCOMMONDST)

handler:	$(PERLHANDLERDST)

portal:		$(PERLPORTALDST)

manager:	$(PERLMANAGERDST)

$(PERLCOMMONDST):	common_conf $(PERLCOMMONSRC)
221
	@$(MAKE) -C ${SRCCOMMONDIR}
222

223
$(PERLHANDLERDST):	handler_conf common $(PERLHANDLERSRC)
224
	@$(MAKE) -C ${SRCHANDLERDIR}
225

226
$(PERLPORTALDST):	portal_conf common $(PERLPORTALSRC)
227
	@$(MAKE) -C ${SRCPORTALDIR}
228

229 230
$(PERLMANAGERDST):	manager_conf handler $(PERLMANAGERSRC)
	$(MAKE) -C ${SRCMANAGERDIR}
231

Yadd's avatar
Yadd committed
232
test:		all common_test handler_test portal_test manager_test extra_test
233 234 235 236

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

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

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

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

Yadd's avatar
Yadd committed
246
extra_test:	all
247
	cd ${SRCPORTALDIR} && prove -b -I ../$(SRCCOMMONDIR)/blib/lib -I ../$(SRCHANDLERDIR)/blib/lib -I../${SRCPORTALDIR}/blib/lib/ xt
248
#	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
249

250 251 252
e2e_test:	all prepare_test_server start_web_server launch_protractor stop_web_server

prepare_test_server:
253
	@mkdir -p e2e-tests/conf/lock e2e-tests/conf/persistents/lock
Yadd's avatar
Yadd committed
254
	@$(MAKE) install_webserver_conf \
255 256
		RCONFDIR=e2e-tests/conf \
		ERASECONFIG=1 \
257
		VHOSTLISTEN='*:$(WEBSERVERPORT)' \
258 259
		PORTALDIR=`pwd`/$(SRCPORTALDIR)/example \
		MANAGERDIR=`pwd`/$(SRCMANAGERDIR)/site \
260 261 262
		MANAGERPSGIDIR=`pwd`/e2e-tests \
		DEFDOCDIR=`pwd`/doc \
		FRDOCDIR=`pwd`/po-doc/fr
Yadd's avatar
Yadd committed
263 264
	@cp e2e-tests/lmConf-1.js e2e-tests/lemonldap-ng.ini e2e-tests/env.conf e2e-tests/conf/
	@perl -i -pe 'BEGIN{$$p=`pwd`;chomp $$p}s#__pwd__#$$p#;s/__port__/$(WEBSERVERPORT)/' e2e-tests/conf/lemonldap-ng.ini e2e-tests/conf/lmConf-1.js e2e-tests/conf/env.conf
265

Yadd's avatar
Yadd committed
266 267 268
e2e-tests/conf/apache2.pid: start_web_server

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

Yadd's avatar
Yadd committed
274
reload_web_server:
Yadd's avatar
Yadd committed
275 276 277 278 279 280
	@if [ -e e2e-tests/conf/apache2.pid ]; then \
		LLNG_DEFAULTCONFFILE=`pwd`/e2e-tests/conf/lemonldap-ng.ini /usr/sbin/apache2 -d `pwd`/e2e-tests -f apache2.conf -k graceful; \
	else \
		$(MAKE) start_web_server; \
	fi

Yadd's avatar
Yadd committed
281
launch_protractor:	all e2e-tests/conf/apache2.pid
282
	# Start e2e tests
Yadd's avatar
Yadd committed
283
	# NB: you must have protractor installed (using npm install -g protractor)
Yadd's avatar
Yadd committed
284
	# and have run update-webdriver at least once and have a node.js > 4.0
285
	@WEBSERVERPORT=$(WEBSERVERPORT) protractor e2e-tests/protractor-conf.js
286 287 288

stop_web_server:
	# Stop web server
Yadd's avatar
Yadd committed
289
	-@ [ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid`
290
	# Clean
291
	@rm -rf e2e-tests/conf
Yadd's avatar
Yadd committed
292

293 294
restart_web_server: start_web_server

295 296 297 298
#
# INSTALL
#
install:	install_libs install_bin install_site
299

300 301 302
#
# Perl libraires install
#
Yadd's avatar
Yadd committed
303
install_libs:	common_install_libs install_handler_libs install_portal_libs install_manager_libs
304 305

common_install_libs:		common
306
	@$(MAKE) -C ${SRCCOMMONDIR} install
307

Yadd's avatar
Yadd committed
308
install_handler_libs:	handler
309
	@$(MAKE) -C ${SRCHANDLERDIR} install
310

Yadd's avatar
Yadd committed
311
install_portal_libs:		portal
312
	@$(MAKE) -C ${SRCPORTALDIR} install
313

Yadd's avatar
Yadd committed
314
install_manager_libs:	manager
315
	@$(MAKE) -C ${SRCMANAGERDIR} install
316

317
example:
Yadd's avatar
Yadd committed
318
	$(MAKE) install_site install_bin LMPREFIX=$(EXAMPLEROOT)
319

Yadd's avatar
Yadd committed
320
install_bin:	install_conf_dir
321 322
	# Binary install
	@install -v -d $(RBINDIR)
Yadd's avatar
Yadd committed
323
	@cp -f\
324
		${SRCHANDLERDIR}/example/scripts/purgeLocalCache \
Yadd's avatar
Yadd committed
325
		${SRCPORTALDIR}/example/scripts/purgeCentralCache \
326
		${SRCPORTALDIR}/example/scripts/buildPortalWSDL \
Yadd's avatar
Yadd committed
327
		${SRCCOMMONDIR}/scripts/convertConfig \
Yadd's avatar
Bugs :  
Yadd committed
328
		${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \
329
		${SRCCOMMONDIR}/scripts/rotateOidcKeys \
Yadd's avatar
Yadd committed
330 331
		${SRCMANAGERDIR}/scripts/lmConfigEditor \
		${SRCMANAGERDIR}/scripts/lemonldap-ng-cli \
Yadd's avatar
Yadd committed
332
			$(RBINDIR)
333 334
	@if [ ! "$(APACHEUSER)" ]; then \
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
335
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
336 337
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lmConfigEditor; \
338
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lemonldap-ng-cli; \
339 340 341
	fi
	@if [ ! "$(APACHEGROUP)" ]; then \
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
342
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
343 344
	else \
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lmConfigEditor; \
345
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lemonldap-ng-cli; \
346
	fi
347
	@chmod +x $(RBINDIR)/*
348 349 350 351

#
# SITE INSTALL
#
352
install_site:	install_manager_site install_portal_site install_handler_site install_test_site install_examples_site install_doc_site install_webserver_conf
353
	# Site install
354
	@install -v -d $(RCONFDIR)
Clément OUDOT's avatar
Clément OUDOT committed
355 356
	# Check if erase is wanted
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
357
		cp -f _example/etc/for_etc_hosts $(RCONFDIR); \
358
	fi
Yadd's avatar
Yadd committed
359
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/for_etc_hosts
360
	# Fix a lost of rights on the main directory
Yadd's avatar
Yadd committed
361
	@chmod 755 $(RBINDIR) $(RDOCUMENTROOT) $(REXAMPLESDIR) $(RHANDLERDIR) $(RPORTALSKINSDIR) $(RMANAGERSITEDIR) $(RTOOLSDIR) $(RCONFDIR) $(RDATADIR)
362
	@echo
363
	@echo "LemonLDAP::NG v${VERSION} is installed with these parameters:"
364 365 366 367 368
	@echo "  - System configuration: ${CONFDIR}"
	@echo "  - DNS domain (for cookies and virtual hosts): ${DNSDOMAIN}"
	@echo
	@echo "To finish configuration:"
	@echo
369 370 371 372
	@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"
373
	@echo "      include ${CONFDIR}/test-apache$(APACHEVERSION).conf"
374
	@echo
375 376
	@echo "2 - Restart Apache:"
	@echo "      apache$(APACHEVERSION)ctl restart"
377
	@echo
378
	@echo "3 - Run 'make postconf' as root to update /etc/hosts if your DNS service does not known auth.$(DNSDOMAIN) and manager.$(DNSDOMAIN)"
379
	@echo
380 381 382 383 384 385
	@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"
386
	@echo
387
	@if [ ! "$(APACHEUSER)" ]; then \
388
		echo;echo "    Warning, since APACHEUSER was not set, $(APACHESESSIONFILEDIR), $(APACHEPSESSIONFILEDIR), $(CAPTCHADIR) and $(CONFDIR) have permissive permissions."; \
389 390 391
		echo "    Fix them by yourself to restrict their view to apache process only"; \
	fi
	@echo
392

393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415
install_webserver_conf:
	@install -m 755 -v -d $(RCONFDIR)
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
		cp -f _example/etc/portal-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/handler-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/manager-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/test-apache$(APACHEVERSION).conf $(RCONFDIR); \
		cp -f _example/etc/handler-nginx.conf $(RCONFDIR); \
		cp -f _example/etc/test-nginx.conf $(RCONFDIR); \
		cp -f _example/etc/nginx-access-control $(RCONFDIR); \
		cp -f _example/etc/nginx-http-accounting $(RCONFDIR); \
		cp -f _example/etc/nginx-fcgi-accounting $(RCONFDIR); \
	fi
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g; \
			s#__PORTALDIR__#$(PORTALDIR)/#g; \
			s#__MANAGERDIR__#$(MANAGERDIR)/#g; \
			s#__MANAGERSTATICDIR__#$(MANAGERSTATICDIR)/#g; \
			s#__MANAGERPSGIDIR__#$(MANAGERPSGIDIR)/#g; \
			s#__TESTDIR__#$(TESTDIR)/#g; \
			s#__VHOSTLISTEN__#$(VHOSTLISTEN)#g; \
			s#__DEFDOCDIR__#$(DEFDOCDIR)/#g; \
			s#__FRDOCDIR__#$(FRDOCDIR)/#g;' $(RCONFDIR)/*apache*.conf $(RCONFDIR)/*nginx*.conf

416 417
install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
418 419 420 421 422 423 424 425
	@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
426
	$(PERL) -i -pe 's#__MANAGERSTATICDIR__#$(MANAGERRELATIVESTATICDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
427
	$(PERL) -i -pe 's#__MANAGERTEMPLATESDIR__#$(MANAGERTEMPLATESDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
428 429 430 431

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
432
		$(RPORTALDIR)/skins/ \
433
		$(RCRONDIR) $(RCONFDIR)
434
	@for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
435 436
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
437
	done
Yadd's avatar
Yadd committed
438 439 440
	@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
441
	@cp -pR -f ${SRCPORTALDIR}/example/openid-configuration.pl ${RPORTALDIR}
Yadd's avatar
Yadd committed
442 443
	@cp -pR -f ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/register.pl ${RPORTALDIR}
444
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
445
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
446
		for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
447 448
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
449 450 451
		done; \
	fi
	# Cron files
452
	@cp -f $(SRCPORTALDIR)/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
453
	@if [ ! "$(APACHEUSER)" ]; then \
454
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
455
	else \
456
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
457
	fi
458
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
459
	# Clean SVN files
Clément OUDOT's avatar
 
Clément OUDOT committed
460
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
461 462

install_handler_site:	install_conf_dir
463
	# Handler install
464
	@install -v -d ${RHANDLERDIR}
465
	@cp -f $(SRCHANDLERDIR)/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
466
	@if [ ! "$(APACHEUSER)" ]; then \
467
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
468 469 470 471
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
472
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
473 474

install_test_site:
475
	# Test site install
476
	@install -v -d $(RTESTDIR)
Yadd's avatar
Yadd committed
477
	@cp -pR -f _example/test/* $(RTESTDIR)
478
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
479
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
480
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
481 482

install_examples_site:
483
	# Examples install
484
	@install -v -d $(REXAMPLESDIR)
485
	@for i in manager portal handler; do \
Yadd's avatar
Yadd committed
486
		cp -a -f lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
487
	done
Yadd's avatar
Yadd committed
488
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
489
		$(REXAMPLESDIR)/manager/skins \
490
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
491
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
492
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
493

494
install_doc_site:
495
	# Offline documentation install
496 497
	@rm -rf $(RDEFDOCDIR)
	@install -v -d $(RDEFDOCDIR)
Yadd's avatar
Yadd committed
498
	@cp -a -f doc/* $(RDEFDOCDIR)
499

500
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
501
	# Configuration files install
502
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
503
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
504
		cp -f $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
505
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
506
	fi
507
	@cp _example/conf/lmConf-1.js $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
508
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
509
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
510
		s#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)#g;\
511
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;' $(RFILECONFIGDIR)/lmConf-1.js
512 513 514 515 516 517 518 519 520
	@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
521 522
	@cp $(SRCCOMMONDIR)/tools/lmConfig.* $(SRCCOMMONDIR)/tools/apache-session-mysql.sql $(RTOOLSDIR)
	@cp $(SRCCOMMONDIR)/tools/sso.schema $(RTOOLSDIR)
Yadd's avatar
Yadd committed
523
	$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
524
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
525 526

install_sessions_dir:
527
	@install -m 777 -v -d $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR)
528 529
	# Fix Apache::Session directories permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
530
		chown $(APACHEUSER) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
531
		if [ "$(APACHEGROUP)" != "" ]; then \
532
			chgrp $(APACHEGROUP) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
533
		fi; \
534
		chmod 770 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
535
	else \
536
		chmod 777 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
537 538
	fi

539 540 541 542 543 544 545 546 547 548 549 550 551
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

552
install_captcha_dir:
553
	@install -m 777 -v -d $(RCAPTCHADIR)
554 555
	# Fix captcha directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
556
		chown $(APACHEUSER) $(RCAPTCHADIR) || exit 1; \
557
		if [ "$(APACHEGROUP)" != "" ]; then \
558
			chgrp $(APACHEGROUP) $(RCAPTCHADIR) || exit 1; \
559
		fi; \
560
		chmod 770 $(RCAPTCHADIR); \
561
	else \
562
		chmod 777 $(RCAPTCHADIR); \
563 564
	fi

565
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
566
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
567 568
	@echo "/etc/hosts was updated"

569
postconf: postconf_hosts
570 571
	@echo "Post configuration done"

572 573
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

574 575 576 577
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

578
handler_uninstall:	handler
579
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
580
	@rm -vf handler_uninstall
581 582

portal_uninstall:		portal
583
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
584
	@rm -vf portal_uninstall
585 586

manager_uninstall:	manager
587
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
588
	@rm -vf manager_uninstall
589

590
dist:	clean
591 592 593 594 595 596 597 598 599 600
	@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
601
	@mkdir -p lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
602
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\)") lemonldap-ng-$(VERSION)
603 604
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
605
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
606
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
607
	@rm -rf lemonldap-ng-$(VERSION)
608

609

610 611
debian-dist:	clean
	@mkdir -p lemonldap-ng-$(VERSION)
612
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|rpm\)") lemonldap-ng-$(VERSION)
613 614
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
615 616 617 618
	@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
619 620 621
	@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
622 623 624

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

Yadd's avatar
Yadd committed
626 627 628 629 630 631 632 633
manifest:   configure
	@for i in ${SRCCOMMONDIR} ${SRCHANDLERDIR} ${SRCPORTALDIR} ${SRCMANAGERDIR}; do \
		cd $$i; \
		make manifest; \
		rm -vf MANIFEST.*; \
		cd -; \
	done

634
cpan:	clean configure common_cpan handler_cpan portal_cpan manager_cpan
Clément OUDOT's avatar
Clément OUDOT committed
635
	for i in Common Portal Handler Manager; do \
Yadd's avatar
Yadd committed
636
		$(UNCOMPRESS) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) \
Clément OUDOT's avatar
Clément OUDOT committed
637
			$$($(LISTCOMPRESSED) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) |grep META.yml); \
Yadd's avatar
Yadd committed
638
		mv Lemonldap-NG-$$i-*/META.yml lemonldap-ng-$$($(PERL) -e "print lc('$$i')")/; \
Yadd's avatar
Yadd committed
639
		rm -rf Lemonldap-NG-$$i*/; \
Yadd's avatar
Yadd committed
640
		done
641 642 643 644

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

handler_cpan:	handler_conf
647 648
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
649 650

portal_cpan:		portal_conf
651 652
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
653 654

manager_cpan:	manager_conf
655 656
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
657

658
documentation:
659
	@cd doc/ && ../scripts/doc.pl
660

661
doxygen:	clean
Yadd's avatar
Yadd committed
662
	$(PERL) -i -pe 's/^(PROJECT_NUMBER\s*=\s*)\d.*$$/$${1}'$(VERSION)'/' Doxyfile
663 664 665 666 667 668
	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
669
	$(PERL) -i -pe 's/Graphical Class Hierarchy/Class Collaboration Graph/' doc/devel/html/inherits.html doc/devel/html/tree.html
670 671
	# 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
672

673 674
distclean:	clean

Yadd's avatar
Yadd committed
675
clean:		common_clean handler_clean portal_clean manager_clean omegat-clean omegat-fr-clean stop_web_server
Yadd's avatar
Yadd committed
676
	@rm -f $$(find */ -name '*bak' -delete)
Yadd's avatar
Yadd committed
677
	@rm -rf $(EXAMPLEROOT) example/ doc/devel
Yadd's avatar
Yadd committed
678
	@rm -vf *gz *zip
Yadd's avatar
Yadd committed
679
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
680
	@echo "Cleaned"
681 682

common_clean:
Yadd's avatar
Yadd committed
683
	@if test -e ${SRCCOMMONDIR}/Makefile;then $(MAKE) -C ${SRCCOMMONDIR} distclean;fi
684 685 686
	@rm -vf common*

handler_clean:
Yadd's avatar
Yadd committed
687
	@if test -e ${SRCHANDLERDIR}/Makefile;then $(MAKE) -C ${SRCHANDLERDIR} distclean;fi
688 689 690
	@rm -vf handler*

portal_clean:
Yadd's avatar
Yadd committed
691
	@if test -e ${SRCPORTALDIR}/Makefile;then $(MAKE) -C ${SRCPORTALDIR} distclean;fi
692 693 694
	@rm -vf portal*

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

698
debian-local-packages: debian-dist
Yadd's avatar
Yadd committed
699
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
700 701
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
702
	rm -rf lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
703
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
704
	cd lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
705
	export LOCALBUILD=1; debuild --preserve-envvar=LOCALBUILD -us -uc -b --lintian-opts -i \
Yadd's avatar
Yadd committed
706 707 708
		--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
709

710 711 712 713 714 715 716 717 718 719 720 721 722
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
723
	cd /tmp/lemonldap-ng-$(VERSION) && \
Yadd's avatar
Yadd committed
724 725 726 727 728 729
	$(SU) debi

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

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

Yadd's avatar
Yadd committed
731
debian-diff:
Yadd's avatar
Yadd committed
732
	@# Portal
733 734 735
	@$(DIFF) $(SRCPORTALDIR)/lib/Lemonldap/NG/Portal $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Portal ||true
	@$(DIFF) $(SRCPORTALDIR)/example/scripts/purgeCentralCache $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/purgeCentralCache ||true
	@$(DIFF) $(SRCPORTALDIR)/example/scripts/buildPortalWSDL $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/buildPortalWSDL ||true
Yadd's avatar
Yadd committed
736
	@for i in $(PORTALSKINS); do \
737
		$(DIFF) -x 'jquery*' $(SRCPORTALDIR)/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/portal-skins/$$i; \
Yadd's avatar
Yadd committed
738
	done ||true
739 740 741 742 743 744
	@$(DIFF) $(SRCPORTALDIR)/example/index_skin.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/index.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/mail.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/mail.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/metadata.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/metadata.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/openid-configuration.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/openid-configuration.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/cdc.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/cdc.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/register.pl $(DIFFPREFIX)/var/lib/lemonldap-ng/portal/register.pl ||true
Yadd's avatar
Yadd committed
745
	@# Handler
746 747
	@$(DIFF) $(SRCHANDLERDIR)/lib/Lemonldap/NG/Handler $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Handler ||true
	@$(DIFF) $(SRCHANDLERDIR)/example/scripts/purgeLocalCache $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/purgeLocalCache ||true
Yadd's avatar
Yadd committed
748
	@# Common
749 750 751 752 753
	@$(DIFF) $(SRCCOMMONDIR)/lib/Lemonldap/NG/Common $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Common ||true
	@$(DIFF) $(SRCCOMMONDIR)/lib/Lemonldap/NG/Common.pm $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Common.pm ||true
	@$(DIFF) $(SRCCOMMONDIR)/scripts/lmMigrateConfFiles2ini $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lmMigrateConfFiles2ini ||true
	@$(DIFF) $(SRCCOMMONDIR)/scripts/convertConfig $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/convertConfig ||true
	@$(DIFF) $(SRCCOMMONDIR)/scripts/rotateOidcKeys $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/rotateOidcKeys ||true
Yadd's avatar
Yadd committed
754
	@# Manager
755 756 757 758 759 760 761
	@$(DIFF) $(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Manager ||true
	@$(DIFF) $(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager.pm $(DIFFPREFIX)/usr/share/perl5/Lemonldap/NG/Manager.pm ||true
	@$(DIFF) $(SRCMANAGERDIR)/eg $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/psgi ||true
	@$(DIFF) $(SRCMANAGERDIR)/site/static $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/static ||true
	@$(DIFF) $(SRCMANAGERDIR)/site/templates $(DIFFPREFIX)/var/lib/lemonldap-ng/manager/templates ||true
	@$(DIFF) --ignore-matching-lines='set.*get.*\[2\]' $(SRCMANAGERDIR)/scripts/lmConfigEditor $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lmConfigEditor ||true
	@$(DIFF) --ignore-matching-lines='giveUpPrivileges' $(SRCMANAGERDIR)/scripts/lemonldap-ng-cli $(DIFFPREFIX)/usr/share/lemonldap-ng/bin/lemonldap-ng-cli ||true
Yadd's avatar
Yadd committed
762

763 764
default-diff:
	@# Portal
765 766 767 768 769 770 771 772 773 774
	@$(DIFF) $(SRCPORTALDIR)/lib/Lemonldap/NG/Portal /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Portal ||true
	@$(DIFF) $(SRCPORTALDIR)/example/scripts/purgeCentralCache $(LMPREFIX)/bin/purgeCentralCache ||true
	@$(DIFF) $(SRCPORTALDIR)/example/scripts/buildPortalWSDL $(LMPREFIX)/bin/buildPortalWSDL ||true
	@$(DIFF) $(SRCPORTALDIR)/example/skins $(LMPREFIX)/htdocs/portal/skins ||true
	@$(DIFF) $(SRCPORTALDIR)/example/index_skin.pl $(LMPREFIX)/htdocs/portal/index.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/mail.pl $(LMPREFIX)/htdocs/portal/mail.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/register.pl $(LMPREFIX)/htdocs/portal/register.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/metadata.pl $(LMPREFIX)/htdocs/portal/metadata.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/openid-configuration.pl $(LMPREFIX)/htdocs/portal/openid-configuration.pl ||true
	@$(DIFF) $(SRCPORTALDIR)/example/cdc.pl $(LMPREFIX)/htdocs/portal/cdc.pl ||true
775
	@# Handler
776 777
	@$(DIFF) $(SRCHANDLERDIR)/lib/Lemonldap/NG/Handler /usr/local/share/perl/$(PERLVERSION)/Lemonldap/NG/Handler ||true
	@$(DIFF) $(SRCHANDLERDIR)/example/scripts/purgeLocalCache $(LMPREFIX)/bin/purgeLocalCache ||true