Я компилирую пакеты и вижу, что авторы Makefile часто пишут set CFLAGS в make-файле с такими-то опциями.Я, с другой стороны, хотел бы попробовать некоторые оптимизации компилятора и хотел бы распространять переключатели компилятора, чтобы сделать их как можно меньше проблем.Не всегда это выполнимо, хотя.Например, когда make-файл указывает CFLAGS, и я хочу, чтобы все вызовы компилятора C использовали -fomit-frame-pointer, за исключением необходимости явно писать что-то вроде CFLAGS=-fomit-frame-pointer make
, каковы мои варианты, которые не являются хакерскими.Из того, что я вижу, есть вышеупомянутое, то есть то же самое, но другое make "CFLAGS=-fomit-frame-pointer"
, и я также могу сделать то, что считаю лучшим решением и причиной этого вопроса:
export CFLAGS=-fomit-frame-pointer
make -e
Iсчитаю это лучшим, потому что, честно говоря, даже считая потенциально опасным флагом, я не слишком много отлаживаю программное обеспечение, и когда мне нужно, я могу перекомпилировать определенный фрагмент по требованию с информацией об отладке и всем остальным.В противном случае мне нравится работать с программным обеспечением для выпуска без отладки и наворотов, особенно если пакет не был создан мной.Итак, я думаю, что я спрашиваю здесь конкретно: почему make не предпочитает автоматически переменные окружения собственным makefile?Ведь окружающая среда лучше знает, что к чему, и в случае, если make author действительно нужно что-то найти, есть синтаксис override, верно?