# ======================================================================
# Makefile.guide
# Copyright (c) Markus Kohm, 2002-2019
#
# This file is part of the LaTeX2e KOMA-Script bundle.
#
# This work may be distributed and/or modified under the conditions of
# the LaTeX Project Public License, version 1.3c of the license.
# The latest version of this license is in
#   http://www.latex-project.org/lppl.txt
# and version 1.3c or later is part of all distributions of LaTeX 
# version 2005/12/01 or later and of this work.
#
# This work has the LPPL maintenance status "author-maintained".
#
# The Current Maintainer and author of this work is Markus Kohm.
#
# This work consists of all files listed in manifest.txt.
# ----------------------------------------------------------------------
# Makefile.guide
# Copyright (c) Markus Kohm, 2002-2019
#
# Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
# Version 1.3c, verteilt und/oder veraendert werden.
# Die neuste Version dieser Lizenz ist
#   http://www.latex-project.org/lppl.txt
# und Version 1.3c ist Teil aller Verteilungen von LaTeX
# Version 2005/12/01 oder spaeter und dieses Werks.
#
# Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained"
# (allein durch den Autor verwaltet).
#
# Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm.
# 
# Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien.
# ======================================================================

# ----------------------------------------------------------------------
# Load common rules
include $(BASEDIR)Makefile.baserules
# Load variable definitions
include $(BASEDIR)Makefile.baseinit
include $(DOCDIR)Makefile.latexinit
# ----------------------------------------------------------------------
# Temporary folder, used to create distribution.
# Same folder with postfix "-maintain" will be used to create maintain-
# distribution.
ifdef DISTDIR
export DISTDIR	   := $(DISTDIR)/$(LANGUAGE)
endif
ifdef MAINTAINDIR
export MAINTAINDIR := $(MAINTAINDIR)/$(LANGUAGE)
endif
ifdef INSTALLSRCDIR
export INSTALLSRCDIR := $(INSTALLSRCDIR)/$(LANGUAGE)
endif

# ----------------------------------------------------------------------
# List of all Makefiles
MAKE_FILES	= Makefile

# ----------------------------------------------------------------------
GUIDENAME       = scrgui$(LANGUAGESHORTCUT)

ifeq ($(LANGUAGE),english)
TEX_APPENDICES  = japanlco.tex
else
TEX_APPENDICES  =
endif

TEX_CHAPTERS     = preface.tex introduction.tex \
                   authorpart.tex typearea.tex scrbookreportarticle.tex \
                   scrlttr2.tex scrlayer-scrpage.tex \
		   scrdatetime.tex scraddr.tex \
                   adrconvnote.tex scrextend.tex scrjura.tex \
                   expertpart.tex scrbase.tex scrlfile.tex scrwfile.tex \
		   tocbasic.tex scrhack.tex \
		   scrlayer.tex \
		   scrlayer-scrpage-experts.tex scrlayer-notecolumn.tex \
                   typearea-experts.tex scrbookreportarticle-experts.tex \
                   scrlttr2-experts.tex \
                   $(TEX_APPENDICES)

TEX_MISC         = ../guide.tex ../linkalias.tex \
		   common-options.tex \
		   common-compatibility.tex \
		   common-draftmode.tex \
		   common-typearea.tex \
		   common-fontsize.tex \
		   common-textmarkup.tex \
		   common-parmarkup.tex \
		   common-oddorevenpage.tex \
		   common-interleafpage.tex \
		   common-footnotes.tex \
		   common-footnotes-experts.tex \
		   common-lists.tex \
		   common-marginpar.tex \
		   common-titles.tex \
		   common-dictum.tex \
		   common-headfootheight.tex \
		   common-pagestylemanipulation.tex

EXAMPLE_LETTER_DTX = scrlttr2examples.dtx

EXAMPLE_LETTER_LETTERS = $(foreach num,\
                           0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 \
                           20 21 22 23 nipponA nipponB,\
                           letter-$(num).tex)

EXAMPLE_LETTER_DTX_RESULT = $(EXAMPLE_LETTER_LETTERS) musterlogo.eps ich.lco

EXAMPLE_NOTECOLUMN_SRC = scrlayer-notecolumn-example.tex
EXAMPLE_NOTECOLUMN_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_NOTECOLUMN_SRC)))

EXAMPLE_JURA_SRC = scrjuraexample.tex

EXAMPLE_JURA_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_JURA_SRC)))

PLENGTH_DTX      = $(DOCDIR)plength.dtx

PLENGTH_DTX_RESULT = plength.drv plenDIN.mp varDIN.mp plinc.mp \
                   pltex-vars.mp pltex-terms.mp pllcoDIN.mp

PLENGTH_PDF      = plenDIN.pdf varDIN.pdf

PDF_EPS_SRC      = musterlogo.eps

PDF_EPS          = $(addsuffix .pdf,$(basename $(PDF_EPS_SRC)))

