Компиляция и установка

LibRaw поставляется в исходных текстах, для использования необходимо их скомпилировать (и, при желании, установить в системные каталоги с библиотеками и include-файлами)

Unix-системы (FreeBSD, Linux, Mac OS X)

Для сборки библиотеки вам нужен работающий компилятор C++ (gcc версий 3.x или 4.x вполне подойдет, сборка другими компиляторами не тестировалась) и программа make. Никаких других библиотек, утилит и т.п. - не требуется.

LibRaw тестировалась на 32-битных и 64-битных Unix-системах на x86- (и AMD64-) совместимых процессорах. Сборка и работоспособность на каких-либо еще архитектурах не тестировалась.

Компиляция библиотеки и примеров

Распакуйте скачанный дистрибутив. Если вы хотите использовать дополнительные наборы интерполяторов (дебайеризаторов), распакуйте соответствующий архив LibRaw-demosaic-pack:

        tar xzvf LibRaw-X.YY.tar.gz
        tar xzvf LibRaw-demosaic-pack-X.YY.tar.gz
    

Перейдите в каталог ./LibRaw-X.YY и запустите ./configure а затем make:

        cd LibRaw-X.YY
        ./configure  # см. ниже параметры ./configure
        make
      

В результате скомпилируются:

  • Библиотеку libraw.a в каталоге lib/
  • Примеры в каталоге bin/ (исходные тексты примеров находятся в каталоге samples).

В текущей версии собираются только статические библиотеки:

  • libraw.a - не thread_safe вариант
  • libraw_r.a - thread safe

Для установки выполните команду make install от пользователя с соответствующими правами:

     sudo make install
    

Параметры сборки

Для задания параметров сборки (использование OpenMP, использование LCMS) и установки, запустите скрипт configure с нужными параметрами (./configure --help покажет список параметров).

Описание нестандартных параметров:

--enable-openmp
--disable-openmp
Включает/выключает проверки поддержки OpenMP если ваш компилятор поддерживает OpenMP. По-умолчанию, проверка поддержки OpenMP включена. Если проверкой установлено, что OpenMP поддерживается, то LibRaw будет собрана с OpenMP.
--enable-lcms
--disable-lcms
Включает-выключает проверку наличия библиотеки LCMS на компьютере. Если проверка включена и библиотека найдена, то LibRaw будет скомпилирована с поддержкой LCMS.
--enable-examples
--disable-examples
Включает-выключает компиляцию примеров использования LibRaw
--enable-demosaic-pack-gpl2
--enable-demosaic-pack-gpl2=FOLDERNAME
--enable-demosaic-pack-gpl2=no
--disable-demosaic-pack-gpl2
Включает (первые две опции)/выключает проверку наличия LibRaw-demosaic-pack-GPL2. Если проверка включена и каталог с дополнительными дебайеризаторами найден - LibRaw будет собрана с дополнительными методами интерполяции.
Поиск дополнительных дебайеризаторов производится:
  • Если каталог с дебайеризаторами задан через --enable-demosaic-pack-gpl2=FOLDERNAME, то только в каталоге FOLDERNAME.
  • Если каталог не указан то поиск будет производиться в
    • ./LibRaw-demosaic-pack-GPL2 (внутри текущего каталога LibRaw)
    • ../LibRaw-demosaic-pack*GPL2* (на один уровень выше).
    Во втором случае дополнительный каталог будет подключен только если найден ровно один каталог, удовлетворяющий маске. Если найдено несколько, подключен не будет ни один из них (т.к. двусмысленность), задайте в этом случае нужный каталог вручную.
--enable-demosaic-pack-gpl3
--enable-demosaic-pack-gpl3=FOLDERNAME
--enable-demosaic-pack-gpl3=no
--disable-demosaic-pack-gpl3
То же самое, что для demosaic-pack-GPL2 (см. выше).

Windows, сборка под Cygwin

Сборка и установка полностью аналогична сборке и установке на unix-системах.

Windows, native-сборка

Сборка под Windows делается в три шага:

  • Распакуйте дистрибутив (если у вас нет tar+gzip, возьмите дистрибутив LibRaw в формате .ZIP), перейдите в каталог LibRaw-X.YYY
  • Нужно установить переменные окружения так, чтобы компилятор/линковщик находил библиотеки и include-файлы. Для Visual C++ это делается запуском vcvars32.bat.
  • Запускается
    nmake -f Makefile.msvc

Если все пути установлены правильно и include-файлы/библиотеки нашлись, то скомпилируются:

  • Библиотека libraw_static.lib в каталоге lib
  • Динамическая библиотека bin/libraw.dll и линковочная библиотека к ней lib/libraw.lib
  • Примеры в каталоге bin

Под Win32 собирается только thread-safe библиотека, ее можно использовать и не с multi-threaded-приложениями. Все примеры собираются с динамической библиотекой (DLL), при необходимости использовать статическую сборку, нужно линковаться с библиотекой libraw_static.lib а при компиляции указывать директиву препроцессора /DLIBRAW_NODLL.

Windows-версия в настоящее время собирается без поддержки библиотеки LCMS (ICC-профилей).

При сборке DLL экспортируются все публичные функции, в дальнейшем экспортируемое подмножество может быть уменьшено.

К сожалению, пути к include/библиотекам зависят от способа, которым у вас установлен Visual C (или другой компилятор), поэтому вписать какие-то стандартные пути в Makefile.msvc невозможно.

Windows, установка

Какая-либо установка под Windows не поддерживается, предполагается что все .DLL будут поставляться вместе с использующей их программой (которая и сделает установку). Соответственно, при сборке программ, использующих LibRaw путь до библиотек, DLL и include-файлов должен задаваться вручную.