#*=====================================================================*/
#*    serrano/prgm/project/bigloo/manuals/Makefile                     */
#*    -------------------------------------------------------------    */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Mon Jun 15 07:21:19 1998                          */
#*    Last change :  Sun Dec  9 17:36:51 2001 (serrano)                */
#*    Copyright   :  1998-2001 Manuel Serrano, see LICENSE file        */
#*    -------------------------------------------------------------    */
#*    The Makefile to build the Bigloo documentation                   */
#*=====================================================================*/

#*---------------------------------------------------------------------*/
#*    The default configuration                                        */
#*---------------------------------------------------------------------*/
include ../Makefile.config

#*---------------------------------------------------------------------*/
#*    Compiler and flags ...                                           */
#*---------------------------------------------------------------------*/
DVIPS		= dvips
MAKEDVI		= export TEXINPUTS=; $(TEXI2DVI) $(TEXI2DVIOPT)
BIGLOO		= $(BOOTBINDIR)/bigloo
SCRIBE		= scribe
SCRIBEINFO	= scribeinfo --sui r5rs.info r5rs.sui

#*---------------------------------------------------------------------*/
#*    Sources ...                                                      */
#*---------------------------------------------------------------------*/
MASTER		= bigloo.texi
SOURCES		= modules.texi body.texi rgc.texi lalr.texi match.texi \
                  error.texi struct.texi process.texi \
                  eval.texi macro.texi typing.texi foreign.texi \
                  library.texi object.texi dsssl.texi dsssl.texi \
                  compiler.texi extension.texi socket.texi \
                  bee.texi oldtexinfo.texi cmdline.texi \
                  java.texi pregexp.texi srfi.texi

BDB_MASTER	= bdb.texi
BDB_SOURCES	=

R5RS_MASTER	= r5rs.texi

MAN		= bigloo.man afile.man bdepend.man bmake.man bpp.man \
                  bprof.man btags.man mco.man jfile.man

POPULATION	= Makefile \
                  $(MASTER) $(SOURCES) \
                  $(BDB_MASTER) $(BDB_SOURCES) \
                  $(MAN) \
                  r5rs.texi

#*---------------------------------------------------------------------*/
#*    Everything ...                                                   */
#*---------------------------------------------------------------------*/
all: info ps html pdf
allwww: all bigloo.info.tar.gz bdb.info.tar.gz

dvi: bigloo.dvi
bigloo.dvi: $(MASTER) $(SOURCES) option.texi version.texi
	($(MAKEDVI) $(MASTER)) || $(TEXI2DVI) $(TEXI2DVIOPT) $(MASTER)

ps: bigloo.ps bdb.ps
bigloo.ps: bigloo.dvi
	$(DVIPS) -o bigloo.ps bigloo.dvi

info: bigloo.info
bigloo.info: $(MASTER) $(SOURCES) option.texi version.texi
	$(MAKEINFO) $(MAKEINFOOPT) $(MASTER)

bigloo.info.tar.gz: bigloo.info
	tar cvfz bigloo.info.tar.gz bigloo.info*

#*---------------------------------------------------------------------*/
#*    html                                                             */
#*---------------------------------------------------------------------*/
html: bigloo.html bdb.html r5rs.html
bigloo.html: r5rs.sui $(MASTER) $(SOURCES) option.texi version.texi
	$(SCRIBEINFO) $(MASTER) | $(SCRIBE) -o bigloo.html

r5rs.html: r5rs.sui $(R5RS_MASTER)
	$(SCRIBEINFO) $(R5RS_MASTER) | $(SCRIBE) -o r5rs.html

bdb.html: $(BDB_MASTER) $(BDB_SOURCES)
	$(SCRIBEINFO) $(BDB_MASTER) | $(SCRIBE) -o bdb.html

#*---------------------------------------------------------------------*/
#*    pdf                                                              */
#*---------------------------------------------------------------------*/
pdf: bigloo.pdf bdb.pdf
bigloo.pdf: $(MASTER) $(SOURCES) option.texi version.texi
	$(TEXI2PDF) $(TEXI2PDFOPT) $(MASTER)

