1 # Based on the Latex SConstruct at
2 # https://gutefee.massey.ac.nz/moin/HOWTO/LaTeX/LaTeX-SCons-Builder
7 #### Some configurations.
9 LATEX_PROJECT = 'Core2Core'
11 DEFAULT_TARGET = 'pdf'
19 ## Some rather fixed configurations:
21 GNUPLOT_DIRECTORY = 'images'
22 GNUPLOT_EXTENSION = '.gnuplot'
24 EPS_EXTENSION = '.eps'
26 PDF_EXTENSION = '.pdf'
28 #MAKEINDEX_EXTENSIONS = ['.glg', '.glo', '.gls']
31 #### Defining some new builders.
35 pdfBuilder = Builder(action='epstopdf $SOURCE --outfile=$TARGET',
38 env.Append(BUILDERS={'Eps2pdf': pdfBuilder})
41 epsBuilder = Builder(action='pdftops -eps -level3 $SOURCE $TARGET',
44 env.Append(BUILDERS={'Pdf2eps': epsBuilder})
47 gnuplotBuilder = Builder(action='gnuplot $SOURCE',
49 src_suffix='.gnuplot')
50 env.Append(BUILDERS={'Gnuplot': gnuplotBuilder})
52 ## Context MkIV Builder:
53 contextBuilder = Builder(action=['texexec --lua $SOURCE','scp $TARGET ewi:'],
56 env.Append(BUILDERS={'Context': contextBuilder})
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']
65 #### The actual builds.
68 pdfOutput = env.Context(LATEX_PROJECT)
69 env.Alias('pdf', LATEX_PROJECT + '.pdf')
71 # Keep below code happy
74 Default(DEFAULT_TARGET)
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)
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)
90 env.Gnuplot(epsFile, gnuplotFile)
91 dep = env.Eps2pdf(pdfFile, epsFile)
94 Depends(dviOutput, pdfFile)
95 Depends(pdfOutput, pdfFile)
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)
102 env.Pdf2eps(epsFile, pdfFile)
104 Depends(dviOutput, epsFile)
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)
111 env.Eps2pdf(pdfFile, epsFile)
113 Depends(pdfOutput, pdfFile)