OS/2 FAQ


OS/2 Programming FAQ - пpогpаммиpование. Статья 061

Q Configure-скрипты и как с ними бороться в OS/2
A
(Andrew Belov, 2:5020/181.2)

Методика работы с Configure-скриптами под OS/2 нигде полностью не описана, поэтому этот FAQ составлен исключительно по собственному опыту. Приветствуются любые исправления/дополнения.

Для запуска скриптов необходим почти полный комплект традиционных GNU'шных утилит, а именно:

  • EMX v 0.9d fix 3 (можно проапгрейдить до PGCC v 2.95)
  • GNU textutils v 2.0
  • GNU findutils v 4.1
  • GNU sh-utils v 1.12
  • GNU fileutils v 3.13
    Не обязательно именно эти версии, но проверялось только с ними.

  • Korn shell v 5.27 (PERL_SH.*)
    Пропатченный (?) исходный релиз. Вместо него можно использовать BASH, но он слишком громоздкий, а версия BASH 1.12f известна тем, что редкий configure-скрипт, запущенный в ней, сможет проработать до конца (происходит утечка хендлов, после чего процессы перестают запускаться).

  • GREP
    GNU GREP или Borland GREP.

  • Autoconf v 2.12.5-971230.
    Можно взять версию 2.13, но она не знает директивы AC_DIVERT_HELP, в результате чего строки, содержащие AC_DIVERT_HELP(...), оказываются в configure-скрипте. От них можно избавиться простым поиском и удалением.

  • GNU make v 3.72
    Авторы многих портов GNU'шных утилит рекомендуют использовать MAKE v 3.72 вместо существующей версии 3.76.

Для удобства рекомендуется также иметь следующее:
  • GNU diffutils v 2.7.1
  • GNU patch v 2.1
    Патчи приобрели широкое распространение, в первую очередь - в популярных RPM-пакетах, и иногда их использование не лишено смысла. Кроме того, не все разработчики GNU'шного софта с радостью принимают патчи для OS/2-EMX, поэтому скорее всего придется иметь дело с дистрибутивом софтины (например, списанном с линуксового CD) и патчем для OS/2.

  • GNU man v 1.00 с поддержкой gzip'а
  • GNU roff v 1.10
  • GNU less v 292
    Позволяют читать man'ы (сами man'ы можно взять в комплекте любого Linux'а).

  • PERL v 5.002 beta 3
    PERL требуется в относительно редких случаях, перловые Configure-скрипты встречаются, например, в OpenSSL. Далее в FAQ'е рассматриваются только стандартные скрипты, создаваемые Autoconf'ом.

Для настройки всей системы под EMX имеет смысл создать отдельный скрипт. В CONFIG.SYS при этом можно оставить настройки для "родных" компиляторов (VisualAge) и тулкита.

=== Cut ===
@ECHO OFF
REM
REM EMX v 0.9d/PGCC v 2.95.3
REM
SET C_INCLUDE_PATH=e:/emx/include;e:/toolkit/h
SET CPLUS_INCLUDE_PATH=e:/emx/include/cpp;%C_INCLUDE_PATH%
SET OBJC_INCLUDE_PATH=%C_INCLUDE_PATH%
SET LIBRARY_PATH=e:/emx/lib
SET GCCLOAD=5
SET EMXBOOK=emxdev.inf+emxlib.inf+emxgnu.inf
SET CC=gcc.exe
SET INFOPATH=f:/usr/info
REM
REM GNU Autoconf v 2.12.5
REM
SET PATH=%PATH%;E:\OS2APPS\autoconf
SET AC_MACRODIR=e:/os2apps/autoconf
SET INFOPATH=%INFOPATH%;e:/os2apps/autoconf
SET AWK=c:/os2/os2tools/awk.exe
REM
REM Perl v 5.00x
REM
SET PERL5LIB=E:\OS2APPS\PERL\LIB
SET PERL=e:/os2apps/perl/perl5x.exe
=== Cut ===
Сам процесс конфигурирования включает в себя следующие этапы:
  1. Подключение патча:
    patch -p0<emxpatch.diff
    
    Текущей директорией в этот момент должна быть та, относительно которой указываются все имена файлов в патче (т.е. директория на одну ступень выше директории с исходниками). Можно подключать патчи и непосредственно из места расположения исходников, в таком случае нужен ключ -p1. Детальная информация приведена в man patch.
  2. Генерация configure-скрипта:
    === Cut ===
    #! /bin/sh
    
    autoconf --auxfiles
    autoconf --clean
    autoconf
    === Cut ===
    
  3. Подбор настроек (обычно описываются в файлах INSTALLATION, README, ...), генерация MAKEFILE. Пример настроек для компиляции браузера Lynx v 2.8.3:
    === Cut ===
    #! /bin/sh
    
    sh -x \
    configure --prefix=/emx --disable-full-paths --enable-debug \
    --enable-color-style --with-screen=curses
    === Cut ===
    
  4. Компиляция (в простейшем случае - make или make all).

Список рекомендуемой литературы:


К предыдущей статье | К оглавлению раздела | К следующей статье

Вернуться к списку разделов FAQ.

Если у вас есть вопросы или пожелания, пишите, мы будем рады.

Данный FAQ cоставили Ivan Borovicov и Viatcheslav Odintsov (2:5020/181) на основе OS/2 FAQ Дмитрия Завалишина (dz) и материалов переписки в группе эхоконференций su.os2.*. Оформление статей: Николай Королев. Программирование JSP для RU/2: Евгений Кулешов. Благодарности: Дмитрию Максимовичу (MaximDim) за громадную помощь на первых этапах и Дмитрию Бану (banshee) за его помощь при проверке текста.



Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