[Moscow.pm] ExtUtils::MakeMaker: дополнительные пути поиска в LIBS и INC

Maxim monk на nuked.su
Вс Окт 27 07:13:13 PDT 2013


В Makefile-ах обычно корректно поддерживаются переменные типа CFLAGS
CXXFLAGS и LDFLAGS, соответственно можно писать что-то вроде

perl Makefile.PL && \
  CFLAGS="-I/home/mvuets/foo" \
  LDFLAGS="-L/home/mvuets/foo" \
  make && \
  make test && \
  make install



On Sun, 2013-10-27 at 10:00 +0100, Maxim Vuets wrote:
> Пишу XS модуль. Упращённый Makefile.PL выглядит так:
> 
>     use ExtUtils::MakeMaker;
>     WriteMakefile(
>         NAME    => "Foo",
>         LIBS    => ["-lfoo"],
>         INC     => "-I.",
>     );
> 
> Проблема: необходимая libfoo.a и её заголовочные файлы находятся в
> каком-то произвольном месте, скажем /home/mvuets/foo. Как я могу указать
> дополнительные -L/home/mvuets/foo и -I/home/mvuets/foo _без модификации_
> исходного Makefile.PL? (Например: через переменные окружения, аргументы
> коммандной строки?..) Это необходимо для сборки модуля с разными
> версиями внешней библиотеки без установки этой библиотеки в масштабе
> всей системы.
> 
> Я знаю, что WriteMakefile() позволяет _переопределять_ все аргументы, но
> не вижу способа как их _дополнить_. Т.е. хочется чего-то в духе:
> 
>     ./Makefile.PL LIBS+="$HOME/foo" INC+="$HOME/foo"



Подробная информация о списке рассылки Moscow-pm