# $Header: /usr/local/cvsroot/rt/Makefile,v 1.47 1998/09/08 07:18:54 jesse Exp $
# 
#
# Request Tracker is Copyright 1997 Jesse Reed Vincent <jesse@fsck.com>
# RT is distribute under the terms of the GNU Public License
#
SHELL=/bin/bash -e -o pipefail

include ../config.dist
export OWNER
export GROUP
export DOC=/usr/share/Datenbank
export POPHOME=/usr/pop
export POPCONFIG=/etc/pop.conf
export POP=/pop
#export DATAHOST DATABASE

CC			=	gcc
PERL			= 	/usr/bin/perl
RTUSER			=	$(OWNER)
RTGROUP			=	$(GROUP)

RT_VERSION_MAJOR	=	0
RT_VERSION_MINOR	=	9
RT_VERSION_PATCH	=	18

RT_VERSION =	$(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH).noris

#
# RT_PATH is the name of the directory you want make to install RT in
#

RT_PATH			=	/usr/pop/rt

#
# The rest of these paths are all configurable, but you probably don't want to 
# put them elsewhere
#

RT_LIB_PATH		=	/usr/pop/lib
RT_ETC_PATH		=	$(RT_PATH)/etc
RT_BIN_PATH		=	$(RT_PATH)/bin
RT_HTDOCS_PATH		=	/www/htdocs
#RT_TRANSACTIONS_PATH	= 	$(RT_PATH)/transactions

# Where you keep the templates for your various queues
#RT_TEMPLATE_PATH	=	$(RT_ETC_PATH)/templates


#
# The rtmux is the setuid script which invokes whichever rt program it needs to.
#

RT_PERL_DAILY		=	$(RT_BIN_PATH)/rt.daily
RT_PERL_MUX		=	$(RT_BIN_PATH)/rtmail
RT_PERL		=	$(RT_LIB_PATH)/RT/Web.pm
#RT_WRAPPER		=	$(RT_BIN_PATH)/rtmail

#
# The following are the names of the various binaries which make up RT 
#
RT_ACTION_BIN		=	rt
RT_QUERY_BIN		=	rtq
RT_ADMIN_BIN		=	rtadmin
RT_MAILGATE_BIN		=	rt-mailgate
RT_WEB_QUERY	=	nph-webrt
RT_WEB_ADMIN	=	nph-admin-webrt
RT_WEB_QUERY_BIN	=	nph-webrt.cgi
RT_WEB_ADMIN_BIN	=	nph-admin-webrt.cgi


default:
	$(MAKE) -f Makefile.Linux install
	cp /dev/null /var/log/rt
	#@echo "Read the readme"

../obj/varsubst:
	$(MAKE) -C .. $@

