# This Makefile is for the Bash/documentation directory -*- text -*-.
#
SHELL = @MAKE_SHELL@
RM	    = rm -f

topdir = @top_srcdir@
srcdir = @srcdir@
VPATH = .:@srcdir@

infodir = @infodir@

mandir = @mandir@
manpfx = man

man1ext = 1
man1dir = $(mandir)/$(manpfx)$(man1ext)
man3ext = 3
man3dir = $(mandir)/$(manpfx)$(man3ext) 

INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
BUILD_DIR = @BUILD_DIR@

# bad style
RL_LIBDIR = $(topdir)/lib/readline

# unused
TEXINDEX    = texindex
TEX	    = tex

MAKEINFO    = makeinfo
TEXI2DVI    = ${topdir}/support/texi2dvi
TEXI2HTML   = ${topdir}/support/texi2html
MAN2HTML    = ${BUILD_DIR}/support/man2html
HTMLPOST    = ${srcdir}/htmlpost.sh
QUIETPS	    = #set this to -q to shut up dvips
DVIPS	    = dvips -D 300 $(QUIETPS) -o $@	# tricky
TEXINPUTDIR = $(RL_LIBDIR)/doc

MKDIRS      = ${topdir}/support/mkdirs

# This should be a program that converts troff to an ascii-readable format
NROFF	    = groff -Tascii

# This should be a program that converts troff to postscript
GROFF	    = groff

HSUSER      = $(RL_LIBDIR)/doc/hsuser.texinfo
RLUSER      = $(RL_LIBDIR)/doc/rluser.texinfo

.SUFFIXES:	.0 .1 .3 .ms .ps .txt .dvi .html

.1.ps:
	$(RM) $@
	-${GROFF} -man $< > $@

.1.0:
	$(RM) $@
	-${NROFF} -man $< > $@

.1.html:
	$(RM) $@
	-${MAN2HTML} $< | ${HTMLPOST} > $@

.ms.ps:
	$(RM) $@
	-${GROFF} -ms $< > $@

.ms.txt:
	$(RM) $@
	-${NROFF} -ms $< > $@

.3.ps:
	$(RM) $@
	-${GROFF} -man $< > $@

.3.0:
	$(RM) $@
	-${NROFF} -man $< > $@

.3.html:
	$(RM) $@
	-${MAN2HTML} $< > $@

all: ps info dvi text html
nodvi: ps info text html

PSFILES = bash.ps bashbug.ps readline.ps article.ps builtins.ps
DVIFILES = bashref.dvi bashref.ps
INFOFILES = bashref.info
MAN0FILES = bash.0 bashbug.0 builtins.0 readline.0
HTMLFILES = bashref.html bash.html

ps: ${PSFILES}
dvi: ${DVIFILES}
info: ${INFOFILES}
text: ${MAN0FILES}
html: ${HTMLFILES}

bashref.dvi: $(srcdir)/bashref.texi $(HSUSER) $(RLUSER)
	TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) $(srcdir)/bashref.texi

bashref.ps: bashref.dvi
	$(RM) $@
	$(DVIPS) bashref.dvi

bashref.info: $(srcdir)/bashref.texi $(HSUSER) $(RLUSER)
	$(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi

bashref.html: bashref.texi $(HSUSER) $(RLUSER)
	$(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi

bash.dvi: bash.texinfo $(HSUSER) $(RLUSER)
	TEXINPUTS=.:$(TEXINPUTDIR):$$TEXINPUTS $(TEXI2DVI) bash.texinfo

bashman.ps: bash.dvi
	$(RM) $@
	$(DVIPS) bash.dvi

bash.txt: bash.1
bash.ps: bash.1
bash.html: bash.1 $(MAN2HTML)
bashbug.ps: bashbug.1
builtins.ps: builtins.1 bash.1
bash.0: bash.1
bashbug.0: bashbug.1
builtins.0: builtins.1 bash.1
readline.0: readline.3
readline.ps: readline.3
article.ps: article.ms

$(MAN2HTML):	${topdir}/support/man2html.c
	-( cd ${BUILD_DIR}/support ; ${MAKE} ${MFLAGS} man2html)

CREATED_FAQ = faq.news faq.news2 faq.mail faq.version

faq:	${CREATED_FAQ}

faq.version:	FAQ.version FAQ
	sh mkfaqvers FAQ.version > $@

faq.news: FAQ FAQ.headers.news faq.version
	$(RM) $@
	cat FAQ.headers.news faq.version FAQ > $@

faq.news2: FAQ FAQ.headers.news2 faq.version
	$(RM) $@
	cat FAQ.headers.news2 faq.version FAQ > $@

faq.mail: FAQ FAQ.headers.mail faq.version
	$(RM) $@
	cat FAQ.headers.mail faq.version FAQ > $@

clean:
	$(RM) *.aux *.bak *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.cps \
		*.pgs *.bt *.bts *.rw *.rws *.fns *.kys *.tps *.vrs *.o
	${RM} core *.core

distclean mostlyclean: clean
	$(RM) Makefile

maintainer-clean:	clean
	${RM} ${PSFILES} ${DVIFILES} ${INFOFILES} ${MAN0FILES} ${HTMLFILES}
	${RM} ${CREATED_FAQ}
	$(RM) Makefile

installdirs:
	-test -d $(man1dir) || $(SHELL) ${MKDIRS} $(man1dir)
# uncomment the next line to create the directory for the readline man page
#	-test -d $(man3dir) || $(SHELL) ${MKDIRS} $(man3dir)
	-test -d $(infodir) || $(SHELL) ${MKDIRS} $(infodir)
	
install: info installdirs
	-$(INSTALL_DATA) $(srcdir)/bash.1 $(man1dir)/bash.${man1ext}
	-$(INSTALL_DATA) $(srcdir)/bashbug.1 $(man1dir)/bashbug.${man1ext}
# uncomment the next line to install the readline man page
#	-$(INSTALL_DATA) $(srcdir)/readline.3 $(man3dir)/readline.${man3ext}
# uncomment the next line to install the builtins man page
#	$(INSTALL_DATA) $(srcdir)/builtins.1 $(man1dir)/bash_builtins.${man1ext}
	-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
	if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
		install-info --dir-file=$(infodir)/dir $(infodir)/bash.info; \
	else true; fi

uninstall:
	-$(RM) $(man1dir)/bash.${man1ext} $(man1dir)/bashbug.${man1ext}
	-$(RM) $(man3dir)/readline.${man3ext}
	$(RM) $(infodir)/bash.info

# for use by chet
inst:	bashref.texi
	$(SHELL) ./mkinstall
	cmp -s INSTALL ../INSTALL || mv INSTALL ../INSTALL
	$(RM) INSTALL

posix:	bashref.texi
	$(SHELL) ./mkposix
	cmp -s POSIX.NOTES ../CWRU/POSIX.NOTES || mv POSIX.NOTES ../CWRU/POSIX.NOTES
	$(RM) POSIX.NOTES
