After helping a few folks to compile MacOS avr toolchains from source code, I thought it might be of benefit to post the procedure here. If you are comfortable with the command line, and familiar with the basic steps to configure, make, and install from source, then you should have no problem following this 'recipe'.

Before we get too deeply into it, there are a few 'caveats' that we need to talk about. The current versions of GCC require 3 libraries that are very likely not installed on your Mac... GMP, MPC, and MPFR. If, by chance, you do have them installed, then you can save quite a bit of time by skipping the steps described here.

The next quirk is that the most recent release series of GCC, 5.x, use a new multilib configuration which does not work with the current release of AVR-Libc (1.8.1). Until the next release of AVR-Libc, we will have to stick with GCC 4.9.x .

Another quirk is one that has tripped up several people. AVRDude version 6.1 needs both LibUSB and LibUSB-Compat, while many assume that LibUSB is sufficient. Again, if you already have them, you can skip those steps.

Finally, you may or may not need pkg-config.

Keeping the above caveats in mind, you will need several source code 'tarballs'... It's a good idea to keep the tarballs all together in one folder, and the expanded source code in another.

Before we begin to compile anything we want to make sure that the installed tools, located at /usr/local/bin, will be in your shell path. If you haven't already done so, there is an invisible file in your home directory called '.profile'. Note the filename begins with a period. Open that file with any text editor. My PATH looks like this...

 export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

You want to make yours look like that, the entry ':/usr/local/bin' being most important in our current endeavor. After saving, quit Terminal, then restart it.

All these sources use a '3 stage' build sequence... 'configure', 'make', and 'make install'. If something goes wrong at any stage, you need to stop and investigate the cause... stubbornly forging ahead will not help anything, and may make things worse.

Pay close attention to the commands shown here.

In particular, sometimes we will issue the command './configure', while other times we will use '../configure'.
Say that again! They look the same! No, they are different. Lets line them up against each other...


Notice the extra dot. Pay close attention.

To be sure if you need this, type 'pkg-config --version'. If the answer is 'command not found', then you do not have it.

To build pkg-config, cd into its source directory, and issue the following commands...

./configure -with-internal-glib
make install

Cd into the source directory, and issue...

mkdir work
cd work
../configure --target=avr --enable-lto --enable-plugins --disable-nls
make install

Check that it installed properly by issuing the command 'avr-ld -V'...

big-mac:work mike$ avr-ld -V
GNU ld (GNU Binutils) 2.25.1
  Supported emulations:
big-mac:work mike$

As mentioned before, if you already have GMP, MPFR, and MPC installed you can skip the involved steps. Otherwise, rename those source folders with simple names 'gmp', 'mpfr', and 'mpc', and move them into the GCC source code directory. After you cd into the GCC directory, give the commands...

mkdir work
cd work
../configure --enable-fixed-point --enable-languages=c,c++ --prefix=/usr/local --enable-long-long --disable-nls --disable-checking --disable-libssp --disable-libada --disable-shared --enable-lto --with-avrlibc=yes --with-dwarf2 --disable-doc --enable-werror --target=avr --enable-plugin

It is going to take quite a while to compile, so take a break, watch a movie, grab some dinner. When it is done compiling, continue with make install, and then check it with avr-gcc -v
big-mac:work mike$ avr-gcc -v
Using built-in specs.
Target: avr
Configured with: ../configure --enable-fixed-point --enable-languages=c,c++ --prefix=/usr/local --enable-long-long --disable-nls --disable-checking --disable-libssp --disable-libada --disable-shared --enable-lto --with-avrlibc=yes --with-dwarf2 --disable-doc --target=avr --enable-plugin
Thread model: single
gcc version 4.9.3 (GCC)
big-mac:work mike$

Just cd into its' source directory, and proceed with

./configure --build=`./config.guess` --host=avr
make install

At this point, you can compile, link, and generate hex files... but you still need to get those hex files into the avr.
By now you should be familiar with the trinity. Change into the source directory, and issue...

 make install

Change into its source directory, and issue...

 make install

Finally! Change directory into its source folder, then...

 make install

Test that it installed properly with avrdude -?...

big-mac:work mike$ avrdude -?
Usage: avrdude [options]
  -p                 Required. Specify AVR device.
  -b               Override RS-232 baud rate.
  -B               Specify JTAG/STK500v2 bit clock period (us).
  -C            Specify location of configuration file.
  -c             Specify programmer type.
  -D                         Disable auto erase for flash memory
  -i                  ISP Clock Delay [in microseconds]
  -P                   Specify connection port.
  -F                         Override invalid signature check.
  -e                         Perform a chip erase.
  -O                         Perform RC oscillator calibration (see AVR053).
  -U :r|w|v:[:format]
                             Memory operation specification.
                             Multiple -U options are allowed, each request
                             is performed in the order specified.
  -n                         Do not write anything to the device.
  -V                         Do not verify.
  -u                         Disable safemode, default when running from a script.
  -s                         Silent safemode operation, will not ask you if
                             fuses should be changed back.
  -t                         Enter terminal mode.
  -E [,] List programmer exit specifications.
  -x         Pass  to programmer.
  -y                         Count # erase cycles in EEPROM.
  -Y                 Initialize erase cycle # in EEPROM.
  -v                         Verbose output. -v -v for more.
  -q                         Quell progress output. -q -q for less.
  -l logfile                 Use logfile rather than stderr for diagnostics.
  -?                         Display this usage.

avrdude version 6.1, URL: 
big-mac:work mike$

And that completes a basic avr toolchain for MacOS, up to date as of September 2015. If you have any questions or comments, please feel free to send them to...