Makefile 34.6 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/`
Yadd's avatar
Yadd committed
123
DIFF=diff -aurN -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
EXAMPLELANG=en # For static Manager example only
Clément OUDOT's avatar
Clément OUDOT committed
126
ERASECONFIG=1 # Set to 0 if you do not want to replace your configuration
127

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

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 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214
#
# Minification
#
minify:
	@for f in $(SRCMANAGERDIR)/site/static/css/*; do \
		if test "$${f%%.min.css}" = "$$f"; then \
			echo "Compressing $$f"; \
			yui-compressor $$f >$${f%%.css}.min.css; \
		fi; \
	done
	@for f in $(SRCMANAGERDIR)/site/static/js/*; do \
		if test "$${f%%.min.js}" = "$$f"; then \
			echo "Compressing $$f"; \
			yui-compressor $$f >$${f%%.js}.min.js; \
		fi; \
	done
	@for f in `find $(SRCPORTALDIR)/example -type f -name '*.css'`; do \
		if test "$${f%%.min.css}" = "$$f"; then \
			echo "Compressing $$f"; \
			yui-compressor $$f >$${f%%.css}.min.css; \
		fi; \
	done
	@for f in `find $(SRCPORTALDIR)/example -type f -name '*.js'`; do \
		if test "$${f%%.min.js}" = "$$f"; then \
			echo "Compressing $$f"; \
			yui-compressor $$f >$${f%%.js}.min.js; \
		fi; \
	done

215 216 217
#
# Perl libraries configuration
#
Yadd's avatar
Yadd committed
218

219
json:	$(MANAGERJSONDST)
Yadd's avatar
Yadd committed
220

221
$(MANAGERJSONDST):	$(MANAGERJSONSRC)
222
	./scripts/jsongenerator.pl
Yadd's avatar
Yadd committed
223

Yadd's avatar
Yadd committed
224
configure:	json common_conf handler_conf portal_conf manager_conf
225

226 227 228 229 230 231 232 233 234
common_conf:	${SRCCOMMONDIR}/Makefile

handler_conf:	${SRCHANDLERDIR}/Makefile

portal_conf:	${SRCPORTALDIR}/Makefile

manager_conf:	${SRCMANAGERDIR}/Makefile

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

237
${SRCHANDLERDIR}/Makefile:
Yadd's avatar
Yadd committed
238
	@cd ${SRCHANDLERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
239

240
${SRCPORTALDIR}/Makefile:
Yadd's avatar
Yadd committed
241
	@cd ${SRCPORTALDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
242

243
${SRCMANAGERDIR}/Makefile:
Yadd's avatar
Yadd committed
244
	@cd ${SRCMANAGERDIR}; $(PERL) Makefile.PL $(PERLOPTIONS)
245

246 247 248
#
# Perl libraries make
#
249 250 251 252 253 254 255 256 257
common:		$(PERLCOMMONDST)

handler:	$(PERLHANDLERDST)

portal:		$(PERLPORTALDST)

manager:	$(PERLMANAGERDST)

$(PERLCOMMONDST):	common_conf $(PERLCOMMONSRC)
258
	@$(MAKE) -C ${SRCCOMMONDIR}
259

260
$(PERLHANDLERDST):	handler_conf common $(PERLHANDLERSRC)
261
	@$(MAKE) -C ${SRCHANDLERDIR}
262

263
$(PERLPORTALDST):	portal_conf common $(PERLPORTALSRC)
264
	@$(MAKE) -C ${SRCPORTALDIR}
265

266 267
$(PERLMANAGERDST):	manager_conf handler $(PERLMANAGERSRC)
	$(MAKE) -C ${SRCMANAGERDIR}
268

Yadd's avatar
Yadd committed
269
test:		all common_test handler_test portal_test manager_test extra_test
270 271 272 273

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

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

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

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

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

287 288 289
e2e_test:	all prepare_test_server start_web_server launch_protractor stop_web_server

prepare_test_server:
290
	@mkdir -p e2e-tests/conf/lock e2e-tests/conf/persistents/lock
Yadd's avatar
Yadd committed
291
	@$(MAKE) install_webserver_conf \
292 293
		RCONFDIR=e2e-tests/conf \
		ERASECONFIG=1 \
294
		VHOSTLISTEN='*:$(WEBSERVERPORT)' \
295 296
		PORTALDIR=`pwd`/$(SRCPORTALDIR)/example \
		MANAGERDIR=`pwd`/$(SRCMANAGERDIR)/site \
297 298 299
		MANAGERPSGIDIR=`pwd`/e2e-tests \
		DEFDOCDIR=`pwd`/doc \
		FRDOCDIR=`pwd`/po-doc/fr
Yadd's avatar
Yadd committed
300 301
	@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
302

Yadd's avatar
Yadd committed
303 304 305
e2e-tests/conf/apache2.pid: start_web_server

start_web_server:	all prepare_test_server
Yadd's avatar
Yadd committed
306
	# Clean old server if launched
307
	-@[ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid` && sleep 1
