понедельник, 8 декабря 2008 г.

Сборка fotoxx на пререлизе 2008.11

опробовал интереса ради, как fotoxx собирается на opensolaris. Результат скорей положительный, чем отрицательный - не обошлось без хака. Для желающих повторить опыты, краткое описание процесса:

Для сборки на практически чистой сиситеме понадобилось доустановить дополнительные Х-овые инклюдники и pkg-config.

~$pfexec pkg install -v SUNWgnome-common-devel SUNWxwinc SUNWxorg-headers

Надеюсь, не надо говорить, SUNWgcc и SUNWgmake тоже нужны :-) Решил для начала собраться при помощи gcc. Получил 2 проблемы:

Первая состоит в том, что gcc использует нестандартную функцию strcasestr, что, как я понимаю есть case-insensitive (как же это будет без англоязычных жаргонизмов) вариант стандартной strstr. Поэтому не мудрствуя лукаво заменил нестандарт на стандарт. Это, конечно, не хорошо, но для того, что мне было нужно - прокатило.

Вторую проблему также решил при помоши грубой силы, самостоятельно определив NAN. Хоть и не эстетично, зато дёшево, надёжно и практично. Буду рад услышать идеи по более элегантных хаков.

Патч:

------- zfuncs.cpp -------
*** /tmp/sccs.K0aqLk 2008-12-02 03:53:25.460575867 +0300
--- zfuncs.cpp 2008-12-02 03:06:33.288396618 +0300
***************
*** 11,16 ****
--- 11,19 ----
Linux system utility functions
***************************************************************************/

+ #ifndef NAN
+ #define NAN (0.0/0.0)
+ #endif /* !NAN */

// Fatal exit with error message to stdout.
// Works like printf.
***************
*** 4788,4794 ****
if (S_ISREG(statbuf.st_mode)) { // reg. file
pp = strrchr(file,'.');
if (! pp) return 3;
! pp = strcasestr(imagefiles,pp); // supported image type
if (pp) return 2;
}

--- 4791,4800 ----
if (S_ISREG(statbuf.st_mode)) { // reg. file
pp = strrchr(file,'.');
if (! pp) return 3;
! printf( "looking for %s in %s\n", imagefiles, pp);
! pp = strstr(imagefiles,pp); // supported image type
! printf( "found %s\n", pp);
! //CH pp = strcasestr(imagefiles,pp); // supported image type
if (pp) return 2;
}

Комментариев нет:

Отправить комментарий

Related Posts Plugin for WordPress, Blogger...

Форма для связи

Имя

Электронная почта *

Сообщение *