Я пытаюсь использовать ifeq в моем шаблоне правил, и у меня с ним возникают проблемы. У меня возникают проблемы с этим правилом:
$(OBJS): $(OBJDIR)/%.o : ../%.c
@mkdir -p $(dir $@)
ifeq(mcc.exe,$(CC))
o_file:=$(shell echo $@ | sed -e 's/\/cygdrive\///' | sed -e 's/\([a-zA-Z]\)/\1:/')
$(CC) $(CFLAGS) $< -o $(o_file)
else
$(CC) $(CFLAGS) $< -o $@
endif
Когда я запускаю это, я получаю:
"/bin/sh: -c: line 0: syntax error near unexpected token `mcc.exe,mcc.exe'
/bin/sh: -c: line 0: `ifeq(mcc.exe,mcc.exe)'"
Но когда я не использую отступы, я получаю: «Makefile: 77: * отсутствует разделитель. Стоп. "
Я использую GNU make 3.81 на Cygwin. Вся проблема с ifeq возникает из-за того, что у меня один и тот же Makefile для двух наборов инструментов, и один из них (mcc.exe) не может справиться с путями /cygdrive/c/.../something, но вместо этого должен быть c: /.../something path. Если вы знаете какой-либо другой способ обойти это, я был бы очень благодарен!
Заранее спасибо!