Blob Blame History Raw
================= Compile LibRaw with RawSpeed support ========================

0) RawSpeed version: 
   LibRaw supports 'master' version of RawSpeed library: https://github.com/darktable-org/rawspeed/tree/master

   Although this version is really outdated, newer versions does not looks stable enough for production
   use (for example, this critical issue not fixed for 10+ months: https://github.com/darktable-org/rawspeed/issues/100 )
   
1) Prerequisites

To build RawSpeed you need libxml2, iconv, and JPEG library installed on your 
system.

2) Build RawSpeed:

  -- consult http://rawstudio.org/blog/?p=800 for details

  -- Win32: you need POSIX Threads for Win32 installed on your system
     (http://sources.redhat.com/pthreads-win32/)

  -- you may use qmake .pro files supplied in LibRaw distribution
     (RawSpeed/rawspeed.qmake-pro-files.patch)
     Adjust path to libraries/includes according to your setup.

  -- Win32: you need to add __declspec(..) to external C++ classes.
     Use patch provided with LibRaw (RawSpeed/rawspeed.win32-dll.patch)

  -- Unix: you need to define rawspeed_get_number_of_processor_cores() call
     For most unix systems (Linux, MacOS X 10.4+, FreeBSD) patch provided
     with LibRaw (RawSpeed/rawspeed.cpucount-unix.patch) should work.

3) Build LibRaw with RawSpeed support:
 
   Win32: 
     --Uncomment CFLAGS_RAWSPEED and LDFLAGS_RAWSPEED lines in
       Makefile.msvc. Adjust paths to libraries/includes if needed.
     -- run nmake -f Makefile.msvc

   Unix/MacOS:
     -- Uncomment CFLAGS/LDADD lines in RawSpeed section in Makefile.dist
     -- Uncomment RAWSPEED_DATA line if you wish to rebuild
	internal copy of RawSpeed's cameras.xml
     -- run make -f Makefile.dist

   Compile options:
    -- You may specify -DNOSONY_RAWSPEED define if you do not want to use 
        RawSpeed's Sony formats decoder (because result of this decoder is 
        different from  LibRaw's built-in decoder)

4) Build/run your Apps with LibRaw+RawSpeed
   
   -- Build as usual, no changes required in your apps unless you
      access LibRaw::imgdata.rawdata.raw_image[] directly

   -- you may turn off RawSpeed support on runtime by setting 
      imgdata.params.use_rawspeed to 0.

   -- You'll need all shared libraries you linked to at runtime (libxml2,
      iconv, LibJPEG, and posix threads on Win32).