bdb.pdf: $(BDB_MASTER) $(BDB_SOURCES)
	$(TEXI2PDF) $(TEXI2PDFOPT) $(BDB_MASTER)

#*---------------------------------------------------------------------*/
#*    compile-bee                                                      */
#*---------------------------------------------------------------------*/
compile-bee: info-bee dvi-bee ps-bee

dvi-bee: bdb.dvi
bdb.dvi: $(BDB_MASTER) $(BDB_SOURCES)
	($(MAKEDVI) $(BDB_MASTER)) || $(TEXI2DVI) $(TEXI2DVIOPT) $(BDB_MASTER)

ps-bee: bdb.ps
bdb.ps: bdb.dvi
	$(DVIPS) -o bdb.ps bdb.dvi

info-bee: bdb.info
bdb.info: $(BDB_MASTER) $(BDB_SOURCES)
	$(MAKEINFO) $(MAKEINFOOPT) $(BDB_MASTER)

bdb.info.tar.gz: bdb.info
	tar cvfz bdb.info.tar.gz bdb.info*

#*---------------------------------------------------------------------*/
#*    r5rs.sui ...                                                     */
#*---------------------------------------------------------------------*/
r5rs.sui:
	$(SCRIBEINFO) $(R5RS_MASTER) | $(SCRIBE) -o r5rs.sui

#*---------------------------------------------------------------------*/
#*    touchall                                                         */
#*---------------------------------------------------------------------*/
touchall:
	touch $(SOURCES)

#*---------------------------------------------------------------------*/
#*    Cleaning ...                                                     */
#*---------------------------------------------------------------------*/
.PHONY: clean cleanall distclean

clean:
	-rm -f *.cp *.cps *.fn *.fns *.ky *.op *.pg *.tp *.vr *.toc *.log *.aux
	find . \( -name '*[~%]' \
                     -o -name '.??*[~%]' \
                     -o -name '#*#' \
                     -o -name '?*#' \
                     -o -name \*core \) \
                     -type f -exec rm {} \;   
	-rm -f r5rs.sui

distclean:
	-rm -f bigloo.dvi
	-rm -f bigloo.ps
	-rm -f bigloo*.html
	-rm -f r5rs*.html
	-rm -f bigloo.pdf
	-rm -f bigloo_toc.html
	-rm -f bigloo_foot.html
	-rm -f bdb.dvi
	-rm -f bdb.ps
	-rm -f bdb*.html
	-rm -f bdb.pdf
	-rm -f bdb_toc.html
	-rm -f bdb_foot.html

cleanall: distclean
	-rm -f r5rs.sui
	-rm -f bdb.info*
	-rm -f bigloo.info*
	-rm -f option.texi
	-rm -f version.texi

#*---------------------------------------------------------------------*/
#*    pop                                                              */
#*---------------------------------------------------------------------*/
pop: 
	@ echo $(POPULATION:%=manuals/%)

#*---------------------------------------------------------------------*/
#*    .tar.gz.uu                                                       */
#*---------------------------------------------------------------------*/
$(DOCUMENTNAME).tar.gz.uu: $(DOCUMENTNAME).tar.gz
	@ echo "uuencoding..."
	@ uuencode (DOCUMENTNAME).tar.gz (DOCUMENTNAME).tar.gz > (DOCUMENTNAME).tar.gz.uu
	@ echo "done."

#*---------------------------------------------------------------------*/
#*    distrib                                                          */
#*---------------------------------------------------------------------*/
distrib: bigloo.info bdb.info

