This page covers some of dcpTool’s more technical aspects:
 
 
The XML schema
The XML schema for dcpTool was chosen largely to provide as human readable a representation of a DCP file as possible. Broadly speaking, the schema simply mirrors the DCP format as laid out in the DNG Specification, and shouldn’t give anyone that has studied the spec any trouble. However, there are a few things to be aware of:
 
  1. 1.The color space that the XML file (the huesatdelta tables, etc) is coded in is the same as the DCP files use - what Adobe call a RIMM space, which is  a scene referred, ProPhoto primaries, gamma 1 space.
  2. 2.DCP files contain a “Fingerprint”, which is an MD5 hash of the critical portions of the profile. dcpTool does not dump that to the XML file, but does create a new MD5 hash whenever it compiles a DCP file.
 
 
Compiling the software from source
Here’s what you need do to compile the software from source:
 
  1. 1.All the dcpTool source code (but not the source code for the various libraries) is included in the main download file.
  2. 2.dcpTool was built under Visual Studio 2015 for Windows, and XCode 8.1 for the Mac. The respective project files are included.
  3. 3.In order to compile dcpTool, the first step is to download the Adobe DNG SDK 1.4, fully install it, as detailed in the SDK’s documentation. That will include downloading and installing the various supporting libraries for the DNG SDK as detailed in the SDK documentation.
  4. 4.dcpTool provides a "stub" version of the XMP Toolkit, as dcp files do not use XMP, and the XMP Toolkit has a number of technical features that are undesirable. By default, the supplied project files use the "stub". However, if you wish, you can also compile against the full XMP Toolkit.
  5. 5.Copy the dng_sdk and subdirectories from your DNG SDK installation to the dcpTool directory. There are placeholder subdirectories already created in the dcpTool’s distribution ZIP file to accommodate these. Note that must copy all of the various “third-party” library packages that you downloaded as part of the DNG installation process
  6. 6.Modify the dng source code files in the dng_SDK using the supplied diff patch files. This enables the extraction of camera profiles from DNG files, and allows compilation using a wider variety of compiler settings.
  7. 7.If you are using Windows, you must also download the libxml2 libraries (these are already part of OS X 10.4 and later). The most convenient location to get these is Igor Zlatković's web site: http://www.zlatkovic.com/libxml.en.html. Then place the libxml and iconv files in the placeholder directories in the dcpTool file structure - only the binary dll from the zlib library is required. You will need to download the following libraries:  
  8. libxml2, the XML parser and processor.
  9. iconv, the character encoding toolkit.
  10. zlib, the compression toolkit (only the dll is required)
  11. 8.Once you have done this, you should have a directory structure that looks like:
  12. dcpTool root
  13. —dcpTool.xcodeproj
  14. —dcpTool.vcproj
  15. —main.cpp
  16. —...etc....
  17. —dng_sdk
  18. —source
  19. —iconv (Windows only)
  20. —include
  21. —libxml2 (Windows only)
  22. —include
  23. —XMP-SDK (optional)
  24. —public
  25. —include
  26.  
You can then compile by opening either dcpTool.codeproj in XCode, or dcpTool.vcproj in Visual Studio.
 
Note that in order to run the Windows dcpTool you will require the three DLLs (inconv.dll, libxml2.dll and zlib1.dll) from the libraries you downloaded to be in the same directory as dcpTool.exe
 
 
dcpTool and DNG Camera Profiles, technically speaking