QUOTE (Непомнящий Евгений @ May 3 2012, 16:14)

Чтобы ключи компиляции импортировались из make, эклипсу в этом окошке надо указать вызывать не не компилятор, а собственно make. Ну и makefile допилить соответственно - добавить цель вроде discover и ключики для нее подходящие.
QUOTE (AHTOXA @ May 3 2012, 21:27)

Я вчера попробовал - с наскока не получилось.
Разобрался. Действительно удобно. Буду переводить все проекты на такую систему. Тоже с наскока не получилось. Проблема была в передачи пути к specs-файлу. Привожу рецепт, возможно пригодится еще кому-то.
1) создаем в makefile цель discovery:
CODE
#discovery target for Eclipse parser
.PHONY: discovery
discovery:
$(CC) $(INCLUDES) $(CFLAGS) -E -P -v -dD '$(specs_file)'
если в CFLAGS есть правило для генерации файлов (.dep или .lst) - его надо вынести из CFLAGS в отдельный, скажем, DEPFLAGS и вставить в нужные места, где оно использовалось. Также полезно отключить чтение зависимостей при выполнении этой цели (занимает много времени на больших проектах):
CODE
ifeq (,$(findstring clean,$(MAKECMDGOALS)))
ifeq (,$(findstring cleanall,$(MAKECMDGOALS)))
ifeq (,$(findstring discovery,$(MAKECMDGOALS)))
-include $(shell mkdir $(DEPDIR) 2>/dev/null) $(wildcard $(DEPDIR)/*.d)
endif
endif
endif
Теперь в Eclipse, в Project->Propertities->C/C++ Build->Discovery Options выбираем:
- Discovery profiles scope: 'Configuration-wide'
- Automated discovery of paths and symbols, Discovery profile: 'GCC per project info profile'
- Discovery profile options, ставим галочки:
- 'Enable build output scanner info discovery'
- 'Enable generate scanner info command'
- В строку 'Compiler invocation command' вписываем: make
- В строку 'Compiler invocation arguments' вписываем: specs_file=${plugin_state_location}/${specs_file} discovery
Жмем Automated discovery of paths and symbols -> Clear, OK, запускаем компиляцию проекта.
исправлено: заключил в апострофы '$specs_file', поскольку путь может быть с пробелами.