EXAMPLE_LETTER_TEX_SRC = $(EXAMPLE_LETTER_LETTERS) ich.lco
EXAMPLE_LETTER_SRC = $(EXAMPLE_LETTER_TEX_SRC) $(PDF_EPS)
EXAMPLE_LETTER_PDF = $(addsuffix .pdf,$(basename $(EXAMPLE_LETTER_LETTERS)))

GENERATED_SRC    = $(EXAMPLE_LETTER_PDF) $(PLENGTH_PDF) \
                   $(EXAMPLE_NOTECOLUMN_PDF) $(EXAMPLE_JURA_PDF)

GENERATED_CLEAN  = $(GENERATED_SRC) \
		   $(EXAMPLE_LETTER_DTX_RESULT) letter-label.tex \
		   $(PDF_EPS) \
                   $(PLENGTH_DTX_RESULT) 

TEX_SRC		= guide-$(LANGUAGELONG).tex $(TEX_CHAPTERS) $(TEX_MISC)

MISC_SRC	= $(MAKE_FILES) htmlsetup

DIST_SRC	= $(MISC_SRC) $(TEX_SRC) $(EXAMPLE_LETTER_DTX) \
		  $(EXAMPLE_NOTECOLUMN_SRC) $(EXAMPLE_JURA_SRC)

GUIDE_FILES     = $(GUIDENAME).pdf $(GUIDENAME).html

DIST_FILES	= $(DIST_SRC) $(GUIDE_FILES)

MAINTAIN_SRC	= $(DIST_SRC)

MAINTAIN_FILES	= $(MAINTAIN_SRC)

# ----------------------------------------------------------------------
# local rules
default_local: $(GUIDE_FILES)

prepare_local:
#	$(ECHO) $(GENERATED_SRC)

clean_local:
	$(RM) *.aux *.bbl *.blg *.glo *.idx *.ilg *.ind *.lof *.log *.lot \
	      *.dvi *.tmp  mpxerr.tex *.1 *.mp.keep *.mpo \
	      *.md5 *.toc *.mpx *.drv *.chn *.xref *.slnc

distclean_local: clean_local
	$(RM) $(GENERATED_CLEAN)

maintainclean_local: distclean_local
	$(RM) guide.pdf $(GUIDENAME).pdf $(GUIDENAME).html

ifdef DISTDIR

install_local: $(DIST_FILES)
	@if ! $(MKDIR) $(INSTALLSRCDIR) || \
	    ! [ -d $(INSTALLDOCDIR) ]; then \
	    echo '--------------------------------------------------'; \
	    echo '| Cannot install to' $(INSTALLSRCDIR) or $(INSTALLDOCDIR)!; \
	    echo '| You should try:'; \
	    echo '|     sudo "make install"'; \
	    echo '--------------------------------------------------'; \
	    exit 1; \
	fi
	$(INSTALL) $(DIST_SRC) $(INSTALLSRCDIR)
	$(INSTALL) $(GUIDE_FILES) $(INSTALLDOCDIR)
	$(foreach file,$(GUIDE_FILES),$(SYMLINK) ../../../../doc/latex/koma-script/$(file) $(INSTALLSRCDIR)/../$(file);)
	$(SECHO) ------------------------------------------------------------
	$(SECHO) Installed files at $(INSTALLSRCDIR):
	$(SECHO) $(DIST_SRC)
	$(SECHO) ------------------------------------------------------------
	$(SECHO) Installed files at $(INSTALLDOCDIR):
	$(SECHO) $(GUIDE_FILES)
	$(SECHO) ------------------------------------------------------------
	$(SECHO) Links at $(INSTALLSRCDIR)/..:
	$(SECHO) $(GUIDE_FILES)
	$(SECHO) ------------------------------------------------------------

