tex.mk: Total rewrite of the variables (with the old stuff still in)

This commit is contained in:
Jan Lindemann 2001-08-09 23:35:57 +00:00 committed by Jan Lindemann
commit cc0e942050

View file

@ -3,28 +3,39 @@
# contact@jannet.de # contact@jannet.de
# $Id$ # $Id$
FIG = $(wildcard *.fig)
EPSFROMFIG = $(patsubst %.fig,%.eps,$(FIG)) ifeq ($(TEX_TMPL_DIR), "")
IMAGES = $(patsubst %,$(IMAGEDIR)/%,$(FRONTLOGO_EPS) $(FRONTLOGO_WEB) \ TEX_TMPL_DIR = thisisnotadirectory
$(ICON_UP) $(ICON_PREV) $(ICON_NEXT) $(ICON_INDEX) $(ICON_CONTENTS)) \ endif
$(EPSFROMFIG)
LOCAL_IMPORTED_TEMPLATES = $(notdir $(IMPORTED_TEMPLATES)) # this is what is there already
FMT_OFFLINE = tex dvi ps pdf txt PRE_FIG_LOCAL = $(wildcard *.fig)
FMT = $(FMT_OFFLINE) html PRE_TEX_LOCAL = $(wildcard *.tex)
OUT = $(DISTDIR)/$(OUTPUT) PRE_TMPL_LOCAL = $(wildcard *.tmpl *.ger)
FMT_OUT = $(patsubst %,$(OUT).%.zip,$(FMT)) PRE_HTML_LOCAL = $(wildcard *.html)
FMT_OFFLINE_OUT = $(patsubst %,$(OUT).%.zip,$(FMT_OFFLINE)) PRE_FIG_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.fig))
ALL = $(FMT_OUT) html_install PRE_TEX_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.tex))
PRE_HTML = $(patsubst %.tmpl,%,$(wildcard *.html.tmpl)) PRE_TMPL_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.tmpl $(dir)/*.ger))
LINETMPL=$(wildcard *.linetmpl) PRE_HTML_REMOTE = $(foreach dir,$(TEX_TMPL_DIR),$(wildcard $(dir)/*.html))
TEXFROMGER=$(patsubst %.ger,%.tex,$(wildcard *.ger))
TMPL=$(wildcard *.tmpl) # this is what should be there
FILEFROMTMPL = $(patsubst %.tmpl,%,$(TMPL)) FILES_FROM_TMPL = $(notdir $(patsubst %.ger,%.tex,$(patsubst %.tmpl,%,$(PRE_TMPL_REMOTE) $(PRE_TMPL_LOCAL))))
#GERFROMLINETMPL=$(patsubst %.linetmpl,%,$(wildcard *.linetmpl)) EPS_FROM_FIG = $(notdir $(patsubst %.fig,%.eps,$(PRE_FIG_REMOTE) $(PRE_FIG_LOCAL)))
PRE_TEX = $(patsubst %.ger,%.tex,\ FILES_COPIED = $(notdir $(wildcard $(TEX_TMPL_DIR)/*.html $(TEX_TMPL_DIR)/*.tex))
$(patsubst %.tmpl,%,$(wildcard *.tex.tmpl *.ger.tmpl) $(LOCAL_IMPORTED_TEMPLATES)) \ GENERATED = $(FILES_FROM_TMPL) $(EPS_FROM_FIG) $(FILES_COPIED)
$(GERFROMLINETMPL)) $(TEXFROMGER) GENERATED_TEX = $(filter %.tex,$(GENERATED))
TEXSRC = $(wildcard *.tex) $(FILEFROMTMPL) $(IMAGES) $(LOCAL_SRC) $(PRE_TEX) GENERATED_EPS = $(filter %.eps,$(GENERATED))
GENERATED_HTML = $(filter %.html,$(GENERATED))
# all
TEX = $(PRE_TEX_LOCAL) $(GENERATED_TEX)
EPS = $(GENERATED_EPS)
HTML = $(PRE_HTML_LOCAL) $(GENERATED_HTML)
LATEX_INPUT = $(TEX) $(EPS)
HTML_INPUT = $(HTML) $(IMAGES)
# this comes in handy
DATE := $(shell date +'%b, %d, %Y') DATE := $(shell date +'%b, %d, %Y')
TEX_WARN_DONT_EDIT = "\ TEX_WARN_DONT_EDIT = "\
%+---------------------------------------------------+\n\ %+---------------------------------------------------+\n\
@ -33,27 +44,41 @@ TEX_WARN_DONT_EDIT = "\
%| process! |\n\ %| process! |\n\
%+---------------------------------------------------+\n" %+---------------------------------------------------+\n"
WD = `pwd` WD = `pwd`
IMAGES = $(patsubst %,$(IMAGEDIR)/%,$(FRONTLOGO_EPS) $(FRONTLOGO_WEB) \
$(ICON_UP) $(ICON_PREV) $(ICON_NEXT) $(ICON_INDEX) $(ICON_CONTENTS)) \
#LOCAL_IMPORTED_TEMPLATES = $(notdir $(IMPORTED_TEMPLATES))
#FMT_OFFLINE = tex dvi ps pdf txt
#FMT = $(FMT_OFFLINE) html
#OUT = $(DISTDIR)/$(OUTPUT)
#FMT_OUT = $(patsubst %,$(OUT).%.zip,$(FMT))
#FMT_OFFLINE_OUT = $(patsubst %,$(OUT).%.zip,$(FMT_OFFLINE))
#ALL = $(FMT_OUT) html_install
#PRE_HTML = $(patsubst %.tmpl,%,$(wildcard *.html.tmpl))
#LINETMPL=$(wildcard *.linetmpl)
#TEXFROMGER=$(patsubst %.ger,%.tex,$(wildcard *.ger))
#TMPL=$(wildcard *.tmpl)
#FILEFROMTMPL = $(patsubst %.tmpl,%,$(TMPL))
#GERFROMLINETMPL=$(patsubst %.linetmpl,%,$(wildcard *.linetmpl))
#PRE_TEX = $(patsubst %.ger,%.tex,\
# $(patsubst %.tmpl,%,$(wildcard *.tex.tmpl *.ger.tmpl) $(LOCAL_IMPORTED_TEMPLATES)) \
# $(GERFROMLINETMPL)) $(TEXFROMGER)
NEWDIRS = $(DISTDIR) $(HTMLDIR) $(DVIDIR) NEWDIRS = $(DISTDIR) $(HTMLDIR) $(DVIDIR)
define replace_linenumbers define mangle_tmpl
@echo replacing line numbers in templates @echo $< \-\> $@
cat $< | awk ' \ @echo -e $(TEX_WARN_DONT_EDIT) > $@
BEGIN { FS=":" } { \
if ($$0 ~ /SUBST_LINE_NUM/) { \
start=$$1; patt=$$2; file=$$3; \
regex=$$4; offset=$$5; rest=$$6; \
grepcmd="grep -n \042" regex "\042 " file; \
grepcmd | getline; \
linenum=$$1; \
print start linenum rest \
} else { print $$0 } } \
' >> $@
endef
define replace_macros
@echo replacing macros in templates
TMPIMAGEDIR="`echo $(IMAGEDIR) | sed -e 's/\//\\\\\//g;'`" ;\ TMPIMAGEDIR="`echo $(IMAGEDIR) | sed -e 's/\//\\\\\//g;'`" ;\
cat $< | sed -e "\ cat $< | sed -e "\
s/ä/\"a/g; \
s/Ä/\"A/g; \
s/ö/\"o/g; \
s/Ö/\"O/g; \
s/ü/\"u/g; \
s/Ü/\"Ü/g; \
s/ß/\"s/g; \
" | sed -e "\
s/__DATE__/$(DATE)/g; \ s/__DATE__/$(DATE)/g; \
s/__AUTHORS__/$(AUTHORS)/g; \ s/__AUTHORS__/$(AUTHORS)/g; \
s/__TITLE__/$(TITLE)/g; \ s/__TITLE__/$(TITLE)/g; \
@ -81,20 +106,6 @@ define replace_macros
' >> $@ ' >> $@
endef endef
define replace_umlauts
@echo replacing german umlauts with tex-style umlauts
@echo -e $(TEX_WARN_DONT_EDIT) > $@
cat $< | sed -e "\
s/ä/\"a/g; \
s/Ä/\"A/g; \
s/ö/\"o/g; \
s/Ö/\"O/g; \
s/ü/\"u/g; \
s/Ü/\"Ü/g; \
s/ß/\"s/g; \
" >> $@
endef
all: dirs $(ALL) all: dirs $(ALL)
tex: dirs $(OUT).tex.zip tex: dirs $(OUT).tex.zip
@ -104,26 +115,28 @@ txt: dirs $(OUT).txt.zip
html: dirs $(OUT).html.zip html: dirs $(OUT).html.zip
pdf: dirs $(OUT).pdf.zip pdf: dirs $(OUT).pdf.zip
# generate from remote rules
%.eps: $(TEX_TMPL_DIR)/%.fig
fig2dev -L eps $< $@
%.html: $(TEX_TMPL_DIR)/%.html
cp $< $@
%.tex: $(TEX_TMPL_DIR)/%.tex
cp $< $@
%: $(TEX_TMPL_DIR)/%.tmpl
$(mangle_tmpl)
# generate from local rules
%.eps: %.fig %.eps: %.fig
fig2dev -L eps $< $@ fig2dev -L eps $< $@
#%.ger: %.ger.linetmpl
# $(replace_linenumbers)
#
%.tex: %.ger %.tex: %.ger
$(replace_umlauts) $(mangle_tmpl)
%.tex: %.tex.tmpl %: %.tmpl
$(replace_macros) $(mangle_tmpl)
%.ger: %.ger.tmpl
$(replace_macros)
%.html: %.html.tmpl
$(replace_macros)
%.tmpl:
cp $(TEX_TMPL_DIR)/$@ .
cfgtest.done: cfgtest.done:
test -n "$(OUTPUT)" # OUTPUT test -n "$(OUTPUT)" # OUTPUT
@ -145,6 +158,12 @@ cfgtest.done:
test -n "$(VERSION)" # VERSION test -n "$(VERSION)" # VERSION
touch $@ touch $@
test:
@echo TEX_TMPL_DIR = $(TEX_TMPL_DIR)
@echo GENERATED = $(GENERATED)
@echo FILES_FROM_TMPL = $(FILES_FROM_TMPL)
@echo EPS_FROM_FIG = $(EPS_FROM_FIG)
cfgtest: cfgtest.done cfgtest: cfgtest.done
#%.clean: #%.clean:
@ -159,23 +178,21 @@ dirs: dirs.done
arch: arch:
test $(shell uname -s) = Linux test $(shell uname -s) = Linux
xdvi: $(TEXSRC) xdvi: $(LATEX_INPUT)
@echo "-- running latex just once ..." @echo "-- running latex just once ..."
echo $(IMAGES)
latex $(MAIN).tex latex $(MAIN).tex
xdvi $(MAIN).dvi xdvi $(MAIN).dvi
$(OUT).tex.zip: cfgtest $(TEXSRC) $(OUT).tex.zip: cfgtest $(LATEX_INPUT)
@echo "-- creating zipfile with tex source files" @echo "-- creating zipfile with tex source files"
zip $@ $(TEXSRC) 2>/dev/null zip $@ $(LATEX_INPUT) 2>/dev/null
$(OUTPUT).dvi: $(TEXSRC) $(OUTPUT).dvi: $(LATEX_INPUT)
@echo "-- creating dvi file" @echo "-- creating dvi file"
echo $(TEXSRC)
latex $(MAIN).tex; latex $(MAIN).tex; latex $(MAIN).tex; latex $(MAIN).tex; latex $(MAIN).tex; latex $(MAIN).tex;
cp $(MAIN).dvi $@ cp $(MAIN).dvi $@
$(OUT).dvi.zip: $(OUTPUT).dvi $(IMAGES) $(OUT).dvi.zip: $(OUTPUT).dvi
zip $@ $^ zip $@ $^
$(OUTPUT).txt: $(OUTPUT).dvi $(OUTPUT).txt: $(OUTPUT).dvi
@ -185,7 +202,7 @@ $(OUTPUT).txt: $(OUTPUT).dvi
$(OUT).txt.zip: $(OUTPUT).txt $(OUT).txt.zip: $(OUTPUT).txt
zip $@ $< zip $@ $<
$(HTMLDIR): $(TEXSRC) $(FMT_OFFLINE_OUT) $(PRE_HTML) $(HTMLDIR): $(LATEX_INPUT) $(HTML_INPUT)
test $(MAIN) != index test $(MAIN) != index
rm -rf $@ rm -rf $@
mkdir -p $@ mkdir -p $@
@ -236,8 +253,6 @@ clean:
@echo "-- cleaning up ..." @echo "-- cleaning up ..."
rm -rf *.aux *.toc *.dvi *.pdf *.ps *~ *.log *.done *.rep \ rm -rf *.aux *.toc *.dvi *.pdf *.ps *~ *.log *.done *.rep \
*.lol *.bak \ *.lol *.bak \
$(NEWDIRS) $(PRE_TEX) $(PRE_HTML) $(OUTPUT).txt \ $(NEWDIRS) $(OUTPUT).txt \
$(LOCAL_IMPORTED_TEMPLATES) \ $(GENERATED)
$(GERFROMLINETMPL) $(TEXFROMGER) $(EPSFROMFIG) \
$(FILEFROMTMPL)