#install: dirs mux-install libs-install initialize config-replace httpd.conf-replace nondestruct instruct htdocs
WHAT=rt-queue_stats wikiseite4kunde
install: dirs upgrade config-replace mux-install libs-install ../obj/varsubst
	mkdir -p $(DESTDIR)/etc/init.d
	install -o root -m 755 config.Linux $(DESTDIR)/etc/init.d/rt
	install -d $(DESTDIR)/usr/share/kunde/rt
	install -d $(DESTDIR)/usr/share/kunde/rt/volltextsuche
	install volltextsuche/* $(DESTDIR)/usr/share/kunde/rt/volltextsuche
	install -d $(DESTDIR)/etc/apache-ssl
	install -d $(DESTDIR)/etc/apache2
	install etc/startup-apache2.pl $(DESTDIR)/etc/apache2/startup.pl
	fn=/tmp/inst.$$$$; \
	for i in $(WHAT) ; do \
			perl -p ../obj/varsubst <bin/$$i >$$fn; \
			install -o $(OWNER) -g $(GROUP) -m 755 $$fn $(DESTDIR)/usr/share/kunde/rt/$$i ; \
	done; \
	rm -f $$fn
	install -d $(DESTDIR)/usr/share/kunde/rt/images
	install images/* $(DESTDIR)/usr/share/kunde/rt/images
	install rt-spalten.html $(DESTDIR)/usr/share/kunde/rt


#suid-wrapper: $(RT_WRAPPER)
#	echo EQUALCP $(RT_WRAPPER)
#$(RT_WRAPPER): bin/suidrt.c
#	$(CC) bin/suidrt.c -DPERL=\"$(PERL)\" -DRT_PERL_MUX=\"$(RT_PERL_MUX)\" -o $(RT_WRAPPER)
#
instruct:
	@echo "Congratulations. RT has been installed. "
	@echo "(Now, create a queue, add some users and start resolving requests)"

upgrade: libs-install config-replace mux-install nondestruct

nondestruct: fixperms

all:
#	$(PERL) -p -e "\
#	s'!!RT_PATH!!'$(RT_PATH)'g;\
#        s'!!RTUSER!!'$(RTUSER)'g;\
#        s'!!RTGROUP!!'$(RTGROUP)'g;\
#        s'!!RT_MYSQL_PASS!!'$(RT_MYSQL_PASS)'g;\
#        s'!!RT_MAIL_TAG!!'$(RT_MAIL_TAG)'g;\
#	s'!!RT_USER_PASSWD_MIN!!'$(RT_USER_PASSWD_MIN)'g;\
#        s'!!RT_MYSQL_HOST!!'$(RT_MYSQL_HOST)'g;\
#        s'!!RT_MYSQL_DATABASE!!'$(RT_MYSQL_DATABASE)'g;\
#        s'!!RT_MAIL_ALIAS!!'$(RT_MAIL_ALIAS)'g;\
#	s'!!MYSQL_VERSION!!'$(MYSQL_VERSION)'g; " <etc/config.pm >lib/RT/config.pm
#
fixperms:
	# chown -R $(RTUSER).$(RTGROUP) $(DESTDIR)$(RT_PATH)/.
	# chmod -R 0755 $(DESTDIR)$(RT_LIB_PATH)
	# chmod -R 0770 $(DESTDIR)$(RT_ETC_PATH)
	# chmod 0755 $(DESTDIR)$(RT_PATH)
	# chmod 0755 $(DESTDIR)$(RT_BIN_PATH)
	# chmod 0755 $(DESTDIR)$(RT_CGI_PATH)
	# chmod 0755 $(DESTDIR)$(RT_PERL_MUX)
#	chmod 0755 $(DESTDIR)$(RT_PERL_DAILY)
	# chmod 0755 $(DESTDIR)$(RT_PERL)
#	chmod 4111 $(DESTDIR)$(RT_WRAPPER)

dirs:
	install -d -o $(RTUSER) -m 755 $(DESTDIR)$(RT_BIN_PATH)
	install -d -o $(RTUSER) -m 755 $(DESTDIR)$(RT_ETC_PATH)
#	install -d -o $(RTUSER) -m 755 $(DESTDIR)$(RT_ETC_PATH)/RT
#	install -o $(RTUSER) -m 755 ./etc/* $(DESTDIR)$(RT_ETC_PATH)
#	mkdir -p $(DESTDIR)$(RT_TRANSACTIONS_PATH)

libs-install: 
	install -d -o $(RTUSER) -m 755 $(DESTDIR)$(RT_LIB_PATH)
	cd lib; find RT RT.pm -type d | fgrep -v /.git | while read a ; do install -o $(RTUSER) -m 755 -d $(DESTDIR)$(RT_LIB_PATH)/$$a; done
	cd lib; find RT RT.pm -type f | fgrep -v /.git | while read a ; do install -o $(RTUSER) -m 644 $$a $(DESTDIR)$(RT_LIB_PATH)/$$a ; done

diff:
	cd lib; find RT RT.pm -type f | grep -v /.git | while read a ; do perl -p ../../obj/varsubst <$$a | diff -bu - $(RT_LIB_PATH)/$$a ; done

initialize: database acls


database:
#	$(MYSQLDIR)/mysqladmin drop $(RT_MYSQL_DATABASE)
	-$(MYSQLDIR)/mysqladmin create $(RT_MYSQL_DATABASE)
	$(MYSQLDIR)/mysql $(RT_MYSQL_DATABASE) < etc/schema      

acls:
	-$(PERL) -p -e "if ('$(RT_MYSQL_HOST)' eq '') { s'!!RT_MYSQL_HOST!!'localhost'g}\
			else { s'!!RT_MYSQL_HOST!!'$(RT_MYSQL_HOST)'g }\
		s'!!RT_MYSQL_PASS!!'$(RT_MYSQL_PASS)'g;\
		s'!!RTUSER!!'$(RTUSER)'g;\
		s'!!RT_MYSQL_DATABASE!!'$(RT_MYSQL_DATABASE)'g;\
		" $(RT_MYSQL_ACL) | $(MYSQLDIR)/mysql mysql
	$(MYSQLDIR)/mysqladmin reload


mux-install: ../obj/varsubst
	$(PERL) -p -e "s'!!RT_PATH!!'$(RT_PATH)'g;\
			      	s'!!RT_VERSION!!'$(RT_VERSION)'g;\
				s'!!RT_ACTION_BIN!!'$(RT_ACTION_BIN)'g;\
				s'!!RT_QUERY_BIN!!'$(RT_QUERY_BIN)'g;\
				s'!!RT_ADMIN_BIN!!'$(RT_ADMIN_BIN)'g;\
				s'!!RT_MAILGATE_BIN!!'$(RT_MAILGATE_BIN)'g;\
				s'!!RT_WEB_QUERY_BIN!!'$(RT_WEB_QUERY_BIN)'g;\
				s'!!RT_WEB_ADMIN_BIN!!'$(RT_WEB_ADMIN_BIN)'g;\
				s'!!RT_WEB_QUERY!!'$(RT_WEB_QUERY)'g;\
				s'!!RT_WEB_ADMIN!!'$(RT_WEB_ADMIN)'g;\
				s'!!POPHOME!!'$(POPHOME)'g;\
				s'!!RT_ETC_PATH!!'$(RT_ETC_PATH)'g;\
				s'!!RT_LIB_PATH!!'$(RT_LIB_PATH)'g;" < bin/rtmail.pl | \
				        perl -p ../obj/varsubst > /tmp/rtm.$$$$ ; \
				install -o $(RTUSER) -m 755 /tmp/rtm.$$$$ $(DESTDIR)$(RT_PERL_MUX) ; \
				rm -f /tmp/rtm.$$$$

	$(PERL) -p -e "s'!!RT_PATH!!'$(RT_PATH)'g;\
			      	s'!!RT_VERSION!!'$(RT_VERSION)'g;\
				s'!!RT_ACTION_BIN!!'$(RT_ACTION_BIN)'g;\
				s'!!RT_QUERY_BIN!!'$(RT_QUERY_BIN)'g;\
				s'!!RT_ADMIN_BIN!!'$(RT_ADMIN_BIN)'g;\
				s'!!RT_MAILGATE_BIN!!'$(RT_MAILGATE_BIN)'g;\
				s'!!RT_WEB_QUERY_BIN!!'$(RT_WEB_QUERY_BIN)'g;\
				s'!!RT_WEB_ADMIN_BIN!!'$(RT_WEB_ADMIN_BIN)'g;\
				s'!!RT_WEB_QUERY!!'$(RT_WEB_QUERY)'g;\
				s'!!RT_WEB_ADMIN!!'$(RT_WEB_ADMIN)'g;\
				s'!!POPHOME!!'$(POPHOME)'g;\
				s'!!RT_ETC_PATH!!'$(RT_ETC_PATH)'g;\
				s'!!RT_LIB_PATH!!'$(RT_LIB_PATH)'g;" < bin/rt.daily | \
				        perl -p ../obj/varsubst > /tmp/rtm.$$$$ ; \
				install -o $(RTUSER) -m 755 /tmp/rtm.$$$$ $(DESTDIR)$(RT_PERL_DAILY) ; \
				rm -f /tmp/rtm.$$$$

config-replace:
#        s'!!RT_TRANSACTIONS_PATH!!'$(RT_TRANSACTIONS_PATH)'g;\
#        s'!!RT_TEMPLATE_PATH!!'$(RT_TEMPLATE_PATH)'g;\

httpd.conf-replace:
	-mv $(RT_ETC_PATH)/httpd/cern/httpd.conf $(DESTDIR)$(RT_ETC_PATH)/httpd/cern/httpd.conf.old
	install ./etc/httpd/cern/httpd.conf $(DESTDIR)$(RT_ETC_PATH)/httpd/cern
	$(PERL) -p -i -e "\
        s'!!RTUSER!!'$(RTUSER)'g;\
        s'!!RTGROUP!!'$(RTGROUP)'g;\
        s'!!HTTPD_PORT!!'$(HTTPD_PORT)'g;\
        s'!!HTTPD_ROOT!!'$(HTTPD_ROOT)'g;\
        s'!!HTTPD_ERROR_LOG!!'$(HTTPD_ERROR_LOG)'g;\
        s'!!HTTPD_ACCESS_LOG!!'$(HTTPD_ACCESS_LOG)'g;\
        s'!!RT_CGI_PATH!!'$(RT_CGI_PATH)'g;\
        s'!!HTTPD_IMAGES_PATH!!'$(HTTPD_IMAGES_PATH)'g;\
        s'!!HTTPD_CGI_PREFIX!!'$(HTTPD_CGI_PREFIX)'g; " $(DESTDIR)$(RT_ETC_PATH)/httpd/cern/httpd.conf

dist:
	cvs commit
	cvs tag -F rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH)
	rm -rf /tmp/rt-$(RT_VERSION)
	cvs export -D now -d /tmp/rt-$(RT_VERSION) rt
	cd /tmp; tar czvf /home/ftp/pub/rt/devel/rt-$(RT_VERSION).tar.gz rt-$(RT_VERSION)/
	cd /home/ftp/pub/rt/devel/
	rm -rf ./rt.tar.gz
	ln -s ./rt-$(RT_VERSION).tar.gz ./rt.tar.gz
	chmod 644 /home/ftp/pub/rt/devel/rt-$(RT_VERSION).tar.gz

htdocs:
	install -d $(DESTDIR)$(RT_HTDOCS_PATH)
	install lib/htdocs/rt-spalten.html $(DESTDIR)$(RT_HTDOCS_PATH)

man:
	mkdir -p $(DESTDIR)/usr/share/man/man3
	cd lib; find . -name SCCS -prune -o -name \*.pm -print | ( xargs grep -l =head || true ) | while read a ; do \
		iconv -f utf8 -t latin1 $$a | pod2man -c Kunde -s 3 -q "''" -r $V -v | gzip -9 > $(DESTDIR)/usr/share/man/man3/$$(echo $$a | sed -e s,/,::,g).3.gz ; \
	done

clean:
	# nothing to do