#*---------------------------------------------------------------------*/
#*    option.texi                                                      */
#*---------------------------------------------------------------------*/
option.texi: ../Makefile.config
	@ echo "@c -- The Bigloo command line -------------------------------------- @c" > $*.texi
	@ echo "@subsection The Bigloo command line" >> $*.texi
	@ echo "@cindex compiler options" >> $*.texi
	@ echo "" >> $*.texi
	@ echo "If no input file is specified, Bigloo enters its interpreter." >> $*.texi
	@ echo "Here is the exhaustive list of Bigloo options and configuration variables:" >> $*.texi
	@ echo "" >> $*.texi
	@ echo "@display" >> $*.texi
	@ $(BIGLOO) -help-manual | tail +9 >> $*.texi
	@ echo "@end display" >> $*.texi
	@ echo "" >> $*.texi

#*---------------------------------------------------------------------*/
#*    version.texi                                                     */
#*---------------------------------------------------------------------*/
version.texi: ../Makefile.config
	@ echo "@c -- Version and date --------------------------------------------- @c" > $*.texi
	@ echo "@set bigloovers $(RELEASE)" >> $*.texi
	@ echo "@set bigloodate `date +'%B %Y'`" >> $*.texi

#*---------------------------------------------------------------------*/
#*    install                                                          */
#*---------------------------------------------------------------------*/
.PHONY: install install-man install-info install-jvm

install: install-man install-info install-jvm

install-man:
	if [ ! -d $(MANDIR) ]; then \
           echo ""; \
           echo "----------------------------------------------------------"; \
           echo "*** ERROR:Can't find directory -- $(MANDIR)"; \
           echo "Can't install man page."; \
           echo "----------------------------------------------------------"; \
           echo ""; \
        else \
	  if [ $(MANDIR) != $(BOOTDIR)/manuals ]; then \
	    cp bigloo.man $(MANDIR)/bigloo.1; \
	    if [ -f $(MANDIR)/bigloo.1 ]; then \
	       chmod $(BMASK) $(MANDIR)/bigloo.1; \
            fi; \
          fi \
        fi

install-info:
	if [ ! -d $(INFODIR) ]; then \
           echo ""; \
           echo "----------------------------------------------------------"; \
           echo "*** ERROR:Can't find directory -- $(INFODIR)"; \
           echo "Can't install Info pages."; \
           echo "----------------------------------------------------------"; \
           echo ""; \
        else \
	  if [ $(INFODIR) != $(BOOTDIR)/manuals ]; then \
	    if [ -f bigloo.info ]; then \
	      cp bigloo.info* $(INFODIR); \
              if [ -f $(INFODIR)/bigloo.info ]; then \
	         chmod $(BMASK) $(INFODIR)/bigloo.info*; \
              fi \
            fi; \
	    if [ "$(INSTALLINFO) " = " " ]; then \
             if [ ! -f $(INFODIR)/dir ]; then \
              echo "$(INFODIR)/dir file does not exist, can't install Bigloo info files"; \
             else \
              if [ "`grep "bigloo.info" $(INFODIR)/dir` " = " " ]; then \
               echo "* bigloo: (bigloo.info). The Bigloo documentation." >> \
                $(INFODIR)/dir; \
              fi; \
             fi; \
            else \
             $(INSTALLINFO) bigloo.info $(INFODIR)/dir; \
            fi \
          fi \
        fi

#*---------------------------------------------------------------------*/
#*    install-bee                                                      */
#*---------------------------------------------------------------------*/
.PHONY: install-bee install-man-bee install-info-bee

install-bee: install-man-bee install-info-bee

install-man-bee:
	if [ ! -d $(MANDIR) ]; then \
           echo ""; \
           echo "----------------------------------------------------------"; \
           echo "*** ERROR:Can't find directory -- $(MANDIR)"; \
           echo "Can't install man Bee pages."; \
           echo "----------------------------------------------------------"; \
           echo ""; \
        else \
           $(MAKE) do-install-man-bee; \
        fi
        
