summaryrefslogtreecommitdiff
path: root/support/make/verbfilter.mk
blob: 984313b30b69713e657b357d65eff132110e6690 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
############################################################-*-Makefile-*-####
# VERBFILTER - Verbfilter Latex Files
##############################################################################
# $Id$

##############################################################################
# Usage
#
#   make verbfilter[.clean|.distclean]
#   make [VERBFILTER=<verbfilter-source-file>] <*.tex>
#
##############################################################################
# Variables
#
# VERBFILTER		 = Verb filter source file
#
##############################################################################
# Examples
#
# Generate all .tex files produced by verbfiltering a .verb.tex file
#
#   make verbfilter
#
#
# Generate reference.tex by verbfiltering reference.verb.tex with the
# specified verbfilter
#
#   make VERBFILTER=../../support/latex/verbfilterScala reference.tex
#
##############################################################################

##############################################################################
# Defaults

JAVA			?= java
JAVAC			?= javac
VERBFILTER		?= $(PROJECT_SUPPORTDIR)/latex/verbfilterScala.java

##############################################################################
# Values

verbfilter		 = $(VERBFILTER:%.java=%)
verbfilter_CLASS	 = $(PROJECT_OUTPUTDIR)/$(verbfilter).class

##############################################################################
# Commands

all			: verbfilter
clean			: verbfilter.clean
distclean		: verbfilter.distclean

verbfilter		: $(patsubst %.verb.tex,%.tex,$(wildcard *.verb.tex))

verbfilter.clean	:

verbfilter.distclean	:
	@for file in *.verb.tex; do \
	    [ "$$file" = "*.verb.tex" ] || ( \
	        echo $(RM) "$${file%.verb.tex}.tex"; \
	        $(RM) "$${file%.verb.tex}.tex" ); \
	done
	$(RM) $(verbfilter_CLASS)

.PHONY			: verbfilter
.PHONY			: verbfilter.clean
.PHONY			: verbfilter.distclean

##############################################################################
# Rules

%.tex			: %.verb.tex $(verbfilter_CLASS)
	$(JAVA) -cp $(dir $(verbfilter_CLASS)) $(notdir $(verbfilter)) $< $@

$(verbfilter_CLASS)	: $(VERBFILTER)
	$(JAVAC) $?

.PRECIOUS		: %.tex
.PRECIOUS		: $(verbfilter_CLASS)

##############################################################################