#*=====================================================================*/
#*    serrano/prgm/project/scribe/manuals/Makefile                     */
#*    -------------------------------------------------------------    */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Wed Nov 28 09:05:26 2001                          */
#*    Last change :  Wed Jan 16 11:20:00 2002 (serrano)                */
#*    Copyright   :  2001-02 Manuel Serrano                            */
#*    -------------------------------------------------------------    */
#*    The Makefile to produce the various Scribe manuals.              */
#*=====================================================================*/
include ../Makefile.scrconfig

#*---------------------------------------------------------------------*/
#*    Compiler and tools                                               */
#*---------------------------------------------------------------------*/
SCRIBE		= $(SCRIBEDIR)/bin/scribe
SCRIBEINFO	= $(SCRIBEDIR)/bin/scribeinfo
SCRIBEBIBTEX	= $(SCRIBEDIR)/bin/scribebibtex
LATEX		= latex
DVIPS		= dvips

SCRIBEVERBOSE	= -v -v -v
SCRIBEOPT	= $(SCRIBEVERBOSE) \
                  -I . \
                  -L $(SCRIBEDIR)/lib \
                  -J $(SCRIBEDIR)/styles \
                  -J $(SCRIBEDIR)/manuals/style \
                  -I $(SCRIBEDIR)/manuals/user \
                  -I $(SCRIBEDIR)/manuals/expert \
                  -B $(SCRIBEDIR)/manuals/bib

#*---------------------------------------------------------------------*/
#*    Scribe configuration                                             */
#*---------------------------------------------------------------------*/
BASEURL		= http://www-sop.inria.fr/mimosa/Manuel.Serrano
SCRIBEURL	= $(BASEURL)
SERRANOURL	= $(BASEURL)
SERRANOMAIL	= "Manuel.Serrano@inria.fr"
HTMLURL		= "http://www.w3.org/TR/html4/"
HTMLFORM	= "interact/forms.html"
EMACSURL	= "http://www.gnu.org/software/emacs/"
XEMACSURL	= "http://www.xemacs.org/"
TEXINFOURL	= "http://www.texinfo.org/"
R5RSURL		= "http://kaolin.unice.fr/Bigloo/doc/r5rs.html"
BIGLOOURL	= "http://kaolin.unice.fr/Bigloo"
SCRIBEUSERDIR	= ../user
SCRIBEEXPERTDIR	= ../expert
SCRIBESTYLESDIR	= $(SCRIBEDIR)/styles

SCRIBEVARS	= --eval "(define *scribe-user-dir* \"$(SCRIBEUSERDIR)\")" \
	          --eval "(define *scribe-expert-dir* \"$(SCRIBEEXPERTDIR)\")" \
                  --eval "(define *scribe-styles-dir* \"$(SCRIBESTYLESDIR)\")" \
                  --eval "(define *scribe-version* \"$(SCRIBERELEASE)\")" \
                  --eval "(define *scribe-bin* \"$(SCRIBE)\")" \
                  --eval "(define *scribeinfo-bin* \"$(SCRIBEINFO)\")" \
                  --eval "(define *scribebibtex-bin* \"$(SCRIBEBIBTEX)\")" \
                  --eval "(define *serrano-url* \"$(SERRANOURL)\")" \
                  --eval "(define *serrano-mail* \"$(SERRANOMAIL)\")" \
                  --eval "(define *html-url* \"$(HTMLURL)\")" \
                  --eval "(define *html-form* \"$(HTMLFORM)\")" \
                  --eval "(define *emacs-url* \"$(EMACSURL)\")" \
                  --eval "(define *xemacs-url* \"$(XEMACSURL)\")" \
                  --eval "(define *texinfo-url* \"$(TEXINFOURL)\")" \
                  --eval "(define *r5rs-url* \"$(R5RSURL)\")" \
                  --eval "(define *bigloo-url* \"$(BIGLOOURL)\")"

#*---------------------------------------------------------------------*/
#*    Targets                                                          */
#*---------------------------------------------------------------------*/
MAN		= man/scribe.man man/scribeinfo.man man/scribebibtex.man

USERMANUAL	= user/user.html
USERSUI		= user/user.sui
USERMANUALSRC	= user/user.scr \
                  user/start.scr \
                  user/stdlib.scr \
                  user/links.scr \
                  user/gui.scr \
                  user/prgm.scr \
                  user/syntax.scr \
                  user/emacs.scr \
                  user/scribe.scr \
                  user/scribeinfo.scr \
                  user/scribebibtex.scr \
                  user/customize.scr \
                  user/index.scr \
                  user/bibliography.scr \
                  user/indexes.scr \
                  user/styles.scr
USERMANUALEX	= user/start-prgm1.scr \
                  user/start-prgm2.scr \
                  user/start-prgm3.scr \
                  user/start-prgm4.scr \
                  user/stdlib-prgm1.scr \
                  user/stdlib-prgm2.scr \
                  user/stdlib-prgm3.scr \
                  user/stdlib-prgm4.scr \
                  user/stdlib-prgm5.scr \
                  user/stdlib-prgm6.scr \
                  user/stdlib-prgm7.scr \
                  user/stdlib-prgm8.scr \
                  user/stdlib-prgm9.scr \
                  user/stdlib-prgm10.scr \
                  user/stdlib-prgm11.scr \
                  user/stdlib-prgm12.scr \
                  user/stdlib-prgm13.scr \
                  user/links-prgm1.scr \
                  user/links-prgm2.scr \
                  user/gui-prgm1.scr \
                  user/gui-prgm2.scr \
                  user/gui-prgm3.scr \
                  user/gui-prgm4.scr \
                  user/gui-prgm5.scr \
                  user/gui-prgm6.scr \
                  user/gui-prgm7.scr \
                  user/gui-prgm8.scr \
                  user/gui-prgm9.scr \
                  user/prgm-prgm1.scr \
                  user/prgm-prgm2.scr \
                  user/prgm-prgm3.scr \
                  user/prgm-prgm4.scr \
                  user/prgm-fib.scm \
                  user/index-prgm1.scr \
                  user/index-prgm2.scr \
                  user/index-prgm3.scr \
                  user/bibliography-prgm1.scr

EXPERTMANUAL	= expert/expert.html
EXPERTSUI	= expert/expert.sui
EXPERTMANUALSRC	= expert/expert.scr \
                  expert/classes.scr \
                  expert/markup.scr \
                  expert/fontification.scr \
                  expert/rts.scr \
                  expert/numbering.scr \
                  expert/target.scr \
                  expert/backend.scr \
                  expert/html.scr \
                  expert/apache.scr \
                  expert/eindexes.scr \
                  expert/bibtex.scr \
                  expert/embedding.scr
EXPERTMANUALEX	= expert/markup-prgm1.scr \
		  expert/markup-prgm2.scr \
		  expert/markup-prgm3.scr \
		  expert/markup-prgm4.scr \
                  expert/fontification-prgm1.scr

MANUALSTYLE	= style/scribe-manual.scr style/scribe-margin.scr

IMAGES		= user/linux.gif user/bsd.gif

POPULATION	= $(MAN:%.man=%.scr) \
                  $(MANUALSTYLE) \
                  $(USERMANUALSRC) $(USERMANUALEX) \
                  $(EXPERTMANUALSRC) $(EXPERTMANUALEX) \
                  $(IMAGES) \
                  bib/scheme.bib bib/scribe.bib \
                  Makefile \
                  index.scr

#*---------------------------------------------------------------------*/
#*    Suffixes                                                         */
#*---------------------------------------------------------------------*/
.SUFFIXES:
.SUFFIXES: .man .scr .html .sui

#*---------------------------------------------------------------------*/
#*    All                                                              */
#*---------------------------------------------------------------------*/
.PHONY: user expert

all: $(MAN) \
     user/user.sui expert/expert.sui \
     $(USERMANUAL) \
     $(EXPERTMANUAL) \
     $(MANUALSTYLE) \
     Makefile \
     index.html

index.html: index.scr ../Makefile.scrconfig
	$(MAKE) doindex.html SCRIBEUSERDIR=user SCRIBEEXPERTDIR=expert


doindex.html:
	$(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) index.scr -o index.html

user: user/user.html user/user.sui 
user/user.html:	../Makefile.scrconfig \
                expert/expert.sui \
                $(USERMANUALSRC) \
                $(USERMANUALEX) \
                $(IMAGES) \
                bib/scheme.sbib \
                bib/scribe.sbib
	(cd user; \
         $(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) user.scr -o user.html)

