Add support for pretty printing lambda calculus.
[matthijs/master-project/report.git] / SConstruct
1 # Based on the Latex SConstruct at
2 # https://gutefee.massey.ac.nz/moin/HOWTO/LaTeX/LaTeX-SCons-Builder
3 #
4 import os
5 import os.path
6
7 #### Some configurations.
8
9 LATEX_PROJECT = 'Core2Core'
10
11 DEFAULT_TARGET = 'pdf'
12
13 GNUPLOT_DIAGRAMS = []
14
15 EPS_FIGURES = []
16
17 PDF_FIGURES = []
18
19 ## Some rather fixed configurations:
20
21 GNUPLOT_DIRECTORY = 'images'
22 GNUPLOT_EXTENSION = '.gnuplot'
23 EPS_DIRECTORY = 'eps'
24 EPS_EXTENSION = '.eps'
25 PDF_DIRECTORY = 'pdf'
26 PDF_EXTENSION = '.pdf'
27
28 #MAKEINDEX_EXTENSIONS = ['.glg', '.glo', '.gls']
29
30
31 #### Defining some new builders.
32 env = Environment()
33
34 ## eps2pdf Builder:
35 pdfBuilder = Builder(action='epstopdf $SOURCE --outfile=$TARGET',
36                      suffix='.pdf',
37                      src_suffix='.eps')
38 env.Append(BUILDERS={'Eps2pdf': pdfBuilder})
39
40 ## eps2eps Builder:
41 epsBuilder = Builder(action='pdftops -eps -level3 $SOURCE $TARGET',
42                      suffix='.eps',
43                      src_suffix='.pdf')
44 env.Append(BUILDERS={'Pdf2eps': epsBuilder})
45
46 ## GNUplot Builder:
47 gnuplotBuilder = Builder(action='gnuplot $SOURCE',
48                          suffix='.eps',
49                          src_suffix='.gnuplot')
50 env.Append(BUILDERS={'Gnuplot': gnuplotBuilder})
51
52 ## Context MkIV Builder:
53 contextBuilder = Builder(action=['texexec --lua $SOURCE','scp $TARGET ewi:'],
54                          suffix='.pdf',
55                          src_suffix='.tex')
56 env.Append(BUILDERS={'Context': contextBuilder})
57
58 # Import tex settings from the user environment
59 env['ENV']['TEXMFCNF'] = os.environ['TEXMFCNF']
60 env['ENV']['HOME'] = os.environ['HOME']
61 # Allow the SSH agent to be used
62 env['ENV']['SSH_AUTH_SOCK'] = os.environ['SSH_AUTH_SOCK']
63
64
65 #### The actual builds.
66
67 ## Context PDF build
68 pdfOutput = env.Context(LATEX_PROJECT)
69 env.Alias('pdf', LATEX_PROJECT + '.pdf')
70
71 # Keep below code happy
72 dviOutput = pdfOutput
73
74 Default(DEFAULT_TARGET)
75
76 ## Create makeindex file list for dependencies and clean up:
77 #for item in MAKEINDEX_EXTENSIONS:
78 #    fileName = os.path.join(LATEX_PROJECT + item)
79 #    Depends(dviOutput, fileName)
80 #    Depends(pdfOutput, fileName)
81 #    Clean(dviOutput, fileName)
82 #    Clean(pdfOutput, fileName)
83
84 ## Build GNUplot figures:
85 for item in GNUPLOT_DIAGRAMS:
86     gnuplotFile = os.path.join(GNUPLOT_DIRECTORY, item + GNUPLOT_EXTENSION)
87     epsFile = os.path.join(EPS_DIRECTORY, item + EPS_EXTENSION)
88     pdfFile = os.path.join(PDF_DIRECTORY, item + PDF_EXTENSION)
89     
90     env.Gnuplot(epsFile, gnuplotFile)
91     dep = env.Eps2pdf(pdfFile, epsFile)
92     Depends(dep, epsFile)
93     
94     Depends(dviOutput, pdfFile)
95     Depends(pdfOutput, pdfFile)
96     
97 ## Build PDF figures:
98 for item in PDF_FIGURES:
99     epsFile = os.path.join(EPS_DIRECTORY, item + EPS_EXTENSION)
100     pdfFile = os.path.join(PDF_DIRECTORY, item + PDF_EXTENSION)
101
102     env.Pdf2eps(epsFile, pdfFile)
103
104     Depends(dviOutput, epsFile)
105
106 ## Build EPS figures:
107 for item in EPS_FIGURES:
108     epsFile = os.path.join(EPS_DIRECTORY, item + EPS_EXTENSION)
109     pdfFile = os.path.join(PDF_DIRECTORY, item + PDF_EXTENSION)
110     
111     env.Eps2pdf(pdfFile, epsFile)
112
113     Depends(pdfOutput, pdfFile)