# @file Makefile
# Makefile for installing, creating documentation etc.
# @author: Roland Hieber (roland.hieber@wilhelm-gym.net)
# @date: 12.11.2007
# 
# Copyright © 2007 Roland Hieber
# 
# Permission is hereby granted, free of charge, to any person obtaining
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#  
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#

DESTDIR?=
SOURCEFILES=src/*.php includes/*.inc
MODULE_DOC_FILES=doc/source/html/* doc/source/latex/*
LN=ln -f
RM=rm -rf
MKDIR=mkdir -p

# hardlink the files to their destinations
# TODO move documentation where Jörg wants it ;)
links:
	# documentation
	$(MKDIR) $(DESTDIR)/usr/share/doc/iserv/mod/room-reservation/source/
	$(LN) doc/{TODO,changelog.html} $(DESTDIR)/usr/share/doc/iserv/mod/room-reservation/
	$(LN) doc/source/html/* $(DESTDIR)/usr/share/doc/iserv/mod/room-reservation/source/
	
	# images
	if [ ! -d $(DESTDIR)/usr/share/iserv/www/img/default/16/ ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/www/img/default/16/; fi
	$(LN) img/16/*.png $(DESTDIR)/usr/share/iserv/www/img/default/16/
	if [ ! -d $(DESTDIR)/usr/share/iserv/www/img/default/24/ ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/www/img/default/24/; fi
	$(LN) img/24/*.png $(DESTDIR)/usr/share/iserv/www/img/default/24/
	if [ ! -d $(DESTDIR)/usr/share/iserv/www/img/default/32/ ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/www/img/default/32/; fi
	$(LN) img/32/*.png $(DESTDIR)/usr/share/iserv/www/img/default/32/
	
	# includes
	$(MKDIR) $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation
	$(LN) includes/*.inc $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/
	if [ ! -e $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc ] ; then touch $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc; fi
ifeq ($(shell id -u),0)
	chmod g+w $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc
	chown www-data $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc
endif
	
	# i18n
	if [ ! -d $(DESTDIR)/usr/share/iserv/locale/de/ ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/locale/de/; fi
	$(LN) lang/*.po $(DESTDIR)/usr/share/iserv/locale/de/
	
	# navigation
	if [ ! -d $(DESTDIR)/usr/share/iserv/www/nav/admin ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/www/nav/admin; fi
	$(LN) nav/*.mod $(DESTDIR)/usr/share/iserv/www/nav/
	$(LN) nav/admin/*.mod $(DESTDIR)/usr/share/iserv/www/nav/admin/
	
	# privileges
	if [ ! -d $(DESTDIR)/usr/share/iserv/priv/ ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/priv/; fi
	$(LN) priv/* $(DESTDIR)/usr/share/iserv/priv/
	
	# SQL tables
	if [ ! -d $(DESTDIR)/usr/share/iserv/db/log_module ]; then $(MKDIR) $(DESTDIR)/usr/share/iserv/db/log_module; fi
	$(LN) sql/*.sql $(DESTDIR)/usr/share/iserv/db/
	$(LN) sql/log_module/* $(DESTDIR)/usr/share/iserv/db/log_module
	
	# web pages
	$(MKDIR) $(DESTDIR)/usr/share/iserv/www/mod_room-reservation/admin
	$(LN) src/index.php $(DESTDIR)/usr/share/iserv/www/mod_room-reservation/
	$(LN) src/admin/config.php $(DESTDIR)/usr/share/iserv/www/mod_room-reservation/admin/
	
	# additional files
	$(MKDIR) $(DESTDIR)/usr/share/iserv/modules/room-reservation
	$(LN) maint/update-iserv1-iserv2.pl $(DESTDIR)/usr/share/iserv/modules/room-reservation
	chmod +x $(DESTDIR)/usr/share/iserv/modules/room-reservation/update-iserv1-iserv2.pl

# build doxygen documentation from source
sourcedoc:
	doxygen

# install everything
install: sourcedoc links
ifeq ($(shell echo $USER),root)
	chkdb -r
	chkpriv
	chklocale
endif

# uninstalling
uninstall:
	$(RM) $(DESTDIR)/usr/share/doc/iserv/mod/mod_room-reservation
	$(RM) $(DESTDIR)/usr/share/iserv/locale/de/mod_room-reservation.po
	$(RM) $(DESTDIR)/usr/share/iserv/db/mod_room-reservation.sql
	$(RM) $(DESTDIR)/usr/share/iserv/db/log_module/mod_room-reservation
	$(RM) $(DESTDIR)/usr/share/iserv/www/nav/79mod_room-reservation.mod
	$(RM) $(DESTDIR)/usr/share/iserv/priv/mod_room-reservation
	$(RM) $(DESTDIR)/usr/share/iserv/www/nav/admin/99mod_room-reservation.mod
	$(RM) $(DESTDIR)/usr/share/iserv/www/img/default/{16,24,32}/mod_room-reservation_{timeslice,index,config}.png
	$(RM) $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation
	$(RM) $(DESTDIR)/usr/share/iserv/www/mod_room-reservation
	$(RM) $(DESTDIR)/usr/share/iserv/modules/room-reservation
	
	psql -c "DELETE FROM log_module WHERE module='Room Reservation Schedule';"
	chklocale
	
	@echo
	@echo If you do not need the SQL tables anymore, remove them by running
	@echo '  psql -c "DROP TABLE mod_roomreservation_bookings;"'
	@echo After that, all bookings are unrecoverably deleted!
	@echo

# clean up
clean: distclean

distclean:
	$(RM) doc/source

.PHONY: clean