2015-03-31 4 views
1

В настоящее время в моем Makefile у меня есть:В Makefile мы используем 'prefix' или 'PREFIX'?

prefix ?= /usr/local 

Так что я могу переопределить prefix значение при вызове make, как в следующем:

make prefix="/new_path" 

Мой вопрос: это соглашение существует для обозначения этого переменная внутри Makefile, особенно мне нужно называть ее prefix или PREFIX?

Этот вопрос, поскольку в этой ситуации дело касается нижнего или верхнего регистра!

Обратите внимание, что я делать не использовать autotools, просто "простой" Makefile

+2

Я не знаю, есть ли окончательный ответ. Мое собственное предпочтение заключается в том, чтобы использовать все кепки, когда переменная является чем-то, что я документирую как переопределяемый пользователем, и использовать нижний регистр, когда это нечто внутреннее, с которым нельзя смешивать. –

+0

@noufal Спасибо за объяснение. Поэтому я буду использовать в своем случае PREFIX (поскольку может быть переопределен). Это питти, что я не нашел документ об этом соглашении (даже если они не полностью исправлены) ... –

+0

Вот что я бы * сделал, но это действительно моя собственная конвенция. –

ответ

2

variables for installation directories раздел GNU сделать руководство обсуждает prefix.

Я считаю, что в autointools используется аналогичная обсаженная prefix переменная/configure.

Сравнить с DESTDIR.

+0

@ethan спасибо за документ, но я уже прочитал его без всякой подсказки о моей конкретной проблеме ... –

+0

Преобладающим консенсусом (между GNU make и autotools) является использование 'prefix'. Я добавил бит о 'DESTDIR', чтобы указать, что они также используют переменные' ALL_CAP', и я не знаю, почему именно. В отсутствие консенсуса относительно 'PREFIX' в другом месте (bsd и т. Д.) Это, похоже, указывает на то, что вы должны использовать' prefix'. Вот почему я разместил информацию. Я не могу дать более конкретный/окончательный ответ. –