на том, что поставил в путях первым msys/mingw (всё равно мне и gcc/win32 нужен) и sh.exe, make.exe берутся ихние, причём без указания SHELL, make cfv берёт первый из PATH. WinAVR из путей выгрызаю/не даю прописывать, внутри avr-gcc.mak, включаемого во все проекты
GCCPATH=$(AVRGCC)/binifeq (,$(findstring ;,$(PATH)))
PATH := $(subst :,,/$(GCCPATH)):$(PATH)
else
PATH := $(subst /,\,$(GCCPATH));$(PATH)
endif
export PATH
Т.е. от интересующей версии avr-gcc (WinAVR или сборка Klen) беру только $(AVRGCC)/bin, из которого тоже всё вызывается по PATH, так как задано всё без путей.
CC := avr-gcc
AS := avr-gcc -x assembler-with-cpp
Танцы с $(subst связаны с тем, что некоторые порты make преобразуют переменную PATH к "типа юниксовому" представлению только перед вызовом дочерних процессов, внутри себя, т.е. при обработке makefile, пользуются "виндовым". Другие - уже на старте, до начала обработки makefile уже преобразуют к "юниксовому". Я когда-то написал этот фрагмент и забыл о проблеме.