Skip to content
GitHub no longer supports this web browser. Learn more about the browsers we support.
My `Makefile` convention.
Branch: master
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md

README.md

Makefile Convention

There are many build systems out there, but make has the benefits that 1) it's installed everywhere, and 2) it provides a good balance of functionality for small-to-medium projects. Here are common Makefile targets that I use so that I can context switch between my projects without thinking about the build system.

Target Effect Common Features
all Usually an alias for build.
setup Prepare the local repository for development. Install dependencies, create files/folders, run immediately after git checkout. Usually not a dependency of build/dev (for performance).
build Build the entire project. Optimized code, build artifacts (e.g. zip files).
dev Build the project in development mode. Local server, rebuild on source file change, unminified code.
test Run the main project tests. Minimal side effects.
lint Run the source code through a formatting/style linter. Automatically fix code when possible.
clean Reset the project for development so that the next build happens "from scratch". Remove build artifacts, dependency directories, etc. May undo some or all of make setup depending on the nature of the project.
deploy Deploy or upload a website project. Depends on build.
publish Publish a library on the relevant package manager . Depends on build and test.
install Install the project locally. Depends on build.
You can’t perform that action at this time.