uninstall_local:
	@if [ -d $(INSTALLSRCDIR) ]; then \
	    $(RM) -v $(foreach file,$(DIST_SRC),$(INSTALLSRCDIR)/$(file)); \
	    if [ ls $(INSTALLSRCDIR) > /dev/null 2>&1; then \
	        $(RMDIR) -v $(INSTALLSRCDIR); \
	    else \
	        echo "$(INSTALLSRCDIR) not empty!"; \
	    fi; \
	else \
	    echo "$(INSTALLSRCDIR) not found --> nothing to uninstall!"; \
	fi
	@if [ -d $(INSTALLDOCDIR) ]; then \
	    $(RM) -v $(foreach file,$(GUIDE_FILES),$(INSTALLDOCDIR)/$(file)); \
	else \
	    echo "$(INSTALLDOCDIR) not found --> nothing to uninstall!"; \
	fi

dist_local: $(DIST_FILES)
	-$(RMDIR) $(DISTDIR)
	$(MKDIR) $(DISTDIR)
	$(CP) $(DIST_FILES) $(DISTDIR)

maintain_local:
	-$(RMDIR) $(MAINTAINDIR)
	$(MKDIR) $(MAINTAINDIR)
	$(CP) $(MAINTAIN_FILES) $(MAINTAINDIR)

else

install_local:
	$(error install not supported at local make)

uninstall_local:
	$(error uninstall not supported at local make)

dist_local:
	$(error dist not supported at local make)

maintain_prior:
	$(error maintain not supported at local make)

endif

# ----------------------------------------------------------------------
# usefull addons

edit:
	$(EDITOR) $(TEX_SRC)

# ----------------------------------------------------------------------
# file rules

CKSUMFILES = $(BIBTEX_SRC) $(MAKEINDEXSTYLE) $(MAKECHANGESTYLE) \
	     guide.aux guide.ind guide.idx guide.bbl guide.toc guide.lot \
	     guide.chn guide.glo \
	     $(foreach file,$(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS),$(basename $(file)).aux)

define latex
	$(SMV) $@ guide.pdf || exit 0
	@while ! $(CKSUM) -c guide.md5; do \
	  $(CKSUM) $(CKSUMFILES) > guide.md5 \
	  && $(PDFLATEX) guide.tex \
	  && ( $(BIBTEX) guide || [ $$? -le $(BIBTEXNOERROR) ] || exit 1 ) \
          && $(BIBTEXFIX) guide.bbl \
	  && $(MAKEINDEX) guide.ind guide.idx  \
	  && $(INDEXPOSTOP) guide \
	  && $(MAKECHANGE) guide.chn guide.glo \
	  || exit 1;\
	done
	$(SMV) guide.pdf $@
endef

$(GUIDENAME).html: htmlsetup guide.aux \
                   $(foreach file,$(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS),\
		             $(basename $(file)).aux)
	$(GENHTMLINDEX) $(addsuffix .aux,\
	                  $(basename $(TEX_CHAPTERS) $(TEX_NONFREECHAPTERS)))\
			  >$@

$(GUIDENAME).pdf: $(DOCDIR)scrguide.cls $(DOCDIR)guide.tex $(GENERATED_SRC)\
		  guide.aux guide.bbl $(BIBTEX_SRC) \
	          $(MAKEINDEXSTYLE) guide.ind guide.idx \
		  $(MAKECHANGESTYLE) guide.chn guide.glo \
	          $(TEX_SRC) $(TEX_NONFREECHAPTERS) $(TEX_NONFREEMISC)
	$(SRM) guide.md5
	$(latex)

$(PLENGTH_DTX_RESULT): $(PLENGTH_DTX)
	$(PDFLATEX) $<

$(PLENGTH_PDF): $(PLENGTH_DTX_RESULT)
	$(MPOST) $(addsuffix .mp,$(basename $@))
	$(MPTOPDF) $(addsuffix .mp,$(basename $@))
	@if [ -r $(addsuffix -1.pdf,$(basename $@)) ];\
	  then $(MV) $(addsuffix .pdf,$(basename $@)-1) $@;\
	fi

$(PDF_EPS): $(PDF_EPS_SRC)
	$(EPSTOPDF) $(addsuffix .eps,$(basename $@))

$(EXAMPLE_LETTER_PDF): $(EXAMPLE_LETTER_SRC)
	$(PDFLATEX) $(addsuffix .tex,$(basename $@))

$(EXAMPLE_LETTER_DTX_RESULT): $(EXAMPLE_LETTER_DTX)
	$(PDFLATEX) $<

ifdef EXAMPLE_NOTECOLUMN_SRC
$(EXAMPLE_NOTECOLUMN_PDF): $(EXAMPLE_NOTECOLUMN_SRC)
	$(PDFLATEX) $<
	$(PDFLATEX) $<
	$(PDFLATEX) $<
	$(PDFLATEX) $<
endif

ifdef EXAMPLE_JURA_SRC
$(EXAMPLE_JURA_PDF): $(EXAMPLE_JURA_SRC)
	$(PDFLATEX) $(addsuffix .tex,$(basename $@))
	$(PDFLATEX) $(addsuffix .tex,$(basename $@))
	$(PDFLATEX) $(addsuffix .tex,$(basename $@))
endif

guide.ind: guide.idx
	$(MAKEINDEX) $@ $<
	$(INDEXPOSTOP) guide

guide.chn: guide.glo
	$(MAKECHANGE) $@ $<

guide.bbl: $(BIBTEX_SRC) guide.aux
	$(BIBTEX) guide || test $$? -le $(BIBTEXNOERROR)
	$(BIBTEXFIX) guide.bbl

guide.glo guide.idx guide.aux: $(DOCDIR)guide.tex $(TEX_SRC) \
	                       $(TEX_NONFREECHAPTERS) $(TEX_NONFREEMISC)
	$(PDFLATEX) guide.tex

# ----------------------------------------------------------------------