308
	# Start web server (designed for Debian, path may be broken else)
309 310
	@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
311
reload_web_server:
Yadd's avatar
Yadd committed
312 313 314 315 316 317
	@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
318
launch_protractor:	all e2e-tests/conf/apache2.pid
319
	# Start e2e tests
Yadd's avatar
Yadd committed
320
	# NB: you must have protractor installed (using npm install -g protractor)
Yadd's avatar
Yadd committed
321
	# and have run update-webdriver at least once and have a node.js > 4.0
322
	@WEBSERVERPORT=$(WEBSERVERPORT) protractor e2e-tests/protractor-conf.js
323 324 325

stop_web_server:
	# Stop web server
Yadd's avatar
Yadd committed
326
	-@ [ -e e2e-tests/conf/apache2.pid ] && kill `cat e2e-tests/conf/apache2.pid`
327
	# Clean
328
	@rm -rf e2e-tests/conf
Yadd's avatar
Yadd committed
329

330 331
restart_web_server: start_web_server

332 333 334 335
#
# INSTALL
#
install:	install_libs install_bin install_site
336

337 338 339
#
# Perl libraires install
#
Yadd's avatar
Yadd committed
340
install_libs:	common_install_libs install_handler_libs install_portal_libs install_manager_libs
341 342

common_install_libs:		common
343
	@$(MAKE) -C ${SRCCOMMONDIR} install
344

Yadd's avatar
Yadd committed
345
install_handler_libs:	handler
346
	@$(MAKE) -C ${SRCHANDLERDIR} install
347

Yadd's avatar
Yadd committed
348
install_portal_libs:		portal
349
	@$(MAKE) -C ${SRCPORTALDIR} install
350

Yadd's avatar
Yadd committed
351
install_manager_libs:	manager
352
	@$(MAKE) -C ${SRCMANAGERDIR} install
353

354
example:
Yadd's avatar
Yadd committed
355
	$(MAKE) install_site install_bin LMPREFIX=$(EXAMPLEROOT)
356

Yadd's avatar
Yadd committed
357
install_bin:	install_conf_dir
358 359
	# Binary install
	@install -v -d $(RBINDIR)
Yadd's avatar
Yadd committed
360
	@cp -f\
361
		${SRCHANDLERDIR}/example/scripts/purgeLocalCache \
Yadd's avatar
Yadd committed
362
		${SRCPORTALDIR}/example/scripts/purgeCentralCache \
363
		${SRCPORTALDIR}/example/scripts/buildPortalWSDL \
Yadd's avatar
Yadd committed
364
		${SRCCOMMONDIR}/scripts/convertConfig \
Yadd's avatar
Bugs :  
Yadd committed
365
		${SRCCOMMONDIR}/scripts/lmMigrateConfFiles2ini \
