[Q]: Configure-скрипты и как с ними бороться в OS/2
[A]: Andrew Belov (2:5020/181.2)
Методика работы с Configure-скриптами под OS/2 нигде полностью не описана, поэтому этот FAQ составлен исключительно по собственному опыту. Приветствуются любые исправления/дополнения.
Для запуска скриптов необходим почти полный комплект традиционных GNU'шных утилит, а именно:
Hе обязательно именно эти версии, но проверялось только с ними.
Пропатченный (?) исходный релиз. Вместо него можно использовать BASH, но он слишком громоздкий, а версия BASH 1.12f известна тем, что редкий configure-скрипт, запущенный в ней, сможет проработать до конца (происходит утечка хендлов, после чего процессы перестают запускаться).
GNU GREP или Borland GREP.
Можно взять версию 2.13, но она не знает директивы AC_DIVERT_HELP, в результате чего строки, содержащие AC_DIVERT_HELP(...), оказываются в configure-скрипте. От них можно избавиться простым поиском и удалением.
Авторы многих портов GNU'шных утилит рекомендуют использовать MAKE v 3.72 вместо существующей версии 3.76.
Для удобства рекомендуется также иметь следующее:
Патчи приобрели широкое распространение, в первую очередь - в популярных RPM-пакетах, и иногда их использование не лишено смысла. Кроме того, не все разработчики GNU'шного софта с радостью принимают патчи для OS/2-EMX, поэтому скорее всего придется иметь дело с дистрибутивом софтины (например, списанном с линуксового CD) и патчем для OS/2.
Позволяют читать man'ы (сами man'ы можно взять в комплекте любого Linux'а).
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).
Внимание: по состоянию на осень 2001 г., технология начинает изменяться.
1. Hовое поколение инструментария: GCC v 3.0, Autoconf v 2.50, Automake.
Пока в довольно нестабильном состоянии, но то, что вышеописанные рекомендации к этому комплекту не всегда применимы, уже очевидно. Для GCC v 3.0 обязательно указывать переменную окружения: CFLAGS=-D__ST_MT_ERRNO__
2. Проверенные и пригодные к использованию комплекты утилит теперь лежат на
сайте http://www.unixos2.org. Кто знаком со Slackware Linux, тот поймет, что к чему.
3. В рамках того же UnixOS/2 рождаются идеи конвертации готовых
Configure-скриптов, или модификации EMX'ового инструментария с целью избавления от формата a.out. В итоге схема портирования может упроститься, но это будет нескоро.
Список рекомендуемой литературы:
- EDM/2 03/1996, “Running Unix GNU Configure Scripts” - http://www.arrakis.es/~worm/acemx.htm