Spec-Zone.ru › Perl 5.30

perldos

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • СИНТАКСИС
  • ОПИСАНИЕ
    • Предварительные условия для компиляции Perl под DOS
    • Недостатки Perl под DOS
    • Компиляция Perl под DOS
    • Тестирование Perl под DOS
    • Установка Perl под DOS
  • КОМПИЛЯЦИЯ И УСТАНОВКА МОДУЛЕЙ ПОД DOS
    • Предварительные условия для компиляции модулей Perl под DOS
    • Распаковка модулей CPAN под DOS
    • Компиляция модулей без XS под DOS
    • Компиляция модулей с XS под DOS
  • АВТОР
  • СМОТРИТЕ ТАКЖЕ

НАЗВАНИЕ

perldos - Perl под DOS, W31, W95.

СИНТАКСИС

Инструкции по компиляции Perl под DOS (или w??), используя DJGPP v2.03 или более поздние версии. Под w95 поддерживаются длинные имена файлов.

ОПИСАНИЕ

Перед началом, ознакомьтесь с файлом README в корневом каталоге, куда была распакована дистрибуция Perl. Убедитесь, что вы ознакомились и поняли условия распространения этого программного обеспечения.

Этот порт в настоящее время поддерживает MakeMaker (набор модулей, используемых для компиляции расширений для perl). Поэтому вы должны иметь возможность компилировать и устанавливать большинство расширений, доступных на сайтах CPAN.

Подробные инструкции по компиляции и установке модулей расширений perl, включая модули типа XS, включены. См. 'КОМПИЛЯЦИЯ И УСТАНОВКА МОДУЛЕЙ'.

Предварительные условия для компиляции Perl на DOS

DJGPP

DJGPP — это порт компилятора GNU C/C++ и средств разработки для 32-битной защищённой среды на 32-битных процессорах Intel, работающих под MS-DOS и совместимыми операционными системами, созданный DJ Delorie <dj@delorie.com> и его друзьями.

Для получения более подробной информации (FAQ) посетите сайт DJGPP по адресу:

http://www.delorie.com/djgpp/

Если у вас есть вопросы о DJGPP, попробуйте обратиться в новостную группу djgpp: comp.os.msdos.djgpp, или используйте электронную почту djgpp@delorie.com.

Полный дистрибутив DJGPP можно найти на одном из зеркал, перечисленных здесь:

http://www.delorie.com/djgpp/getting.html

Для компиляции perl (или добавления новых модулей) вам потребуются следующие файлы:

v2/djdev203.zip
v2gnu/bnu2112b.zip
v2gnu/gcc2953b.zip
v2gnu/bsh204b.zip
v2gnu/mak3791b.zip
v2gnu/fil40b.zip
v2gnu/sed3028b.zip
v2gnu/txt20b.zip
v2gnu/dif272b.zip
v2gnu/grep24b.zip
v2gnu/shl20jb.zip
v2gnu/gwk306b.zip
v2misc/csdpmi5b.zip

или, возможно, более новые версии.

Pthreads

Поддержка потоков не тестировалась в этой версии perl для djgpp.

Недостатки Perl под DOS

Perl под DOS не обладает некоторыми функциями Perl под UNIX из-за недостатков эмуляции UNIX, в частности:

  • fork() и pipe()

  • некоторые функции файловой системы UNIX, касающиеся количества ссылок и дат файлов

  • операции на месте несколько нарушены при использовании коротких имён файлов

  • сокеты