366
		${SRCCOMMONDIR}/scripts/rotateOidcKeys \
Yadd's avatar
Yadd committed
367 368
		${SRCMANAGERDIR}/scripts/lmConfigEditor \
		${SRCMANAGERDIR}/scripts/lemonldap-ng-cli \
Yadd's avatar
Yadd committed
369
			$(RBINDIR)
370 371
	@if [ ! "$(APACHEUSER)" ]; then \
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
372
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
373 374
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lmConfigEditor; \
375
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RBINDIR)/lemonldap-ng-cli; \
376 377 378
	fi
	@if [ ! "$(APACHEGROUP)" ]; then \
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lmConfigEditor; \
379
		$(PERL) -i -pe 's#__APACHEGROUP__#nobody#g;' $(RBINDIR)/lemonldap-ng-cli; \
380 381
	else \
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lmConfigEditor; \
382
		$(PERL) -i -pe 's#__APACHEGROUP__#$(APACHEGROUP)#g;' $(RBINDIR)/lemonldap-ng-cli; \
383
	fi
384
	@chmod +x $(RBINDIR)/*
385 386 387 388

#
# SITE INSTALL
#
389
install_site:	install_manager_site install_portal_site install_handler_site install_test_site install_examples_site install_doc_site install_webserver_conf
390
	# Site install
391
	@install -v -d $(RCONFDIR)
Clément OUDOT's avatar
Clément OUDOT committed
392 393
	# Check if erase is wanted
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
394
		cp -f _example/etc/for_etc_hosts $(RCONFDIR); \
395
	fi
Yadd's avatar
Yadd committed
396
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/for_etc_hosts
397
	# Fix a lost of rights on the main directory
Yadd's avatar
Yadd committed
398
	@chmod 755 $(RBINDIR) $(RDOCUMENTROOT) $(REXAMPLESDIR) $(RHANDLERDIR) $(RPORTALSKINSDIR) $(RMANAGERSITEDIR) $(RTOOLSDIR) $(RCONFDIR) $(RDATADIR)
399
	@echo
400
	@echo "LemonLDAP::NG v${VERSION} is installed with these parameters:"
401 402 403 404 405
	@echo "  - System configuration: ${CONFDIR}"
	@echo "  - DNS domain (for cookies and virtual hosts): ${DNSDOMAIN}"
	@echo
	@echo "To finish configuration:"
	@echo
406 407 408 409
	@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"
410
	@echo "      include ${CONFDIR}/test-apache$(APACHEVERSION).conf"
411
	@echo
412 413
	@echo "2 - Restart Apache:"
	@echo "      apache$(APACHEVERSION)ctl restart"
414
	@echo
415
	@echo "3 - Run 'make postconf' as root to update /etc/hosts if your DNS service does not known auth.$(DNSDOMAIN) and manager.$(DNSDOMAIN)"
416
	@echo
417 418 419 420 421 422
	@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"
423
	@echo
424
	@if [ ! "$(APACHEUSER)" ]; then \
425
		echo;echo "    Warning, since APACHEUSER was not set, $(APACHESESSIONFILEDIR), $(APACHEPSESSIONFILEDIR), $(CAPTCHADIR) and $(CONFDIR) have permissive permissions."; \
426 427 428
		echo "    Fix them by yourself to restrict their view to apache process only"; \
	fi
	@echo
429

430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452
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

453 454
install_manager_site:	install_conf_dir
	# Manager install
Yadd's avatar
Yadd committed
455 456 457
	@install -v -d ${RMANAGERDIR} $(RMANAGERSTATICDIR) $(RMANAGERPSGIDIR) \
		$(RMANAGERTEMPLATESDIR)
	@cp -pR $(SRCMANAGERDIR)/site/static/* $(RMANAGERSTATICDIR)
458 459 460 461
	@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
462 463 464 465
	@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
466
	$(PERL) -i -pe 's#__MANAGERSTATICDIR__#$(MANAGERRELATIVESTATICDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
467
	$(PERL) -i -pe 's#__MANAGERTEMPLATESDIR__#$(MANAGERTEMPLATESDIR)#g' $(RCONFDIR)/$(CONFFILENAME)
468 469 470 471

install_portal_site:	install_conf_dir
	# Portal install
	@install -v -d $(RPORTALDIR) $(RPORTALSKINSDIR) \
472
		$(RPORTALDIR)/skins/ \
473
		$(RCRONDIR) $(RCONFDIR)
474
	@for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
475 476
		[ -h $(RPORTALDIR)/skins/$$skin ] && rm -f $(RPORTALDIR)/skins/$$skin; \
		install -v -d $(RPORTALSKINSDIR)/$$skin; \
477
	done
Yadd's avatar
Yadd committed
478 479 480
	@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
481
	@cp -pR -f ${SRCPORTALDIR}/example/openid-configuration.pl ${RPORTALDIR}
Yadd's avatar
Yadd committed
482 483
	@cp -pR -f ${SRCPORTALDIR}/example/cdc.pl ${RPORTALDIR}
	@cp -pR -f ${SRCPORTALDIR}/example/register.pl ${RPORTALDIR}
484
	@tar -cf - -C ${SRCPORTALDIR}/example/skins/ $$(ls ${SRCPORTALDIR}/example/skins/) |tar -xf - -C $(RPORTALSKINSDIR)
Yadd's avatar
Yadd committed
485 486 487 488
	@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
489
	@if [ "$(PORTALDIR)/skins/" != "$(PORTALSKINSDIR)/" ]; then \
490
		for skin in $$(ls $(SRCPORTALDIR)/example/skins/); do \
Yadd's avatar
Yadd committed
491 492
			rm -rf $(RPORTALDIR)/skins/$$skin/; \
			ln -s $(PORTALSKINSDIR)/$$skin $(RPORTALDIR)/skins/$$skin; \
493 494 495
		done; \
	fi
	# Cron files
496
	@cp -f $(SRCPORTALDIR)/example/scripts/purgeCentralCache.cron.d $(RCRONDIR)/lemonldap-ng-portal
497
	@if [ ! "$(APACHEUSER)" ]; then \
498
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-portal; \
499
	else \
500
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-portal; \
501
	fi
502
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-portal
503
	# Clean SVN files
Clément OUDOT's avatar
 
Clément OUDOT committed
504
	@rm -rf $$(find ${RPORTALDIR} $(RPORTALSKINSDIR) $(RCRONDIR) $(RCONFDIR) -type d -name .svn)
505 506

install_handler_site:	install_conf_dir
507
	# Handler install
508
	@install -v -d ${RHANDLERDIR}
509
	@cp -f $(SRCHANDLERDIR)/example/scripts/purgeLocalCache.cron.d $(RCRONDIR)/lemonldap-ng-handler
510
	@if [ ! "$(APACHEUSER)" ]; then \
511
		$(PERL) -i -pe 's#__APACHEUSER__#nobody#g;' $(RCRONDIR)/lemonldap-ng-handler; \
512 513 514 515
	else \
		$(PERL) -i -pe 's#__APACHEUSER__#$(APACHEUSER)#g;' $(RCRONDIR)/lemonldap-ng-handler; \
	fi
	@$(PERL) -i -pe 's#__BINDIR__#$(BINDIR)#g;' $(RCRONDIR)/lemonldap-ng-handler
516
	@rm -rf $$(find $(RHANDLERDIR) -type d -name .svn)
517 518

install_test_site:
519
	# Test site install
520
	@install -v -d $(RTESTDIR)
Yadd's avatar
Yadd committed
521
	@cp -pR -f _example/test/* $(RTESTDIR)
522
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
Yadd's avatar
Yadd committed
523
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RTESTDIR)/index.pl
524
	@rm -rf $$(find $(RTESTDIR) -type d -name .svn)
525 526

install_examples_site:
527
	# Examples install
528
	@install -v -d $(REXAMPLESDIR)
529
	@for i in manager portal handler; do \
Yadd's avatar
Yadd committed
530
		cp -a -f lemonldap-ng-$$i/example $(REXAMPLESDIR)/$$i; \
531
	done
Yadd's avatar
Yadd committed
532
	@rm -rf $(REXAMPLESDIR)/portal/skins \
Yadd's avatar
Yadd committed
533
		$(REXAMPLESDIR)/manager/skins \
534
	@rm -rf $$(find $(REXAMPLESDIR) -type d -name .svn)
535
	@$(PERL) -i -pe 's#__SESSIONDIR__#$(APACHESESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
536
	@$(PERL) -i -pe 's#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)/#g;' $(REXAMPLESDIR)/portal/*.pl
537

538
install_doc_site:
539
	# Offline documentation install
540 541
	@rm -rf $(RDEFDOCDIR)
	@install -v -d $(RDEFDOCDIR)
Yadd's avatar
Yadd committed
542
	@cp -a -f doc/* $(RDEFDOCDIR)
543

544
install_conf_dir:	install_sessions_dir install_notif_dir install_captcha_dir
545
	# Configuration files install
546
	@install -v -d $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR)
Clément OUDOT's avatar
Clément OUDOT committed
547
	@if [ "$(ERASECONFIG)" -eq "1" ]; then \
Yadd's avatar
Yadd committed
548
		cp -f $(SRCCOMMONDIR)/$(CONFFILENAME) $(RCONFDIR); \
Yadd's avatar
Yadd committed
549
		$(PERL) -i -pe 's#^dirName\s*=\s*.*#dirName = $(FILECONFIGDIR)#g' $(RCONFDIR)/$(CONFFILENAME); \
Clément OUDOT's avatar
Clément OUDOT committed
550
	fi
551
	@cp _example/conf/lmConf-1.js $(RFILECONFIGDIR)
Yadd's avatar
Yadd committed
552
	@$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g;\
553
		s#__SESSIONDIR__#$(APACHESESSIONFILEDIR)#g;\
554
		s#__PSESSIONDIR__#$(APACHEPSESSIONFILEDIR)#g;\
555
		s#__NOTIFICATIONDIR__#$(APACHEFILENOTIFDIR)#g;' $(RFILECONFIGDIR)/lmConf-1.js
556 557 558 559 560 561 562 563 564
	@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
565 566
	@cp $(SRCCOMMONDIR)/tools/lmConfig.* $(SRCCOMMONDIR)/tools/apache-session-mysql.sql $(RTOOLSDIR)
	@cp $(SRCCOMMONDIR)/tools/sso.schema $(RTOOLSDIR)
Yadd's avatar
Yadd committed
567
	$(PERL) -i -pe 's/__DNSDOMAIN__/$(DNSDOMAIN)/g' $(RCONFDIR)/$(CONFFILENAME)
568
	@rm -rf $$(find $(RCONFDIR) $(RFILECONFIGDIR) $(RTOOLSDIR) -type d -name .svn)
569 570

install_sessions_dir:
571
	@install -m 777 -v -d $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR)
572 573
	# Fix Apache::Session directories permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
574
		chown $(APACHEUSER) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
575
		if [ "$(APACHEGROUP)" != "" ]; then \
576
			chgrp $(APACHEGROUP) $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR) || exit 1; \
577
		fi; \
578
		chmod 770 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
579
	else \
580
		chmod 777 $(RAPACHESESSIONFILEDIR) $(RAPACHESESSIONFILELOCKDIR) $(RAPACHEPSESSIONFILEDIR) $(RAPACHEPSESSIONFILELOCKDIR); \
581 582
	fi

583 584 585 586 587 588 589 590 591 592 593 594 595
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

596
install_captcha_dir:
597
	@install -m 777 -v -d $(RCAPTCHADIR)
598 599
	# Fix captcha directory permissions
	@if [ "$(APACHEUSER)" != "" ]; then \
600
		chown $(APACHEUSER) $(RCAPTCHADIR) || exit 1; \
601
		if [ "$(APACHEGROUP)" != "" ]; then \
602
			chgrp $(APACHEGROUP) $(RCAPTCHADIR) || exit 1; \
603
		fi; \
604
		chmod 770 $(RCAPTCHADIR); \
605
	else \
606
		chmod 777 $(RCAPTCHADIR); \
607 608
	fi

609
postconf_hosts:
Clément OUDOT's avatar
Clément OUDOT committed
610
	@cat ${CONFDIR}/for_etc_hosts >> /etc/hosts
611 612
	@echo "/etc/hosts was updated"

613
postconf: postconf_hosts
614 615
	@echo "Post configuration done"

616 617
uninstall:	configure handler_uninstall portal_uninstall manager_uninstall

618 619 620 621
common_uninstall:	common
	@$(MAKE) -C ${SRCCOMMONDIR} uninstall
	@rm -vf common_uninstall

622
handler_uninstall:	handler
623
	@$(MAKE) -C ${SRCHANDLERDIR} uninstall
624
	@rm -vf handler_uninstall
625 626

portal_uninstall:		portal
627
	@$(MAKE) -C ${SRCPORTALDIR} uninstall
628
	@rm -vf portal_uninstall
629 630

manager_uninstall:	manager
631
	@$(MAKE) -C ${SRCMANAGERDIR} uninstall
632
	@rm -vf manager_uninstall
633

634
dist:	clean
635 636 637 638 639 640 641 642 643 644
	@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
645
	@mkdir -p lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
646
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|debian\)") lemonldap-ng-$(VERSION)
647 648
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
649
	@rm -rf lemonldap-ng-$(VERSION)/lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
650
	@$(COMPRESS) lemonldap-ng-$(VERSION).$(COMPRESSSUFFIX) lemonldap-ng-$(VERSION)
651
	@rm -rf lemonldap-ng-$(VERSION)
652

653

654 655
debian-dist:	clean
	@mkdir -p lemonldap-ng-$(VERSION)
656
	@cp -pRH $$(find * -maxdepth 0|grep -v -e "\(lemonldap-ng-$(VERSION)\|rpm\)") lemonldap-ng-$(VERSION)
657 658
	@rm -rf $$(find lemonldap-ng-$(VERSION) -name .svn -print)
	@find $$dir -name '*.bak' -delete
659 660 661 662
	@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
663 664 665
	@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
666 667 668

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

Yadd's avatar
Yadd committed
670 671 672 673 674 675 676 677
manifest:   configure
	@for i in ${SRCCOMMONDIR} ${SRCHANDLERDIR} ${SRCPORTALDIR} ${SRCMANAGERDIR}; do \
		cd $$i; \
		make manifest; \
		rm -vf MANIFEST.*; \
		cd -; \
	done

678
cpan:	clean configure common_cpan handler_cpan portal_cpan manager_cpan
Clément OUDOT's avatar
Clément OUDOT committed
679
	for i in Common Portal Handler Manager; do \
Yadd's avatar
Yadd committed
680
		$(UNCOMPRESS) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) \
Clément OUDOT's avatar
Clément OUDOT committed
681
			$$($(LISTCOMPRESSED) Lemonldap-NG-$$i-*.$(COMPRESSSUFFIX) |grep META.yml); \
Yadd's avatar
Yadd committed
682
		mv Lemonldap-NG-$$i-*/META.yml lemonldap-ng-$$($(PERL) -e "print lc('$$i')")/; \
