diff --git a/AUTHORS b/AUTHORS.md similarity index 100% rename from AUTHORS rename to AUTHORS.md diff --git a/INSTALL.md b/INSTALL.md index 16549f58..9788596b 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,69 +1,75 @@ -How to build and install openjpeg binaries -========================================== +# OpenJPEG installation -UNIX/LINUX/MacOSX/Windows systems --------------------------- +The build method maintained by OpenJPEG is [CMake](https://cmake.org/). -Using cmake (see www.cmake.org) +## UNIX/LINUX - MacOS (terminal) - WINDOWS (cygwin, MinGW) -Type: - cmake . - make +To build the library, type in root openjpeg directory: +``` +mkdir build +cd build +cmake .. +make +``` +Binaries are then located in the 'bin' directory. -If you are root: - make install +To install the library, type with root privileges: +``` +make install +make clean +``` -else if you have sudo power: - sudo make install - -else - DESTDIR=$HOME/local make install - -To build the Doxygen documentation (Doxygen needs to be found on the system): -(A 'html' directory is generated in the 'doc' directory) - make doc - -Binaries are located in the 'bin' directory. +To build the html documentation, you need doxygen to be installed on your system. +It will create an "html" directory in TOP\_LEVEL/build/doc) +``` +make doc +``` Main available cmake flags: -* To specify the install path: '-DCMAKE_INSTALL_PREFIX=/path', or use DESTDIR env variable (see above) -* To build the shared libraries and links the executables against it: '-DBUILD_SHARED_LIBS:bool=on' (default: 'ON') - Note: when using this option, static libraries are not built and executables are dynamically linked. -* To build the CODEC executables: '-DBUILD_CODEC:bool=on' (default: 'ON') -* To build the documentation: '-DBUILD_DOC:bool=on' (default: 'OFF') -* To build the MJ2 executables: '-DBUILD_MJ2:bool=on' (default: 'OFF') -* To build the JPWL executables and JPWL library: '-DBUILD_JPWL:bool=on' (default: 'OFF') -* To build the JPIP library and utilities: '-DBUILD_JPIP:bool=on' (default: 'OFF') -** To build the JPIP server: '-DBUILD_JPIP_SERVER:bool=on' (default: 'OFF') -* To build the JP3D library and utilities: '-DBUILD_JP3D:bool=on' (default: 'OFF') (experimental) -* To build the Java binding: '-DBUILD_JAVA:bool=on' (default: 'OFF') (experimental). -** to choose which java implementation, you can set your JAVA_HOME env var. -* To build the wxWidgets/C++ viewer: 'BUILD_VIEWER:BOOL=ON' (default OFF) (experimental) -* To enable testing (and automatic result upload to http://my.cdash.org/index.php?project=OPENJPEG): - cmake . -DBUILD_TESTING:BOOL=ON -DOPJ_DATA_ROOT:PATH='path/to/the/data/directory' - make - make Experimental - Note : JPEG2000 test files are available with 'git clone https://github.com/uclouvain/openjpeg-data.git'. - If '-DOPJ_DATA_ROOT:PATH' option is omitted, test files will be automatically searched in '${CMAKE_SOURCE_DIR}/../data', - corresponding to the location of the data directory when compiling from the trunk (and assuming the data directory has - been checked out of course). + * To specify the install path: '-DCMAKE\_INSTALL\_PREFIX=/path' + * To build the shared libraries and links the executables against it: '-DBUILD\_SHARED\_LIBS:bool=on' (default: 'ON') +> Note: when using this option, static libraries are not built and executables are dynamically linked. + * To build the CODEC executables: '-DBUILD\_CODEC:bool=on' (default: 'ON') + * [OBSOLETE] To build the MJ2 executables: '-DBUILD\_MJ2:bool=on' (default: 'OFF') + * [OBSOLETE] To build the JPWL executables and JPWL library: '-DBUILD\_JPWL:bool=on' (default: 'OFF') + * [OBSOLETE] To build the JPIP client (java compiler recommended) library and executables: '-DBUILD\_JPIP:bool=on' (default: 'OFF') + * [OBSOLETE] To build the JPIP server (need fcgi) library and executables: '-DBUILD\_JPIP\_SERVER:bool=on' (default: 'OFF') + * To enable testing (and automatic result upload to http://my.cdash.org/index.php?project=OPENJPEG): +``` +cmake . -DBUILD_TESTING:BOOL=ON -DOPJ_DATA_ROOT:PATH='path/to/the/data/directory' -DBUILDNAME:STRING='name_of_the_build' +make +make Experimental +``` +Note : test data is available on the following github repo: https://github.com/uclouvain/openjpeg-data -MACOSX ------- +If '-DOPJ\_DATA\_ROOT:PATH' option is omitted, test files will be automatically searched in '${CMAKE\_SOURCE\_DIR}/../data'. -The same building procedures as above work for MACOSX. -The xcode project file can also be used. +Note 2 : to execute the encoding test suite, kakadu binaries are needed to decode encoded image and compare it to the baseline. Kakadu binaries are freely available for non-commercial purposes at http://www.kakadusoftware.com. kdu\_expand will need to be in your PATH for cmake to find it. -If it does not work, try adding the following flag to the cmake command : - '-DCMAKE_OSX_ARCHITECTURES:STRING=i386' +Note 3 : OpenJPEG encoder and decoder (not the library itself !) depends on several libraries: png, tiff, lcms, z. If these libraries are not found on the system, they are automatically built from the versions available in the source tree. You can force the use of these embedded version with BUILD\_THIRDPARTY:BOOL=ON. On a Debian-like system you can also simply install these libraries with: +``` +sudo apt-get install liblcms2-dev libtiff-dev libpng-dev libz-dev +``` -WINDOWS -------- +Note 4 : On MacOS, if it does not work, try adding the following flag to the cmake command : +``` +-DCMAKE_OSX_ARCHITECTURES:STRING=i386 +``` -You can use cmake to generate project files for the IDE you are using (VS2010, NMake, etc). +## MacOS (XCode) - WINDOWS (VisualStudio, etc) + +You can use cmake to generate the project files for the IDE you are using (VC2010, XCode, etc). Type 'cmake --help' for available generators on your platform. -Make sure to build the third party libs (png, zlib ...): +# Using OpenJPEG - '-DBUILD_THIRDPARTY:BOOL=ON' +To use openjpeg exported cmake file, simply create your application doing: + +``` +$ cat CMakeLists.txt +find_package(OpenJPEG REQUIRED) +include_directories(${OPENJPEG_INCLUDE_DIRS}) +add_executable(myapp myapp.c) +target_link_libraries(myapp ${OPENJPEG_LIBRARIES}) +``` \ No newline at end of file diff --git a/README.md b/README.md index c40f19e5..f1438de4 100644 --- a/README.md +++ b/README.md @@ -52,12 +52,14 @@ The library is developed and maintained by the Image and Signal Processing Group See [LICENSE][link-license] for license and copyright information. -See [INSTALL](https://github.com/uclouvain/openjpeg/blob/master/INSTALL) for installation procedures. +See [INSTALL](https://github.com/uclouvain/openjpeg/blob/master/INSTALL.md) for installation procedures. -See [NEWS](https://github.com/uclouvain/openjpeg/blob/master/NEWS) for user visible changes in successive releases. +See [NEWS](https://github.com/uclouvain/openjpeg/blob/master/NEWS.md) for user visible changes in successive releases. ## API/ABI +An API/ABI timeline is automatically updated [here][link-api-timeline]. + OpenJPEG strives to provide a stable API/ABI for your applications. As such it only exposes a limited subset of its functions. It uses a mechanism of exporting/hiding functions. If you are unsure which functions you can use in @@ -77,3 +79,4 @@ API available is the one supported by OpenJPEG. [link-msvc-build]: https://ci.appveyor.com/project/detonin/openjpeg/branch/master "Windows Build Status" [badge-coverity]: https://scan.coverity.com/projects/6383/badge.svg "Coverity Scan Build Status" [link-coverity]: https://scan.coverity.com/projects/uclouvain-openjpeg "Coverity Scan Build Status" +[link-api-timeline]: http://www.openjpeg.org/abi-check/timeline/openjpeg "OpenJPEG API/ABI timeline" diff --git a/THANKS.md b/THANKS.md index f1547961..dac61019 100644 --- a/THANKS.md +++ b/THANKS.md @@ -1,4 +1,4 @@ -OpenJPEG THANKS file +# OpenJPEG THANKS file Many people have contributed to OpenJPEG by reporting problems, suggesting various improvements, or submitting actual code. Here is a list of these people. Help me keep @@ -24,10 +24,12 @@ Hans Johnson Callum Lerwick Sebastien Lugan Benoit Macq -Arnaud Maye +Mathieu Malaterre Julien Malik +Arnaud Maye Vincent Nicolas Glenn Pearson +Even Rouault Dzonatas Sol Winfried Szukalski Vincent Torri