- ################################################################################
- #
- # Template makefile for building a set of lecture files.
- #
- ################################################################################
-
-
- SHELL=/bin/sh
-
-
- ################################################################################
- #
- # Get path to current Makefile so we can set up self-deleting temporary
- # directory. Note that this MUST happen before the first include!
- #
- MAKEFILE:=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
-
-
- ################################################################################
- #
- # Required Environment Variables
- #
- # TEACHING_SHARED
- # This variable specifies the path to the top level of the teaching
- # shared directory hierarchy (e.g., /path/to/Teaching/Shared).
- #
- TEACHING_SHARED?=$(error The required environment variable TEACHING_SHARED has not been defined. It should point to the root level of the shared teaching directory (e.g., /path/to/Teaching/Shared))
- #
- # HANDBOOK_INSTALL_ROOT
- # This variable specifies the path to the top level directory on the web
- # server, under which the files for this paper will be installed (that is,
- # the directory that contains the individual paper directory hierarchies).
- # For example, \\INFO-NTS-12\DBCourses$ (this may require munging).
- #
- HANDBOOK_INSTALL_ROOT?=$(error The required environment variable HANDBOOK_INSTALL_ROOT has not been defined. It should point to the root level of the directory hierarchy on the web server (e.g., \\INFO-NTS-12\DBCourses$))
-
-
- ################################################################################
- #
- # Set up paths to makefile include directories.
- #
- # GLOBAL_HANDBOOK_INCLUDE is the global include directory in the "Shared"
- # hierarchy, and is defined relative to the root of that hierarchy.
- #
- GLOBAL_HANDBOOK_INCLUDE?=$(TEACHING_SHARED)/Authoring/Handbook/make-includes
-
-
- ################################################################################
- #
- # Include local system-specific configuration.
- #
- include $(GLOBAL_HANDBOOK_INCLUDE)/local_configuration.make
-
-
- ################################################################################
- #
- # Set up global, self-deleting temporary directory. The first time through,
- # TEMPDIR will be undefined, so the first part of the if will create the
- # variable, then recursively call the makefile again with the appropriate
- # targets, passing the temporary directory as an argument.
- #
- ifndef TEMPDIR
-
- .PHONY: all
-
- all:
- @TEMPDIR=$(shell $(MKTEMP) -d); \
- trap 'rm -rf "$$TEMPDIR"' EXIT; \
- $(MAKE) -f $(MAKEFILE) --no-print-directory TEMPDIR=$$TEMPDIR all
-
- %:
- @TEMPDIR=$(shell $(MKTEMP) -d); \
- trap 'rm -rf "$$TEMPDIR"' EXIT; \
- $(MAKE) -f $(MAKEFILE) --no-print-directory TEMPDIR=$$TEMPDIR $@
-
-
- ################################################################################
- #
- # Normal makefile follows.
- #
- else
-
-
- ################################################################################
- #
- # Clear out the suffixes list. DO NOT ALTER THIS LINE!
- #
- .SUFFIXES:
- #
- # Add any custom suffixes here (uncomment the line below).
- # The "standard" suffixes list currently includes:
- # .svg .pdf .tex .dvi .png .tif .plo .jpg .pict .eps .ps .R .xml .pu .ipu
- #
- # .SUFFIXES:
-
-
- ################################################################################
- #
- # Define paths for various items here. The "standard" paths currently include:
- #
- # vpath %.pdf $(IMGDIR)
- # vpath %.png $(IMGDIR)
- # vpath %.tif $(IMGDIR)
- # vpath %.jpg $(IMGDIR)
- # vpath %.plo $(IMGDIR)
- # vpath %.ps $(IMGDIR)
- # vpath %.eps $(IMGDIR)
- # vpath %.svg $(IMGDIR)
- # vpath %.pict $(IMGDIR)
- #
- # There's nothing to stop you adding new paths for these file types.
- #
- # vpath foo bar
-
-
- ################################################################################
- #
- # Specify the current lecture or chapter number. THIS MUST BE DEFINED!
- # Set it to whatever you like if you don't use it (see below).
- #
- DOC_NUM?=$(error The required variable DOC_NUM has not been defined. Please set it to the correct chapter or lecture number as appropriate)
-
- #
- # The document type is prepended onto the output filenames (e.g., "lecture_12_slides.pdf").
- #
- DOC_TYPE=lecture
-
-
- ################################################################################
- #
- # Specify the subject code and paper number. THESE MUST BE DEFINED!
- #
- SUBJECT_CODE?=$(error The required variable SUBJECT_CODE has not been defined. Please set it to the correct subject code for this set of lectures)
- PAPER_NUMBER?=$(error The required variable PAPER_NUMBER has not been defined. Please set it to the correct paper number for this set of lectures)
-
-
- ################################################################################
- #
- # Directory to install files into on web server. This is .../Lectures/name of
- # build directory, to avoid similarly-named files overwriting each other.
- #
- BUILD_DIR:=$(lastword $(subst /, ,$(CURDIR)))
- INSTALL_DIRECTORY:=$(HANDBOOK_INSTALL_ROOT)/$(SUBJECT_CODE)$(PAPER_NUMBER)/Lectures/$(BUILD_DIR)
-
-
- ################################################################################
- #
- # Uncomment any of the following to prevent a particular document from
- # being built. This is necessary if, for example, the current set of
- # lectures has no figures and examples.
- #
- # Alternatively, you can use this to set the base name of the output
- # files if this is a one-off lecture that doesn't fall into the standard
- # lecture or chapter conventions, or you don't want to include the document
- # number in the filenames. (Set DOC_NUM above to whatever you like if you don't
- # use it.)
- #
- # You can also alter the base name of the input file for each document by
- # setting SLIDES_IN, etc. (These default to $(DOC_TYPE)_slides, etc.)
- #
- # SLIDES=
- # FIGURES=
- # COMBINED=
- # NOTES=
-
-
- ################################################################################
- #
- # Standard file list variables.
- #
- # List of images used in the presentation as actual content.
- #
- SLIDE_IMAGES=
-
- #
- # List of other files used in the presentation as actual content.
- # We assume that shared infrastructure files are in the parent directory;
- # modify as necessary.
- #
- SLIDE_FILES=../../paper_init.tex ../lecturedates.tex doc_init.tex
-
- #
- # List of images used in the presentation as backgrounds or watermarks.
- #
- SLIDE_BACKGROUNDS=
-
- #
- # List of images used in the figures and examples document.
- #
- FIG_IMAGES=
-
- #
- # List of other files used in the figures and examples document.
- #
- FIG_FILES=../../paper_init.tex ../lecturedates.tex doc_init.tex
-
- #
- # List of images used in the combined lecture material document.
- #
- COMBI_IMAGES=
-
- #
- # List of other files used in the combined lecture material document.
- #
- COMBI_FILES=../../paper_init.tex ../lecturedates.tex doc_init.tex
-
- #
- # List of files other than the standard ones (slides, figures, combined)
- # to be installed on the web server. By default, install the following
- # files: $(SLIDES).pdf, $(COMBINED).pdf, $(FIGURES).pdf,
- # $(FIGURES)-reduced.pdf. This can include files in subdirectories
- # (e.g., foo/bar.pdf), but the subdirectories themselves will not be
- # created at the other end (i.e., the directory structure will be
- # flattened).
- #
- INSTALL_FILES=
-
- #
- # Files to be cleaned by the various "clean" targets. The "standard" values
- # are currently:
- # TIDY_FILES+=*.tmp *.out *.log *.nav *.toc *.snm *.head *.dvi *.vrb _minted* \
- # slides-combined.pdf slides-notes.pdf
- # CLEAN_FILES=*.aux *.pdf
- #
- # $(TIDY_FILES) is a list of generated intermediate files to clean up.
- #
- TIDY_FILES=
- #
- # $(CLEAN_FILES) is everything else that might need to be cleaned up.
- #
- CLEAN_FILES=
-
-
- ################################################################################
- #
- # Specify LaTeX document options. Uncomment DRAFT to set draft mode in LaTeX.
- # Set the values of FONT_SIZE and PAPER_SIZE to appropriate LaTeX values if
- # you want something other than the defaults (12pt, a4paper). Use LATEX_OPTS
- # (comma-separated list) for any document class options that you want to set
- # /other than/ draft, font size and paper size.
- #
- # DRAFT=draft
- # FONT_SIZE=
- # PAPER_SIZE=
- LATEX_OPTS=
-
- #
- # Additional command line flags for the LaTeX command, e.g., add -shell-escape
- # if you're using something like minted that needs it.
- #
- LATEX_FLAGS=
-
- #
- # List of "phony" build targets (remember to define rules for
- # them!). The "standard" list is currently:
- # all slides notes slides-combined slides-notes figures combined
- # debug test clean tidy targets
- #
- TARGETS=
-
- #
- # Uncomment the following to enable Unicode mode. This forces use of XHTML,
- # Xe(La)TeX, etc. The value of the variable is irrelevant, it just need to be
- # defined.
- #
- # UNICODE=on
-
-
- ################################################################################
- #
- # Add custom variables below here as necessary.
- #
-
-
- ################################################################################
- #
- # Include standard variables and rules for building lectures.
- #
- include $(GLOBAL_HANDBOOK_INCLUDE)/build_lecture_rules.make
-
-
- ################################################################################
- #
- # Add custom rules below here as necessary, BEFORE the endif.
- #
-
-
- endif