summaryrefslogtreecommitdiff
path: root/doc/ThornGuide/Makefile
blob: 24f204aba3aa9045e985807d80fa9b0729959403 (plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# make (defaults to ThornGuide.ps)
# make ThornGuide.tex
# make ThornGuide.dvi
# make ThornGuide.ps
# make ThornGuide.pdf
# make THORNS="CactusWave/IDScalarWave,CactusWave/WaveToyF77" ARRANGEMENTS="CactusBase,CactusPUGHIO"


# Make quietly unless told not to
ifneq ($(strip $(SILENT)),no)
.SILENT:
endif

ifeq ($(strip $(CCTK_HOME)), )
   CCTK_HOME=$(shell pwd | sed 's,^/cygdrive/\(.\)/,\1:/,' | sed 's,^//\(.\)/,\1:/,' | sed 's/\/doc\/ThornGuide.*//' )
endif

ARRANGEMENTS_DIR=$(CCTK_HOME)/arrangements

ifeq ($(strip $(THORNLIST)), )
   THORNLIST=allthorns.th
endif

ifeq ($(strip $(TOCDEPTH)), )
   TOCDEPTH=0
endif

ifeq ($(strip $(PERL)), )
   PERL=/usr/bin/perl
endif

ifeq ($(strip $(MASTER_FILE)), )
   MASTER_FILE=ThornGuide
endif

IMAGE_FILE=$(CCTK_HOME)/doc/UsersGuide/bincactus2.eps


-include make.thornlist

.PHONY: default

default : $(MASTER_FILE).ps

$(MASTER_FILE).ps: $(MASTER_FILE).dvi 
	@echo "  Converting $< to PostScript ...."
	dvips -f $< 2> LOG_DVIPS_MSGS | $(CCTK_HOME)/lib/sbin/FixPageNumbersInPostscript.pl > $@ 
	if ! test -e "$@"; then                                    \
	   echo "  Cannot find $@, an error must have occured."; \
	fi

$(MASTER_FILE).dvi: $(MASTER_FILE).tex
	@echo "  LaTeXing $<...."
	# Fall through any latex errors so as to print sensible error message
	-latex --interaction errorstopmode $< < /dev/null 2>&1 > LOG_LATEX_FULL_MSGS
	-latex $< < /dev/null 2>&1 > LOG_LATEX_FULL_MSGS
	-latex $< < /dev/null 2>&1 | tee LOG_LATEX_FULL_MSGS | grep -v Underfull | grep -v Overfull | grep -v OT1 > LOG_LATEX_MSGS
	if test -e "$@"; then                                    \
	   if grep "^\! " "LOG_LATEX_FULL_MSGS"; then            \
	     echo "  Problem in $<.  See $(DOCBUILDDIR)/LOG_LATEX_* .";  \
	     exit 1;                                             \
	   elif grep "^LaTeX Warning:" "LOG_LATEX_FULL_MSGS"; then         \
	     echo "  Warnings in $<.  See $(DOCBUILDDIR)/LOG_LATEX_* ."; \
	     exit 0;                                             \
	   fi;                                                    \
	else                                                     \
	   echo "  Cannot find $@, an error must have occured."; \
	fi

$(MASTER_FILE).pdf: $(MASTER_FILE).dvi
	@echo "  Running dvipdf on $<...."
	-dvipdf $< < /dev/null 2>&1 > LOG_DVIPDF_MSGS
	if test ! -e "$@"; then                                    \
	  echo "  Problem in $<.  See doc/ThornGuide/build/LOG_DVIPDF_MSGS.";  \
	  exit 1; \
	fi

$(MASTER_FILE).tex:  $(foreach thorn, $(THORN_DEPENDENCIES), $(thorn)/param.ccl $(thorn)/interface.ccl $(thorn)/schedule.ccl) $(THORNLIST)
	@echo "  Gathering documentation from thorn ccl files"
	@echo "    Processing...."
	@echo "       param.ccl...."
	$(PERL) -s $(CCTK_HOME)/lib/sbin/ParamLatex.pl -cctk_home=$(CCTK_HOME) -directory=$(ARRANGEMENTS_DIR) -thornlist=$(THORNLIST) -outdir=./ -section -grouping=bythorn -sort=scope > LOG_PARAMLATEX_MSGS 2>&1
	@echo "       interface.ccl...."
	$(PERL) -s $(CCTK_HOME)/lib/sbin/InterLatex.pl -cctk_home=$(CCTK_HOME) -directory=$(ARRANGEMENTS_DIR) -thornlist=$(THORNLIST) -outdir=./ -section -grouping=bythorn > LOG_INTERLATEX_MSGS 2>&1
	@echo "       schedule.ccl...."
	$(PERL) -s $(CCTK_HOME)/lib/sbin/SchedLatex.pl -cctk_home=$(CCTK_HOME) -directory=$(ARRANGEMENTS_DIR) -thornlist=$(THORNLIST) -outdir=./ -section > LOG_SCHEDLATEX_MSGS 2>&1
	@echo "  Creating $@...."
	$(PERL) -s $(CCTK_HOME)/lib/sbin/ThornGuide.pl -cctk_home=$(CCTK_HOME) -directory=$(ARRANGEMENTS_DIR) -thornlist=$(THORNLIST) -outdir=./ -outfile=$(MASTER_FILE).tex -tocdepth=$(TOCDEPTH) > LOG_THORNGUIDE_MSGS 2>&1
	if test -e $(IMAGE_FILE) && test ! -e "bincactus2.eps"; then \
	   cp $(IMAGE_FILE) .;                                       \
	fi

make.thornlist: $(THORNLIST) 
	THORN_DEPENDENCIES=`$(PERL) -s $(CCTK_HOME)/lib/sbin/ThornList.pl -arrangements_dir=$(ARRANGEMENTS_DIR) -thornlist=$(THORNLIST)`

$(THORNLIST):
	@echo "  Creating $@...."
	$(PERL) -s $(CCTK_HOME)/lib/sbin/ThornList.pl -arrangements_dir=$(ARRANGEMENTS_DIR) -thorns=$(THORNS) -arrangements=$(ARRANGEMENTS)> $@