Существуют различные программы MAKE для создания программного обеспечения, в частности (для целей данного поста) Microsoft NMake, GNU Make и DMake ("Make Dennis Vadura's").
При сборке модулей Perl через ExtUtils :: MakeMaker вы можете указать программу MAKE для использования через параметр MAKE.
perl Makefile.PL MAKE=nmake
perl Makefile.PL MAKE=dmake
perl Makefile.PL MAKE=make
Мне кажется, что в Windows GNU Make (которая находится в GnuWin32 и хорошо подходит для MinGW) не поддерживается или не тестируется; однако об этом нет упоминания в справочной странице EU :: MM .
Что заставляет меня верить, что Makefile для GNU Make, который генерирует EU :: MM, просто не работает. Он содержит DIRFILESEP = \
(сгенерированный из sub init_DIRFILESEP
в MM_Win32.pm
), но обратный слеш интерпретируется GNU Make как символ продолжения строки, поэтому он не может работать, так как генерирует неверные пути:
make: *** No rule to make target `C:\Opt\Perl514.64\libConfig.pm',
needed by `makefile'. Stop.
Если вы исправите это, тогда во временном пакетном файле будет другая ошибка (я наблюдал это с make -d
), которая впоследствии удаляется:
syntax error at -e line 1, near "'755')
"
Missing right curly or square bracket at -e line 1, at end of line
Конечно, хорошо просто использовать NMake или DMake и не беспокоиться о поддержке GNU Make, но в этом случае в документации должно быть предупреждение, чтобы не использовать GNU Make в Windows. (Которая, я думаю, самая популярная программа Make).
Так в каком состоянии GNU Make поддерживает Windows от EU :: MM? Это глюк или по замыслу? Или я пропускаю ключ, чтобы заставить это работать? Что это?