>> Количество систем? Мне не известна система, где не работает nbmake.
> Интересует не система, на которой можно собрать и поставит nbmake, а > потом долго и тщательно писать аналог bsd.prog.mk, а система у которой в > поставке идет соответствующий make и библиотека mk-файлов. Таких систем > примерно три - NetBSD, FreeBSD и OpenBSD. Нет. Все уже сделано. И этих систем гораздо больше. AIX Darwin HPUX Interix IRIX Linux NetBSD OpenBSD OSF1 SunOS UnixWare Для начала, думаю, достаточно. Нужный тебе mingw (к примеру), ты в состоянии дописать - это банальная инициализация переменных. А дальше - пульнуть в апстрим. > Если в систему из коробки не положили соответствующих mk-файлов, > то, увы, этот подход бесполезен. Положили. > Собственно, ведь подход этих двух систем в корне противоположенен > подходу autotools (чем и хорош) - не гадать поддерживает ли система ту > или иную возможность, а честно посмотреть в соответствующем справочнике, > предоставленом дистрибьютором системы. Всё правильно. Я говорю об этом же подходе. Но конкретно с imake - тонны проблем. > А ежели дистрибьютор системы справочника не положил, что я, как автор > прикладного софта должен делать? А если GNU make или GNU cc не портирован на систему XXX? ;-) Расслабиться и дышать глубже. Пусть работу делают те, кто заинтересован в вашем продукте на системе XXX. >> > предусмотреть все альтернативы, которые могут понадобиться при сборке >> > конкретного приложения. >> Что конкретно имеется ввиду? > А все подряд. Вот у меня в программе, к примеру, есть необходимость > установить TLS-соединение. Я могу это сделать с помощью OpenSSL, с > помощью GNU TLS и с помощью мозилловской libnss. Мне, автору приложения > ,вообще говоря пофигу. Чем юзеру удобнее, тем и установлю. Опции > компиляции у меня подо все три предусмотрены. Вообще говоря, тебе не нужно заботиться об опциях компилиции в этом случае. Пусть это делает тот, кто собирает твой софт у себя на системе - в наше время пакетировщик. В протиыном случае в случае, если ты ошибешься, пакерировщик (условно я) будет отключать именно твой сверх интеллект ;-) Пример (dlopen в libc, напрмиер в *BSD) env CPPFLAGS=-I/path/to/ssl/include \ LDFLAGS=-L/path/to/ssl/lib \ LDADD=-lcompat \ bmake mytool SSL_LIB=-lanother_ssl DL_LIB= REGEXP_LIB=-luxre Полный makefile (умолчания, скажем, для Линукса) SSL_LIB= -lopenssl DL_LIB= -ldl M_LIB= -lm REGEXP_LIB= # regexp from libc LDADD+= ${SSL_LIB} ${DL_LIB} ${REGEXP_LIB} ${M_LIB} PROG= mytool SRCS= main.c addons.c wrappers.c .include <bsd.prog.mk> Всё. Больше автору mytool ничего делать не нужно. Для пакетировщика - ну просто идеальный Makefile. > Как я узнаю, какая именно установлена и если устанвлены несколько - > с какой будет юзеру удобнее? Ох. Это именно тот сверхинтеллект, который пакетировщики матерясь отключают. > То же самое касается XML-парсеров, и многих-многих других вещей. Угу. -- Best regards, Aleksey Cheusov. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]