This setup will allow you to assemble the NES projects I've got up on GitHub.
Make a folder somewhere for all this stuff to go.  Something like C:\nes (or ~/nes if on Linux).  All of the following commands should be run from the command line in the folder you create.
All dependencies will be put into a subfolder:
$ mkdir tools
If you're on Windows you can grab the release snapshot from their SourceForge instead of compiling from source: cc65-snapshot-win32.zip
For linux, or if you want to compile from source on Windows:
$ cd tools && git clone https://github.com/cc65/cc65.git
$ cd cc65 && make && cd ..
Compiling cc65 may take a little while.
A few utilities are written in Go and are incorperated into the build process.  These utilities are usually built when needed and include things like bmp2chr and generate-credits.
Download and install Go from here: https://golang.org/dl/
If you run linux, your distribution may have Go in it's package repository. The most recent version of Go is usually required (v1.12 as of this writing).
At this point you should be able to assemble my various NES projects by typing make in the correct source directory.
For instance, to assemble nes-pong run these commands, starting in the top-level nes folder:
$ git clone https://github.com/zorchenhimer/nes-pong.git
$ cd nes-pong
$ make
After make finishes you should have a bin/ folder inside the nes-pong folder which will contain the rom file pong.nes.  The directory structure should look like this:
nes
├── pong
│   ├── bin
│   │   ├── pong.labels
│   │   ├── pong.lst
│   │   ├── pong.mlb
│   │   ├── pong.nes
│   │   ├── pong.nes.0.nl
│   │   ├── pong.nes.db
│   │   ├── pong.nes.map
│   │   ├── pong.nes.ram.nl
│   │   └── pong.o
│   ├── LICENSE.txt
│   ├── Makefile
│   ├── pong.asm
│   ├── pong.chr
│   ├── README.md
│   └── [...]
└── tools
    └── cc65
        ├── bin
        │   ├── ca65
        │   ├── ld65
        │   └── [...]
        └── [...]