В 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 mailing list [email protected] | http://moscow.pm.org
