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

3 4 5
# Prefix for packaging
DESTDIR=

6 7 8 9 10 11 12
# Flag for optimizations
PROD=no

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

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

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

Yadd's avatar
Yadd committed
34
EXAMPLEROOT=`pwd`/example
35 36

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

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

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

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

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

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

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

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

101
# Apache user/group
102 103 104
APACHEUSER=
APACHEGROUP=

105
# Apache version
Yadd's avatar
Yadd committed
106
APACHEVERSION=2.X
107

108
# DNS Domain for cookie and virtual hosts
109 110
DNSDOMAIN=example.com

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

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

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

126

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

130
# GENERATED SRC FILESlemonldap-ng-common/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm
131
MANAGERJSONSRC= scripts/jsongenerator.pl \
Yadd's avatar
Yadd committed
132
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build.pm \
133
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build/Attributes.pm \
134 135
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Build/Tree.pm \
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Conf/Zero.pm
136 137
MANAGERJSONDST=$(SRCMANAGERDIR)/site/static/struct.json \
		$(SRCMANAGERDIR)/site/static/js/conftree.js \
Yadd's avatar
Yadd committed
138
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Attributes.pm \
139
		$(SRCMANAGERDIR)/lib/Lemonldap/NG/Manager/Constants.pm \
140
		$(SRCCOMMONDIR)/lib/Lemonldap/NG/Common/Conf/DefaultValues.pm \
141
		$(SRCCOMMONDIR)/lib/Lemonldap/NG/Common/Conf/Constants.pm \
142
		_example/conf/lmConf-1.js
143 144 145 146 147 148 149 150

# Javascript and CSS to minify
JSSRCFILES:=$(shell find $(SRCMANAGERDIR)/site/static/js $(SRCPORTALDIR)/example -type f -name '*.js'|grep -v .min.js)
CSSSRCFILES:=$(shell find $(SRCMANAGERDIR)/site/static/css  $(SRCPORTALDIR)/example -type f -name '*.css'|grep -v .min.css)

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

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

Yadd's avatar
Yadd committed
186 187 188
#
# Minification
#
189 190 191
minify: $(JSDSTFILES) $(CSSDSTFILES)

%.min.css: %.css
192 193
	@echo "Compressing $*.css"; \
	@yui-compressor $*.css > $*.min.css
194 195

%.min.js: %.js
196 197
	@echo "Compressing $*.js"; \
	@yui-compressor $*.js > $*.min.js
198

Yadd's avatar
Yadd committed
199

200 201 202
#
# Perl libraries configuration
#
Yadd's avatar
Yadd committed
203

204
json:	$(MANAGERJSONDST)
Yadd's avatar
Yadd committed
205
	-$(MAKE) minify
Yadd's avatar
Yadd committed
206

207
$(MANAGERJSONDST):	$(MANAGERJSONSRC)
208
	./scripts/jsongenerator.pl
Yadd's avatar
Yadd committed
209

Yadd's avatar
Yadd committed
210
configure:	json common_conf handler_conf portal_conf manager_conf
211

212 213 214 215 216 217 218 219 220
common_conf:	${SRCCOMMONDIR}/Makefile

handler_conf:	${SRCHANDLERDIR}/Makefile

portal_conf:	${SRCPORTALDIR}/Makefile

manager_conf:	${SRCMANAGERDIR}/Makefile

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