Yadd's avatar
Yadd committed
683
		rm -rf Lemonldap-NG-$$i*/; \
Yadd's avatar
Yadd committed
684
		done
685 686 687 688

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

handler_cpan:	handler_conf
691 692
	@$(MAKE) -C ${SRCHANDLERDIR} dist
	@mv ${SRCHANDLERDIR}/Lemonldap*.gz .
693 694

portal_cpan:		portal_conf
695 696
	@$(MAKE) -C ${SRCPORTALDIR} dist
	@mv ${SRCPORTALDIR}/Lemonldap*.gz .
697 698

manager_cpan:	manager_conf
699 700
	@$(MAKE) -C ${SRCMANAGERDIR} dist
	@mv ${SRCMANAGERDIR}/Lemonldap*.gz .
701

702
documentation:
703
	@cd doc/ && ../scripts/doc.pl
704

705
doxygen:	clean
Yadd's avatar
Yadd committed
706
	$(PERL) -i -pe 's/^(PROJECT_NUMBER\s*=\s*)\d.*$$/$${1}'$(VERSION)'/' Doxyfile
707 708 709 710 711 712
	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
713
	$(PERL) -i -pe 's/Graphical Class Hierarchy/Class Collaboration Graph/' doc/devel/html/inherits.html doc/devel/html/tree.html
