Я пытаюсь использовать 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: /.../ что-то путь. Если вы знаете какой-либо другой способ обойти это, я был бы также очень благодарен!
Заранее спасибо!