223
${SRCHANDLERDIR}/Makefile:
Yadd's avatar
Yadd committed
224
	@cd ${SRCHANDLERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
225

226
${SRCPORTALDIR}/Makefile:
Yadd's avatar
Yadd committed
227
	@cd ${SRCPORTALDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
228

229
${SRCMANAGERDIR}/Makefile:
Yadd's avatar
Yadd committed
230
	@cd ${SRCMANAGERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
231

232 233 234
#
# Perl libraries make
#
235
common:		common_conf
236
	@$(MAKE) -C ${SRCCOMMONDIR}
237

238
handler:	handler_conf
239
	@$(MAKE) -C ${SRCHANDLERDIR}
240

241
portal:		portal_conf
242
	@$(MAKE) -C ${SRCPORTALDIR}
243

244
manager:	manager_conf
245
	$(MAKE) -C ${SRCMANAGERDIR}
246

Yadd's avatar
Yadd committed
247
test:		all common_test handler_test portal_test manager_test extra_test
248 249 250 251

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

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

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

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

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

265 266 267
e2e_test:	all prepare_test_server start_web_server launch_protractor stop_web_server

prepare_test_server:
268
	@mkdir -p e2e-tests/conf/lock e2e-tests/conf/persistents/lock
Yadd's avatar
Yadd committed
269
	@$(MAKE) install_webserver_conf \
270 271
		RCONFDIR=e2e-tests/conf \
		ERASECONFIG=1 \
272
		VHOSTLISTEN='*:$(WEBSERVERPORT)' \
273 274
		PORTALDIR=`pwd`/$(SRCPORTALDIR)/example \
		MANAGERDIR=`pwd`/$(SRCMANAGERDIR)/site \
275 276 277
		MANAGERPSGIDIR=`pwd`/e2e-tests \
		DEFDOCDIR=`pwd`/doc \
		FRDOCDIR=`pwd`/po-doc/fr
Yadd's avatar
Yadd committed
278 279
	@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
280

Yadd's avatar
Yadd committed
281 282 283
e2e-tests/conf/apache2.pid: start_web_server

start_web_server:	all prepare_test_server
Yadd's avatar
Yadd committed
284
	# Clean old server if launched
285
	-@[ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid` && sleep 1
286
	# Start web server (designed for Debian, path may be broken else)
287 288
	@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
289
reload_web_server:
Yadd's avatar
Yadd committed
290 291 292 293 294 295
	@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
296
launch_protractor:	all e2e-tests/conf/apache2.pid
297
	# Start e2e tests
Yadd's avatar
Yadd committed
298
	# NB: you must have protractor installed (using npm install -g protractor)
Yadd's avatar
Yadd committed
299
	# and have run update-webdriver at least once and have a node.js > 4.0
300
	@WEBSERVERPORT=$(WEBSERVERPORT) protractor e2e-tests/protractor-conf.js
301 302 303

stop_web_server:
	# Stop web server
Yadd's avatar
Yadd committed
304
	-@ [ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid`
305
	# Clean
306
	@rm -rf e2e-tests/conf
Yadd's avatar
Yadd committed
307

308 309
restart_web_server: start_web_server

310 311 312 313
#
# INSTALL
#
install:	install_libs install_bin install_site
314

315 316 317
#
# Perl libraires install
#
Yadd's avatar
Yadd committed
318
install_libs:	common_install_libs install_handler_libs install_portal_libs install_manager_libs
319 320

common_install_libs:		common
321
	@$(MAKE) -C ${SRCCOMMONDIR} install
322

Yadd's avatar
Yadd committed
323
install_handler_libs:	handler
324
	@$(MAKE) -C ${SRCHANDLERDIR} install
325

Yadd's avatar
Yadd committed
326
install_portal_libs:		portal
327
	@$(MAKE) -C ${SRCPORTALDIR} install
328

Yadd's avatar
Yadd committed
329
install_manager_libs:	manager
330
	@$(MAKE) -C ${SRCMANAGERDIR} install
331

332
example:
Yadd's avatar
Yadd committed
333
	$(MAKE) install_site install_bin LMPREFIX=$(EXAMPLEROOT)
334

Yadd's avatar
Yadd committed
335
install_bin:	install_conf_dir
336 337
	# Binary install
	@install -v -d $(RBINDIR)
Yadd's avatar
Yadd committed
338
	@cp -f\
339
		${SRCHANDLERDIR}/example/scripts/purgeLocalCache \
Yadd's avatar
Yadd committed
340
		${SRCPORTALDIR}/example/scripts/purgeCentralCache \
341
		${SRCPORTALDIR}/example/scripts/buildPortalWSDL \
Yadd's avatar
Yadd committed
342
		${SRCCOMMONDIR}/scripts/convertConfig \
Yadd's avatar
Bugs :  
Yadd committed
343
		${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \
344
		${SRCCOMMONDIR}/scripts/rotateOidcKeys \
Yadd's avatar
Yadd committed
345 346
		${SRCMANAGERDIR}/scripts/lmConfigEditor \
		${SRCMANAGERDIR}/scripts/lemonldap-ng-cli \
Yadd's avatar
Yadd committed
347
			$(RBINDIR)
348 349
	@if [ ! "$(APACHEUSER)" ]; then \
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
350
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
351 352
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lmConfigEditor; \
353
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lemonldap-ng-cli; \
354 355 356
	fi
	@if [ ! "$(APACHEGROUP)" ]; then \
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
357
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
358 359
	else \
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lmConfigEditor; \
360
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lemonldap-ng-cli; \
361
	fi
362
	@chmod +x $(RBINDIR)/*
363 364 365 366

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

408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430
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

431 432
install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
433 434 435
	@install -v -d ${RMANAGERDIR} $(RMANAGERSTATICDIR) $(RMANAGERPSGIDIR) \
		$(RMANAGERTEMPLATESDIR)
	@cp -pR $(SRCMANAGERDIR)/site/static/* $(RMANAGERSTATICDIR)
436 437 438 439
	@for f in $(SRCMANAGERDIR)/site/templates/*.tpl; do \
		./scripts/transform-templates jsminified $(JSCOMPRESS) cssminified $(CSSCOMPRESS) <$$f \
			> $(RMANAGERTEMPLATESDIR)/`basename $$f`; \
	done
Yadd's avatar
Yadd committed
440 441 442 443
	@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
444
	$(PERL) -i -pe 's#__MANAGERSTATICDIR__#$(MANAGERRELATIVESTATICDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
445
	$(PERL) -i -pe 's#__MANAGERTEMPLATESDIR__#$(MANAGERTEMPLATESDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
446 447 448 449

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
450
		$(RPORTALDIR)/skins/ \
451
		$(RCRONDIR) $(RCONFDIR)
452
	@for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
453 454
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
455
	done
Yadd's avatar
Yadd committed
456 457 458
	@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
459
	@cp -pR -f ${SRCPORTALDIR}/example/openid-configuration.pl ${RPORTALDIR}
Yadd's avatar
Yadd committed
460 461
	@cp -pR -f ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/register.pl ${RPORTALDIR}
462
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
463 464 465 466
	@for f in `find $(RPORTALSKINSDIR) -type f -name '*.tpl'`; do \
		./scripts/transform-templates jsminified $(JSCOMPRESS) cssminified $(CSSCOMPRESS) <$$f >$$f.tmp; \
		mv -f $$f.tmp $$f; \
	done
Yadd's avatar
Yadd committed
467
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
468
		for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
469 470
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
471 472 473
		done; \
	fi
	# Cron files
474
	@cp -f $(SRCPORTALDIR)/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
475
	@if [ ! "$(APACHEUSER)" ]; then \
476
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
477
	else \
478
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
479
	fi
480
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
481
	# Clean SVN files
Clément OUDOT's avatar
 
Clément OUDOT committed
482
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
483 484

install_handler_site:	install_conf_dir
485
	# Handler install
486
	@install -v -d ${RHANDLERDIR}
487
	@cp -f $(SRCHANDLERDIR)/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
488
	@if [ ! "$(APACHEUSER)" ]; then \
489
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
490 491 492 493
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
494
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
495 496

install_test_site:
497
	# Test site install
498
	@install -v -d $(RTESTDIR)
Yadd's avatar
Yadd committed
499
	@cp -pR -f _example/test/* $(RTESTDIR)
500
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
501
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
502
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
503 504

install_examples_site:
505
	# Examples install
506
	@install -v -d $(REXAMPLESDIR)
507
	@for i in manager portal handler; do \
Yadd's avatar
Yadd committed
508
		cp -a -f lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
509
	done
Yadd's avatar
Yadd committed
510
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
511
		$(REXAMPLESDIR)/manager/skins \
512
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
513
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
514
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
515

516
install_doc_site:
517
	# Offline documentation install
518 519
	@rm -rf $(RDEFDOCDIR)
	@install -v -d $(RDEFDOCDIR)
Yadd's avatar
Yadd committed
520
	@cp -a -f doc/* $(RDEFDOCDIR)
521

522
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
523
	# Configuration files install
524
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
525
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
526
		cp -f $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
527
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
528
	fi
529
	@cp _example/conf/lmConf-1.js $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
530
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
531
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
532
		s#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)#g;\
533
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;' $(RFILECONFIGDIR)/lmConf-1.js
534 535 536 537 538 539 540 541 542
	@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
543 544
	@cp $(SRCCOMMONDIR)/tools/lmConfig.* $(SRCCOMMONDIR)/tools/apache-session-mysql.sql $(RTOOLSDIR)
	@cp $(SRCCOMMONDIR)/tools/sso.schema $(RTOOLSDIR)
Yadd's avatar
Yadd committed
545
	$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
546
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
547 548

install_sessions_dir:
549
	@install -m 777 -v -d $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR)
550 551
	# Fix Apache::Session directories permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
552
		chown $(APACHEUSER) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
553
		if [ "$(APACHEGROUP)" != "" ]; then \
554
			chgrp $(APACHEGROUP) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
555
		fi; \
556
		chmod 770 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
557
	else \
558
		chmod 777 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
559 560
	fi

561 562 563 564 565 566 567 568 569 570 571 572 573
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

574
install_captcha_dir:
575
	@install -m 777 -v -d $(RCAPTCHADIR)
576 577
	# Fix captcha directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
578
		chown $(APACHEUSER) $(RCAPTCHADIR) || exit 1; \
579
		if [ "$(APACHEGROUP)" != "" ]; then \
580
			chgrp $(APACHEGROUP) $(RCAPTCHADIR) || exit 1; \
581
		fi; \
582
		chmod 770 $(RCAPTCHADIR); \
583
	else \
584
		chmod 777 $(RCAPTCHADIR); \
585 586
	fi

587
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
588
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
589 590
	@echo "/etc/hosts was updated"

591
postconf: postconf_hosts
592 593
	@echo "Post configuration done"

594 595
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

596 597 598 599
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

600
handler_uninstall:	handler
601
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
602
	@rm -vf handler_uninstall
603 604

portal_uninstall:		portal
605
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
606
	@rm -vf portal_uninstall
607 608

manager_uninstall:	manager
609
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
610
	@rm -vf manager_uninstall
611

612
dist:	clean
613 614 615 616 617 618 619 620 621 622
	@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
623
	@mkdir -p lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
624
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\)") lemonldap-ng-$(VERSION)
625 626
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
627
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
628
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
629
	@rm -rf lemonldap-ng-$(VERSION)
630

631

632 633
debian-dist:	clean
	@mkdir -p lemonldap-ng-$(VERSION)
634
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|rpm\)") lemonldap-ng-$(VERSION)
635 636
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
637 638 639 640
	@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
641 642 643
	@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
644 645 646

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

Yadd's avatar
Yadd committed
648 649 650 651 652 653 654 655
manifest:   configure
	@for i in ${SRCCOMMONDIR} ${SRCHANDLERDIR} ${SRCPORTALDIR} ${SRCMANAGERDIR}; do \
		cd $$i; \
		make manifest; \
		rm -vf MANIFEST.*; \
		cd -; \
	done

656
cpan:	clean configure common_cpan handler_cpan portal_cpan manager_cpan
Clément OUDOT's avatar
Clément OUDOT committed
657
	for i in Common Portal Handler Manager; do \
Yadd's avatar
Yadd committed
658
		$(UNCOMPRESS) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) \
Clément OUDOT's avatar
Clément OUDOT committed
659
			$$($(LISTCOMPRESSED) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) |grep META.yml); \
Yadd's avatar
Yadd committed
660
		mv Lemonldap-NG-$$i-*/META.yml lemonldap-ng-$$($(PERL) -e "print lc('$$i')")/; \
Yadd's avatar
Yadd committed
661
		rm -rf Lemonldap-NG-$$i*/; \
Yadd's avatar
Yadd committed
662
		done
663 664 665 666

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

handler_cpan:	handler_conf
669 670
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
671 672

portal_cpan:		portal_conf
673 674
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
675 676

manager_cpan:	manager_conf
677 678
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
679

680
documentation:
681
	@cd doc/ && ../scripts/doc.pl
682

683
doxygen:	clean
Yadd's avatar
Yadd committed
684
	$(PERL) -i -pe 's/^(PROJECT_NUMBER\s*=\s*)\d.*$$/$${1}'$(VERSION)'/' Doxyfile
685 686 687 688 689 690
	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
691
	$(PERL) -i -pe 's/Graphical Class Hierarchy/Class Collaboration Graph/' doc/devel/html/inherits.html doc/devel/html/tree.html
692 693
	# 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
694

695 696
distclean:	clean

Yadd's avatar
Yadd committed
697
clean:		common_clean handler_clean portal_clean manager_clean omegat-clean omegat-fr-clean stop_web_server
Yadd's avatar
Yadd committed
698
	@rm -f $$(find */ -name '*bak' -delete)
Yadd's avatar
Yadd committed
699
	@rm -rf $(EXAMPLEROOT) example/ doc/devel
Yadd's avatar
Yadd committed
700
	@rm -vf *gz *zip
Yadd's avatar
Yadd committed
701
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
702
	@echo "Cleaned"
703 704

common_clean:
Yadd's avatar
Yadd committed
705
	@if test -e ${SRCCOMMONDIR}/Makefile;then $(MAKE) -C ${SRCCOMMONDIR} distclean;fi
706 707 708
	@rm -vf common*

handler_clean:
Yadd's avatar
Yadd committed
709
	@if test -e ${SRCHANDLERDIR}/Makefile;then $(MAKE) -C ${SRCHANDLERDIR} distclean;fi
710 711 712
	@rm -vf handler*

portal_clean:
Yadd's avatar
Yadd committed
713
	@if test -e ${SRCPORTALDIR}/Makefile;then $(MAKE) -C ${SRCPORTALDIR} distclean;fi
714 715 716
	@rm -vf portal*

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

720
debian-local-packages: debian-dist
Yadd's avatar
Yadd committed
721
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
722 723
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
724
	rm -rf lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
725
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
726
	cd lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
727
	debuild -us -uc -b --lintian-opts -i \
Yadd's avatar
Yadd committed
728 729 730
		--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
731

732 733 734 735 736 737 738 739 740 741 742 743 744
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
745
	cd /tmp/lemonldap-ng-$(VERSION) && \
Yadd's avatar
Yadd committed
746 747 748 749 750 751
	$(SU) debi

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

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

Yadd's avatar
Yadd committed
753
debian-diff:
Yadd's avatar
Yadd committed
754
	@# Portal
755 756 757
	@$(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
758
	@for i in $(PORTALSKINS); do \
759
		$(DIFF) -x 'jquery*' $(SRCPORTALDIR)/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/portal-skins/$$i; \
Yadd's avatar
Yadd committed
760
	done ||true
761 762 763 764 765 766
	@$(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