714 715
	# 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
716

717 718
distclean:	clean

Yadd's avatar
Yadd committed
719
clean:		common_clean handler_clean portal_clean manager_clean omegat-clean omegat-fr-clean stop_web_server
Yadd's avatar
Yadd committed
720
	@rm -f $$(find */ -name '*bak' -delete)
Yadd's avatar
Yadd committed
721
	@rm -rf $(EXAMPLEROOT) example/ doc/devel
Yadd's avatar
Yadd committed
722
	@rm -vf *gz *zip
Yadd's avatar
Yadd committed
723
	@rm -rf lemonldap-ng-$(VERSION)
Yadd's avatar
Yadd committed
724
	@echo "Cleaned"
725 726

common_clean:
Yadd's avatar
Yadd committed
727
	@if test -e ${SRCCOMMONDIR}/Makefile;then $(MAKE) -C ${SRCCOMMONDIR} distclean;fi
728 729 730
	@rm -vf common*

handler_clean:
Yadd's avatar
Yadd committed
731
	@if test -e ${SRCHANDLERDIR}/Makefile;then $(MAKE) -C ${SRCHANDLERDIR} distclean;fi
732 733 734
	@rm -vf handler*

portal_clean:
Yadd's avatar
Yadd committed
735
	@if test -e ${SRCPORTALDIR}/Makefile;then $(MAKE) -C ${SRCPORTALDIR} distclean;fi
