No dobra, to teraz wyszło szydło z worka, że korzystasz z własnego Makefile nie do końca wiedząc, na czym to polega.
Na serio i bez urazy. Wyłączyłem opcję użycia własnego Makefile (Project->Properties) i projekt się poprawnie zbudował. Nie działa Ci, bo Makefile jest zły. W tej chwili jest już za późno, abym to analizował głębiej.
Może podziel się informacją, dlaczego (w jakim celu) chcesz używać "custom Makefile". Bo technologia make jest "trochę" złożona. I szansa, że plik Makefile wygrzebany gdzieś w sieci i "trochę" dostosowany bez dogłębnej znajomości tematu, zwłaszcza jeśli ten Makefile jest skomplikowany (a ten jest) jest niewielka. Oczywiście, technologia make jest "do ogarnięcia", tyle, że obecnie już nieco przestarzała. A jeżeli już, to lepiej zacząć od prostszych wersji.
Nie bez powodu są różne nakładki generujące pliki make czy całe narzędzia alternatywne. Bo oryginalna technologia jest podatna na błędy i ciężko się debuguje. Także wracamy do pytania "po co jeść tę żabę".
---
Nie dawało mi spokoju, więc przyjrzałem się jeszcze raz. Ten Makefile nawet działa (on chyba pochodzi z WinAVR co?). Tylko nie jest kompatybilny z CodeBlocks. CodeBlocks i jego konfiguracja dla AVR mają swoje założenia co do nazewnictwa i lokalizacji plików wynikowych, a ten Makefile ma trochę inne. Więc odpalony przez CodeBlocks buduje poprawnie, co miał zbudować, ale potem CodeBlocks próbuje wykonać swoje "post build steps", które nie są kompatybilne (i już niepotrzebne) i te kroki właśnie zawodzą.
Jeżeli się upierasz przy tym Makefile-u, to po prostu usuń te kroki z opcji projektu (Project->Build Options->Post-build steps).
Tylko czemu miałoby to służyć...