Make is a tool which can run commands to read files, process these files in some way, and write out the processed files. For example, in software development, Make is used to compile source code into executable programs or libraries, but Make can also be used to:
Make is called a build tool - it builds data files, plots, papers, programs or libraries. It can also update existing files if desired.
Make tracks the dependencies between the files it creates and the files used to create these. If one of the original files (e.g. a data file) is changed, then Make knows to recreate, or update, the files that depend upon this file (e.g. a plot).
There are now many build tools available, all of which are based on the same concepts as Make.
Prerequisites
In this lesson we use
make
from the Unix Shell. Some previous experience with using the shell to list directories, create, copy, remove and list files and directories, and run simple scripts is necessary.
Setup
In order to follow this lesson, you will need to download some files. Please follow instructions on the setup page.
Setup | Download files required for the lesson | |
00:00 | 1. Introduction | How can I make my results easier to reproduce? |
00:25 | 2. Makefiles | How do I write a simple Makefile? |
01:05 | 3. Automatic Variables | How can I abbreviate the rules in my Makefiles? |
01:20 | 4. Dependencies on Data and Code | How can I write a Makefile to update things when my scripts have changed rather than my input files? |
01:40 | 5. Pattern Rules | How can I define rules to operate on similar files? |
01:50 | 6. Variables | How can I eliminate redundancy in my Makefiles? |
02:10 | 7. Functions | How else can I eliminate redundancy in my Makefiles? |
02:35 | 8. Self-Documenting Makefiles | How should I document a Makefile? |
02:45 | 9. Conclusion | What are the advantages and disadvantages of using tools like Make? |
03:20 | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.