2001-07-09 12:41:53 +00:00
# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
2010-07-08 11:50:48 +00:00
i n c l u d e $( MODDIR ) / m a k e / t a g - d e f s . m k
i n c l u d e $( MODDIR ) / m a k e / t a g - r u l e s . m k
2001-08-09 23:35:57 +00:00
i f e q ( $( TEX_TMPL_DIR ) , "" )
TEX_TMPL_DIR = thisisnotadirectory
e n d i f
2002-01-31 19:51:04 +00:00
latex = latex
2011-08-09 19:34:12 +00:00
PDFLATEX = pdflatex
2011-08-18 15:48:51 +00:00
PDF_VIEWER ?= $( firstword $( shell which okular kpdf acroread) )
2001-08-09 23:35:57 +00:00
# this is what is there already
PRE_FIG_LOCAL = $( wildcard *.fig)
PRE_TEX_LOCAL = $( wildcard *.tex)
PRE_TMPL_LOCAL = $( wildcard *.tmpl *.ger)
PRE_HTML_LOCAL = $( wildcard *.html)
PRE_FIG_REMOTE = $( foreach dir,$( TEX_TMPL_DIR) ,$( wildcard $( dir) /*.fig) )
PRE_TEX_REMOTE = $( foreach dir,$( TEX_TMPL_DIR) ,$( wildcard $( dir) /*.tex) )
PRE_TMPL_REMOTE = $( foreach dir,$( TEX_TMPL_DIR) ,$( wildcard $( dir) /*.tmpl $( dir) /*.ger) )
PRE_HTML_REMOTE = $( foreach dir,$( TEX_TMPL_DIR) ,$( wildcard $( dir) /*.html) )
# this is what should be there
FILES_FROM_TMPL = $( notdir $( patsubst %.ger,%.tex,$( patsubst %.tmpl,%,$( PRE_TMPL_REMOTE) $( PRE_TMPL_LOCAL) ) ) )
2005-03-11 20:38:48 +00:00
EPS_FROM_FIG = $( notdir $( patsubst %.fig,%.png,$( PRE_FIG_REMOTE) $( PRE_FIG_LOCAL) ) )
2001-08-09 23:35:57 +00:00
FILES_COPIED = $( notdir $( wildcard $( TEX_TMPL_DIR) /*.html $( TEX_TMPL_DIR) /*.tex) )
GENERATED = $( FILES_FROM_TMPL) $( EPS_FROM_FIG) $( FILES_COPIED)
GENERATED_TEX = $( filter %.tex,$( GENERATED) )
2005-03-11 20:38:48 +00:00
GENERATED_EPS = $( filter %.png,$( GENERATED) )
2001-08-09 23:35:57 +00:00
GENERATED_HTML = $( filter %.html,$( GENERATED) )
2010-03-07 10:54:37 +00:00
CMD_PARSE_GRAPHICS = sed '/includegraphics/ !d; s/[^{]*{\([^}]*\).*/\1/; /^\.\./ d; s/^.\///' *.tex *.tmpl | sort -u
2011-08-09 19:34:12 +00:00
CONTACT_EMAIL ?= contact@jannet.de
2010-07-29 10:56:53 +00:00
i f e q ( $( DIST_VERSION ) , )
DIST_VERSION = $( VERSION)
e n d i f
2001-08-09 23:35:57 +00:00
# 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
2003-12-02 07:00:07 +00:00
DATE := $( if $( DATE) ,$( DATE) ,$( shell date +'%b, %d, %Y' ) )
2001-07-11 13:14:12 +00:00
TEX_WARN_DONT_EDIT = " \
% + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ n \
% | D O N O T E D I T T H I S F I L E ! | \ n \
% | I t w a s a u t o m a t i c a l l y c r e a t e d d u r i n g t h e b u i l d | \ n \
% | p r o c e s s ! | \ n \
% + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ n "
2001-09-13 07:12:04 +00:00
HTML_WARN_DONT_EDIT = " \
< ! - - \ n \
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ n \
| D O N O T E D I T T H I S F I L E ! | \ n \
| I t w a s a u t o m a t i c a l l y c r e a t e d d u r i n g t h e b u i l d | \ n \
| p r o c e s s ! | \ n \
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ n \
- - > "
2001-07-09 12:41:53 +00:00
WD = ` pwd `
2001-08-09 23:35:57 +00:00
IMAGES = $( patsubst %,$( IMAGEDIR) /%,$( FRONTLOGO_EPS) $( FRONTLOGO_WEB) \
$( ICON_UP) $( ICON_PREV) $( ICON_NEXT) $( ICON_INDEX) $( ICON_CONTENTS) ) \
2001-08-08 19:06:43 +00:00
2001-08-09 23:35:57 +00:00
#LOCAL_IMPORTED_TEMPLATES = $(notdir $(IMPORTED_TEMPLATES))
2002-01-31 19:51:04 +00:00
#FMT_OFFLINE = tex dvi ps pdf txt
FMT_OFFLINE = tex pdf # txt
2001-09-13 07:12:04 +00:00
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
2001-08-09 23:35:57 +00:00
#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)
2006-02-12 20:53:01 +00:00
i f e q ( $( DOCUMENT_CLASS ) , )
DOCUMENT_CLASS = article
e n d i f
2001-08-09 23:35:57 +00:00
d e f i n e m a n g l e _ t m p l
2010-07-08 17:59:30 +00:00
@echo " + generating $< -> $@ "
2001-09-13 07:12:04 +00:00
@if [ $( suffix $@ ) = tex ] ; then echo -e $( TEX_WARN_DONT_EDIT) > $@ ; fi
@if [ $( suffix $@ ) = html ] ; then echo -e $( HTML_WARN_DONT_EDIT) > $@ ; fi
2011-08-09 19:34:12 +00:00
cat $< | sed -e " \
2003-08-09 18:03:46 +00:00
s%__DATE__%$( DATE) %g; \
s%__AUTHORS__%$( AUTHORS) %g; \
2011-08-09 19:34:12 +00:00
s%__CONTACT_EMAIL__%$( CONTACT_EMAIL) %g; \
2003-08-09 18:03:46 +00:00
s%__TITLE__%$( TITLE) %g; \
2010-07-29 10:56:53 +00:00
s%__VERSION__%$( DIST_VERSION) %g; \
2003-08-09 18:03:46 +00:00
s%__SUBTITLE__%$( SUBTITLE) %g; \
s%__CONFIDENTIAL_REMARK__%$( CONFIDENTIAL_REMARK) %g; \
s%__HEADER__%$( HEADER) %g; \
s%__FRONTPAGE__%$( FRONTPAGE) %g; \
s%__FRONTLOGO_EPS__%$( IMAGEDIR) /$( FRONTLOGO_EPS) %g; \
s%__FRONTLOGO_WEB__%$( FRONTLOGO_WEB) %g; \
s%__ICON_UP__%$( ICON_UP) %g; \
s%__ICON_INDEX__%$( ICON_INDEX) %g; \
s%__ICON_CONTENTS__%$( ICON_CONTENTS) %g; \
s%__ICON_PREV__%$( ICON_PREV) %g; \
s%__ICON_NEXT__%$( ICON_NEXT) %g; \
2006-02-12 20:53:01 +00:00
s%__DOCUMENT_CLASS__%$( DOCUMENT_CLASS) %g; \
2010-07-08 18:56:26 +00:00
s%__UPLOAD_MODULE_PATH__%$( UPLOAD_MODULE_PATH) %g; \
s%__UPLOAD_TEST_PREFIX__%$( UPLOAD_TEST_PREFIX) %g; \
2011-08-09 19:34:12 +00:00
s%ä%\\ \\ \" a%g; \
s%Ä%\\ \\ \" A%g; \
s%ö%\\ \\ \" o%g; \
s%Ö%\\ \\ \" O%g; \
s%ü%\\ \\ \" u%g; \
s%Ü%\\ \\ \" U%g; \
s%ß%\\ \" s%g; \
2010-07-08 18:00:39 +00:00
s%\x c3\x a4%\\ \\ \" a%g; \
s%\x c3\x 84%\\ \\ \" A%g; \
s%\x c3\x b6%\\ \\ \" o%g; \
s%\x c3\x 96%\\ \\ \" O%g; \
s%\x c3\x bc%\\ \\ \" u%g; \
s%\x c3\x 9c%\\ \\ \" U%g; \
s%\x c3\x 9f%\\ \" s%g; \
2001-08-08 19:06:43 +00:00
" | awk ' \
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 } } \
2010-07-08 17:59:30 +00:00
' >> $@ .tmp
@mv $@ .tmp $@
2001-07-11 13:14:12 +00:00
e n d e f
2001-09-18 14:10:01 +00:00
first_target : dirs $( ALL )
2001-07-09 12:41:53 +00:00
2001-07-11 09:41:22 +00:00
tex : dirs $( OUT ) .tex .zip
dvi : dirs $( OUT ) .dvi .zip
ps : dirs $( OUT ) .ps .zip
txt : dirs $( OUT ) .txt .zip
html : dirs $( OUT ) .html .zip
pdf : dirs $( OUT ) .pdf .zip
2010-03-06 17:54:38 +00:00
odt : dirs $( OUT ) .odt
2010-03-07 10:54:37 +00:00
texsrc : $( GENERATED )
2001-07-09 12:41:53 +00:00
2001-08-09 23:35:57 +00:00
# generate from remote rules
2005-03-11 20:38:48 +00:00
%.png : $( TEX_TMPL_DIR ) /%.fig
fig2dev -L png $< $@
2001-08-06 09:50:19 +00:00
2001-08-09 23:35:57 +00:00
%.html : $( TEX_TMPL_DIR ) /%.html
cp $< $@
2001-07-11 13:14:12 +00:00
2001-08-09 23:35:57 +00:00
%.tex : $( TEX_TMPL_DIR ) /%.tex
cp $< $@
2001-07-09 18:34:15 +00:00
2001-09-11 16:24:32 +00:00
%.tex : %.tex .tmpl
$( mangle_tmpl)
%.tex : $( TEX_TMPL_DIR ) /%.tex .tmpl
$( mangle_tmpl)
%.html : $( TEX_TMPL_DIR ) /%.html .tmpl
2001-08-09 23:35:57 +00:00
$( mangle_tmpl)
2001-07-26 14:06:31 +00:00
2001-08-09 23:35:57 +00:00
# generate from local rules
2005-03-11 20:38:48 +00:00
%.png : %.fig
fig2dev -L png $< $@
2001-07-09 18:34:15 +00:00
2001-08-09 23:35:57 +00:00
%.tex : %.ger
$( mangle_tmpl)
% : %.tmpl
$( mangle_tmpl)
2001-07-11 09:41:22 +00:00
2001-07-09 12:41:53 +00:00
cfgtest.done :
2001-07-11 09:41:22 +00:00
test -n " $( OUTPUT) " # OUTPUT
2001-07-09 12:41:53 +00:00
test -n " $( DISTDIR) " # DISTDIR
test -n " $( HTMLDIR) " # HTMLDIR
test -n " $( TARGET_HOST) " # TARGET_HOST
test -n " $( TARGET_DIR) " # TARGET_DIR
test -n " $( TARGET_DIR_MODE) " # TARGET_DIR_MODE
test -n " $( TARGET_FILE_MODE) " # TARGET_FILE_MODE
test -n " $( TARGET_USER) " # TARGET_USER
test -n " $( MAIN) " # MAIN
2001-07-11 09:41:22 +00:00
test -n " $( FRONTPAGE) " # FRONTPAGE
test -n " $( IMAGES) " # IMAGES
2001-07-09 18:34:15 +00:00
test -n " $( AUTHORS) " # AUTHORS
test -n " $( TITLE) " # TITLE
test -n " $( SUBTITLE) " # SUBTITLE
2002-12-15 17:45:30 +00:00
test -d $( IMAGEDIR) # IMAGEDIR
2001-07-11 09:41:22 +00:00
@for IMG in $( IMAGES) ; do if [ ! -f $$ IMG ] ; then echo " $$ IMG is missing " ; exit 1; fi ; done
test -n " $( VERSION) " # VERSION
2001-07-09 12:41:53 +00:00
touch $@
2001-08-09 23:35:57 +00:00
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)
2001-07-09 12:41:53 +00:00
cfgtest : cfgtest .done
2001-07-11 09:41:22 +00:00
#%.clean:
# rm -rf $(OUT).%.zip
2001-07-09 12:41:53 +00:00
dirs.done :
mkdir -p $( NEWDIRS)
touch dirs.done
dirs : dirs .done
2001-07-11 09:41:22 +00:00
arch :
2001-07-09 12:41:53 +00:00
test $( shell uname -s) = Linux
2003-08-09 18:03:46 +00:00
xdvi : $( LATEX_INPUT )
@echo "-- running latex just once ..."
$( latex) $( MAIN) .tex
xdvi $( MAIN) .dvi
xpdf : $( LATEX_INPUT )
@echo "-- running latex just once ..."
2011-08-09 19:34:12 +00:00
$( PDFLATEX) $( MAIN) .tex
$( PDF_VIEWER) $( MAIN) .pdf
2001-07-09 12:41:53 +00:00
2001-08-09 23:35:57 +00:00
$(OUT).tex.zip : cfgtest $( LATEX_INPUT )
2001-07-09 12:41:53 +00:00
@echo "-- creating zipfile with tex source files"
2001-08-09 23:35:57 +00:00
zip $@ $( LATEX_INPUT) 2>/dev/null
2001-07-09 12:41:53 +00:00
2002-01-31 19:51:04 +00:00
#$(OUTPUT).dvi: $(LATEX_INPUT)
# @echo "-- creating dvi file"
# $(latex) $(MAIN).tex; $(latex) $(MAIN).tex; $(latex) $(MAIN).tex;
# cp $(MAIN).dvi $@
2001-07-09 12:41:53 +00:00
2002-01-31 19:51:04 +00:00
#$(OUT).dvi.zip: $(OUTPUT).dvi
# zip $@ $^
2001-07-09 12:41:53 +00:00
2002-01-31 19:51:04 +00:00
#$(OUTPUT).txt: $(OUTPUT).dvi
# @echo "-- creating plain ascii file"
# dvi2tty $< -w100 -o $@
2001-07-09 12:41:53 +00:00
2002-01-31 19:51:04 +00:00
#$(OUT).txt.zip: $(OUTPUT).txt
# zip $@ $<
2001-07-09 12:41:53 +00:00
2010-03-07 10:54:37 +00:00
TEX4HT_FIRST_LATEX_LINE = \
'\makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCode"\#\#1"{\Link\#\#1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link\#1.a.b.c.{\g@addto@macro\@documentclasshook{\RequirePackage[\#1,html,3,sections+]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\let\documentstyle\HCode\expandafter\def\csname tex4ht\endcsname{\#1,html,3}\def\HCode\#\#\#\#1{\documentstyle[tex4ht,3}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode .a.b.c.\input'
$(HTMLDIR) : $( LATEX_INPUT ) $( HTML_INPUT )
2001-07-09 12:41:53 +00:00
test $( MAIN) != index
rm -rf $@
mkdir -p $@
2010-03-07 10:54:37 +00:00
latex $( TEX4HT_FIRST_LATEX_LINE) $( MAIN)
latex $( TEX4HT_FIRST_LATEX_LINE) $( MAIN)
latex $( TEX4HT_FIRST_LATEX_LINE) $( MAIN)
tex4ht $( MAIN)
t4ht -d$( HTMLDIR) $( MAIN)
#cat index_head.html $(MAIN.html) index_tail.html > index.html
cat $( MAIN.html) > index.html
mv *.html *.css $( HTMLDIR)
mkdir -p $( addprefix $( HTMLDIR) /,$( sort $( dir $( shell $( CMD_PARSE_GRAPHICS) ) ) ) )
for g in $( sort $( shell $( CMD_PARSE_GRAPHICS) ) ) ; do cp $$ g $( HTMLDIR) /$$ g; done
#cp -p $(IMAGES) $(HTMLDIR)
2001-07-09 12:41:53 +00:00
touch $@
2001-07-11 09:41:22 +00:00
$(OUT).html.zip : $( HTMLDIR )
2001-07-09 12:41:53 +00:00
@echo "-- creating zipfile with html source files"
zip -r $@ $( HTMLDIR)
2002-01-31 19:51:04 +00:00
#$(OUTPUT).ps: $(OUTPUT).dvi
# @echo "-- creating postscript file"
# dvips -f $< > $(OUTPUT).ps
2001-07-09 12:41:53 +00:00
2002-01-31 19:51:04 +00:00
#$(OUT).ps.zip: $(OUTPUT).ps
# zip $@ $<
2001-07-09 12:41:53 +00:00
2002-03-01 21:54:29 +00:00
$(OUTPUT).pdf : $( GENERATED )
2001-07-09 12:41:53 +00:00
@echo "-- creating pdf file"
2011-08-09 19:34:12 +00:00
@for i in 1 2 3 ; do echo " ================================================================== pass $$ i: running $( PDFLATEX) $( MAIN) .tex " ; $( PDFLATEX) $( MAIN) .tex || exit 1; done
2010-07-08 17:59:30 +00:00
@mv $( MAIN) .pdf $( OUTPUT) .pdf
2001-07-09 12:41:53 +00:00
2001-07-11 09:41:22 +00:00
$(OUT).pdf.zip : $( OUTPUT ) .pdf
2001-07-09 12:41:53 +00:00
zip $@ $<
2010-03-06 17:54:38 +00:00
$(OUTPUT).odt : $( GENERATED )
@echo "-- creating odt file"
2010-03-07 10:54:37 +00:00
mk4ht oolatex $( MAIN) .tex
2010-03-06 17:54:38 +00:00
mv $( MAIN) .odt $( OUTPUT) .odt
2001-07-09 12:41:53 +00:00
html_install : $( HTMLDIR )
@echo " -- installing html to $( TARGET_HOST) : $( TARGET_DIR) as user $( TARGET_USER) "
2007-08-23 10:57:38 +00:00
$( CVS_RSH) -l $( TARGET_USER) $( TARGET_HOST) -C " \
2001-07-09 12:41:53 +00:00
mkdir -p $( TARGET_DIR) ; chmod $( TARGET_DIR_MODE) $( TARGET_DIR) "
2007-08-23 10:57:38 +00:00
/usr/bin/rsync -az --delete -v --links -e $( CVS_RSH) $( HTMLDIR) /* $( TARGET_USER) @$( TARGET_HOST) :$( TARGET_DIR)
$( CVS_RSH) -l $( TARGET_USER) $( TARGET_HOST) -C " \
2001-07-09 12:41:53 +00:00
cd $( TARGET_DIR) ; find . -type d | xargs chmod $( TARGET_DIR_MODE) ; find . -type f | xargs chmod $( TARGET_FILE_MODE) "
clean :
@echo "-- cleaning up ..."
2011-08-09 19:34:12 +00:00
rm -rf *.aux *.toc *.dvi *.pdf *.ps *~ *.log *.done *.rep *.nav *.snm \
2010-03-06 17:54:38 +00:00
*.4ct *.4tc *.4of *.4oo *.4os *.4og */*.4og *.css *.html *.idv *.lg *.xref *.odt \
2003-08-14 11:52:47 +00:00
*.lol *.bak *.idx *.ilg *.ind *.out *.brf .\# * \# * \
2001-08-09 23:35:57 +00:00
$( NEWDIRS) $( OUTPUT) .txt \
2002-05-05 11:16:26 +00:00
$( GENERATED) \
$( CLEAN)
2010-06-30 15:29:34 +00:00
priceclean : clean
for f in ` grep -i euro *.tmpl | cut -d: -f1 | sort -u` ; do \
grep -vi euro $$ f > $$ f.new ; \
mv $$ f.new $$ f ; \
done
view : pdf
2011-08-09 19:34:12 +00:00
$( PDF_VIEWER) *.pdf
2010-06-30 15:29:34 +00:00
unzip :
unzip *.zip
2010-07-08 11:50:48 +00:00
UPLOAD_FILES = $( OUTPUT) .pdf
i n c l u d e $( MODDIR ) / m a k e / u p l o a d . m k