736 737 738
	@rm -vf portal*

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

742
debian-local-packages: debian-dist
Yadd's avatar
Yadd committed
743
	mv lemonldap-ng_$(VERSION).orig.$(COMPRESSSUFFIX) /tmp/
744 745
	version=$(VERSION) && \
	cd /tmp/ && \
Yadd's avatar
Yadd committed
746
	rm -rf lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
747
	$(UNCOMPRESS) lemonldap-ng_$$version.orig.$(COMPRESSSUFFIX) && \
748
	cd lemonldap-ng-$$version && \
Yadd's avatar
Yadd committed
749
	debuild -us -uc -b --lintian-opts -i \
Yadd's avatar
Yadd committed
750 751 752
		--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
753

754 755 756 757 758 759 760 761 762 763 764 765 766
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
767
	cd /tmp/lemonldap-ng-$(VERSION) && \
Yadd's avatar
Yadd committed
768 769 770 771 772 773
	$(SU) debi

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

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

Yadd's avatar
Yadd committed
775
debian-diff:
Yadd's avatar
Yadd committed
776
	@# Portal
777 778 779
	@$(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
780
	@for i in $(PORTALSKINS); do \
781
		$(DIFF) -x 'jquery*' $(SRCPORTALDIR)/example/skins/$$i $(DIFFPREFIX)/usr/share/lemonldap-ng/portal-skins/$$i; \
Yadd's avatar
Yadd committed
782
	done ||true
783 784 785 786 787 788
	@$(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