2012-06-18 3 views
2

Я понимаю, что @ подавляет печать команды в Makefile ...переменных = @ значение @ в Makefiles

http://www.gnu.org/software/make/manual/make.html#Echoing

... и я понимаю, что [email protected] этого имени цели ...

http://www.gnu.org/software/make/manual/make.html#Automatic-Variables

... но я не могу найти какую-либо информацию о том, что линия, как это могло бы означать:

[email protected]@ 

Я ничего здесь не пытаюсь исправить, просто пытаясь лучше понять Makefiles.

Обновление: в разделе «Подписки для Makefile» руководства GNU autoconf объясняется, что это значение, которое заменяется на autoconf.

+0

Я не думаю, что это что-то особенное; каков контекст? –

+0

Это первый набор строк в файле ... prefix = @ prefix @ exec_prefix = @ exec_prefix @ ... и так далее. – user1447110

+0

Что я имею в виду, для чего используется эта переменная? –

ответ

4

Обычно вы найдете это в Makefile.in файлах, которые обрабатываются configure (которые в свою очередь генерируются как autoconf).

В этом случае @[email protected] будет заменено значением переменной оболочки $X, если configure рассказана так. Если это не так, никакое появление во входном файле не будет затронуто configure, поэтому оставляя заменяемую строку такой, какой она есть. Если вы спросите меня, что эти экземпляры указывают промахи в системе сборки.

+0

Так autoconf генерирует Make, который генерирует bash. Интересно; Мне нужно будет изучить autoconf. –

+0

@claytontstanley: Не совсем. 'autoconf' обычно выполняет' configures.ac ---> configure', в то время как сам скрипт configure делает Makefile.config.in --- Makefile.config', который, в свою очередь, включен в 'Makefile', который затем читается по 'make', чтобы определить, как построить свой проект. 'configure',' Makefile' и 'Makefile.config.in' обычно поставляются с исходным кодом. – bitmask

Смежные вопросы