[Moscow.pm] XS, c-files, ExtUtils::MakeMaker
Dmitry Karasik
dmitry на karasik.eu.org
Сб Июл 28 07:36:45 PDT 2012
я делал такой хак:
my $coflag = ( $Config{ccname} eq 'cl' ) ? '/Fo' : '-o';
sub c_o
{
my $t = shift-> SUPER::c_o(@_);
unless ( $t =~ /.c\$\(OBJ_EXT\):\n\t.*\$\*\$\(OBJ_EXT\)/ ) {
$t =~ s/(\.c\$\(OBJ_EXT\):\n\t.*)/$1 $coflag \$*\$(OBJ_EXT)/;
}
return $t;
}
Это старый код, и если бы я его делал сегодня, смотрел бы в сторону
более новых тулзов типа ExtUtils::CBuilder или Module::Build, хоть я
последний и не люблю
/dk
On Sat, Jul 28, 2012 at 12:54:44AM +0400, Ivan Petrov wrote:
> есть желание десятко C-файлов одного XS-модуля запхать в
> поддиректорию.
>
> соответственно по документации пишу:
>
>
> WriteMakefile(
> ...
> C => [ 'src/1.c', 'src/2.c' ],
> OBJECT => '${O_FILES}',
>
> ...
> );
>
> далее генерится makefile, который выдает серию команд
>
> cc -c ... src/1.c
> cc -c ... src/2.c
>
> и так далее
>
> в итоге кладет 1.o, 2.o в текущий каталог, а затем дает команду на
> линкинг
>
> cc .. src/1.o src/2.o
>
> и тут соответственно не находит 1.o и 2.o поскольку они лежат в
> текущем каталоге а не в src где он их ищет.
>
> пробовал написать
>
> OBJECT => '1.o 2.o'
>
> но в этом случае он отказывается компилировать c-файлы.
>
> как вылечить?
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
Sincerely,
Dmitry Karasik
Подробная информация о списке рассылки Moscow-pm