Компиляция Perl под DOS

  • Распакуйте исходный пакет perl5.8*.tar.gz с помощью djtarx. Если вы хотите использовать длинные имена файлов под w95 и также заставить Perl пройти все свои тесты, не забудьте использовать

    set LFN=y
    set FNCASE=y

    перед распаковкой архива.

  • Создайте «символическую ссылку» или скопируйте ваш bash.exe в sh.exe в каталоге ($DJDIR)/bin.

    ln -s bash.exe sh.exe

    [Если у вас установлена рекомендуемая версия bash для DJGPP, это уже сделано за вас.]

    И установите переменную окружения SHELL для указания на этот файл sh.exe:

    set SHELL=c:/djgpp/bin/sh.exe (use full path name!)

    Вы можете сделать это также в файле djgpp.env. Добавьте эту строку *ДО* определения любого раздела:

    +SHELL=%DJDIR%/bin/sh.exe
  • Если split.exe и gsplit.exe находятся в вашем пути, переименуйте split.exe в djsplit.exe, а gsplit.exe в split.exe. Скопируйте или создайте ссылку на gecho.exe в echo.exe, если у вас нет echo.exe. Скопируйте или создайте ссылку на gawk.exe в awk.exe, если у вас нет awk.exe.

    [Если у вас установлены рекомендуемые версии djdev, утилиты shell и gawk, все это уже сделано за вас, и вам ничего делать не нужно.]

  • Перейдите в подкаталог djgpp в корневом каталоге perl и выполните следующие команды:

    set FNCASE=y
    configure.bat

    Это выполнит предварительную обработку, а затем запустит скрипт Configure для вас. Скрипт Configure интерактивный, но в большинстве случаев вам нужно просто нажимать ENTER. Команда "set" гарантирует, что DJGPP сохранит регистр имён файлов при чтении каталогов. Если вы уже выполнили эту команду set при распаковке архива и находитесь в той же сессии DOS, что и при распаковке, вам не нужно выполнять команду set снова. Эта команда необходима *до* начала (повторной) конфигурации или (повторной) компиляции perl, чтобы гарантировать как правильную компиляцию perl, так и успешную компиляцию модулей типа XS. Подробнее см. запись в справке DJGPP для "_preserve_fncase":

    info libc alphabetical _preserve_fncase

    Если скрипт указывает, что ваш пакет неполный и спрашивает, продолжить или нет, просто ответьте Y (это может произойти только если вы не используете длинные имена файлов или забыли выполнить "set FNCASE=y" в самом начале).

    Когда Configure спросит о расширениях, я рекомендую IO и Fcntl, а если вам нужна обработка баз данных, то SDBM_File или GDBM_File (вам нужно установить gdbm для этого). Если вы хотите использовать POSIX-расширение (это по умолчанию), убедитесь, что размер стека вашего cc1.exe не меньше 512 КБ (можно проверить командой: stubedit cc1.exe).

    Вы можете использовать скрипт Configure и в неинтерактивном режиме. При компиляции моего perl.exe я использовал что-то вроде этого:

    configure.bat -des

    Более подробную информацию о командных переключателях скрипта Configure можно найти в файле INSTALL.

    Если после завершения скрипта вы хотите изменить значения в сгенерированном файле config.sh, выполните

    sh Configure -S

    после внесения ваших изменений.

    ВАЖНО: если вы используете этот -S переключатель, обязательно удалите переменную окружения CONFIG перед запуском скрипта:

    set CONFIG=
  • Теперь можно скомпилировать Perl. Введите:

    make

Тестирование Perl под DOS

Введите:

make test

Если вам повезёт, вы увидите "All tests successful". Но может быть несколько не пройденных подтестов (в идеале меньше 5), в зависимости от внешних условий (например, некоторые подтесты не проходят под linux/dosemu или обычной DOS с только короткими именами файлов).

Установка Perl под DOS

Введите:

make install

Это скопирует только что скомпилированный perl и библиотеки в вашу структуру каталогов DJGPP. Perl.exe и утилиты разместятся в ($DJDIR)/bin, а библиотека — в ($DJDIR)/lib/perl5. Поддержка документации pod находится в ($DJDIR)/lib/perl5/pod.

КОМПИЛЯЦИЯ И УСТАНОВКА МОДУЛЕЙ ПОД DOS

Предварительные условия для компиляции модулей Perl под DOS

Для компиляции и установки модулей без XS всё, что вам нужно, — это работающий perl под DJGPP. Модули без XS не требуют повторной компоновки двоичного файла perl, поэтому их компиляция и установка проще.

Модули типа XS требуют повторной компоновки двоичного файла perl, поскольку часть модуля XS написана на «C» и должна быть связана с двоичным файлом perl для выполнения. Это необходимо, потому что perl под DJGPP скомпилирован с опцией «статической компоновки» из-за отсутствия «динамической компоновки» в среде DJGPP.

