# $Id: Makefile,v 1.14 2005/01/19 18:46:12 skx Exp $
#
#  Makefile for GNUMP3d v2.x
#
# Steve
# --
#
#


#
#  Installation Directories.
#
PREFIX      = /usr
CONFDIR     = /etc/gnump3d
CACHEDIR    = /var/cache/gnump3d
SERVEDIR    = /var/cache/gnump3d/serving
LOGDIR      = /var/log/gnump3d
LIBDIR      = `perl bin/getlibdir`

#
#  Directories for the binaries, the templates, the plugins and man pages.
# These are based upon the settings above.
#
BINDIR      = $(PREFIX)/bin
TEMPDIR     = $(PREFIX)/share/gnump3d
MANDIR      = $(PREFIX)/man/man1
PLUGDIR     = $(LIBDIR)/gnump3d/plugins
LANGDIR     = $(LIBDIR)/gnump3d/lang


#
#  Only used to build distribution tarballs.
#
DIST_PREFIX = /tmp
VERSION     = 2.9.1
BASE        = gnump3d



#
#  Default target, give the user some help.
#
default:
	@echo "gnump3d 2.x Makefile"
	@echo ""
	@echo " Use:"
	@echo "    make install   - Install the software in ${BINDIR}."
	@echo "    make uninstall - Removes this software completely."
	@echo "    make dist      - Create distribution archives."
	@echo "    make sign      - GPG sign the distribution files."
	@echo "    make profile   - Run the installed application under the profiler"
	@echo "    make test      - Run the test suite."
	@echo "    make debug     - Show debug diagnostics from this Makefile"
	@echo ""
	@echo " For more details see:"
	@echo "    http://www.gnump3d.org/"
	@echo " "

debug:
	@echo "System information:"
	@echo "  I am `whoami` on `hostname`"
	@echo " "
	@echo "  This is `uname`"
	@echo " "
	@echo "Installation options:"
	@echo "    Binary directory  : ${BINDIR}"
	@echo "    Man page directory: ${MANDIR}"
	@echo "    Template directory: ${TEMPDIR}"
	@echo "    Plugin directory  : ${PLUGDIR}"
	@echo "    Language directory: ${LANGDIR}"


install:
	install -d ${CONFDIR}
	install -d ${BINDIR}
	install -d ${TEMPDIR}
	install -d ${MANDIR}
	install -d ${PLUGDIR}
	install -d ${LANGDIR}
	install -d ${LOGDIR}
	install -d ${CACHEDIR}
	chmod 777 ${CACHEDIR}
	install -d $(SERVEDIR)
	chmod 777 ${SERVEDIR}
	chmod a+rx ${LIBDIR}/gnump3d/
	chmod a+rx ${LIBDIR}/gnump3d/plugins
	chmod a+rx ${LIBDIR}/gnump3d/lang
	cp lib/gnump3d/*.pm ${LIBDIR}/gnump3d
	cp lib/gnump3d/plugins/*.pm ${PLUGDIR}
	cp lib/gnump3d/lang/*.pm ${LANGDIR}
	cp bin/gnump3d2 ${BINDIR}
	chmod 755 ${BINDIR}/gnump3d2
	-ln -sf ${BINDIR}/gnump3d2 ${BINDIR}/gnump3d
	cp bin/gnump3d-top $(PREFIX)/bin
	chmod 755 ${BINDIR}/gnump3d-top
	cp bin/gnump3d-index ${BINDIR}
	chmod 755 ${BINDIR}/gnump3d-index
	cp man/gnump3d-top.1 ${MANDIR}
	cp man/gnump3d-index.1 ${MANDIR}
	cp man/gnump3d.1 ${MANDIR}
	cp man/gnump3d.conf.1 ${MANDIR}
	cp -R templates/* ${TEMPDIR}
	chmod -R a+r ${TEMPDIR}
	chmod +rx ${TEMPDIR}/*/
	if [ -e ${CONFDIR}/gnump3d.conf ]; then cp ${CONFDIR}/gnump3d.conf ${CONFDIR}/gnump3d.conf-orig ; fi
	sed "s#PLUGINDIR#${LIBDIR}#g" etc/gnump3d.conf > ${CONFDIR}/gnump3d.conf
	cp etc/mime.types ${CONFDIR}
	-find $(PREFIX)/share/gnump3d -name "plugin.html" -print | xargs rm -f
	-rm -f $(LIBDIR)/gnump3d/FreezeThaw.pm
	-rm -f $(LIBDIR)/gnump3d/playlist.pm


uninstall:
	rm -f ${BINDIR}/gnump3d-top
	rm -f ${BINDIR}/gnump3d-index
	rm -f ${BINDIR}/gnump3d2
	rm -f ${BINDIR}/gnump3d
	rm -f ${MANDIR}/gnump3d-top.1
	rm -f ${MANDIR}/gnump3d-index.1
	rm -f ${MANDIR}/gnump3d.1
	rm -f ${MANDIR}/gnump3d.conf.1
	rm -rf $(LIBDIR)/gnump3d/
	rm -rf ${TEMPDIR}
	rm -f   /etc/gnump3d/gnump3d.conf
	-rm -rf ${CONFDIR}
	-rm -rf ${LOGDIR}
	-rm -rf ${CACHEDIR}
	-rm -rf ${SERVEDIR}

.PHONY: test install sign

profile:
	perl -d:DProf=1 gnump3d2
	dprofpp

test:
	@echo ""
	@cd test/ && ./runtests --all;

clean:
	find . -name "*~" -print | xargs rm -f
	find . -name ".#*" -print | xargs rm -f

dist:   clean
	rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)
	rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.bz2
	rm -f $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz
	cp -R . $(DIST_PREFIX)/$(BASE)-$(VERSION)
	find  $(DIST_PREFIX)/$(BASE)-$(VERSION) -name "CVS" -print | xargs rm -rf
	find  $(DIST_PREFIX)/$(BASE)-$(VERSION) -name ".cvsignore" -exec rm -f \{\} \;
	perl ./bin/generate-win-conf etc/
	cd $(DIST_PREFIX) && tar -cvf $(DIST_PREFIX)/$(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
	gzip $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
	mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.gz .
	cd $(DIST_PREFIX) && tar -cvf $(BASE)-$(VERSION).tar $(BASE)-$(VERSION)/
	bzip2 $(DIST_PREFIX)/$(BASE)-$(VERSION).tar
	mv $(DIST_PREFIX)/$(BASE)-$(VERSION).tar.bz2 .
	cd $(DIST_PREFIX) && zip -r $(BASE)-$(VERSION).zip $(BASE)-$(VERSION)/
	mv $(DIST_PREFIX)/$(BASE)-$(VERSION).zip .
	rm -rf $(DIST_PREFIX)/$(BASE)-$(VERSION)

it:     clean
	killall gnump3d2; sudo make install; gnump3d2 --fast



sign: dist
	-rm -f *.asc
	for i in gnump3d-$(VERSION).*; do gpg --armor --detach-sign $$i; done

