renamed and reorganized "jp3d" directory to "openjpeg3d". Is now a standalone directory, with independent cmake files. Done as it uses its own version of the openjpeg library and does not depend on the one currently developped. Will be removed from the trunk and stored in a branch.
diff --git a/CMake/CheckHaveGetopt.cmake b/CMake/CheckHaveGetopt.cmake
new file mode 100644
index 0000000..c0fd5dc
--- /dev/null
+++ b/CMake/CheckHaveGetopt.cmake
@@ -0,0 +1,15 @@
+# Check if getopt is present:
+INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
+SET(DONT_HAVE_GETOPT 1)
+IF(UNIX) #I am pretty sure only *nix sys have this anyway
+  CHECK_INCLUDE_FILE("getopt.h" CMAKE_HAVE_GETOPT_H)
+  # Seems like we need the contrary:
+  IF(CMAKE_HAVE_GETOPT_H)
+    SET(DONT_HAVE_GETOPT 0)
+  ENDIF(CMAKE_HAVE_GETOPT_H)
+ENDIF(UNIX)
+
+IF(DONT_HAVE_GETOPT)
+  ADD_DEFINITIONS(-DDONT_HAVE_GETOPT)
+ENDIF(DONT_HAVE_GETOPT)
+
diff --git a/CMake/OpenJPEG3DConfig.cmake.in b/CMake/OpenJPEG3DConfig.cmake.in
new file mode 100644
index 0000000..633c093
--- /dev/null
+++ b/CMake/OpenJPEG3DConfig.cmake.in
@@ -0,0 +1,48 @@
+#-----------------------------------------------------------------------------
+#
+# OPENJPEG3DConfig.cmake - CMake configuration file for external projects.
+#
+# This file is configured by OPENJPEG3D and used by the UseOPENJPEG3D.cmake
+# module to load OPENJPEG3D's settings for an external project.
+@OPENJPEG3D_CONFIG_INSTALL_ONLY@
+# The OPENJPEG3D version number.
+SET(OPENJPEG3D_MAJOR_VERSION "@OPENJPEG3D_VERSION_MAJOR@")
+SET(OPENJPEG3D_MINOR_VERSION "@OPENJPEG3D_VERSION_MINOR@")
+SET(OPENJPEG3D_BUILD_VERSION "@OPENJPEG3D_VERSION_BUILD@")
+
+# The libraries.
+SET(OPENJPEG3D_LIBRARIES "@OPENJPEG3D_LIBRARIES@")
+
+# The CMake macros dir.
+SET(OPENJPEG3D_CMAKE_DIR "@OPENJPEG3D_CMAKE_DIR_CONFIG@")
+
+# The configuration options.
+SET(OPENJPEG3D_BUILD_SHARED_LIBS "@OPENJPEG3D_BUILD_SHARED_LIBS@")
+
+# The "use" file.
+SET(OPENJPEG3D_USE_FILE "@OPENJPEG3D_USE_FILE_CONFIG@")
+
+get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+if(EXISTS ${SELF_DIR}/OpenJPEG3DTargets.cmake)
+  # This is an install tree
+  include(${SELF_DIR}/OpenJPEG3DTargets.cmake)
+  get_filename_component(OPENJPEG3D_INCLUDE_ROOT "${SELF_DIR}/../../@OPENJPEG3D_INSTALL_INCLUDE_DIR@" ABSOLUTE)
+  set(OPENJPEG3D_INCLUDE_DIRS ${OPENJPEG3D_INCLUDE_ROOT})
+
+else(EXISTS ${SELF_DIR}/OpenJPEG3DTargets.cmake)
+  if(EXISTS ${SELF_DIR}/OpenJPEG3DExports.cmake)
+    # This is a build tree
+    SET( OPENJPEG3D_INCLUDE_DIRS @OPENJPEG3D_INCLUDE_PATH@)
+
+    include(${SELF_DIR}/OpenJPEG3DExports.cmake)
+
+  else(EXISTS ${SELF_DIR}/OpenJPEG3DExports.cmake)
+    message(FATAL_ERROR "ooops")
+  endif(EXISTS ${SELF_DIR}/OpenJPEG3DExports.cmake)
+endif(EXISTS ${SELF_DIR}/OpenJPEG3DTargets.cmake)
+
+set(OPENJPEG3D_USE_FILE ${SELF_DIR}/UseOPENJPEG3D.cmake)
+
+# Backward compatible part:
+SET(OPENJPEG3D_FOUND       TRUE)
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1491d1c..28e3cbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,15 +1,223 @@
-# jp3d
+# Main CMakeLists.txt to build the OpenJPEG3D 3D project using CMake (www.cmake.org)
+# Written by Mathieu Malaterre
+
+# This CMake project will by default create a library called openjpeg3d3d
+# But if you want to use this project within your own (CMake) project
+# you will eventually like to prefix the library to avoid linking confusion
+# For this purpose you can define a CMake var: OPENJPEG3D_NAMESPACE to whatever you like
+# e.g.:
+# SET(OPENJPEG3D_NAMESPACE "GDCMOPENJPEG3D")
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+IF(COMMAND CMAKE_POLICY)
+  CMAKE_POLICY(SET CMP0003 NEW)
+ENDIF(COMMAND CMAKE_POLICY)
+
+IF(NOT OPENJPEG3D_NAMESPACE)
+  SET(OPENJPEG3D_NAMESPACE "OPENJPEG3D")
+  SET(OPENJPEG3D_STANDALONE 1)
+ENDIF(NOT OPENJPEG3D_NAMESPACE)
+# In all cases:
+STRING(TOLOWER ${OPENJPEG3D_NAMESPACE} OPENJPEG3D_LIBRARY_NAME)
+
+PROJECT(${OPENJPEG3D_NAMESPACE} C)
+
+# Do full dependency headers.
+INCLUDE_REGULAR_EXPRESSION("^.*$")
+
+#-----------------------------------------------------------------------------
+# OPENJPEG3D version number, useful for packaging and doxygen doc:
+SET(OPENJPEG3D_VERSION_MAJOR 1)
+SET(OPENJPEG3D_VERSION_MINOR 3)
+SET(OPENJPEG3D_VERSION_BUILD 0)
+SET(OPENJPEG3D_VERSION
+  "${OPENJPEG3D_VERSION_MAJOR}.${OPENJPEG3D_VERSION_MINOR}.${OPENJPEG3D_VERSION_BUILD}")
+SET(PACKAGE_VERSION
+  "${OPENJPEG3D_VERSION_MAJOR}.${OPENJPEG3D_VERSION_MINOR}.${OPENJPEG3D_VERSION_BUILD}")
+SET(OPENJPEG3D_LIBRARY_PROPERTIES
+  VERSION   "${OPENJPEG3D_VERSION_MAJOR}.${OPENJPEG3D_VERSION_MINOR}.${OPENJPEG3D_VERSION_BUILD}"
+  SOVERSION "${OPENJPEG3D_VERSION_MAJOR}"
+)
+# You will also need to define a value for the following variables:
+# OPENJPEG3D_INSTALL_BIN_DIR          - binary dir (executables)
+# OPENJPEG3D_INSTALL_LIB_DIR          - library dir (libs)
+# OPENJPEG3D_INSTALL_DATA_DIR         - share dir (say, examples, data, etc)
+# OPENJPEG3D_INSTALL_INCLUDE_DIR      - include dir (headers)
+
+
+# On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security
+# warnings
+IF(WIN32)
+  IF(NOT BORLAND)
+    IF(NOT CYGWIN)
+      IF(NOT MINGW)
+        IF(NOT ITK_ENABLE_VISUAL_STUDIO_DEPRECATED_C_WARNINGS)
+          ADD_DEFINITIONS(
+            -D_CRT_FAR_MAPPINGS_NO_DEPRECATE
+            -D_CRT_IS_WCTYPE_NO_DEPRECATE
+            -D_CRT_MANAGED_FP_NO_DEPRECATE
+            -D_CRT_NONSTDC_NO_DEPRECATE
+            -D_CRT_SECURE_NO_DEPRECATE
+            -D_CRT_SECURE_NO_DEPRECATE_GLOBALS
+            -D_CRT_SETERRORMODE_BEEP_SLEEP_NO_DEPRECATE
+            -D_CRT_TIME_FUNCTIONS_NO_DEPRECATE
+            -D_CRT_VCCLRIT_NO_DEPRECATE
+            -D_SCL_SECURE_NO_DEPRECATE
+            )
+        ENDIF(NOT ITK_ENABLE_VISUAL_STUDIO_DEPRECATED_C_WARNINGS)
+      ENDIF(NOT MINGW)
+    ENDIF(NOT CYGWIN)
+  ENDIF(NOT BORLAND)
+ENDIF(WIN32)
+
+
+# --------------------------------------------------------------------------
+# Install directories
+
+STRING(TOLOWER ${PROJECT_NAME} projectname)
+SET(subdir "${projectname}-${OPENJPEG3D_VERSION_MAJOR}.${OPENJPEG3D_VERSION_MINOR}")
+
+IF(NOT OPENJPEG3D_INSTALL_BIN_DIR)
+  SET(OPENJPEG3D_INSTALL_BIN_DIR "bin")
+ENDIF(NOT OPENJPEG3D_INSTALL_BIN_DIR)
+
+IF(NOT OPENJPEG3D_INSTALL_LIB_DIR)
+  SET(OPENJPEG3D_INSTALL_LIB_DIR "lib")
+ENDIF(NOT OPENJPEG3D_INSTALL_LIB_DIR)
+
+IF(NOT OPENJPEG3D_INSTALL_DATA_DIR)
+  SET(OPENJPEG3D_INSTALL_DATA_DIR "share/${subdir}")
+ENDIF(NOT OPENJPEG3D_INSTALL_DATA_DIR)
+
+IF(NOT OPENJPEG3D_INSTALL_INCLUDE_DIR)
+  SET(OPENJPEG3D_INSTALL_INCLUDE_DIR "include/")
+ENDIF(NOT OPENJPEG3D_INSTALL_INCLUDE_DIR)
+
+IF(NOT OPENJPEG3D_INSTALL_MAN_DIR)
+  SET(OPENJPEG3D_INSTALL_MAN_DIR "share/man/")
+ENDIF(NOT OPENJPEG3D_INSTALL_MAN_DIR)
+
+IF(NOT OPENJPEG3D_INSTALL_DOC_DIR)
+  SET(OPENJPEG3D_INSTALL_DOC_DIR "share/doc/${subdir}")
+ENDIF(NOT OPENJPEG3D_INSTALL_DOC_DIR)
+
+IF(NOT OPENJPEG3D_INSTALL_PACKAGE_DIR)
+  SET(OPENJPEG3D_INSTALL_PACKAGE_DIR ${OPENJPEG3D_INSTALL_LIB_DIR}/${subdir}
+    CACHE INTERNAL "")
+ENDIF(NOT OPENJPEG3D_INSTALL_PACKAGE_DIR)
+
+#-----------------------------------------------------------------------------
+# Test for some required system information.
+INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
+
+#-----------------------------------------------------------------------------
+# Test for getopt being available in this system
+INCLUDE (${PROJECT_SOURCE_DIR}/CMake/CheckHaveGetopt.cmake )
+
+#-----------------------------------------------------------------------------
+# OpenJPEG3D build configuration options.
+OPTION(BUILD_SHARED_LIBS "Build OpenJPEG3D shared library and link executables against it." ON)
+
+#-----------------------------------------------------------------------------
+SET (EXECUTABLE_OUTPUT_PATH ${OPENJPEG3D_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables.")
+SET (LIBRARY_OUTPUT_PATH ${OPENJPEG3D_BINARY_DIR}/bin CACHE PATH "Single output directory for building all libraries.")
+MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
+
+
+# configure name mangling to allow multiple libraries to coexist
+# peacefully
+IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg3d_mangle.h.in)
+SET(MANGLE_PREFIX ${OPENJPEG3D_LIBRARY_NAME})
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg3d_mangle.h.in
+               ${CMAKE_CURRENT_BINARY_DIR}/openjpeg3d_mangle.h
+               @ONLY IMMEDIATE)
+ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg3d_mangle.h.in)
+
+#-----------------------------------------------------------------------------
+# pkgconfig support
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libopenjpeg3d.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg3d.pc @ONLY)
+INSTALL( FILES  ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg3d.pc DESTINATION ${OPENJPEG3D_INSTALL_LIB_DIR}/pkgconfig )
+
+#-----------------------------------------------------------------------------
+# Always build the library
+INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
+SUBDIRS(libopenjpeg3d)
+
+#-----------------------------------------------------------------------------
+# Compiler specific flags:
+IF(CMAKE_COMPILER_IS_GNUCC)
+  # For all builds, make sure openjpeg3d is std99 compliant:
+  # SET(CMAKE_C_FLAGS "-Wall -std=c99 ${CMAKE_C_FLAGS}") # FIXME: this setting prevented us from setting a coverage build.
+  # Do not use ffast-math for all build, it would produce incorrect results, only set for release:
+  SET(CMAKE_C_FLAGS_RELEASE "-ffast-math ${CMAKE_C_FLAGS_RELEASE}")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+# install all targets referenced as OPENJPEG3DTargets
+install(EXPORT OpenJPEG3DTargets DESTINATION ${OPENJPEG3D_INSTALL_PACKAGE_DIR})
+CONFIGURE_FILE( ${OPENJPEG3D_SOURCE_DIR}/CMake/OpenJPEG3DConfig.cmake.in
+  ${OPENJPEG3D_BINARY_DIR}/OpenJPEG3DConfig.cmake
+  @ONLY
+)
+INSTALL( FILES ${OPENJPEG3D_BINARY_DIR}/OpenJPEG3DConfig.cmake
+  DESTINATION ${OPENJPEG3D_INSTALL_PACKAGE_DIR}
+)
+# install CHANGES and LICENSE
+INSTALL(
+  FILES       LICENSE
+  DESTINATION ${OPENJPEG3D_INSTALL_DOC_DIR})
+#
+FIND_FILE(HAVE_STRINGS_H_FOUND strings.h)
+IF(NOT HAVE_STRINGS_H_FOUND STREQUAL "HAVE_STRINGS_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_STRINGS_H strings.h)
+  SET(HAS_STRINGS_H 1)
+ENDIF()
+FIND_FILE(HAVE_INTTYPES_H_FOUND inttypes.h)
+IF(NOT HAVE_INTTYPES_H_FOUND STREQUAL "HAVE_INTTYPES_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_INTTYPES_H inttypes.h)
+  SET(HAS_INTTYPES_H 1)
+ENDIF()
+FIND_FILE(HAVE_MEMORY_H_FOUND memory.h)
+IF(NOT HAVE_MEMORY_H_FOUND STREQUAL "HAVE_MEMORY_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_MEMORY_H memory.h)
+  SET(HAS_MEMORY_H 1)
+ENDIF()
+FIND_FILE(HAVE_STDINT_H_FOUND stdint.h)
+IF(NOT HAVE_STDINT_H_FOUND STREQUAL "HAVE_STDINT_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_STDINT_H stdint.h)
+  SET(HAS_STDINT_H 1)
+ENDIF()
+FIND_FILE(HAVE_STDLIB_H_FOUND stdlib.h)
+IF(NOT HAVE_STDLIB_H_FOUND STREQUAL "HAVE_STDLIB_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_STDLIB_H stdlib.h)
+  SET(HAS_STDLIB_H 1)
+ENDIF()
+FIND_FILE(HAVE_STRING_H_FOUND string.h)
+IF(NOT HAVE_STRING_H_FOUND STREQUAL "HAVE_STRING_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_STRING_H string.h)
+  SET(HAS_STRING_H 1)
+ENDIF()
+FIND_FILE(HAVE_SYS_STAT_H_FOUND sys/stat.h)
+IF(NOT HAVE_SYS_STAT_H_FOUND STREQUAL "HAVE_SYS_STAT_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_SYS_STAT_H sys/stat.h)
+  SET(HAS_SYS_STAT_H 1)
+ENDIF()
+FIND_FILE(HAVE_SYS_TYPES_H_FOUND sys/types.h)
+IF(NOT HAVE_SYS_TYPES_H_FOUND STREQUAL "HAVE_SYS_TYPES_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_SYS_TYPES_H sys/types.h)
+  SET(HAS_SYS_TYPES_H 1)
+ENDIF()
+FIND_FILE(HAVE_UNISTD_H_FOUND unistd.h)
+IF(NOT HAVE_UNISTD_H_FOUND STREQUAL "HAVE_UNISTD_H_FOUND-NOTFOUND")
+  FIND_FILE(HAVE_UNISTD_H unistd.h)
+  SET(HAS_UNISTD_H 1)
+ENDIF()
+
 
 # Headers file are located here:
 INCLUDE_DIRECTORIES(
   ${CMAKE_CURRENT_SOURCE_DIR}/codec
-  ${CMAKE_CURRENT_SOURCE_DIR}/libjp3dvm
+  ${CMAKE_CURRENT_SOURCE_DIR}/libopenjpeg3d
   )
 
 
-SUBDIRS(
-  libjp3dvm
-  codec
-)
-
-
+SUBDIRS(codec)
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..3f4e3dd
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,25 @@
+
+How to build and install openjpeg3d binaries
+==========================================
+
+REQUIREMENT : cmake (see www.cmake.org)
+
+Type:
+  cmake .
+  make
+
+If you are root:
+  make install
+  make clean
+
+else:
+  sudo make install
+  make clean
+
+Binaries are located in the 'bin' directory.
+
+Main available cmake flags:
+* 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.
+
diff --git a/LICENSE.txt b/LICENSE
similarity index 100%
rename from LICENSE.txt
rename to LICENSE
diff --git a/Makefile.nix b/Makefile.nix
deleted file mode 100644
index 5b0796f..0000000
--- a/Makefile.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-#jp3d Makefile
-include ../config.nix
-
-TARGET  = openjp3dvm
-COMPILERFLAGS = -O3 -Wall -ffast-math -std=c99 -fPIC
-
-SRCS = ./libjp3dvm/bio.c ./libjp3dvm/cio.c ./libjp3dvm/dwt.c \
-  ./libjp3dvm/event.c ./libjp3dvm/jp3d.c ./libjp3dvm/jp3d_lib.c \
-  ./libjp3dvm/volume.c ./libjp3dvm/mct.c ./libjp3dvm/mqc.c \
-  ./libjp3dvm/openjpeg.c ./libjp3dvm/pi.c ./libjp3dvm/raw.c \
-  ./libjp3dvm/t1.c ./libjp3dvm/t1_3d.c ./libjp3dvm/t2.c \
-  ./libjp3dvm/tcd.c ./libjp3dvm/tgt.c
-
-INCLS = ./libjp3dvm/t1_3d.h ./libjp3dvm/bio.h ./libjp3dvm/cio.h \
-  ./libjp3dvm/dwt.h ./libjp3dvm/event.h ./libjp3dvm/fix.h \
-  ./libjp3dvm/int.h ./libjp3dvm/jp3d.h ./libjp3dvm/jp3d_lib.h \
-  ./libjp3dvm/volume.h ./libjp3dvm/mct.h ./libjp3dvm/mqc.h \
-  ./libjp3dvm/openjpeg3d.h ./libjp3dvm/pi.h ./libjp3dvm/raw.h \
-  ./libjp3dvm/t1.h  ./libjp3dvm/t2.h ./libjp3dvm/tcd.h \
-  ./libjp3dvm/tgt.h ./libjp3dvm/opj_includes.h
-
-INCLUDE = -I.. -Ilibjp3dvm
-
-INSTALL_LIBDIR = $(prefix)/lib
-headerdir = openjpeg3d-$(JP3D_MAJOR).$(JP3D_MINOR)
-INSTALL_INCLUDE = $(prefix)/include/$(headerdir)
-
-# Converts cr/lf to just lf
-DOS2UNIX = dos2unix
-
-LIBRARIES = -lstdc++
-
-MODULES = $(SRCS:.c=.o)
-CFLAGS = $(COMPILERFLAGS) $(INCLUDE)
-
-LIBNAME = lib$(TARGET)
-
-ifeq ($(ENABLE_SHARED),yes)
-SHAREDLIB = $(LIBNAME).so.$(JP3D_MAJOR).$(JP3D_MINOR).$(JP3D_BUILD)
-else
-STATICLIB = $(LIBNAME).a
-endif
-
-default: all
-
-all: Jp3dVM
-	make -C codec -f Makefile.nix all 
-	install -d ../bin
-ifeq ($(ENABLE_SHARED),yes)
-	install -m 755 $(SHAREDLIB) ../bin
-	(cd ../bin && \
-	ln -sf $(SHAREDLIB) $(LIBNAME).so.$(JP3D_MAJOR).$(JP3D_MINOR))
-	(cd ../bin && \
-	ln -sf $(LIBNAME).so.$(JP3D_MAJOR).$(JP3D_MINOR) $(LIBNAME).so)
-else
-	install -m 644 $(STATICLIB) ../bin
-endif
-
-dos2unix:
-	@$(DOS2UNIX) $(SRCS) $(INCLS)
-
-Jp3dVM: $(STATICLIB) $(SHAREDLIB)
-
-.c.o:
-	$(CC) $(CFLAGS) -c $< -o $@
-
-ifeq ($(ENABLE_SHARED),yes)
-$(SHAREDLIB): $(MODULES)
-	$(CC) -s -shared -Wl,-soname,$(LIBNAME) -o $@ $(MODULES) $(LIBRARIES)
-else
-$(STATICLIB): $(MODULES)
-	$(AR) r $@ $(MODULES)
-endif
-
-install: Jp3dVM
-	install -d '$(DESTDIR)$(INSTALL_LIBDIR)'
-ifeq ($(ENABLE_SHARED),yes)
-	install -m 755 -o root -g root $(SHAREDLIB) '$(DESTDIR)$(INSTALL_LIBDIR)'
-	(cd $(DESTDIR)$(INSTALL_LIBDIR) &&  \
-	ln -sf $(SHAREDLIB) $(LIBNAME).so.$(JP3D_MAJOR).$(JP3D_MINOR) )
-	(cd $(DESTDIR)$(INSTALL_LIBDIR) && \
-	ln -sf $(LIBNAME).so.$(JP3D_MAJOR).$(JP3D_MINOR) $(LIBNAME).so )
-else
-	install -m 644 -o root -g root $(STATICLIB) '$(DESTDIR)$(INSTALL_LIBDIR)'
-	(cd $(DESTDIR)$(INSTALL_LIBDIR) && ranlib $(STATICLIB))
-endif
-	install -d $(DESTDIR)$(INSTALL_INCLUDE)
-	rm -f $(DESTDIR)$(INSTALL_INCLUDE)/openjpeg3d.h
-	install -m 644 -o root -g root libjp3dvm/openjpeg3d.h \
-	$(DESTDIR)$(INSTALL_INCLUDE)/openjpeg3d.h
-	(cd $(DESTDIR)$(prefix)/include && \
-	ln -sf $(headerdir)/openjpeg3d.h openjpeg3d.h)
-	make -C codec -f Makefile.nix install
-
-uninstall:
-ifeq ($(ENABLE_SHARED),yes)
-	(cd $(DESTDIR)$(INSTALL_LIBDIR) && \
-	rm -f $(LIBNAME).so $(LIBNAME).so.$(JP3D_MAJOR).$(JP3D_MINOR) $(SHAREDLIB))
-else
-	rm -f $(DESTDIR)$(INSTALL_LIBDIR)/$(STATICLIB)
-endif
-	rm -f $(DESTDIR)$(prefix)/include/openjpeg3d.h
-	rm -rf $(DESTDIR)$(INSTALL_INCLUDE)
-	make -C codec -f Makefile.nix uninstall
-
-clean:
-	rm -f core u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB)
-	make -C codec -f Makefile.nix clean
diff --git a/README.txt b/README
similarity index 88%
rename from README.txt
rename to README
index ce04072..a22ecb4 100755
--- a/README.txt
+++ b/README
@@ -19,52 +19,18 @@
 ======================================================
 
 - After decompressing the zip file provided, you should find 
-at least the following files in the created 'jp3d_vm' directory:
+at least the following files in the created 'openjpeg3d' directory:
 
- * libjp3dvm - This directory contains all library related code
+ * libopenjpeg3d - This directory contains all library related code
  * codec - This directory contains all codec related code
  * tcltk - This directory contains the API scripts
  * README - The file you are reading
- * LICENCE - Copyright statement of the JP3D VM software
+ * LICENSE - Copyright statement of the JP3D VM software
 
-2.1. Compiling the source code in Windows
--------------------------------------------
+2.1. Compilation
+-----------------
 
-This version has been compiled with Visual Studio 2003 using
-the projects included in the distribution:
-
- * LibJp3dVM.vcproj - Creates the library with all the JP3D functionalities
- * jp3d_vm_enc.vcproj - Test encoder 
- * jp3d_vm_dec.vcproj - Test decoder 
-
-2.2. Compiling the source code in Unix-like systems
--------------------------------------------
-
-Library compilation
-------------------------
-This version of the library has been tested under the following OS:
-- Fedora Core 
-
-The installation process is as simple as this : 
-1) Enter the 'jp3d_vm' directory
-2) Build the distribution : 
-make
-make install
-3) Clean all files produced during the build process
-make clean
-
-Codec compilation
-------------------------
-Once you've built the library, you should compile the JP3D codec.
-
-1) Go to the 'codec' directory 
-2) Build the encoder and decoder programs:
-
-gcc convert.c volume_to_jp3d.c -o jp3d_vm_enc -I ../libjp3dvm/ -lm -ljp3dvm
-gcc convert.c jp3d_to_volume.c -o jp3d_vm_dec -I ../libjp3dvm/ -lm -ljp3dvm
-
-Note: You should add '-L ../libjp3dvm/' to those lines if you
-did not use the 'install' target (and the 'clean' target neither...).
+see INSTALL file for compilation and installation instructions
 
 3. Running the JP3D VM
 ====================================================
diff --git a/codec/CMakeLists.txt b/codec/CMakeLists.txt
index 6c33b96..437b1e0 100644
--- a/codec/CMakeLists.txt
+++ b/codec/CMakeLists.txt
@@ -4,25 +4,6 @@
 SET(common_SRCS
   convert.c
   )
-# Then check if getopt is present:
-INCLUDE (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
-SET(DONT_HAVE_GETOPT 1)
-IF(UNIX) #I am pretty sure only *nix sys have this anyway
-  CHECK_INCLUDE_FILE("getopt.h" CMAKE_HAVE_GETOPT_H)
-  # Seems like we need the contrary:
-  IF(CMAKE_HAVE_GETOPT_H)
-    SET(DONT_HAVE_GETOPT 0)
-  ENDIF(CMAKE_HAVE_GETOPT_H)
-ENDIF(UNIX)
-
-# If not getopt was found then add it to the lib:
-IF(DONT_HAVE_GETOPT)
-  ADD_DEFINITIONS(-DDONT_HAVE_GETOPT)
-  SET(common_SRCS
-    ${common_SRCS}
-    getopt.c
-  )
-ENDIF(DONT_HAVE_GETOPT)
 
 IF(WIN32)
   IF(BUILD_SHARED_LIBS)
@@ -35,13 +16,14 @@
 # Loop over all executables:
 FOREACH(exe jp3d_to_volume volume_to_jp3d)
   ADD_EXECUTABLE(${exe} ${exe}.c ${common_SRCS})
-  TARGET_LINK_LIBRARIES(${exe} ${OPENJPEG_LIBRARY_NAME}_JP3D) # ${TIFF_LIBRARIES})
+  TARGET_LINK_LIBRARIES(${exe} ${OPENJPEG3D_LIBRARY_NAME})
   # On unix you need to link to the math library:
   IF(UNIX)
     TARGET_LINK_LIBRARIES(${exe} m)
   ENDIF(UNIX)
   # Install exe
-  INSTALL_TARGETS(/bin/ ${exe})
+  INSTALL(TARGETS ${exe}
+    EXPORT OpenJPEG3DTargets
+    DESTINATION ${OPENJPEG3D_INSTALL_BIN_DIR} COMPONENT Applications
+  )
 ENDFOREACH(exe)
-
-
diff --git a/codec/Makefile.nix b/codec/Makefile.nix
deleted file mode 100644
index e34ad39..0000000
--- a/codec/Makefile.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-#jp3d/codec/Makefile
-
-include ../../config.nix
-
-INSTALL_BIN = $(prefix)/bin
-CFLAGS = -Wall -I. -I../libjp3dvm -lstdc++ # -g -p -pg
-#USERLIBS = -lm
-
-ifeq ($(ENABLE_SHARED),yes)
-ELIB = ../libopenjp3dvm.so.$(JP3D_MAJOR).$(JP3D_MINOR).$(JP3D_BUILD)
-else
-ELIB = ../libopenjp3dvm.a
-endif
-
-all: jp3d_to_volume volume_to_jp3d
-	install -d ../../bin
-	install jp3d_to_volume volume_to_jp3d ../../bin
-
-jp3d_to_volume: jp3d_to_volume.c $(ELIB)
-	$(CC) $(CFLAGS) getopt.c convert.c jp3d_to_volume.c \
-	-o jp3d_to_volume  $(ELIB) $(USERLIBS)
-
-volume_to_jp3d: volume_to_jp3d.c  $(ELIB)
-	$(CC) $(CFLAGS) getopt.c convert.c volume_to_jp3d.c \
-	-o volume_to_jp3d  $(ELIB) $(USERLIBS)
-
-clean:
-	rm -f jp3d_to_volume volume_to_jp3d
-
-install: all
-	install -d $(DESTDIR)$(INSTALL_BIN)
-	install -m 755 -o root -g root jp3d_to_volume $(DESTDIR)$(INSTALL_BIN)
-	install -m 755 -o root -g root volume_to_jp3d $(DESTDIR)$(INSTALL_BIN)
-
-uninstall:
-	rm -f $(DESTDIR)$(INSTALL_BIN)/jp3d_to_volume
-	rm -f $(DESTDIR)$(INSTALL_BIN)/volume_to_jp3d
diff --git a/codec/convert.c b/codec/convert.c
index 7a5d177..ff4dec3 100755
--- a/codec/convert.c
+++ b/codec/convert.c
@@ -31,7 +31,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "../libjp3dvm/openjpeg3d.h"
+#include "openjpeg3d.h"
 #ifdef _WIN32
 #include "windirent.h"
 #else
diff --git a/codec/jp3d_to_volume.c b/codec/jp3d_to_volume.c
index 9c5c9ad..e133d87 100755
--- a/codec/jp3d_to_volume.c
+++ b/codec/jp3d_to_volume.c
@@ -33,7 +33,7 @@
 #include <stdlib.h>

 #include <math.h>

 

-#include "../libjp3dvm/openjpeg3d.h"

+#include "openjpeg3d.h"

 #include "getopt.h"

 #include "convert.h"

 

diff --git a/codec/volume_to_jp3d.c b/codec/volume_to_jp3d.c
index e00785d..acfcd10 100755
--- a/codec/volume_to_jp3d.c
+++ b/codec/volume_to_jp3d.c
@@ -32,7 +32,7 @@
 #include <string.h>

 #include <stdlib.h>

 

-#include "../libjp3dvm/openjpeg3d.h"

+#include "openjpeg3d.h"

 #include "getopt.h"

 #include "convert.h"

 

diff --git a/libjp3dvm/CMakeLists.txt b/libjp3dvm/CMakeLists.txt
deleted file mode 100644
index 7d265bd..0000000
--- a/libjp3dvm/CMakeLists.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-IF(UNIX OR CYGWIN)
- ADD_DEFINITIONS(-O3)
-ELSEIF(MINGW)
- ADD_DEFINITIONS(-Os)
-ELSEIF(WIN32)
-  ADD_DEFINITIONS(/Os)
-ENDIF(UNIX OR CYGWIN)
-#
-INCLUDE_REGULAR_EXPRESSION("^.*$")
-# Defines the source code for the library
-SET(JP3DVM_SRCS
-bio.c  cio.c  dwt.c  event.c  jp3d.c  jp3d_lib.c  mct.c  mqc.c  openjpeg.c  pi.c  raw.c  t1.c  t1_3d.c  t2.c  tcd.c  tgt.c  volume.c
-)
-
-# Build the library
-IF(WIN32)
-  IF(BUILD_SHARED_LIBS)
-    ADD_DEFINITIONS(-DOPJ_EXPORTS)
-  ELSE(BUILD_SHARED_LIBS)
-    ADD_DEFINITIONS(-DOPJ_STATIC)
-  ENDIF(BUILD_SHARED_LIBS)
-ENDIF(WIN32)
-ADD_LIBRARY(${OPENJPEG_LIBRARY_NAME}_JP3D ${JP3DVM_SRCS})
-SET_TARGET_PROPERTIES(${OPENJPEG_LIBRARY_NAME}_JP3D
-  PROPERTIES
-    VERSION   1.3.0
-    SOVERSION 1)
-
-# Install library
-INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}_JP3D
-DESTINATION ${OPENJPEG_INSTALL_LIB_DIR} COMPONENT Libraries
-)
-
-# Install includes files
-INSTALL(FILES openjpeg3d.h
-  DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg3d-1.3
-)
-INSTALL(CODE
-  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink openjpeg3d-1.3/openjpeg3d.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg3d.h)")
diff --git a/libopenjpeg3d.pc.cmake b/libopenjpeg3d.pc.cmake
new file mode 100644
index 0000000..203e8d3
--- /dev/null
+++ b/libopenjpeg3d.pc.cmake
@@ -0,0 +1,12 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+bindir=@OPENJPEG3D_INSTALL_BIN_DIR@
+datadir=@OPENJPEG3D_INSTALL_DATA_DIR@
+libdir=@OPENJPEG3D_INSTALL_LIB_DIR@
+includedir=@OPENJPEG3D_INSTALL_INCLUDE_DIR@
+
+Name: openjpeg3d
+Description: JPEG2000 files library
+URL: http://www.openjpeg.org/ 
+Version: @OPENJPEG3D_VERSION@
+Libs: -L${libdir} -lopenjpeg3d
+Cflags: -I${includedir}
diff --git a/libopenjpeg3d/CMakeLists.txt b/libopenjpeg3d/CMakeLists.txt
new file mode 100644
index 0000000..85d15b1
--- /dev/null
+++ b/libopenjpeg3d/CMakeLists.txt
@@ -0,0 +1,37 @@
+
+INCLUDE_REGULAR_EXPRESSION("^.*$")
+
+# Defines the source code for the library
+SET(OPENJPEG3D_SRCS
+bio.c  cio.c  dwt.c  event.c  jp3d.c  jp3d_lib.c  mct.c  mqc.c  openjpeg.c  pi.c  raw.c  t1.c  t1_3d.c  t2.c  tcd.c  tgt.c  volume.c
+)
+
+# Build the library
+IF(WIN32)
+  IF(BUILD_SHARED_LIBS)
+    ADD_DEFINITIONS(-DOPJ_EXPORTS)
+  ELSE(BUILD_SHARED_LIBS)
+    ADD_DEFINITIONS(-DOPJ_STATIC)
+  ENDIF(BUILD_SHARED_LIBS)
+ENDIF(WIN32)
+ADD_LIBRARY(${OPENJPEG3D_LIBRARY_NAME} ${OPENJPEG3D_SRCS})
+IF(UNIX)
+  TARGET_LINK_LIBRARIES(${OPENJPEG3D_LIBRARY_NAME} m)
+ENDIF(UNIX)
+SET_TARGET_PROPERTIES(${OPENJPEG3D_LIBRARY_NAME} PROPERTIES ${OPENJPEG3D_LIBRARY_PROPERTIES})
+
+# Install library
+INSTALL(TARGETS ${OPENJPEG3D_LIBRARY_NAME}
+  EXPORT OpenJPEG3DTargets
+  DESTINATION ${OPENJPEG3D_INSTALL_LIB_DIR} 
+  COMPONENT Libraries
+)
+
+# Install includes files
+INSTALL(FILES openjpeg3d.h
+  DESTINATION ${OPENJPEG3D_INSTALL_INCLUDE_DIR}/${subdir} 
+  COMPONENT Headers
+)
+INSTALL(CODE
+  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${subdir}/openjpeg3d.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG3D_INSTALL_INCLUDE_DIR}/openjpeg3d.h)")
+
diff --git a/libjp3dvm/Makefile.am b/libopenjpeg3d/Makefile.am
similarity index 100%
rename from libjp3dvm/Makefile.am
rename to libopenjpeg3d/Makefile.am
diff --git a/libjp3dvm/bio.c b/libopenjpeg3d/bio.c
similarity index 100%
rename from libjp3dvm/bio.c
rename to libopenjpeg3d/bio.c
diff --git a/libjp3dvm/bio.h b/libopenjpeg3d/bio.h
similarity index 100%
rename from libjp3dvm/bio.h
rename to libopenjpeg3d/bio.h
diff --git a/libjp3dvm/cio.c b/libopenjpeg3d/cio.c
similarity index 100%
rename from libjp3dvm/cio.c
rename to libopenjpeg3d/cio.c
diff --git a/libjp3dvm/cio.h b/libopenjpeg3d/cio.h
similarity index 100%
rename from libjp3dvm/cio.h
rename to libopenjpeg3d/cio.h
diff --git a/libjp3dvm/dwt.c b/libopenjpeg3d/dwt.c
similarity index 100%
rename from libjp3dvm/dwt.c
rename to libopenjpeg3d/dwt.c
diff --git a/libjp3dvm/dwt.h b/libopenjpeg3d/dwt.h
similarity index 100%
rename from libjp3dvm/dwt.h
rename to libopenjpeg3d/dwt.h
diff --git a/libjp3dvm/event.c b/libopenjpeg3d/event.c
similarity index 100%
rename from libjp3dvm/event.c
rename to libopenjpeg3d/event.c
diff --git a/libjp3dvm/event.h b/libopenjpeg3d/event.h
similarity index 100%
rename from libjp3dvm/event.h
rename to libopenjpeg3d/event.h
diff --git a/libjp3dvm/fix.h b/libopenjpeg3d/fix.h
similarity index 100%
rename from libjp3dvm/fix.h
rename to libopenjpeg3d/fix.h
diff --git a/libjp3dvm/int.h b/libopenjpeg3d/int.h
similarity index 100%
rename from libjp3dvm/int.h
rename to libopenjpeg3d/int.h
diff --git a/libjp3dvm/jp3d.c b/libopenjpeg3d/jp3d.c
similarity index 100%
rename from libjp3dvm/jp3d.c
rename to libopenjpeg3d/jp3d.c
diff --git a/libjp3dvm/jp3d.h b/libopenjpeg3d/jp3d.h
similarity index 100%
rename from libjp3dvm/jp3d.h
rename to libopenjpeg3d/jp3d.h
diff --git a/libjp3dvm/jp3d_lib.c b/libopenjpeg3d/jp3d_lib.c
similarity index 100%
rename from libjp3dvm/jp3d_lib.c
rename to libopenjpeg3d/jp3d_lib.c
diff --git a/libjp3dvm/jp3d_lib.h b/libopenjpeg3d/jp3d_lib.h
similarity index 100%
rename from libjp3dvm/jp3d_lib.h
rename to libopenjpeg3d/jp3d_lib.h
diff --git a/libjp3dvm/mct.c b/libopenjpeg3d/mct.c
similarity index 100%
rename from libjp3dvm/mct.c
rename to libopenjpeg3d/mct.c
diff --git a/libjp3dvm/mct.h b/libopenjpeg3d/mct.h
similarity index 100%
rename from libjp3dvm/mct.h
rename to libopenjpeg3d/mct.h
diff --git a/libjp3dvm/mqc.c b/libopenjpeg3d/mqc.c
similarity index 100%
rename from libjp3dvm/mqc.c
rename to libopenjpeg3d/mqc.c
diff --git a/libjp3dvm/mqc.h b/libopenjpeg3d/mqc.h
similarity index 100%
rename from libjp3dvm/mqc.h
rename to libopenjpeg3d/mqc.h
diff --git a/libjp3dvm/openjpeg.c b/libopenjpeg3d/openjpeg.c
similarity index 100%
rename from libjp3dvm/openjpeg.c
rename to libopenjpeg3d/openjpeg.c
diff --git a/libjp3dvm/openjpeg3d.h b/libopenjpeg3d/openjpeg3d.h
similarity index 100%
rename from libjp3dvm/openjpeg3d.h
rename to libopenjpeg3d/openjpeg3d.h
diff --git a/libjp3dvm/opj_includes.h b/libopenjpeg3d/opj_includes.h
similarity index 100%
rename from libjp3dvm/opj_includes.h
rename to libopenjpeg3d/opj_includes.h
diff --git a/libjp3dvm/pi.c b/libopenjpeg3d/pi.c
similarity index 100%
rename from libjp3dvm/pi.c
rename to libopenjpeg3d/pi.c
diff --git a/libjp3dvm/pi.h b/libopenjpeg3d/pi.h
similarity index 100%
rename from libjp3dvm/pi.h
rename to libopenjpeg3d/pi.h
diff --git a/libjp3dvm/raw.c b/libopenjpeg3d/raw.c
similarity index 100%
rename from libjp3dvm/raw.c
rename to libopenjpeg3d/raw.c
diff --git a/libjp3dvm/raw.h b/libopenjpeg3d/raw.h
similarity index 100%
rename from libjp3dvm/raw.h
rename to libopenjpeg3d/raw.h
diff --git a/libjp3dvm/t1.c b/libopenjpeg3d/t1.c
similarity index 100%
rename from libjp3dvm/t1.c
rename to libopenjpeg3d/t1.c
diff --git a/libjp3dvm/t1.h b/libopenjpeg3d/t1.h
similarity index 100%
rename from libjp3dvm/t1.h
rename to libopenjpeg3d/t1.h
diff --git a/libjp3dvm/t1_3d.c b/libopenjpeg3d/t1_3d.c
similarity index 100%
rename from libjp3dvm/t1_3d.c
rename to libopenjpeg3d/t1_3d.c
diff --git a/libjp3dvm/t1_3d.h b/libopenjpeg3d/t1_3d.h
similarity index 100%
rename from libjp3dvm/t1_3d.h
rename to libopenjpeg3d/t1_3d.h
diff --git a/libjp3dvm/t2.c b/libopenjpeg3d/t2.c
similarity index 100%
rename from libjp3dvm/t2.c
rename to libopenjpeg3d/t2.c
diff --git a/libjp3dvm/t2.h b/libopenjpeg3d/t2.h
similarity index 100%
rename from libjp3dvm/t2.h
rename to libopenjpeg3d/t2.h
diff --git a/libjp3dvm/tcd.c b/libopenjpeg3d/tcd.c
similarity index 100%
rename from libjp3dvm/tcd.c
rename to libopenjpeg3d/tcd.c
diff --git a/libjp3dvm/tcd.h b/libopenjpeg3d/tcd.h
similarity index 100%
rename from libjp3dvm/tcd.h
rename to libopenjpeg3d/tcd.h
diff --git a/libjp3dvm/tgt.c b/libopenjpeg3d/tgt.c
similarity index 100%
rename from libjp3dvm/tgt.c
rename to libopenjpeg3d/tgt.c
diff --git a/libjp3dvm/tgt.h b/libopenjpeg3d/tgt.h
similarity index 100%
rename from libjp3dvm/tgt.h
rename to libopenjpeg3d/tgt.h
diff --git a/libjp3dvm/volume.c b/libopenjpeg3d/volume.c
similarity index 100%
rename from libjp3dvm/volume.c
rename to libopenjpeg3d/volume.c
diff --git a/libjp3dvm/volume.h b/libopenjpeg3d/volume.h
similarity index 100%
rename from libjp3dvm/volume.h
rename to libopenjpeg3d/volume.h
diff --git a/tcltk/decoder.tcl b/tcltk/decoder.tcl
index 6fadbb1..98edcde 100755
--- a/tcltk/decoder.tcl
+++ b/tcltk/decoder.tcl
@@ -1,8 +1,8 @@
 

 namespace eval VMDecoder {

 	variable var

-	variable JP3Ddecoder "../bin/jp3d_vm_dec.exe"

-	#variable JP3Ddecoder "jp3d_vm_dec.exe"

+	variable JP3Ddecoder "../bin/jp3d_to_volume.exe"

+	#variable JP3Ddecoder "jp3d_to_volume.exe"

 }

 

 

diff --git a/tcltk/encoder.tcl b/tcltk/encoder.tcl
index dc174b7..76ad9f3 100755
--- a/tcltk/encoder.tcl
+++ b/tcltk/encoder.tcl
@@ -1,7 +1,7 @@
 
 namespace eval VMEncoder {
 	variable var
-	variable JP3Dencoder "../bin/jp3d_vm_enc.exe"
+	variable JP3Dencoder "../bin/volume_to_jp3d.exe"
 }
 
 proc VMEncoder::create { nb } {