Поскольку модули XS требуют повторной компоновки двоичного файла perl, вам необходимы как дистрибутив двоичного файла perl, так и исходный дистрибутив perl для компиляции модуля расширения типа XS. Кроме того, вам придётся скомпилировать двоичный файл perl из исходного дистрибутива, чтобы все компоненты двоичного файла perl были доступны для необходимой стадии компоновки.

Распаковка модулей CPAN под DOS

Сначала загрузите пакет модулей с CPAN (например, текстовый пакет «Comma Separated Value», Text-CSV-0.01.tar.gz). Затем распакуйте содержимое пакета в какое-либо место на вашем диске. Большинство пакетов CPAN построены с внутренней структурой каталогов, поэтому обычно безопасно распаковать их в корневой каталог вашей установки DJGPP. Некоторые предпочитают размещать исходные деревья в /usr/src (т. е., ($DJDIR)/usr/src), но вы можете поместить их куда угодно, *кроме* каталога с исходным кодом perl. Для модулей, расположенных в дереве исходного кода perl, существуют особые правила, которые не применяются к большинству модулей CPAN.

В отличие от других пакетов DJGPP, которые являются обычными файлами «zip», большинство пакетов модулей CPAN представляют собой «архивы tar с gzip-сжатием». Недавние версии WinZip безопасно распакуют и разархивируют их, *если* только в них нет файлов нулевой длины. Известная ошибка WinZip (по состоянию на версию 7.0) заключается в том, что она не извлекает файлы нулевой длины.

Из командной строки вы можете использовать утилиту djtar, поставляемую с DJGPP, для распаковки и разархивирования этих файлов. Например:

C:\djgpp>djtarx -v Text-CSV-0.01.tar.gz

Это создаст новый каталог ($DJDIR)/Text-CSV-0.01, заполнив его исходным кодом данного модуля.

Компиляция модулей без XS под DOS

Для компиляции модуля без XS вы можете использовать стандартные инструкции по сборке модулей, поставляемые с perl.

perl Makefile.PL
make
make test
make install

Этого достаточно, потому что модули без XS устанавливают только файлы ".pm" и (иногда) документацию pod и/или man. Для компиляции, установки или использования модулей без XS повторная компоновка двоичного файла perl не требуется.

Компиляция модулей с XS под DOS

Для компиляции модуля с XS необходимо использовать стандартные инструкции по сборке модулей, поставляемые с perl, *плюс* три дополнительных инструкции, специфичные для среды DJGPP со «статической компоновкой».

set FNCASE=y
perl Makefile.PL
make
make perl
make test
make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe
make install

Первая дополнительная инструкция устанавливает переменную окружения DJGPP FNCASE таким образом, чтобы новый двоичный файл perl, который нужно скомпилировать для модуля типа XS, был скомпилирован правильно. Вторая дополнительная инструкция перекомпилирует двоичный файл perl в каталоге вашего модуля перед выполнением «make test», чтобы вы тестировали с новым кодом модуля, скомпилированным с помощью «make». Третья дополнительная инструкция устанавливает двоичный файл perl из каталога модуля в стандартный каталог двоичных файлов DJGPP, ($DJDIR)/bin, заменяя ваш предыдущий двоичный файл perl.

Обратите внимание, что значение MAP_TARGET *должно* иметь расширение ".exe", иначе вы не создадите «perl.exe» для замены файла в ($DJDIR)/bin.

После завершения процесс установки модуля XS добавит информацию в ваш файл «perllocal», указывающую, что двоичный файл perl был заменён и какой модуль был установлен. Вы можете просмотреть эту информацию в любое время, выполнив команду:

perl -S perldoc perllocal

АВТОР

Ласло Молнар, laszlo.molnar@eth.ericsson.se [Установка/компиляция perl]

Питер Дж. Фарли III pjfarley@banet.net [Компиляция/установка модулей]

СМОТРИТЕ ТАКЖЕ

perl(1).

© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.30.3/perldos

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API