Misc fixes from own review.
[matthijs/master-project/report.git] / SConstruct
index a25c162..2b6fc67 100644 (file)
@@ -3,54 +3,24 @@
 #
 import os
 import os.path
+import glob
 
 #### Some configurations.
 
-LATEX_PROJECT = 'Core2Core'
-
-DEFAULT_TARGET = 'pdf'
-
-GNUPLOT_DIAGRAMS = []
-
-EPS_FIGURES = []
-
-PDF_FIGURES = []
-
-## Some rather fixed configurations:
-
-GNUPLOT_DIRECTORY = 'images'
-GNUPLOT_EXTENSION = '.gnuplot'
-EPS_DIRECTORY = 'eps'
-EPS_EXTENSION = '.eps'
-PDF_DIRECTORY = 'pdf'
-PDF_EXTENSION = '.pdf'
-
-#MAKEINDEX_EXTENSIONS = ['.glg', '.glo', '.gls']
-
+DEFAULT_TARGET = 'Report.pdf'
 
 #### Defining some new builders.
 env = Environment()
 
-## eps2pdf Builder:
-pdfBuilder = Builder(action='epstopdf $SOURCE --outfile=$TARGET',
-                     suffix='.pdf',
-                     src_suffix='.eps')
-env.Append(BUILDERS={'Eps2pdf': pdfBuilder})
-
-## eps2eps Builder:
-epsBuilder = Builder(action='pdftops -eps -level3 $SOURCE $TARGET',
-                     suffix='.eps',
-                     src_suffix='.pdf')
-env.Append(BUILDERS={'Pdf2eps': epsBuilder})
+## Context MkIV Builder. Allow once=1 to just run once without fixing
+# all references and tables.
+if ARGUMENTS.get('once'):
+       once = ' --once'
+else:
+       once = ''
 
-## GNUplot Builder:
-gnuplotBuilder = Builder(action='gnuplot $SOURCE',
-                         suffix='.eps',
-                         src_suffix='.gnuplot')
-env.Append(BUILDERS={'Gnuplot': gnuplotBuilder})
-
-## Context MkIV Builder:
-contextBuilder = Builder(action=['texexec --lua $SOURCE','scp $TARGET ewi:'],
+# Limit to 500MB of virtual memory
+contextBuilder = Builder(action='ulimit -v 512000; nice texexec --lua $SOURCE%s' % once,
                          suffix='.pdf',
                          src_suffix='.tex')
 env.Append(BUILDERS={'Context': contextBuilder})
@@ -61,53 +31,20 @@ env['ENV']['HOME'] = os.environ['HOME']
 # Allow the SSH agent to be used
 env['ENV']['SSH_AUTH_SOCK'] = os.environ['SSH_AUTH_SOCK']
 
-
 #### The actual builds.
 
-## Context PDF build
-pdfOutput = env.Context(LATEX_PROJECT)
-env.Alias('pdf', LATEX_PROJECT + '.pdf')
-
-# Keep below code happy
-dviOutput = pdfOutput
-
-Default(DEFAULT_TARGET)
+## Core2Core document
+core2core = env.Context('Core2Core')
+Depends(core2core, 'pret-lam.lua')
+Depends(core2core, 'pret-trans.lua')
 
-## Create makeindex file list for dependencies and clean up:
-#for item in MAKEINDEX_EXTENSIONS:
-#    fileName = os.path.join(LATEX_PROJECT + item)
-#    Depends(dviOutput, fileName)
-#    Depends(pdfOutput, fileName)
-#    Clean(dviOutput, fileName)
-#    Clean(pdfOutput, fileName)
+## Report
+report = env.Context('Report')
+Depends(report, glob.glob('pret-*.lua'))
+Depends(report, glob.glob('Chapters/*.tex'))
+Depends(report, glob.glob('Utils/*.tex'))
+Depends(report, glob.glob('Titlepage.tex'))
 
-## Build GNUplot figures:
-for item in GNUPLOT_DIAGRAMS:
-    gnuplotFile = os.path.join(GNUPLOT_DIRECTORY, item + GNUPLOT_EXTENSION)
-    epsFile = os.path.join(EPS_DIRECTORY, item + EPS_EXTENSION)
-    pdfFile = os.path.join(PDF_DIRECTORY, item + PDF_EXTENSION)
-    
-    env.Gnuplot(epsFile, gnuplotFile)
-    dep = env.Eps2pdf(pdfFile, epsFile)
-    Depends(dep, epsFile)
-    
-    Depends(dviOutput, pdfFile)
-    Depends(pdfOutput, pdfFile)
-    
-## Build PDF figures:
-for item in PDF_FIGURES:
-    epsFile = os.path.join(EPS_DIRECTORY, item + EPS_EXTENSION)
-    pdfFile = os.path.join(PDF_DIRECTORY, item + PDF_EXTENSION)
+AddPostAction(report, 'scp $TARGET ewi:')
 
-    env.Pdf2eps(epsFile, pdfFile)
-
-    Depends(dviOutput, epsFile)
-
-## Build EPS figures:
-for item in EPS_FIGURES:
-    epsFile = os.path.join(EPS_DIRECTORY, item + EPS_EXTENSION)
-    pdfFile = os.path.join(PDF_DIRECTORY, item + PDF_EXTENSION)
-    
-    env.Eps2pdf(pdfFile, epsFile)
-
-    Depends(pdfOutput, pdfFile)
+Default(DEFAULT_TARGET)