Also mit einem MAX den Progger zu bauen ist eigentlich der saubere Weg. Der passt die Potentiale an, was in meinem mini-Progger durch die Zener-Dioden erledigt wird. Zwischen den MAX und den Controller würd ich aber noch Wiederstände hängen, falls zB MOSI zur Laufzeut zu nem Ausgang wird, weil du das so willst oder weil das Programm nicht das mach, was es soll.

Zu meinen Proggern würde übrigens -dprog dasa2 passen. Momentan verwende ich die Progger-Version ohne invertierenden RESET, den invertiere ich softwaremässig. Was für dein OS passt kann ich nicht sagen, under Windoofs musste ich auch ausprobieren, wie hinter meinem Link beschrieben. Mitm Steckboard ist das ja kein Problem.

Nen Mega8 komplett zu proggen (8k Flash, 512 Ram) dauert knapp 10 Sekunden. Bei weniger Daten entsprechend weniger.

Zu make: make musst du dir besorgen. Das gehört weder zu gcc, noch zu binutils oder zur libc. GCC nimmt sich keine Einstellungen ausm Makefile, sondern make nimmt die Definitionen/Regeln aus dem Makefile und führt die entsprechenden Kommandos mit ihren Parametern aus, so auch avr-gcc -mmcu= ...
Make und GCC haben eigentlich nix miteinander zu tun, ausser daß make gerne dazu benutzt wird, den Build von C/C++ Projekten zu steuern (so wie jakarta ant für Java) und make wohl selbst mit GCC gebuildet wurde. Kleine Sachen kann man noch auf Kommandozeile übersetzen. Aber bei grösseren Sachen will man nicht immer alles komplett übersetzen, sondern nur das, was wirklich neu gemacht werden muss. IdR ist das nur ein Modul, dessen Quelle man geändert hat und der Linklauf. Zudem geht der Built dann in 2 Schritten:
1. Precompile, compile & assemble (*.c -> *.o): Option -c
2. link & locate (*.o -> *.elf)

Makefiles zu schreiben hält einige Fallstricke bereit. Regeln werden nicht so ausgeführt wie man es erwartet, es gibt implizite Regeln, etc. Am besten ein funktionierendes Makefile nehmen und das ausbauen.