user/user.sui: bib/scribe.sbib bib/scheme.sbib \
               $(USERMANUALSRC) $(USERMANUALEX) $(IMAGES)
	(cd user; \
         $(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) user.scr -o user.sui)

expert: expert/expert.html expert/expert.sui
expert/expert.html: ../Makefile.scrconfig \
                    user/user.sui \
                    $(EXPERTMANUALSRC) \
                    $(EXPERTMANUALEX) \
                    $(IMAGES) \
                    bib/scribe.sbib \
                    bib/scheme.sbib \
                    ../examples/embedded/embedded.scm
	(cd expert; \
         $(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) expert.scr -o expert.html)

expert/expert.sui: bib/scribe.sbib bib/scheme.sbib \
                   $(EXPERTMANUALSRC) $(EXPERTMANUALEX) $(IMAGES)
	(cd expert; \
         $(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) expert.scr -o expert.sui)

ps: user/user.ps user/user.sui expert/expert.ps expert/expert.sui

user.ps: user/user.ps
user/user.ps: user/user.dvi
	(cd user; \
         $(DVIPS) user.dvi -o user.ps)
user/user.dvi: user/user.tex
	(cd user; \
         $(LATEX) user.tex)
user/user.tex: user/user.scr $(USERMANUALSRC) \
                             $(USERMANUALEX) \
                             $(IMAGES) \
                             $(MANUALSTYLE) \
                             bib/scribe.sbib \
                             bib/scheme.sbib \
                             ../examples/embedded/embedded.scm
	(cd user; \
         $(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) user.scr -o user.tex)

expert.ps: expert/expert.ps
expert/expert.ps: expert/expert.dvi
	(cd expert; \
         $(DVIPS) expert.dvi -o expert.ps)
expert/expert.dvi: expert/expert.tex
	(cd expert; \
         $(LATEX) expert.tex)
expert/expert.tex: expert/expert.scr $(EXPERTMANUALSRC) \
                         $(EXPERTMANUALEX) \
                         $(IMAGES) \
                         $(MANUALSTYLE) \
                         bib/scheme.sbib \
                         bib/scribe.sbib
	(cd expert; \
         $(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) expert.scr -o expert.tex)

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

#*---------------------------------------------------------------------*/
#*    Cleaning                                                         */
#*---------------------------------------------------------------------*/
clean:
	/bin/rm -f $(MAN)
	/bin/rm -f scribe.html
	/bin/rm -f user/*.html user/*.sui
	/bin/rm -f expert/*.html expert/*.sui
	/bin/rm -f *~
	/bin/rm -f user/*.tex user/*.ps user/*.dvi user/*.toc user/*.eps user/*.log user/*.aux
	/bin/rm -f expert/*.tex expert/*.ps expert/*.dvi expert/*.toc expert/*.eps expert/*.log expert/*.aux
	/bin/rm -f bib/*.sbib

#*---------------------------------------------------------------------*/
#*    Automatic rules                                                  */
#*---------------------------------------------------------------------*/
.scr.man:
	$(SCRIBE) $(SCRIBEOPT) $(SCRIBEVARS) $*.scr -o $*.man

#*---------------------------------------------------------------------*/
#*    bib/scheme.sbib ...                                              */
#*---------------------------------------------------------------------*/
bib/scheme.sbib: bib/scheme.bib
	$(SCRIBEBIBTEX) bib/scheme.bib -o bib/scheme.sbib

#*---------------------------------------------------------------------*/
#*    bib/scribe.sbib ...                                              */
#*---------------------------------------------------------------------*/
bib/scribe.sbib: bib/scribe.bib
	$(SCRIBEBIBTEX) bib/scribe.bib -o bib/scribe.sbib

#*---------------------------------------------------------------------*/
#*    Dependences                                                      */
#*---------------------------------------------------------------------*/
$(USERMANUAL): $(MANUALSTYLE) \
               $(EXPERTSUI)
$(EXPERTMANUAL): $(MANUALSTYLE) \
              $(USERSUI) \
              ../scribeman/man.scm \
              ../scribehtml/api.scm

