X-Git-Url: https://git.rohieb.name/iserv-mod-room-reservation.git/blobdiff_plain/6df989565d1017673acc2ee4c8006a08c89648e8..ef8e5846088f6c71fb5d446686b87434a2e92550:/Makefile

diff --git a/Makefile b/Makefile
old mode 100755
new mode 100644
index f9f81f3..5ddf5b6
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,5 @@
-#
 # @file Makefile
-# Makefile for installing, creating documentation etc
+# Makefile for installing, creating documentation etc.
 # @author: Roland Hieber (roland.hieber@wilhelm-gym.net)
 # @date: 12.11.2007
 # 
@@ -25,6 +24,7 @@
 # THE SOFTWARE.
 #
 
+DESTDIR?=
 SOURCEFILES=src/*.php includes/*.inc
 MODULE_DOC_FILES=doc/source/html/* doc/source/latex/*
 LN=ln -f
@@ -34,31 +34,51 @@ MKDIR=mkdir -p
 # hardlink the files to their destinations
 # TODO move documentation where Jörg wants it ;)
 links:
-	$(MKDIR) /usr/share/doc/iserv/mod/room-reservation/source/
-	$(LN) doc/{LICENSE*,TODO,changelog*} /usr/share/doc/iserv/mod/room-reservation/
-	$(LN) doc/source/html/* /usr/share/doc/iserv/mod/room-reservation/source/
+	# 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/
 	
-	$(LN) img/16/*.png /usr/share/iserv/www/img/default/16/
-	$(LN) img/24/*.png /usr/share/iserv/www/img/default/24/
-	$(LN) img/32/*.png /usr/share/iserv/www/img/default/32/
+	# 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/
 	
-	$(MKDIR) /usr/share/iserv/www/inc/mod_room-reservation
-	$(LN) includes/*.inc /usr/share/iserv/www/inc/mod_room-reservation/
-	chmod 664 /usr/share/iserv/www/inc/mod_room-reservation/config.inc
-	chown www-data /usr/share/iserv/www/inc/mod_room-reservation/config.inc
+	# includes
+	$(MKDIR) $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation
+	$(LN) includes/*.inc $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/
+	touch $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc
 	
-	$(LN) lang/*.po /usr/share/iserv/locale/de/
+	# 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/
 	
-	$(LN) nav/*.mod /usr/share/iserv/www/nav/
-	$(LN) nav/admin/*.mod /usr/share/iserv/www/nav/admin
-
-	$(LN) priv/* /usr/share/iserv/priv/
+	# 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
 	
-	$(LN) sql/*.sql /usr/share/iserv/db/
+	# 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/
 	
-	$(MKDIR) /usr/share/iserv/www/mod_room-reservation/admin
-	$(LN) src/index.php /usr/share/iserv/www/mod_room-reservation/
-	$(LN) src/admin/config.php /usr/share/iserv/www/mod_room-reservation/admin/
+	# additional files
+	$(MKDIR) $(DESTDIR)/usr/share/iserv/modules/room-reservation
+	$(LN) 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:
@@ -66,33 +86,42 @@ sourcedoc:
 
 # install everything
 install: sourcedoc links
+ifdef $(DESTDIR)
+# only useful if sql data is in the right place
+	chmod g+w $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc
+	chgrp www-data $(DESTDIR)/usr/share/iserv/www/inc/mod_room-reservation/config.inc
 	chkdb -r
 	chkpriv
-	
-	@if [ -z "`psql -qc "SELECT * FROM log_module;" 2>&1 |grep ERROR`" -a -z \
-	  "`psql -qc \"SELECT COUNT(*) FROM log_module WHERE module = 'Room Reservation Schedule';\" 2>&1 |grep ' 1'`" ]; then \
-	  echo psql -c "INSERT INTO log_module VALUES('Room Reservation Schedule');"; \
-	  psql -c "INSERT INTO log_module VALUES('Room Reservation Schedule');"; \
-	fi;
 	chklocale
+endif
 
 # uninstalling
 uninstall:
-	$(RM) /usr/share/doc/iserv/mod/mod_room-reservation
-	$(RM) /usr/share/iserv/locale/de/mod_room-reservation.po
-	$(RM) /usr/share/iserv/db/mod_room-reservation.sql
-	$(RM) /usr/share/iserv/www/nav/79mod_room-reservation.mod
-	$(RM) /usr/share/iserv/priv/mod_room-reservation
-	$(RM) /usr/share/iserv/www/nav/admin/99mod_room-reservation.mod
-	$(RM) /usr/share/iserv/www/img/default/{16,24,32}/mod_room-reservation_{timeslice,index,config}.png
-	$(RM) /usr/share/iserv/www/inc/mod_room-reservation
-	$(RM) /usr/share/iserv/www/mod_room-reservation
+	$(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
 	@echo If you do not need the SQL tables anymore, remove them by running
 	@echo '  psql -c "DROP TABLE mod_roomreservation_bookings;"'
-	@echo '  psql -c "DROP SEQUENCE mod_roomreservation_bookings_rrb_uid_seq;"'
 	@echo After that, all bookings are unrecoverably deleted!
-	@echo ----------------------------------------------------------------------
+	@echo
+
+# clean up
+clean: distclean
+
+distclean:
+	$(RM) doc/source
+
+.PHONY: clean