do-install-man-bee:
	- cp afile.man $(MANDIR)/afile.1;
	- if [ -f $(MANDIR)/afile.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/afile.1; \
          fi;
	- cp jfile.man $(MANDIR)/jfile.1;
	- if [ -f $(MANDIR)/jfile.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/jfile.1; \
          fi;
	- cp bdepend.man $(MANDIR)/bdepend.1;
	- if [ -f $(MANDIR)/bdepend.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/bdepend.1; \
          fi;
	- cp bmake.man $(MANDIR)/bmake.1;
	- if [ -f $(MANDIR)/bmake.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/bmake.1; \
          fi;
	- cp mco.man $(MANDIR)/mco.1;
	- if [ -f $(MANDIR)/mco.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/mco.1; \
          fi;
	- cp bpp.man $(MANDIR)/bpp.1;
	- if [ -f $(MANDIR)/bpp.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/bpp.1; \
          fi;
	- cp bprof.man $(MANDIR)/bprof.1;
	- if [ -f $(MANDIR)/bprof.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/bprof.1; \
          fi;
	- cp btags.man $(MANDIR)/btags.1;
	- if [ -f $(MANDIR)/btags.1 ]; then \
	     chmod $(BMASK) $(MANDIR)/btags.1; \
          fi;

install-info-bee:
	if [ ! -d $(INFODIR) ]; then \
           echo ""; \
           echo "----------------------------------------------------------"; \
           echo "*** ERROR:Can't find directory -- $(INFODIR)"; \
           echo "Can't install Info pages."; \
           echo "----------------------------------------------------------"; \
           echo ""; \
        else \
           $(MAKE) do-install-info-bee; \
        fi

do-install-info-bee:
	- if [ -f bdb.info ]; then \
	     cp bdb.info* $(INFODIR); \
             if [ -f $(INFODIR)/bdb.info ]; then \
	        chmod $(BMASK) $(INFODIR)/bdb.info*; \
             fi \
          fi
	- if [ "$(INSTALLINFO) " = " " ]; then \
           if [ ! -f $(INFODIR)/dir ]; then \
            echo "$(INFODIR)/dir file does not exist, can't install Bee info files"; \
           else \
            if [ "`grep "bdb.info" $(INFODIR)/dir` " = " " ]; then \
             echo "* bdb: (bdb.info). The Bdb documentation." >> \
              $(INFODIR)/dir; \
            fi; \
           fi; \
          else \
           $(INSTALLINFO) bdb.info $(INFODIR)/dir; \
          fi

#*---------------------------------------------------------------------*/
#*    uninstall                                                        */
#*---------------------------------------------------------------------*/
.PHONY: uninstall uninstall-man uninstall-info uninstall-jvm

uninstall: uninstall-bee uninstall-man uninstall-info uninstall-jvm

uninstall-man:
	- rm -f $(MANDIR)/bigloo.1;

uninstall-info:
	- rm -f $(INFODIR)/bigloo.info*;
	- if [ "$(UNINSTALLINFO) " != " " ]; then \
             $(INSTALLINFO) --delete $(INFODIR)/bigloo.info $(INFODIR)/dir; \
          fi

#*---------------------------------------------------------------------*/
#*    uninstall-bee                                                    */
#*---------------------------------------------------------------------*/
.PHONY: uninstall-bee uninstall-man-bee uninstall-info-bee

uninstall-bee: uninstall-man-bee uninstall-info-bee

uninstall-man-bee:
	- rm -f $(MANDIR)/afile.1;
	- rm -f $(MANDIR)/jfile.1;
	- rm -f $(MANDIR)/bdepend.1;
	- rm -f $(MANDIR)/bmake.1;
	- rm -f $(MANDIR)/mco.1;
	- rm -f $(MANDIR)/bpp.1;
	- rm -f $(MANDIR)/bprof.1;
	- rm -f $(MANDIR)/btags.1;

uninstall-info-bee:
	- rm -f $(INFODIR)/bdb.info*;
	- if [ "$(UNINSTALLINFO) " != " " ]; then \
             $(INSTALLINFO) --delete $(INFODIR)/bdb.info $(INFODIR)/dir; \
          fi
