Как изменить стандартные CFLAGS для MakeMaker - PullRequest
3 голосов
/ 05 января 2012

Как мне заставить Perl MakeMaker изменить значение по умолчанию для CFLAGS, которое он вставляет в Makefiles? Основываясь на этом посте , я попробовал это:

export CFLAGS=...

затем внутри cpan, я подтвердил это

! print $ENV{CFLAGS}

но он по-прежнему использует любой CFLAGS, из которого был создан Perl.

Я посмотрел в lib / perl /.../ Config.pm, как подсказано в этом посте , но CFLAGS там, похоже, не установлен.

У меня есть связанный вопрос, на который я получил ответ: Как сообщить CPAN о пути к созданию и cc

Я немного продвинулся в CPAN / Config.pm

'makepl_arg' => q[ CCFLAGS="-D_REENTRANT -O2 -m32  -I/opt/csw/bdb48/include -I/opt/csw/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -m32 -DVERSION=\"1.616\" -DXS_VERSION=\"1.616\" -fPIC -I/opt/csw/lib/perl/5.10.1/CORE"],

но это только добавляет значение к тому, что уже было в CFLAGS, чего не понимает gcc (например, "-x03" и "-KPIC").

1 Ответ

0 голосов
/ 06 января 2012

Я успешно изменил /opt/csw/lib/perl/5.10.1/Config_heavy.pl, чтобы MakeMaker мог генерировать файлы Makefile, которые будут работать в системе Solaris под OpenCSW.

Другие, у которых есть похожиепроблемы могут загрузить его здесь: https://gist.github.com/1569718

Я также отправил это обратно сопровождающим на opencsw.org, чтобы они, надеюсь, обновили версию Perl для OpenCSW.Я отметил в своем посте, что правильный способ сделать это - полностью перестроить Perl с помощью инструментов, относящихся к дистрибутиву OpenCSW, потому что я считаю, что этот файл генерируется автоматически другими скриптами при сборке любого данного дистрибутива Perl (хотя я непроверил, как это на самом деле строится).Этот исправленный файл является просто средством, позволяющим мне выполнить свою работу, срок которой истекает.

Я бы предпочел достичь своей цели, изменив настройки в CPAN / Config.pm.Это сработало для установки правильных путей к gcc и gmake, но не для изменения флагов командной строки на gcc, потому что CPAN добавит эти флаги к ранее установленной строке аргумента.gcc завершит работу после обнаружения этих флагов, некоторые из которых были несовместимы (например, "-xO3" и "-KPIC").

Для записи CSWperl 5.10.1, REV = 2011.01.15 - это текущая версияPerl из CSW, который я установил из OpenCSW.

Надеюсь, что это может помочь кому-то еще.

...