#!/usr/bin/make -f

all: doc

clean:
	rm -f pod2htm*.tmp

distclean: clean
	@echo "Does nothing"

ifndef installdir
installdir := /usr/local
endif

ifndef destdir
destdir := /
endif

ifndef perldir
ifeq ($(installdir),/usr)
perldir := share/perl5
else
ifeq ($(installdir),/usr/local)
perldir := lib/site_perl
endif
endif
endif

ifndef mandir
mandir := /usr/share/man
endif

install: 

ifndef destdir
	@echo "Invalid Destination directory"
else
ifndef perldir
	@echo "Invalid perldir directory"
else

	@echo "Copying files to" $(destdir)$(installdir)

	@# ------------------------------------------------------------------------------
	@install -d				$(destdir)/etc/a2b
	@install -d				$(destdir)/$(installdir)/bin
	@install -d				$(destdir)/$(installdir)/sbin
	@install -d				$(destdir)/$(installdir)/share/a2b/tools
	@install -d				$(destdir)/$(installdir)/share/a2b/mime.types
	@install -d				$(destdir)/$(installdir)/$(perldir)/A2B/Table
	@install -d				$(destdir)/$(installdir)/$(perldir)/GetOpt
	@install -d				$(destdir)/$(installdir)/$(perldir)/TSV
	@install -d				$(destdir)/$(mandir)
	@install -d				$(destdir)/$(mandir)/man1
	@install -d				$(destdir)/$(mandir)/man8

	@# SHARE
	@cp share/a2b/tools/default		$(destdir)/$(installdir)/share/a2b/tools/default
	@cp share/a2b/mime.types/default	$(destdir)/$(installdir)/share/a2b/mime.types/default

	@# LIBS
	@cp lib/A2B.pm			$(destdir)/$(installdir)/$(perldir)/
	@cp lib/A2B/CLI.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Index.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Path.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/PartialPath.pm	$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Table.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Tool.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Tools.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Type.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Types.pm		$(destdir)/$(installdir)/$(perldir)/A2B/
	@cp lib/A2B/Table/Element.pm	$(destdir)/$(installdir)/$(perldir)/A2B/Table/
	@cp lib/GetOpt/OO.pm		$(destdir)/$(installdir)/$(perldir)/GetOpt/
	@cp lib/TSV/Reader.pm		$(destdir)/$(installdir)/$(perldir)/TSV/
	@cp lib/TSV/Writer.pm		$(destdir)/$(installdir)/$(perldir)/TSV/

	@# BIN
	@install -p bin/*	 		$(destdir)/$(installdir)/bin/
	@install -p sbin/*	 		$(destdir)/$(installdir)/sbin/

	@# MAN - I doubt if this is orthodox!
	@pod2man -c 'User Commands' -r 'A2B' bin/a2b | gzip -9	      > $(destdir)/$(mandir)/man1/a2b.1.gz
	@pod2man -c 'Admin Commands' -r 'A2B' -s 8 sbin/a2b_build_etc | gzip -9	      > $(destdir)/$(mandir)/man8/a2b_build_etc.8.gz

endif
endif

doc: a2b.html

a2b.html: bin/a2b
	pod2html bin/a2b > a2b.html
#	hide a2b.html
	rm -f pod2htm*.tmp

devinst:
	@echo "Linking files to" $(destdir)$(installdir)

	@# ------------------------------------------------------------------------------
	@install -d				$(destdir)/etc/a2b
	@install -d				$(destdir)/$(installdir)/bin
	@install -d				$(destdir)/$(installdir)/sbin
	@install -d				$(destdir)/$(installdir)/share
	@install -d				$(destdir)/$(installdir)/$(perldir)/GetOpt
	@install -d				$(destdir)/$(installdir)/$(perldir)/TSV
	@install -d				$(destdir)/$(mandir)/man1
	@install -d				$(destdir)/$(mandir)/man8

	# SHARE
	ln -vfs $$PWD/share/a2b			$(destdir)/$(installdir)/share/

	# LIBS
	ln -vfs $$PWD/lib/A2B.pm		$(destdir)/$(installdir)/$(perldir)/
	ln -vfs $$PWD/lib/A2B			$(destdir)/$(installdir)/$(perldir)/
	ln -vfs $$PWD/lib/GetOpt/OO.pm		$(destdir)/$(installdir)/$(perldir)/GetOpt/
	ln -vfs $$PWD/lib/TSV/Reader.pm		$(destdir)/$(installdir)/$(perldir)/TSV/
	ln -vfs $$PWD/lib/TSV/Writer.pm		$(destdir)/$(installdir)/$(perldir)/TSV/

	@# BIN
	ln -vfs $$PWD/bin/*	 		$(destdir)/$(installdir)/bin/
	ln -vfs $$PWD/sbin/*	 		$(destdir)/$(installdir)/sbin/

	@# MAN - I doubt if this is orthodox!
	@pod2man -c 'User Commands' -r 'A2B' bin/a2b | gzip -9			> $(destdir)/$(mandir)/man1/a2b.1.gz
	@pod2man -c 'Admin Commands' -r 'A2B' -s 8 sbin/a2b_build_etc | gzip -9	> $(destdir)/$(mandir)/man8/a2b_build_etc.8.gz

	sudo a2b_build_etc
