The open source tools available for AVR programming are powerful, but there's a steep learning curve. Lets see if this this helps...-- avrdude isn't the C compiler, it's a program that transfers the finished compiled code from your computer into the AVR. This type of utility is often called a "programmer," as it does physically "program" the chip. But it's not involved in the "programming" (code writing) at all...-- The GNU open source C compiler is avr-gcc. The original *nix (Linux, Unix, etc.) GCC project is portable compiler that works with many target architectures (AVR is only one.) Recompiled versions of avr-gcc should be available for any Linux distribution. There's also a Windows port of avr-gcc and for Macs, too.Compiling with avr-gccThe easiest way to use avr-gcc is from a IDE like Atmel's AVRstudio 4. Once written, the code is compiled by selecting an option on the Build menu (like "compile" or "build" for instance.)IDEs exist, but are less common on Linux. Simple C programs are compiled by invoking the compiler directly from the shell (command line interface, like DOS.) But most complex C projects use a Makefile, which does all the hard work. There are many options available when calling avr-gcc, and many dependencies, too. Since the dependencies are different for each target AVR, all this can be "hidden" in the Makefile. The makefile itself is invoked simply by typing "make" in the shell...But it's not easy to write a Makefile---they use a unique (and obtuse) programming language. For a first-timer, it's best to copy a functional Makefile from another AVR project that uses the same target chip you are programming.Both AVRstudio 4 and Winavr can generate Makefiles. These enable programmers to distribute compilable source code that's usable from other platforms.