Skip to content
Snippets Groups Projects
Commit 358618df authored by witiko's avatar witiko
Browse files

Updated the Makefile

The new target `uninstall` removes the files of the package from
the TeX directory structure. The `dist` and `dist-clean` structure
creates a browsable and a TeX directory structure-compliant
archives containing the files of the package.
parent cc81c08d
No related branches found
No related tags found
No related merge requests found
.PHONY: all explode clean clean-all install
.PHONY: all clean dist dist-clean explode implode install uninstall
SUBMAKEFILES=logo/mu logo/mu/color locale style style/mu
CLASSFILES=fithesis.cls fithesis2.cls fithesis3.cls
......@@ -6,14 +6,17 @@ STYLEFILES=style/*.sty style/*/*.sty style/*/*.clo
LOGOFILES=logo/*/*.eps logo/*/color/*.eps logo/*/*.pdf logo/*/color/*.pdf
LOCALEFILES=locale/*.def locale/*/*.def locale/*/*/*.def
DTXFILES=*.dtx locale/*.dtx style/*.dtx style/*/*.dtx
INSFILES=*.ins locale/*.ins style/*.ins style/*/*.ins
MAKEFILES=Makefile */Makefile */*/Makefile */*/*/Makefile
RESOURCES=$(STYLEFILES) $(LOGOFILES) $(LOCALEFILES)
SOURCES=$(DTXFILES) Makefile docstrip.cfg
SOURCEFILES=$(DTXFILES) $(INSFILES) docstrip.cfg
AUXFILES=example.aux example.log example.out example.toc example.lot example.lof example.bib fithesis.aux fithesis.log fithesis.toc fithesis.ind fithesis.idx fithesis.out fithesis.ilg fithesis.gls fithesis.glo fithesis.hd
MANUAL=fithesis.pdf
PDFSOURCES=fithesis.dtx example.tex
PDFFILES=$(MANUAL) example.pdf
TDSFILE=fithesis3.tds.zip
DISTFILE=fithesis3.zip
TEXFILES=$(CLASSFILES) $(RESOURCES)
LATEXFILES=$(CLASSFILES) $(RESOURCES)
TEXLIVEDIR=$(shell kpsewhich -var-value TEXMFLOCAL)
# This pseudo-target creates the class files, typesets both
......@@ -25,7 +28,10 @@ all:
# This pseudo-target creates the class files and typesets
# both the example file and the technical documentation
explode: fithesis3.cls $(PDFFILES) $(DISTFILE)
explode: fithesis3.cls $(PDFFILES)
# This pseudo-target creates the distribution archives.
dist: all $(TDSFILE) $(DISTFILE)
# This target creates the class files.
fithesis3.cls: fithesis.ins fithesis.dtx
......@@ -44,30 +50,80 @@ example.pdf: example.tex fithesis3.cls $(RESOURCES)
pdflatex $<
pdflatex $<
# This target generates a TeX directory structure file
$(TDSFILE): $(LATEXFILES) $(SOURCEFILES) $(PDFFILES) $(PDFSOURCES)
DIR=`mktemp -d` && \
make install to="$$DIR" nohash=true && \
(cd "$$DIR" && zip -r -v -nw $@ *) && \
mv "$$DIR"/$@ $@ && rm -rf "$$DIR"
# This target generates a distribution file
$(DISTFILE): $(TEXFILES) $(SOURCES) $(PDFFILES) $(PDFSOURCES)
zip -r -v $@ $^
$(DISTFILE): $(LATEXFILES) $(SOURCEFILES) $(MAKEFILES) $(PDFFILES) $(PDFSOURCES)
DIR=`mktemp -d` && mkdir "$$DIR/fithesis3" && \
cp --verbose $(TDSFILE) "$$DIR" && \
cp --parents --verbose $^ "$$DIR/fithesis3" && \
(cd "$$DIR" && zip -r -v -nw $@ *) && \
mv "$$DIR"/$@ $@ && rm -rf "$$DIR"
# This pseudo-target installs the class files and
# the technical documentation into the folder structure
# of the TeXLive package, whose root directory is
# specified within the "to" argument.
# the technical documentation into the TeX directory
# structure, whose root directory is specified within
# the "to" argument. Specify "nohash=true", if you wish
# to forgo the reindexing of the package database.
install:
@if [ -z "$(to)" ]; then \
printf "Usage: make to=DIRECTORY install-texlive\nDetected TeXLive directory: %s\n" $(TEXLIVEDIR); \
printf "Usage: make install to=DIRECTORY\nDetected TeXLive directory: %s\n" $(TEXLIVEDIR); \
exit 1; \
fi
fi
# Class, locale, style and logo files
mkdir --parents "$(to)/tex/latex/fithesis3"
cp --parents --verbose $(TEXFILES) "$(to)/tex/latex/fithesis3"
cp --parents --verbose $(LATEXFILES) "$(to)/tex/latex/fithesis3"
# Source files
mkdir --parents "$(to)/source/latex/fithesis3"
cp --parents --verbose $(SOURCEFILES) "$(to)/source/latex/fithesis3"
# Documentation
mkdir --parents "$(to)/doc/latex/fithesis3"
cp $(MANUAL) "$(to)/doc/latex/fithesis3/manual.pdf"
texhash
# Rebuild the hash
[ "$(nohash)" = "true" ] || texhash
# This pseudo-target installs the class files and
# the technical documentation into the TeX directory
# structure, whose root directory is specified within
# the "to" argument. Specify "nohash=true", if you wish
# to forgo the reindexing of the package database.
uninstall:
@if [ -z "$(from)" ]; then \
printf "Usage: make uninstall from=DIRECTORY\nDetected TeXLive directory: %s\n" $(TEXLIVEDIR); \
exit 1; \
fi
# Class, locale, style and logo files
rm -rf "$(from)/tex/latex/fithesis3"
# Source files
rm -rf "$(from)/source/latex/fithesis3"
# Documentation
rm "$(from)/doc/latex/fithesis3/manual.pdf"
rmdir "$(from)/doc/latex/fithesis3/"
# Rebuild the hash
[ "$(nohash)" = "true" ] || texhash
# This pseudo-target removes any existing auxiliary files.
clean:
rm -f $(AUXFILES)
# This pseudo-target removes the distribution archives.
dist-clean:
rm -f $(DISTFILE) $(TDSFILE)
# This pseudo-target removes any makeable files.
implode: clean
rm -f $(PDFFILES) $(CLASSFILES) $(DISTFILE)
implode: clean dist-clean
rm -f $(PDFFILES) $(CLASSFILES)
for dir in $(SUBMAKEFILES); do make implode -C "$$dir"; done
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment