Re-organize source directory

Refer to #226
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b132a30..5d6d64d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -479,17 +479,6 @@
   endif()
 endif()
 
-# Generate files
-if(WIN32)
-  configure_file(win/jconfig.h.in jconfig.h)
-else()
-  configure_file(jconfig.h.in jconfig.h)
-endif()
-configure_file(jconfigint.h.in jconfigint.h)
-if(UNIX)
-  configure_file(libjpeg.map.in libjpeg.map)
-endif()
-
 # Include directories and compiler definitions
 include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
 
@@ -529,124 +518,19 @@
     set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
   endif()
 else()
-  add_library(simd OBJECT jsimd_none.c)
+  add_library(simd OBJECT libjpeg_api/jsimd_none.c)
 endif()
 
 if(WITH_JAVA)
   add_subdirectory(java)
 endif()
 
-if(ENABLE_SHARED)
-  add_subdirectory(sharedlib)
-endif()
-
-if(ENABLE_STATIC)
-  add_library(jpeg-static STATIC ${JPEG_SOURCES} $<TARGET_OBJECTS:simd>
-    ${SIMD_OBJS})
-  if(NOT MSVC)
-    set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg)
-  endif()
-endif()
+add_subdirectory(libjpeg_api)
 
 if(WITH_TURBOJPEG)
-  if(ENABLE_SHARED)
-    set(TURBOJPEG_SOURCES ${JPEG_SOURCES} $<TARGET_OBJECTS:simd> ${SIMD_OBJS}
-      turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c rdppm.c
-      wrbmp.c wrppm.c)
-    set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile)
-    if(WITH_JAVA)
-      set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
-      include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
-      set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile.jni)
-    endif()
-    add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
-    set_property(TARGET turbojpeg PROPERTY COMPILE_FLAGS
-      "-DBMP_SUPPORTED -DPPM_SUPPORTED")
-    if(WIN32)
-      set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
-    endif()
-    if(MINGW)
-      set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
-    endif()
-    if(APPLE)
-      if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
-        set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
-      endif()
-      set_target_properties(turbojpeg PROPERTIES MACOSX_RPATH 1)
-    endif()
-    set_target_properties(turbojpeg PROPERTIES
-      SOVERSION ${TURBOJPEG_SO_MAJOR_VERSION} VERSION ${TURBOJPEG_SO_VERSION})
-    if(TJMAPFLAG)
-      set_target_properties(turbojpeg PROPERTIES
-        LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}")
-    endif()
-
-    add_executable(tjunittest tjunittest.c tjutil.c md5/md5.c md5/md5hl.c)
-    target_link_libraries(tjunittest turbojpeg)
-
-    add_executable(tjbench tjbench.c tjutil.c)
-    target_link_libraries(tjbench turbojpeg)
-    if(UNIX)
-      target_link_libraries(tjbench m)
-    endif()
-
-    add_executable(tjexample tjexample.c)
-    target_link_libraries(tjexample turbojpeg)
-  endif()
-
-  if(ENABLE_STATIC)
-    add_library(turbojpeg-static STATIC ${JPEG_SOURCES} $<TARGET_OBJECTS:simd>
-      ${SIMD_OBJS} turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c
-      rdppm.c wrbmp.c wrppm.c)
-    set_property(TARGET turbojpeg-static PROPERTY COMPILE_FLAGS
-      "-DBMP_SUPPORTED -DPPM_SUPPORTED")
-    if(NOT MSVC)
-      set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
-    endif()
-
-    add_executable(tjunittest-static tjunittest.c tjutil.c md5/md5.c
-      md5/md5hl.c)
-    target_link_libraries(tjunittest-static turbojpeg-static)
-
-    add_executable(tjbench-static tjbench.c tjutil.c)
-    target_link_libraries(tjbench-static turbojpeg-static)
-    if(UNIX)
-      target_link_libraries(tjbench-static m)
-    endif()
-  endif()
+  add_subdirectory(turbojpeg_api)
 endif()
 
-if(WIN32)
-  set(USE_SETMODE "-DUSE_SETMODE")
-endif()
-if(WITH_12BIT)
-  set(COMPILE_FLAGS "-DGIF_SUPPORTED -DPPM_SUPPORTED ${USE_SETMODE}")
-else()
-  set(COMPILE_FLAGS "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED ${USE_SETMODE}")
-  set(CJPEG_BMP_SOURCES rdbmp.c rdtarga.c)
-  set(DJPEG_BMP_SOURCES wrbmp.c wrtarga.c)
-endif()
-
-if(ENABLE_STATIC)
-  add_executable(cjpeg-static cjpeg.c cdjpeg.c rdgif.c rdppm.c rdswitch.c
-    ${CJPEG_BMP_SOURCES})
-  set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS ${COMPILE_FLAGS})
-  target_link_libraries(cjpeg-static jpeg-static)
-
-  add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrgif.c
-    wrppm.c ${DJPEG_BMP_SOURCES})
-  set_property(TARGET djpeg-static PROPERTY COMPILE_FLAGS ${COMPILE_FLAGS})
-  target_link_libraries(djpeg-static jpeg-static)
-
-  add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
-  target_link_libraries(jpegtran-static jpeg-static)
-  set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "${USE_SETMODE}")
-endif()
-
-add_executable(rdjpgcom rdjpgcom.c)
-
-add_executable(wrjpgcom wrjpgcom.c)
-
 
 ###############################################################################
 # TESTS
@@ -1256,128 +1140,17 @@
 add_custom_target(testclean COMMAND ${CMAKE_COMMAND} -P
   ${CMAKE_CURRENT_SOURCE_DIR}/cmakescripts/testclean.cmake)
 
-if(WITH_TURBOJPEG)
-  configure_file(tjbenchtest.in tjbenchtest @ONLY)
-  configure_file(tjexampletest.in tjexampletest @ONLY)
-  if(WIN32)
-    set(BASH bash)
-  endif()
-  if(WITH_JAVA)
-    configure_file(tjbenchtest.java.in tjbenchtest.java @ONLY)
-    configure_file(tjexampletest.java.in tjexampletest.java @ONLY)
-    add_custom_target(tjtest
-      COMMAND echo tjbenchtest
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest
-      COMMAND echo tjbenchtest -alloc
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -alloc
-      COMMAND echo tjbenchtest -yuv
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv
-      COMMAND echo tjbenchtest -yuv -alloc
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv -alloc
-      COMMAND echo tjbenchtest -progressive
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -progressive
-      COMMAND echo tjexampletest
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest
-      COMMAND echo tjbenchtest.java
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java
-      COMMAND echo tjbenchtest.java -yuv
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java -yuv
-      COMMAND echo tjbenchtest.java -progressive
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java -progressive
-      COMMAND echo tjexampletest.java
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest.java
-      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest
-        ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java
-        ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest)
-  else()
-    add_custom_target(tjtest
-      COMMAND echo tjbenchtest
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest
-      COMMAND echo tjbenchtest -alloc
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -alloc
-      COMMAND echo tjbenchtest -yuv
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv
-      COMMAND echo tjbenchtest -yuv -alloc
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv -alloc
-      COMMAND echo tjexampletest
-      COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest
-      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest)
-  endif()
-endif()
-
 
 ###############################################################################
 # INSTALLATION
 ###############################################################################
 
-if(WIN32)
-  set(EXE ".exe")
-endif()
-
-if(WITH_TURBOJPEG)
-  if(ENABLE_SHARED)
-    install(TARGETS turbojpeg tjbench
-      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-  endif()
-  if(ENABLE_STATIC)
-    install(TARGETS turbojpeg-static ARCHIVE
-      DESTINATION ${CMAKE_INSTALL_LIBDIR})
-    if(NOT ENABLE_SHARED)
-      install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tjbench-static${EXE}
-        DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME tjbench${EXE})
-    endif()
-  endif()
-  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg.h
-    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-endif()
-
-if(ENABLE_STATIC)
-  install(TARGETS jpeg-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-  if(NOT ENABLE_SHARED)
-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/cjpeg-static${EXE}
-      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME cjpeg${EXE})
-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/djpeg-static${EXE}
-      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME djpeg${EXE})
-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jpegtran-static${EXE}
-      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME jpegtran${EXE})
-  endif()
-endif()
-
-install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
-
-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
-  ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_SOURCE_DIR}/example.txt
-  ${CMAKE_CURRENT_SOURCE_DIR}/tjexample.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/libjpeg.txt
-  ${CMAKE_CURRENT_SOURCE_DIR}/structure.txt
-  ${CMAKE_CURRENT_SOURCE_DIR}/usage.txt ${CMAKE_CURRENT_SOURCE_DIR}/wizard.txt
-  ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
-if(WITH_JAVA)
-  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJExample.java
-    DESTINATION ${CMAKE_INSTALL_DOCDIR})
-endif()
-
-if(UNIX OR MINGW)
-  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cjpeg.1
-    ${CMAKE_CURRENT_SOURCE_DIR}/djpeg.1 ${CMAKE_CURRENT_SOURCE_DIR}/jpegtran.1
-    ${CMAKE_CURRENT_SOURCE_DIR}/rdjpgcom.1
-    ${CMAKE_CURRENT_SOURCE_DIR}/wrjpgcom.1
-    DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
-  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc
-    ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libturbojpeg.pc
-    DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-endif()
-
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h
-  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
 include(cmakescripts/BuildPackages.cmake)
 
 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmakescripts/cmake_uninstall.cmake.in"
   "cmake_uninstall.cmake" IMMEDIATE @ONLY)
 
 add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P cmake_uninstall.cmake)
+
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.md
+  ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
diff --git a/doxygen-extra.css b/doxygen-extra.css
deleted file mode 100644
index f1bd4c2..0000000
--- a/doxygen-extra.css
+++ /dev/null
@@ -1,3 +0,0 @@
-code {
-	color: #4665A2;
-}
diff --git a/java/CMakeLists.txt b/java/CMakeLists.txt
index d51ada7..5af2a96 100644
--- a/java/CMakeLists.txt
+++ b/java/CMakeLists.txt
@@ -76,3 +76,6 @@
 report_directory(JAVADIR)
 install_jar(turbojpeg-java ${CMAKE_INSTALL_JAVADIR})
 mark_as_advanced(CLEAR CMAKE_INSTALL_JAVADIR)
+
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/TJExample.java
+  DESTINATION ${CMAKE_INSTALL_DOCDIR})
diff --git a/libjpeg_api/CMakeLists.txt b/libjpeg_api/CMakeLists.txt
new file mode 100644
index 0000000..102632b
--- /dev/null
+++ b/libjpeg_api/CMakeLists.txt
@@ -0,0 +1,109 @@
+include_directories(.)
+
+# Generate files
+if(WIN32)
+  configure_file(win/jconfig.h.in ${CMAKE_BINARY_DIR}/jconfig.h)
+else()
+  configure_file(jconfig.h.in ${CMAKE_BINARY_DIR}/jconfig.h)
+endif()
+configure_file(jconfigint.h.in ${CMAKE_BINARY_DIR}/jconfigint.h)
+if(UNIX)
+  configure_file(libjpeg.map.in libjpeg.map)
+endif()
+
+
+###############################################################################
+# TARGETS
+###############################################################################
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+
+if(ENABLE_SHARED)
+  add_subdirectory(sharedlib)
+endif()
+
+if(ENABLE_STATIC)
+  add_library(jpeg-static STATIC ${JPEG_SOURCES} $<TARGET_OBJECTS:simd>
+    ${SIMD_OBJS})
+  if(NOT MSVC)
+    set_target_properties(jpeg-static PROPERTIES OUTPUT_NAME jpeg)
+  endif()
+endif()
+
+if(WIN32)
+  set(USE_SETMODE "-DUSE_SETMODE")
+endif()
+if(WITH_12BIT)
+  set(COMPILE_FLAGS "-DGIF_SUPPORTED -DPPM_SUPPORTED ${USE_SETMODE}")
+else()
+  set(COMPILE_FLAGS "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED ${USE_SETMODE}")
+  set(CJPEG_BMP_SOURCES rdbmp.c rdtarga.c)
+  set(DJPEG_BMP_SOURCES wrbmp.c wrtarga.c)
+endif()
+
+if(ENABLE_STATIC)
+  add_executable(cjpeg-static cjpeg.c cdjpeg.c rdgif.c rdppm.c rdswitch.c
+    ${CJPEG_BMP_SOURCES})
+  set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS ${COMPILE_FLAGS})
+  target_link_libraries(cjpeg-static jpeg-static)
+
+  add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrgif.c
+    wrppm.c ${DJPEG_BMP_SOURCES})
+  set_property(TARGET djpeg-static PROPERTY COMPILE_FLAGS ${COMPILE_FLAGS})
+  target_link_libraries(djpeg-static jpeg-static)
+
+  add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
+  target_link_libraries(jpegtran-static jpeg-static)
+  set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "${USE_SETMODE}")
+endif()
+
+add_executable(rdjpgcom rdjpgcom.c)
+
+add_executable(wrjpgcom wrjpgcom.c)
+
+
+###############################################################################
+# INSTALLATION
+###############################################################################
+
+if(WIN32)
+  set(EXE ".exe")
+endif()
+
+if(ENABLE_STATIC)
+  install(TARGETS jpeg-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  if(NOT ENABLE_SHARED)
+    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/cjpeg-static${EXE}
+      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME cjpeg${EXE})
+    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/djpeg-static${EXE}
+      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME djpeg${EXE})
+    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/jpegtran-static${EXE}
+      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME jpegtran${EXE})
+  endif()
+endif()
+
+install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
+  ${CMAKE_CURRENT_SOURCE_DIR}/example.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/libjpeg.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/structure.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/usage.txt ${CMAKE_CURRENT_SOURCE_DIR}/wizard.txt
+  DESTINATION ${CMAKE_INSTALL_DOCDIR})
+
+if(UNIX OR MINGW)
+  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cjpeg.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/djpeg.1 ${CMAKE_CURRENT_SOURCE_DIR}/jpegtran.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/rdjpgcom.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/wrjpgcom.1
+    DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
+  install(FILES ${CMAKE_BINARY_DIR}/pkgscripts/libjpeg.pc
+    DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
+
+install(FILES ${CMAKE_BINARY_DIR}/jconfig.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
diff --git a/README.ijg b/libjpeg_api/README.ijg
similarity index 100%
rename from README.ijg
rename to libjpeg_api/README.ijg
diff --git a/cderror.h b/libjpeg_api/cderror.h
similarity index 100%
rename from cderror.h
rename to libjpeg_api/cderror.h
diff --git a/cdjpeg.c b/libjpeg_api/cdjpeg.c
similarity index 100%
rename from cdjpeg.c
rename to libjpeg_api/cdjpeg.c
diff --git a/cdjpeg.h b/libjpeg_api/cdjpeg.h
similarity index 100%
rename from cdjpeg.h
rename to libjpeg_api/cdjpeg.h
diff --git a/change.log b/libjpeg_api/change.log
similarity index 100%
rename from change.log
rename to libjpeg_api/change.log
diff --git a/cjpeg.1 b/libjpeg_api/cjpeg.1
similarity index 100%
rename from cjpeg.1
rename to libjpeg_api/cjpeg.1
diff --git a/cjpeg.c b/libjpeg_api/cjpeg.c
similarity index 100%
rename from cjpeg.c
rename to libjpeg_api/cjpeg.c
diff --git a/cmyk.h b/libjpeg_api/cmyk.h
similarity index 100%
rename from cmyk.h
rename to libjpeg_api/cmyk.h
diff --git a/coderules.txt b/libjpeg_api/coderules.txt
similarity index 100%
rename from coderules.txt
rename to libjpeg_api/coderules.txt
diff --git a/djpeg.1 b/libjpeg_api/djpeg.1
similarity index 100%
rename from djpeg.1
rename to libjpeg_api/djpeg.1
diff --git a/djpeg.c b/libjpeg_api/djpeg.c
similarity index 100%
rename from djpeg.c
rename to libjpeg_api/djpeg.c
diff --git a/example.txt b/libjpeg_api/example.txt
similarity index 100%
rename from example.txt
rename to libjpeg_api/example.txt
diff --git a/jaricom.c b/libjpeg_api/jaricom.c
similarity index 100%
rename from jaricom.c
rename to libjpeg_api/jaricom.c
diff --git a/jcapimin.c b/libjpeg_api/jcapimin.c
similarity index 100%
rename from jcapimin.c
rename to libjpeg_api/jcapimin.c
diff --git a/jcapistd.c b/libjpeg_api/jcapistd.c
similarity index 100%
rename from jcapistd.c
rename to libjpeg_api/jcapistd.c
diff --git a/jcarith.c b/libjpeg_api/jcarith.c
similarity index 100%
rename from jcarith.c
rename to libjpeg_api/jcarith.c
diff --git a/jccoefct.c b/libjpeg_api/jccoefct.c
similarity index 100%
rename from jccoefct.c
rename to libjpeg_api/jccoefct.c
diff --git a/jccolext.c b/libjpeg_api/jccolext.c
similarity index 100%
rename from jccolext.c
rename to libjpeg_api/jccolext.c
diff --git a/jccolor.c b/libjpeg_api/jccolor.c
similarity index 100%
rename from jccolor.c
rename to libjpeg_api/jccolor.c
diff --git a/jcdctmgr.c b/libjpeg_api/jcdctmgr.c
similarity index 100%
rename from jcdctmgr.c
rename to libjpeg_api/jcdctmgr.c
diff --git a/jchuff.c b/libjpeg_api/jchuff.c
similarity index 100%
rename from jchuff.c
rename to libjpeg_api/jchuff.c
diff --git a/jchuff.h b/libjpeg_api/jchuff.h
similarity index 100%
rename from jchuff.h
rename to libjpeg_api/jchuff.h
diff --git a/jcicc.c b/libjpeg_api/jcicc.c
similarity index 100%
rename from jcicc.c
rename to libjpeg_api/jcicc.c
diff --git a/jcinit.c b/libjpeg_api/jcinit.c
similarity index 100%
rename from jcinit.c
rename to libjpeg_api/jcinit.c
diff --git a/jcmainct.c b/libjpeg_api/jcmainct.c
similarity index 100%
rename from jcmainct.c
rename to libjpeg_api/jcmainct.c
diff --git a/jcmarker.c b/libjpeg_api/jcmarker.c
similarity index 100%
rename from jcmarker.c
rename to libjpeg_api/jcmarker.c
diff --git a/jcmaster.c b/libjpeg_api/jcmaster.c
similarity index 100%
rename from jcmaster.c
rename to libjpeg_api/jcmaster.c
diff --git a/jcomapi.c b/libjpeg_api/jcomapi.c
similarity index 100%
rename from jcomapi.c
rename to libjpeg_api/jcomapi.c
diff --git a/jconfig.h.in b/libjpeg_api/jconfig.h.in
similarity index 100%
rename from jconfig.h.in
rename to libjpeg_api/jconfig.h.in
diff --git a/jconfig.txt b/libjpeg_api/jconfig.txt
similarity index 100%
rename from jconfig.txt
rename to libjpeg_api/jconfig.txt
diff --git a/jconfigint.h.in b/libjpeg_api/jconfigint.h.in
similarity index 100%
rename from jconfigint.h.in
rename to libjpeg_api/jconfigint.h.in
diff --git a/jcparam.c b/libjpeg_api/jcparam.c
similarity index 100%
rename from jcparam.c
rename to libjpeg_api/jcparam.c
diff --git a/jcphuff.c b/libjpeg_api/jcphuff.c
similarity index 100%
rename from jcphuff.c
rename to libjpeg_api/jcphuff.c
diff --git a/jcprepct.c b/libjpeg_api/jcprepct.c
similarity index 100%
rename from jcprepct.c
rename to libjpeg_api/jcprepct.c
diff --git a/jcsample.c b/libjpeg_api/jcsample.c
similarity index 100%
rename from jcsample.c
rename to libjpeg_api/jcsample.c
diff --git a/jcstest.c b/libjpeg_api/jcstest.c
similarity index 100%
rename from jcstest.c
rename to libjpeg_api/jcstest.c
diff --git a/jctrans.c b/libjpeg_api/jctrans.c
similarity index 100%
rename from jctrans.c
rename to libjpeg_api/jctrans.c
diff --git a/jdapimin.c b/libjpeg_api/jdapimin.c
similarity index 100%
rename from jdapimin.c
rename to libjpeg_api/jdapimin.c
diff --git a/jdapistd.c b/libjpeg_api/jdapistd.c
similarity index 100%
rename from jdapistd.c
rename to libjpeg_api/jdapistd.c
diff --git a/jdarith.c b/libjpeg_api/jdarith.c
similarity index 100%
rename from jdarith.c
rename to libjpeg_api/jdarith.c
diff --git a/jdatadst.c b/libjpeg_api/jdatadst.c
similarity index 100%
rename from jdatadst.c
rename to libjpeg_api/jdatadst.c
diff --git a/jdatasrc.c b/libjpeg_api/jdatasrc.c
similarity index 100%
rename from jdatasrc.c
rename to libjpeg_api/jdatasrc.c
diff --git a/jdcoefct.c b/libjpeg_api/jdcoefct.c
similarity index 100%
rename from jdcoefct.c
rename to libjpeg_api/jdcoefct.c
diff --git a/jdcoefct.h b/libjpeg_api/jdcoefct.h
similarity index 100%
rename from jdcoefct.h
rename to libjpeg_api/jdcoefct.h
diff --git a/jdcol565.c b/libjpeg_api/jdcol565.c
similarity index 100%
rename from jdcol565.c
rename to libjpeg_api/jdcol565.c
diff --git a/jdcolext.c b/libjpeg_api/jdcolext.c
similarity index 100%
rename from jdcolext.c
rename to libjpeg_api/jdcolext.c
diff --git a/jdcolor.c b/libjpeg_api/jdcolor.c
similarity index 100%
rename from jdcolor.c
rename to libjpeg_api/jdcolor.c
diff --git a/jdct.h b/libjpeg_api/jdct.h
similarity index 100%
rename from jdct.h
rename to libjpeg_api/jdct.h
diff --git a/jddctmgr.c b/libjpeg_api/jddctmgr.c
similarity index 100%
rename from jddctmgr.c
rename to libjpeg_api/jddctmgr.c
diff --git a/jdhuff.c b/libjpeg_api/jdhuff.c
similarity index 100%
rename from jdhuff.c
rename to libjpeg_api/jdhuff.c
diff --git a/jdhuff.h b/libjpeg_api/jdhuff.h
similarity index 100%
rename from jdhuff.h
rename to libjpeg_api/jdhuff.h
diff --git a/jdicc.c b/libjpeg_api/jdicc.c
similarity index 100%
rename from jdicc.c
rename to libjpeg_api/jdicc.c
diff --git a/jdinput.c b/libjpeg_api/jdinput.c
similarity index 100%
rename from jdinput.c
rename to libjpeg_api/jdinput.c
diff --git a/jdmainct.c b/libjpeg_api/jdmainct.c
similarity index 100%
rename from jdmainct.c
rename to libjpeg_api/jdmainct.c
diff --git a/jdmainct.h b/libjpeg_api/jdmainct.h
similarity index 100%
rename from jdmainct.h
rename to libjpeg_api/jdmainct.h
diff --git a/jdmarker.c b/libjpeg_api/jdmarker.c
similarity index 100%
rename from jdmarker.c
rename to libjpeg_api/jdmarker.c
diff --git a/jdmaster.c b/libjpeg_api/jdmaster.c
similarity index 100%
rename from jdmaster.c
rename to libjpeg_api/jdmaster.c
diff --git a/jdmaster.h b/libjpeg_api/jdmaster.h
similarity index 100%
rename from jdmaster.h
rename to libjpeg_api/jdmaster.h
diff --git a/jdmerge.c b/libjpeg_api/jdmerge.c
similarity index 100%
rename from jdmerge.c
rename to libjpeg_api/jdmerge.c
diff --git a/jdmrg565.c b/libjpeg_api/jdmrg565.c
similarity index 100%
rename from jdmrg565.c
rename to libjpeg_api/jdmrg565.c
diff --git a/jdmrgext.c b/libjpeg_api/jdmrgext.c
similarity index 100%
rename from jdmrgext.c
rename to libjpeg_api/jdmrgext.c
diff --git a/jdphuff.c b/libjpeg_api/jdphuff.c
similarity index 100%
rename from jdphuff.c
rename to libjpeg_api/jdphuff.c
diff --git a/jdpostct.c b/libjpeg_api/jdpostct.c
similarity index 100%
rename from jdpostct.c
rename to libjpeg_api/jdpostct.c
diff --git a/jdsample.c b/libjpeg_api/jdsample.c
similarity index 100%
rename from jdsample.c
rename to libjpeg_api/jdsample.c
diff --git a/jdsample.h b/libjpeg_api/jdsample.h
similarity index 100%
rename from jdsample.h
rename to libjpeg_api/jdsample.h
diff --git a/jdtrans.c b/libjpeg_api/jdtrans.c
similarity index 100%
rename from jdtrans.c
rename to libjpeg_api/jdtrans.c
diff --git a/jerror.c b/libjpeg_api/jerror.c
similarity index 100%
rename from jerror.c
rename to libjpeg_api/jerror.c
diff --git a/jerror.h b/libjpeg_api/jerror.h
similarity index 100%
rename from jerror.h
rename to libjpeg_api/jerror.h
diff --git a/jfdctflt.c b/libjpeg_api/jfdctflt.c
similarity index 100%
rename from jfdctflt.c
rename to libjpeg_api/jfdctflt.c
diff --git a/jfdctfst.c b/libjpeg_api/jfdctfst.c
similarity index 100%
rename from jfdctfst.c
rename to libjpeg_api/jfdctfst.c
diff --git a/jfdctint.c b/libjpeg_api/jfdctint.c
similarity index 100%
rename from jfdctint.c
rename to libjpeg_api/jfdctint.c
diff --git a/jidctflt.c b/libjpeg_api/jidctflt.c
similarity index 100%
rename from jidctflt.c
rename to libjpeg_api/jidctflt.c
diff --git a/jidctfst.c b/libjpeg_api/jidctfst.c
similarity index 100%
rename from jidctfst.c
rename to libjpeg_api/jidctfst.c
diff --git a/jidctint.c b/libjpeg_api/jidctint.c
similarity index 100%
rename from jidctint.c
rename to libjpeg_api/jidctint.c
diff --git a/jidctred.c b/libjpeg_api/jidctred.c
similarity index 100%
rename from jidctred.c
rename to libjpeg_api/jidctred.c
diff --git a/jinclude.h b/libjpeg_api/jinclude.h
similarity index 100%
rename from jinclude.h
rename to libjpeg_api/jinclude.h
diff --git a/jmemmgr.c b/libjpeg_api/jmemmgr.c
similarity index 100%
rename from jmemmgr.c
rename to libjpeg_api/jmemmgr.c
diff --git a/jmemnobs.c b/libjpeg_api/jmemnobs.c
similarity index 100%
rename from jmemnobs.c
rename to libjpeg_api/jmemnobs.c
diff --git a/jmemsys.h b/libjpeg_api/jmemsys.h
similarity index 100%
rename from jmemsys.h
rename to libjpeg_api/jmemsys.h
diff --git a/jmorecfg.h b/libjpeg_api/jmorecfg.h
similarity index 100%
rename from jmorecfg.h
rename to libjpeg_api/jmorecfg.h
diff --git a/jpeg_nbits_table.h b/libjpeg_api/jpeg_nbits_table.h
similarity index 100%
rename from jpeg_nbits_table.h
rename to libjpeg_api/jpeg_nbits_table.h
diff --git a/jpegcomp.h b/libjpeg_api/jpegcomp.h
similarity index 100%
rename from jpegcomp.h
rename to libjpeg_api/jpegcomp.h
diff --git a/jpegint.h b/libjpeg_api/jpegint.h
similarity index 100%
rename from jpegint.h
rename to libjpeg_api/jpegint.h
diff --git a/jpeglib.h b/libjpeg_api/jpeglib.h
similarity index 100%
rename from jpeglib.h
rename to libjpeg_api/jpeglib.h
diff --git a/jpegtran.1 b/libjpeg_api/jpegtran.1
similarity index 100%
rename from jpegtran.1
rename to libjpeg_api/jpegtran.1
diff --git a/jpegtran.c b/libjpeg_api/jpegtran.c
similarity index 100%
rename from jpegtran.c
rename to libjpeg_api/jpegtran.c
diff --git a/jquant1.c b/libjpeg_api/jquant1.c
similarity index 100%
rename from jquant1.c
rename to libjpeg_api/jquant1.c
diff --git a/jquant2.c b/libjpeg_api/jquant2.c
similarity index 100%
rename from jquant2.c
rename to libjpeg_api/jquant2.c
diff --git a/jsimd.h b/libjpeg_api/jsimd.h
similarity index 100%
rename from jsimd.h
rename to libjpeg_api/jsimd.h
diff --git a/jsimd_none.c b/libjpeg_api/jsimd_none.c
similarity index 100%
rename from jsimd_none.c
rename to libjpeg_api/jsimd_none.c
diff --git a/jsimddct.h b/libjpeg_api/jsimddct.h
similarity index 100%
rename from jsimddct.h
rename to libjpeg_api/jsimddct.h
diff --git a/jstdhuff.c b/libjpeg_api/jstdhuff.c
similarity index 100%
rename from jstdhuff.c
rename to libjpeg_api/jstdhuff.c
diff --git a/jutils.c b/libjpeg_api/jutils.c
similarity index 100%
rename from jutils.c
rename to libjpeg_api/jutils.c
diff --git a/jversion.h b/libjpeg_api/jversion.h
similarity index 100%
rename from jversion.h
rename to libjpeg_api/jversion.h
diff --git a/libjpeg.map.in b/libjpeg_api/libjpeg.map.in
similarity index 100%
rename from libjpeg.map.in
rename to libjpeg_api/libjpeg.map.in
diff --git a/libjpeg.txt b/libjpeg_api/libjpeg.txt
similarity index 100%
rename from libjpeg.txt
rename to libjpeg_api/libjpeg.txt
diff --git a/rdbmp.c b/libjpeg_api/rdbmp.c
similarity index 100%
rename from rdbmp.c
rename to libjpeg_api/rdbmp.c
diff --git a/rdcolmap.c b/libjpeg_api/rdcolmap.c
similarity index 100%
rename from rdcolmap.c
rename to libjpeg_api/rdcolmap.c
diff --git a/rdgif.c b/libjpeg_api/rdgif.c
similarity index 100%
rename from rdgif.c
rename to libjpeg_api/rdgif.c
diff --git a/rdjpgcom.1 b/libjpeg_api/rdjpgcom.1
similarity index 100%
rename from rdjpgcom.1
rename to libjpeg_api/rdjpgcom.1
diff --git a/rdjpgcom.c b/libjpeg_api/rdjpgcom.c
similarity index 100%
rename from rdjpgcom.c
rename to libjpeg_api/rdjpgcom.c
diff --git a/rdppm.c b/libjpeg_api/rdppm.c
similarity index 100%
rename from rdppm.c
rename to libjpeg_api/rdppm.c
diff --git a/rdrle.c b/libjpeg_api/rdrle.c
similarity index 100%
rename from rdrle.c
rename to libjpeg_api/rdrle.c
diff --git a/rdswitch.c b/libjpeg_api/rdswitch.c
similarity index 100%
rename from rdswitch.c
rename to libjpeg_api/rdswitch.c
diff --git a/rdtarga.c b/libjpeg_api/rdtarga.c
similarity index 100%
rename from rdtarga.c
rename to libjpeg_api/rdtarga.c
diff --git a/sharedlib/CMakeLists.txt b/libjpeg_api/sharedlib/CMakeLists.txt
similarity index 93%
rename from sharedlib/CMakeLists.txt
rename to libjpeg_api/sharedlib/CMakeLists.txt
index 2d60170..76b41d5 100755
--- a/sharedlib/CMakeLists.txt
+++ b/libjpeg_api/sharedlib/CMakeLists.txt
@@ -5,10 +5,6 @@
 # better yet, provide a friendly way of configuring a Windows target to use the
 # static C library.
 
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..)
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..)
-
 if(MSVC)
   # Build all configurations against shared C library
   foreach(var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
diff --git a/structure.txt b/libjpeg_api/structure.txt
similarity index 100%
rename from structure.txt
rename to libjpeg_api/structure.txt
diff --git a/transupp.c b/libjpeg_api/transupp.c
similarity index 100%
rename from transupp.c
rename to libjpeg_api/transupp.c
diff --git a/transupp.h b/libjpeg_api/transupp.h
similarity index 100%
rename from transupp.h
rename to libjpeg_api/transupp.h
diff --git a/usage.txt b/libjpeg_api/usage.txt
similarity index 100%
rename from usage.txt
rename to libjpeg_api/usage.txt
diff --git a/win/jconfig.h.in b/libjpeg_api/win/jconfig.h.in
similarity index 100%
rename from win/jconfig.h.in
rename to libjpeg_api/win/jconfig.h.in
diff --git a/win/jpeg62-memsrcdst.def b/libjpeg_api/win/jpeg62-memsrcdst.def
similarity index 100%
rename from win/jpeg62-memsrcdst.def
rename to libjpeg_api/win/jpeg62-memsrcdst.def
diff --git a/win/jpeg62.def b/libjpeg_api/win/jpeg62.def
similarity index 100%
rename from win/jpeg62.def
rename to libjpeg_api/win/jpeg62.def
diff --git a/win/jpeg7-memsrcdst.def b/libjpeg_api/win/jpeg7-memsrcdst.def
similarity index 100%
rename from win/jpeg7-memsrcdst.def
rename to libjpeg_api/win/jpeg7-memsrcdst.def
diff --git a/win/jpeg7.def b/libjpeg_api/win/jpeg7.def
similarity index 100%
rename from win/jpeg7.def
rename to libjpeg_api/win/jpeg7.def
diff --git a/win/jpeg8.def b/libjpeg_api/win/jpeg8.def
similarity index 100%
rename from win/jpeg8.def
rename to libjpeg_api/win/jpeg8.def
diff --git a/wizard.txt b/libjpeg_api/wizard.txt
similarity index 100%
rename from wizard.txt
rename to libjpeg_api/wizard.txt
diff --git a/wrbmp.c b/libjpeg_api/wrbmp.c
similarity index 100%
rename from wrbmp.c
rename to libjpeg_api/wrbmp.c
diff --git a/wrgif.c b/libjpeg_api/wrgif.c
similarity index 100%
rename from wrgif.c
rename to libjpeg_api/wrgif.c
diff --git a/wrjpgcom.1 b/libjpeg_api/wrjpgcom.1
similarity index 100%
rename from wrjpgcom.1
rename to libjpeg_api/wrjpgcom.1
diff --git a/wrjpgcom.c b/libjpeg_api/wrjpgcom.c
similarity index 100%
rename from wrjpgcom.c
rename to libjpeg_api/wrjpgcom.c
diff --git a/wrppm.c b/libjpeg_api/wrppm.c
similarity index 100%
rename from wrppm.c
rename to libjpeg_api/wrppm.c
diff --git a/wrrle.c b/libjpeg_api/wrrle.c
similarity index 100%
rename from wrrle.c
rename to libjpeg_api/wrrle.c
diff --git a/wrtarga.c b/libjpeg_api/wrtarga.c
similarity index 100%
rename from wrtarga.c
rename to libjpeg_api/wrtarga.c
diff --git a/md5/CMakeLists.txt b/md5/CMakeLists.txt
index 526ef08..cc36bfd 100644
--- a/md5/CMakeLists.txt
+++ b/md5/CMakeLists.txt
@@ -1 +1,3 @@
+include_directories(../turbojpeg_api)
+
 add_executable(md5cmp md5cmp.c md5.c md5hl.c)
diff --git a/md5/md5cmp.c b/md5/md5cmp.c
index 42b94ce..dc95a79 100644
--- a/md5/md5cmp.c
+++ b/md5/md5cmp.c
@@ -29,7 +29,7 @@
 #include <stdio.h>
 #include <string.h>
 #include "./md5.h"
-#include "../tjutil.h"
+#include "tjutil.h"
 
 int main(int argc, char *argv[])
 {
diff --git a/release/installer.nsi.in b/release/installer.nsi.in
index 00cd5f8..2ee9625 100755
--- a/release/installer.nsi.in
+++ b/release/installer.nsi.in
@@ -77,28 +77,28 @@
 !endif
 	SetOutPath $INSTDIR\include
 	File "@CMAKE_CURRENT_BINARY_DIR@\jconfig.h"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\jerror.h"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\jmorecfg.h"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\jpeglib.h"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\turbojpeg.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\jerror.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\jmorecfg.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\jpeglib.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\turbojpeg_api\turbojpeg.h"
 	SetOutPath $INSTDIR\doc
-	File "@CMAKE_CURRENT_SOURCE_DIR@\README.ijg"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\README.ijg"
 	File "@CMAKE_CURRENT_SOURCE_DIR@\README.md"
 	File "@CMAKE_CURRENT_SOURCE_DIR@\LICENSE.md"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\example.txt"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg.txt"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\structure.txt"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\usage.txt"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\wizard.txt"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\tjexample.c"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\example.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\libjpeg.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\structure.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\usage.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\wizard.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\turbojpeg_api\tjexample.c"
 	File "@CMAKE_CURRENT_SOURCE_DIR@\java\TJExample.java"
 !ifdef GCC
 	SetOutPath $INSTDIR\man\man1
-	File "@CMAKE_CURRENT_SOURCE_DIR@\cjpeg.1"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\djpeg.1"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\jpegtran.1"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\rdjpgcom.1"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\wrjpgcom.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\cjpeg.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\djpeg.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\jpegtran.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\rdjpgcom.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\libjpeg_api\wrjpgcom.1"
 !endif
 
 	WriteRegStr HKLM "SOFTWARE\@INST_REG_NAME@ @VERSION@" "Install_Dir" "$INSTDIR"
diff --git a/simd/CMakeLists.txt b/simd/CMakeLists.txt
index 2b37525..9f5e7e2 100755
--- a/simd/CMakeLists.txt
+++ b/simd/CMakeLists.txt
@@ -7,6 +7,8 @@
   endif()
 endmacro()
 
+include_directories(../libjpeg_api)
+
 
 ###############################################################################
 # x86[-64] (NASM)
@@ -92,15 +94,15 @@
 set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I\"${CMAKE_CURRENT_SOURCE_DIR}/nasm/\" -I\"${CMAKE_CURRENT_SOURCE_DIR}/${CPU_TYPE}/\"")
 
 if(WIN32)
-  set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I\"${CMAKE_CURRENT_SOURCE_DIR}/../win/\"")
-  set(JSIMDCFG_INC ${CMAKE_CURRENT_SOURCE_DIR}/../win/jsimdcfg.inc)
+  set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I\"${CMAKE_CURRENT_SOURCE_DIR}/win/\"")
+  set(JSIMDCFG_INC ${CMAKE_CURRENT_SOURCE_DIR}/win/jsimdcfg.inc)
 else()
   set(GREP grep)
   if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
     set(GREP ggrep)
   endif()
   add_custom_command(OUTPUT jsimdcfg.inc
-    COMMAND ${CMAKE_C_COMPILER} -E -I${CMAKE_BINARY_DIR} -I${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/jsimdcfg.inc.h | ${GREP} -E '^[\;%]|^\ %' | sed 's%_cpp_protection_%%' | sed 's@% define@%define@g' >jsimdcfg.inc)
+    COMMAND ${CMAKE_C_COMPILER} -E -I${CMAKE_BINARY_DIR} -I${CMAKE_CURRENT_BINARY_DIR} -I${CMAKE_SOURCE_DIR}/libjpeg_api ${CMAKE_CURRENT_SOURCE_DIR}/jsimdcfg.inc.h | ${GREP} -E '^[\;%]|^\ %' | sed 's%_cpp_protection_%%' | sed 's@% define@%define@g' >jsimdcfg.inc)
   set(JSIMDCFG_INC ${CMAKE_CURRENT_BINARY_DIR}/jsimdcfg.inc)
   set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -I\"${CMAKE_CURRENT_BINARY_DIR}/\"")
 endif()
diff --git a/simd/arm/jsimd.c b/simd/arm/jsimd.c
index 0fb8197..e3aed31 100644
--- a/simd/arm/jsimd.c
+++ b/simd/arm/jsimd.c
@@ -16,11 +16,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 
 #include <stdio.h>
diff --git a/simd/arm64/jsimd.c b/simd/arm64/jsimd.c
index 0e6c7b9..47977f0 100644
--- a/simd/arm64/jsimd.c
+++ b/simd/arm64/jsimd.c
@@ -16,11 +16,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 
 #include <stdio.h>
diff --git a/simd/i386/jsimd.c b/simd/i386/jsimd.c
index 0b5a410..939c141 100644
--- a/simd/i386/jsimd.c
+++ b/simd/i386/jsimd.c
@@ -15,11 +15,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 #include "jconfigint.h"
 
diff --git a/simd/jsimdcfg.inc.h b/simd/jsimdcfg.inc.h
index 7ff7e29..35f020f 100644
--- a/simd/jsimdcfg.inc.h
+++ b/simd/jsimdcfg.inc.h
@@ -10,9 +10,9 @@
 
 #define JPEG_INTERNALS
 
-#include "../jpeglib.h"
-#include "../jconfig.h"
-#include "../jmorecfg.h"
+#include "jpeglib.h"
+#include "jconfig.h"
+#include "jmorecfg.h"
 #include "jsimd.h"
 
 ;
diff --git a/simd/loongson/jsimd.c b/simd/loongson/jsimd.c
index e8b1832..2d6c28e 100644
--- a/simd/loongson/jsimd.c
+++ b/simd/loongson/jsimd.c
@@ -17,11 +17,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 
 static unsigned int simd_support = ~0;
diff --git a/simd/mips/jsimd.c b/simd/mips/jsimd.c
index af886f6..a97da0f 100644
--- a/simd/mips/jsimd.c
+++ b/simd/mips/jsimd.c
@@ -16,11 +16,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 
 #include <stdio.h>
diff --git a/simd/powerpc/jsimd.c b/simd/powerpc/jsimd.c
index d0d3981..150b815 100644
--- a/simd/powerpc/jsimd.c
+++ b/simd/powerpc/jsimd.c
@@ -20,11 +20,11 @@
 #endif
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 
 #include <stdio.h>
diff --git a/win/jsimdcfg.inc b/simd/win/jsimdcfg.inc
similarity index 100%
rename from win/jsimdcfg.inc
rename to simd/win/jsimdcfg.inc
diff --git a/simd/x86_64/jsimd.c b/simd/x86_64/jsimd.c
index 7927875..5ab9af2 100644
--- a/simd/x86_64/jsimd.c
+++ b/simd/x86_64/jsimd.c
@@ -15,11 +15,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "jinclude.h"
+#include "jpeglib.h"
+#include "jsimd.h"
+#include "jdct.h"
+#include "jsimddct.h"
 #include "../jsimd.h"
 #include "jconfigint.h"
 
diff --git a/turbojpeg_api/CMakeLists.txt b/turbojpeg_api/CMakeLists.txt
new file mode 100644
index 0000000..33fac09
--- /dev/null
+++ b/turbojpeg_api/CMakeLists.txt
@@ -0,0 +1,170 @@
+include_directories(../libjpeg_api .)
+
+
+###############################################################################
+# TARGETS
+###############################################################################
+
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
+
+foreach(file ${JPEG_SOURCES})
+  set(JPEG_SOURCES_TJ ${JPEG_SOURCES_TJ} ../libjpeg_api/${file})
+endforeach()
+
+if(ENABLE_SHARED)
+  set(TURBOJPEG_SOURCES ${JPEG_SOURCES_TJ} $<TARGET_OBJECTS:simd> ${SIMD_OBJS}
+    turbojpeg.c ../libjpeg_api/transupp.c jdatadst-tj.c jdatasrc-tj.c
+    ../libjpeg_api/rdbmp.c ../libjpeg_api/rdppm.c ../libjpeg_api/wrbmp.c
+    ../libjpeg_api/wrppm.c)
+  set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile)
+  if(WITH_JAVA)
+    set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
+    include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
+    set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile.jni)
+  endif()
+  add_library(turbojpeg SHARED ${TURBOJPEG_SOURCES})
+  set_property(TARGET turbojpeg PROPERTY COMPILE_FLAGS
+    "-DBMP_SUPPORTED -DPPM_SUPPORTED")
+  if(WIN32)
+    set_target_properties(turbojpeg PROPERTIES DEFINE_SYMBOL DLLDEFINE)
+  endif()
+  if(MINGW)
+    set_target_properties(turbojpeg PROPERTIES LINK_FLAGS -Wl,--kill-at)
+  endif()
+  if(APPLE)
+    if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG)
+      set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,")
+    endif()
+    set_target_properties(turbojpeg PROPERTIES MACOSX_RPATH 1)
+  endif()
+  set_target_properties(turbojpeg PROPERTIES
+    SOVERSION ${TURBOJPEG_SO_MAJOR_VERSION} VERSION ${TURBOJPEG_SO_VERSION})
+  if(TJMAPFLAG)
+    set_target_properties(turbojpeg PROPERTIES
+      LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}")
+  endif()
+
+  add_executable(tjunittest tjunittest.c tjutil.c ../md5/md5.c ../md5/md5hl.c)
+  target_link_libraries(tjunittest turbojpeg)
+
+  add_executable(tjbench tjbench.c tjutil.c)
+  target_link_libraries(tjbench turbojpeg)
+  if(UNIX)
+    target_link_libraries(tjbench m)
+  endif()
+
+  add_executable(tjexample tjexample.c)
+  target_link_libraries(tjexample turbojpeg)
+endif()
+
+if(ENABLE_STATIC)
+  add_library(turbojpeg-static STATIC ${JPEG_SOURCES_TJ} $<TARGET_OBJECTS:simd>
+    ${SIMD_OBJS} turbojpeg.c ../libjpeg_api/transupp.c jdatadst-tj.c
+    jdatasrc-tj.c ../libjpeg_api/rdbmp.c ../libjpeg_api/rdppm.c
+    ../libjpeg_api/wrbmp.c ../libjpeg_api/wrppm.c)
+  set_property(TARGET turbojpeg-static PROPERTY COMPILE_FLAGS
+    "-DBMP_SUPPORTED -DPPM_SUPPORTED")
+  if(NOT MSVC)
+    set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
+  endif()
+
+  add_executable(tjunittest-static tjunittest.c tjutil.c ../md5/md5.c
+    ../md5/md5hl.c)
+  target_link_libraries(tjunittest-static turbojpeg-static)
+
+  add_executable(tjbench-static tjbench.c tjutil.c)
+  target_link_libraries(tjbench-static turbojpeg-static)
+  if(UNIX)
+    target_link_libraries(tjbench-static m)
+  endif()
+endif()
+
+
+###############################################################################
+# TESTS
+###############################################################################
+
+configure_file(tjbenchtest.in ${CMAKE_BINARY_DIR}/tjbenchtest @ONLY)
+configure_file(tjexampletest.in ${CMAKE_BINARY_DIR}/tjexampletest @ONLY)
+if(WIN32)
+  set(BASH bash)
+endif()
+if(WITH_JAVA)
+  configure_file(tjbenchtest.java.in ${CMAKE_BINARY_DIR}/tjbenchtest.java
+    @ONLY)
+  configure_file(tjexampletest.java.in ${CMAKE_BINARY_DIR}/tjexampletest.java
+    @ONLY)
+  add_custom_target(tjtest
+    COMMAND echo tjbenchtest
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest
+    COMMAND echo tjbenchtest -alloc
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -alloc
+    COMMAND echo tjbenchtest -yuv
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv
+    COMMAND echo tjbenchtest -yuv -alloc
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv -alloc
+    COMMAND echo tjbenchtest -progressive
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -progressive
+    COMMAND echo tjexampletest
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest
+    COMMAND echo tjbenchtest.java
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java
+    COMMAND echo tjbenchtest.java -yuv
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java -yuv
+    COMMAND echo tjbenchtest.java -progressive
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java -progressive
+    COMMAND echo tjexampletest.java
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest.java
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest
+      ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest.java
+      ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest)
+else()
+  add_custom_target(tjtest
+    COMMAND echo tjbenchtest
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest
+    COMMAND echo tjbenchtest -alloc
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -alloc
+    COMMAND echo tjbenchtest -yuv
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv
+    COMMAND echo tjbenchtest -yuv -alloc
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest -yuv -alloc
+    COMMAND echo tjexampletest
+    COMMAND ${BASH} ${CMAKE_CURRENT_BINARY_DIR}/tjexampletest
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/tjbenchtest)
+endif()
+
+
+###############################################################################
+# INSTALLATION
+###############################################################################
+
+if(WIN32)
+  set(EXE ".exe")
+endif()
+
+if(ENABLE_SHARED)
+  install(TARGETS turbojpeg tjbench
+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+endif()
+if(ENABLE_STATIC)
+  install(TARGETS turbojpeg-static ARCHIVE
+    DESTINATION ${CMAKE_INSTALL_LIBDIR})
+  if(NOT ENABLE_SHARED)
+    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/tjbench-static${EXE}
+      DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME tjbench${EXE})
+  endif()
+endif()
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/tjexample.c
+  DESTINATION ${CMAKE_INSTALL_DOCDIR})
+
+if(UNIX OR MINGW)
+  install(FILES ${CMAKE_BINARY_DIR}/pkgscripts/libturbojpeg.pc
+    DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
diff --git a/doc/html/annotated.html b/turbojpeg_api/doc/html/annotated.html
similarity index 100%
rename from doc/html/annotated.html
rename to turbojpeg_api/doc/html/annotated.html
diff --git a/doc/html/bc_s.png b/turbojpeg_api/doc/html/bc_s.png
similarity index 100%
rename from doc/html/bc_s.png
rename to turbojpeg_api/doc/html/bc_s.png
Binary files differ
diff --git a/doc/html/bdwn.png b/turbojpeg_api/doc/html/bdwn.png
similarity index 100%
rename from doc/html/bdwn.png
rename to turbojpeg_api/doc/html/bdwn.png
Binary files differ
diff --git a/doc/html/classes.html b/turbojpeg_api/doc/html/classes.html
similarity index 100%
rename from doc/html/classes.html
rename to turbojpeg_api/doc/html/classes.html
diff --git a/doc/html/closed.png b/turbojpeg_api/doc/html/closed.png
similarity index 100%
rename from doc/html/closed.png
rename to turbojpeg_api/doc/html/closed.png
Binary files differ
diff --git a/doc/html/doxygen-extra.css b/turbojpeg_api/doc/html/doxygen-extra.css
similarity index 100%
rename from doc/html/doxygen-extra.css
rename to turbojpeg_api/doc/html/doxygen-extra.css
diff --git a/doc/html/doxygen.css b/turbojpeg_api/doc/html/doxygen.css
similarity index 100%
rename from doc/html/doxygen.css
rename to turbojpeg_api/doc/html/doxygen.css
diff --git a/doc/html/doxygen.png b/turbojpeg_api/doc/html/doxygen.png
similarity index 100%
rename from doc/html/doxygen.png
rename to turbojpeg_api/doc/html/doxygen.png
Binary files differ
diff --git a/doc/html/dynsections.js b/turbojpeg_api/doc/html/dynsections.js
similarity index 100%
rename from doc/html/dynsections.js
rename to turbojpeg_api/doc/html/dynsections.js
diff --git a/doc/html/ftv2blank.png b/turbojpeg_api/doc/html/ftv2blank.png
similarity index 100%
rename from doc/html/ftv2blank.png
rename to turbojpeg_api/doc/html/ftv2blank.png
Binary files differ
diff --git a/doc/html/ftv2cl.png b/turbojpeg_api/doc/html/ftv2cl.png
similarity index 100%
rename from doc/html/ftv2cl.png
rename to turbojpeg_api/doc/html/ftv2cl.png
Binary files differ
diff --git a/doc/html/ftv2doc.png b/turbojpeg_api/doc/html/ftv2doc.png
similarity index 100%
rename from doc/html/ftv2doc.png
rename to turbojpeg_api/doc/html/ftv2doc.png
Binary files differ
diff --git a/doc/html/ftv2folderclosed.png b/turbojpeg_api/doc/html/ftv2folderclosed.png
similarity index 100%
rename from doc/html/ftv2folderclosed.png
rename to turbojpeg_api/doc/html/ftv2folderclosed.png
Binary files differ
diff --git a/doc/html/ftv2folderopen.png b/turbojpeg_api/doc/html/ftv2folderopen.png
similarity index 100%
rename from doc/html/ftv2folderopen.png
rename to turbojpeg_api/doc/html/ftv2folderopen.png
Binary files differ
diff --git a/doc/html/ftv2lastnode.png b/turbojpeg_api/doc/html/ftv2lastnode.png
similarity index 100%
rename from doc/html/ftv2lastnode.png
rename to turbojpeg_api/doc/html/ftv2lastnode.png
Binary files differ
diff --git a/doc/html/ftv2link.png b/turbojpeg_api/doc/html/ftv2link.png
similarity index 100%
rename from doc/html/ftv2link.png
rename to turbojpeg_api/doc/html/ftv2link.png
Binary files differ
diff --git a/doc/html/ftv2mlastnode.png b/turbojpeg_api/doc/html/ftv2mlastnode.png
similarity index 100%
rename from doc/html/ftv2mlastnode.png
rename to turbojpeg_api/doc/html/ftv2mlastnode.png
Binary files differ
diff --git a/doc/html/ftv2mnode.png b/turbojpeg_api/doc/html/ftv2mnode.png
similarity index 100%
rename from doc/html/ftv2mnode.png
rename to turbojpeg_api/doc/html/ftv2mnode.png
Binary files differ
diff --git a/doc/html/ftv2mo.png b/turbojpeg_api/doc/html/ftv2mo.png
similarity index 100%
rename from doc/html/ftv2mo.png
rename to turbojpeg_api/doc/html/ftv2mo.png
Binary files differ
diff --git a/doc/html/ftv2node.png b/turbojpeg_api/doc/html/ftv2node.png
similarity index 100%
rename from doc/html/ftv2node.png
rename to turbojpeg_api/doc/html/ftv2node.png
Binary files differ
diff --git a/doc/html/ftv2ns.png b/turbojpeg_api/doc/html/ftv2ns.png
similarity index 100%
rename from doc/html/ftv2ns.png
rename to turbojpeg_api/doc/html/ftv2ns.png
Binary files differ
diff --git a/doc/html/ftv2plastnode.png b/turbojpeg_api/doc/html/ftv2plastnode.png
similarity index 100%
rename from doc/html/ftv2plastnode.png
rename to turbojpeg_api/doc/html/ftv2plastnode.png
Binary files differ
diff --git a/doc/html/ftv2pnode.png b/turbojpeg_api/doc/html/ftv2pnode.png
similarity index 100%
rename from doc/html/ftv2pnode.png
rename to turbojpeg_api/doc/html/ftv2pnode.png
Binary files differ
diff --git a/doc/html/ftv2splitbar.png b/turbojpeg_api/doc/html/ftv2splitbar.png
similarity index 100%
rename from doc/html/ftv2splitbar.png
rename to turbojpeg_api/doc/html/ftv2splitbar.png
Binary files differ
diff --git a/doc/html/ftv2vertline.png b/turbojpeg_api/doc/html/ftv2vertline.png
similarity index 100%
rename from doc/html/ftv2vertline.png
rename to turbojpeg_api/doc/html/ftv2vertline.png
Binary files differ
diff --git a/doc/html/functions.html b/turbojpeg_api/doc/html/functions.html
similarity index 100%
rename from doc/html/functions.html
rename to turbojpeg_api/doc/html/functions.html
diff --git a/doc/html/functions_vars.html b/turbojpeg_api/doc/html/functions_vars.html
similarity index 100%
rename from doc/html/functions_vars.html
rename to turbojpeg_api/doc/html/functions_vars.html
diff --git a/doc/html/group___turbo_j_p_e_g.html b/turbojpeg_api/doc/html/group___turbo_j_p_e_g.html
similarity index 100%
rename from doc/html/group___turbo_j_p_e_g.html
rename to turbojpeg_api/doc/html/group___turbo_j_p_e_g.html
diff --git a/doc/html/index.html b/turbojpeg_api/doc/html/index.html
similarity index 100%
rename from doc/html/index.html
rename to turbojpeg_api/doc/html/index.html
diff --git a/doc/html/jquery.js b/turbojpeg_api/doc/html/jquery.js
similarity index 100%
rename from doc/html/jquery.js
rename to turbojpeg_api/doc/html/jquery.js
diff --git a/doc/html/modules.html b/turbojpeg_api/doc/html/modules.html
similarity index 100%
rename from doc/html/modules.html
rename to turbojpeg_api/doc/html/modules.html
diff --git a/doc/html/nav_f.png b/turbojpeg_api/doc/html/nav_f.png
similarity index 100%
rename from doc/html/nav_f.png
rename to turbojpeg_api/doc/html/nav_f.png
Binary files differ
diff --git a/doc/html/nav_g.png b/turbojpeg_api/doc/html/nav_g.png
similarity index 100%
rename from doc/html/nav_g.png
rename to turbojpeg_api/doc/html/nav_g.png
Binary files differ
diff --git a/doc/html/nav_h.png b/turbojpeg_api/doc/html/nav_h.png
similarity index 100%
rename from doc/html/nav_h.png
rename to turbojpeg_api/doc/html/nav_h.png
Binary files differ
diff --git a/doc/html/open.png b/turbojpeg_api/doc/html/open.png
similarity index 100%
rename from doc/html/open.png
rename to turbojpeg_api/doc/html/open.png
Binary files differ
diff --git a/doc/html/search/all_63.html b/turbojpeg_api/doc/html/search/all_63.html
similarity index 100%
rename from doc/html/search/all_63.html
rename to turbojpeg_api/doc/html/search/all_63.html
diff --git a/doc/html/search/all_63.js b/turbojpeg_api/doc/html/search/all_63.js
similarity index 100%
rename from doc/html/search/all_63.js
rename to turbojpeg_api/doc/html/search/all_63.js
diff --git a/doc/html/search/all_64.html b/turbojpeg_api/doc/html/search/all_64.html
similarity index 100%
rename from doc/html/search/all_64.html
rename to turbojpeg_api/doc/html/search/all_64.html
diff --git a/doc/html/search/all_64.js b/turbojpeg_api/doc/html/search/all_64.js
similarity index 100%
rename from doc/html/search/all_64.js
rename to turbojpeg_api/doc/html/search/all_64.js
diff --git a/doc/html/search/all_68.html b/turbojpeg_api/doc/html/search/all_68.html
similarity index 100%
rename from doc/html/search/all_68.html
rename to turbojpeg_api/doc/html/search/all_68.html
diff --git a/doc/html/search/all_68.js b/turbojpeg_api/doc/html/search/all_68.js
similarity index 100%
rename from doc/html/search/all_68.js
rename to turbojpeg_api/doc/html/search/all_68.js
diff --git a/doc/html/search/all_6e.html b/turbojpeg_api/doc/html/search/all_6e.html
similarity index 100%
rename from doc/html/search/all_6e.html
rename to turbojpeg_api/doc/html/search/all_6e.html
diff --git a/doc/html/search/all_6e.js b/turbojpeg_api/doc/html/search/all_6e.js
similarity index 100%
rename from doc/html/search/all_6e.js
rename to turbojpeg_api/doc/html/search/all_6e.js
diff --git a/doc/html/search/all_6f.html b/turbojpeg_api/doc/html/search/all_6f.html
similarity index 100%
rename from doc/html/search/all_6f.html
rename to turbojpeg_api/doc/html/search/all_6f.html
diff --git a/doc/html/search/all_6f.js b/turbojpeg_api/doc/html/search/all_6f.js
similarity index 100%
rename from doc/html/search/all_6f.js
rename to turbojpeg_api/doc/html/search/all_6f.js
diff --git a/doc/html/search/all_72.html b/turbojpeg_api/doc/html/search/all_72.html
similarity index 100%
rename from doc/html/search/all_72.html
rename to turbojpeg_api/doc/html/search/all_72.html
diff --git a/doc/html/search/all_72.js b/turbojpeg_api/doc/html/search/all_72.js
similarity index 100%
rename from doc/html/search/all_72.js
rename to turbojpeg_api/doc/html/search/all_72.js
diff --git a/doc/html/search/all_74.html b/turbojpeg_api/doc/html/search/all_74.html
similarity index 100%
rename from doc/html/search/all_74.html
rename to turbojpeg_api/doc/html/search/all_74.html
diff --git a/doc/html/search/all_74.js b/turbojpeg_api/doc/html/search/all_74.js
similarity index 100%
rename from doc/html/search/all_74.js
rename to turbojpeg_api/doc/html/search/all_74.js
diff --git a/doc/html/search/all_77.html b/turbojpeg_api/doc/html/search/all_77.html
similarity index 100%
rename from doc/html/search/all_77.html
rename to turbojpeg_api/doc/html/search/all_77.html
diff --git a/doc/html/search/all_77.js b/turbojpeg_api/doc/html/search/all_77.js
similarity index 100%
rename from doc/html/search/all_77.js
rename to turbojpeg_api/doc/html/search/all_77.js
diff --git a/doc/html/search/all_78.html b/turbojpeg_api/doc/html/search/all_78.html
similarity index 100%
rename from doc/html/search/all_78.html
rename to turbojpeg_api/doc/html/search/all_78.html
diff --git a/doc/html/search/all_78.js b/turbojpeg_api/doc/html/search/all_78.js
similarity index 100%
rename from doc/html/search/all_78.js
rename to turbojpeg_api/doc/html/search/all_78.js
diff --git a/doc/html/search/all_79.html b/turbojpeg_api/doc/html/search/all_79.html
similarity index 100%
rename from doc/html/search/all_79.html
rename to turbojpeg_api/doc/html/search/all_79.html
diff --git a/doc/html/search/all_79.js b/turbojpeg_api/doc/html/search/all_79.js
similarity index 100%
rename from doc/html/search/all_79.js
rename to turbojpeg_api/doc/html/search/all_79.js
diff --git a/doc/html/search/classes_74.html b/turbojpeg_api/doc/html/search/classes_74.html
similarity index 100%
rename from doc/html/search/classes_74.html
rename to turbojpeg_api/doc/html/search/classes_74.html
diff --git a/doc/html/search/classes_74.js b/turbojpeg_api/doc/html/search/classes_74.js
similarity index 100%
rename from doc/html/search/classes_74.js
rename to turbojpeg_api/doc/html/search/classes_74.js
diff --git a/doc/html/search/close.png b/turbojpeg_api/doc/html/search/close.png
similarity index 100%
rename from doc/html/search/close.png
rename to turbojpeg_api/doc/html/search/close.png
Binary files differ
diff --git a/doc/html/search/enums_74.html b/turbojpeg_api/doc/html/search/enums_74.html
similarity index 100%
rename from doc/html/search/enums_74.html
rename to turbojpeg_api/doc/html/search/enums_74.html
diff --git a/doc/html/search/enums_74.js b/turbojpeg_api/doc/html/search/enums_74.js
similarity index 100%
rename from doc/html/search/enums_74.js
rename to turbojpeg_api/doc/html/search/enums_74.js
diff --git a/doc/html/search/enumvalues_74.html b/turbojpeg_api/doc/html/search/enumvalues_74.html
similarity index 100%
rename from doc/html/search/enumvalues_74.html
rename to turbojpeg_api/doc/html/search/enumvalues_74.html
diff --git a/doc/html/search/enumvalues_74.js b/turbojpeg_api/doc/html/search/enumvalues_74.js
similarity index 100%
rename from doc/html/search/enumvalues_74.js
rename to turbojpeg_api/doc/html/search/enumvalues_74.js
diff --git a/doc/html/search/functions_74.html b/turbojpeg_api/doc/html/search/functions_74.html
similarity index 100%
rename from doc/html/search/functions_74.html
rename to turbojpeg_api/doc/html/search/functions_74.html
diff --git a/doc/html/search/functions_74.js b/turbojpeg_api/doc/html/search/functions_74.js
similarity index 100%
rename from doc/html/search/functions_74.js
rename to turbojpeg_api/doc/html/search/functions_74.js
diff --git a/doc/html/search/groups_74.html b/turbojpeg_api/doc/html/search/groups_74.html
similarity index 100%
rename from doc/html/search/groups_74.html
rename to turbojpeg_api/doc/html/search/groups_74.html
diff --git a/doc/html/search/groups_74.js b/turbojpeg_api/doc/html/search/groups_74.js
similarity index 100%
rename from doc/html/search/groups_74.js
rename to turbojpeg_api/doc/html/search/groups_74.js
diff --git a/doc/html/search/mag_sel.png b/turbojpeg_api/doc/html/search/mag_sel.png
similarity index 100%
rename from doc/html/search/mag_sel.png
rename to turbojpeg_api/doc/html/search/mag_sel.png
Binary files differ
diff --git a/doc/html/search/nomatches.html b/turbojpeg_api/doc/html/search/nomatches.html
similarity index 100%
rename from doc/html/search/nomatches.html
rename to turbojpeg_api/doc/html/search/nomatches.html
diff --git a/doc/html/search/search.css b/turbojpeg_api/doc/html/search/search.css
similarity index 100%
rename from doc/html/search/search.css
rename to turbojpeg_api/doc/html/search/search.css
diff --git a/doc/html/search/search.js b/turbojpeg_api/doc/html/search/search.js
similarity index 100%
rename from doc/html/search/search.js
rename to turbojpeg_api/doc/html/search/search.js
diff --git a/doc/html/search/search_l.png b/turbojpeg_api/doc/html/search/search_l.png
similarity index 100%
rename from doc/html/search/search_l.png
rename to turbojpeg_api/doc/html/search/search_l.png
Binary files differ
diff --git a/doc/html/search/search_m.png b/turbojpeg_api/doc/html/search/search_m.png
similarity index 100%
rename from doc/html/search/search_m.png
rename to turbojpeg_api/doc/html/search/search_m.png
Binary files differ
diff --git a/doc/html/search/search_r.png b/turbojpeg_api/doc/html/search/search_r.png
similarity index 100%
rename from doc/html/search/search_r.png
rename to turbojpeg_api/doc/html/search/search_r.png
Binary files differ
diff --git a/doc/html/search/typedefs_74.html b/turbojpeg_api/doc/html/search/typedefs_74.html
similarity index 100%
rename from doc/html/search/typedefs_74.html
rename to turbojpeg_api/doc/html/search/typedefs_74.html
diff --git a/doc/html/search/typedefs_74.js b/turbojpeg_api/doc/html/search/typedefs_74.js
similarity index 100%
rename from doc/html/search/typedefs_74.js
rename to turbojpeg_api/doc/html/search/typedefs_74.js
diff --git a/doc/html/search/variables_63.html b/turbojpeg_api/doc/html/search/variables_63.html
similarity index 100%
rename from doc/html/search/variables_63.html
rename to turbojpeg_api/doc/html/search/variables_63.html
diff --git a/doc/html/search/variables_63.js b/turbojpeg_api/doc/html/search/variables_63.js
similarity index 100%
rename from doc/html/search/variables_63.js
rename to turbojpeg_api/doc/html/search/variables_63.js
diff --git a/doc/html/search/variables_64.html b/turbojpeg_api/doc/html/search/variables_64.html
similarity index 100%
rename from doc/html/search/variables_64.html
rename to turbojpeg_api/doc/html/search/variables_64.html
diff --git a/doc/html/search/variables_64.js b/turbojpeg_api/doc/html/search/variables_64.js
similarity index 100%
rename from doc/html/search/variables_64.js
rename to turbojpeg_api/doc/html/search/variables_64.js
diff --git a/doc/html/search/variables_68.html b/turbojpeg_api/doc/html/search/variables_68.html
similarity index 100%
rename from doc/html/search/variables_68.html
rename to turbojpeg_api/doc/html/search/variables_68.html
diff --git a/doc/html/search/variables_68.js b/turbojpeg_api/doc/html/search/variables_68.js
similarity index 100%
rename from doc/html/search/variables_68.js
rename to turbojpeg_api/doc/html/search/variables_68.js
diff --git a/doc/html/search/variables_6e.html b/turbojpeg_api/doc/html/search/variables_6e.html
similarity index 100%
rename from doc/html/search/variables_6e.html
rename to turbojpeg_api/doc/html/search/variables_6e.html
diff --git a/doc/html/search/variables_6e.js b/turbojpeg_api/doc/html/search/variables_6e.js
similarity index 100%
rename from doc/html/search/variables_6e.js
rename to turbojpeg_api/doc/html/search/variables_6e.js
diff --git a/doc/html/search/variables_6f.html b/turbojpeg_api/doc/html/search/variables_6f.html
similarity index 100%
rename from doc/html/search/variables_6f.html
rename to turbojpeg_api/doc/html/search/variables_6f.html
diff --git a/doc/html/search/variables_6f.js b/turbojpeg_api/doc/html/search/variables_6f.js
similarity index 100%
rename from doc/html/search/variables_6f.js
rename to turbojpeg_api/doc/html/search/variables_6f.js
diff --git a/doc/html/search/variables_72.html b/turbojpeg_api/doc/html/search/variables_72.html
similarity index 100%
rename from doc/html/search/variables_72.html
rename to turbojpeg_api/doc/html/search/variables_72.html
diff --git a/doc/html/search/variables_72.js b/turbojpeg_api/doc/html/search/variables_72.js
similarity index 100%
rename from doc/html/search/variables_72.js
rename to turbojpeg_api/doc/html/search/variables_72.js
diff --git a/doc/html/search/variables_74.html b/turbojpeg_api/doc/html/search/variables_74.html
similarity index 100%
rename from doc/html/search/variables_74.html
rename to turbojpeg_api/doc/html/search/variables_74.html
diff --git a/doc/html/search/variables_74.js b/turbojpeg_api/doc/html/search/variables_74.js
similarity index 100%
rename from doc/html/search/variables_74.js
rename to turbojpeg_api/doc/html/search/variables_74.js
diff --git a/doc/html/search/variables_77.html b/turbojpeg_api/doc/html/search/variables_77.html
similarity index 100%
rename from doc/html/search/variables_77.html
rename to turbojpeg_api/doc/html/search/variables_77.html
diff --git a/doc/html/search/variables_77.js b/turbojpeg_api/doc/html/search/variables_77.js
similarity index 100%
rename from doc/html/search/variables_77.js
rename to turbojpeg_api/doc/html/search/variables_77.js
diff --git a/doc/html/search/variables_78.html b/turbojpeg_api/doc/html/search/variables_78.html
similarity index 100%
rename from doc/html/search/variables_78.html
rename to turbojpeg_api/doc/html/search/variables_78.html
diff --git a/doc/html/search/variables_78.js b/turbojpeg_api/doc/html/search/variables_78.js
similarity index 100%
rename from doc/html/search/variables_78.js
rename to turbojpeg_api/doc/html/search/variables_78.js
diff --git a/doc/html/search/variables_79.html b/turbojpeg_api/doc/html/search/variables_79.html
similarity index 100%
rename from doc/html/search/variables_79.html
rename to turbojpeg_api/doc/html/search/variables_79.html
diff --git a/doc/html/search/variables_79.js b/turbojpeg_api/doc/html/search/variables_79.js
similarity index 100%
rename from doc/html/search/variables_79.js
rename to turbojpeg_api/doc/html/search/variables_79.js
diff --git a/doc/html/structtjregion.html b/turbojpeg_api/doc/html/structtjregion.html
similarity index 100%
rename from doc/html/structtjregion.html
rename to turbojpeg_api/doc/html/structtjregion.html
diff --git a/doc/html/structtjscalingfactor.html b/turbojpeg_api/doc/html/structtjscalingfactor.html
similarity index 100%
rename from doc/html/structtjscalingfactor.html
rename to turbojpeg_api/doc/html/structtjscalingfactor.html
diff --git a/doc/html/structtjtransform.html b/turbojpeg_api/doc/html/structtjtransform.html
similarity index 100%
rename from doc/html/structtjtransform.html
rename to turbojpeg_api/doc/html/structtjtransform.html
diff --git a/doc/html/sync_off.png b/turbojpeg_api/doc/html/sync_off.png
similarity index 100%
rename from doc/html/sync_off.png
rename to turbojpeg_api/doc/html/sync_off.png
Binary files differ
diff --git a/doc/html/sync_on.png b/turbojpeg_api/doc/html/sync_on.png
similarity index 100%
rename from doc/html/sync_on.png
rename to turbojpeg_api/doc/html/sync_on.png
Binary files differ
diff --git a/doc/html/tab_a.png b/turbojpeg_api/doc/html/tab_a.png
similarity index 100%
rename from doc/html/tab_a.png
rename to turbojpeg_api/doc/html/tab_a.png
Binary files differ
diff --git a/doc/html/tab_b.png b/turbojpeg_api/doc/html/tab_b.png
similarity index 100%
rename from doc/html/tab_b.png
rename to turbojpeg_api/doc/html/tab_b.png
Binary files differ
diff --git a/doc/html/tab_h.png b/turbojpeg_api/doc/html/tab_h.png
similarity index 100%
rename from doc/html/tab_h.png
rename to turbojpeg_api/doc/html/tab_h.png
Binary files differ
diff --git a/doc/html/tab_s.png b/turbojpeg_api/doc/html/tab_s.png
similarity index 100%
rename from doc/html/tab_s.png
rename to turbojpeg_api/doc/html/tab_s.png
Binary files differ
diff --git a/doc/html/tabs.css b/turbojpeg_api/doc/html/tabs.css
similarity index 100%
rename from doc/html/tabs.css
rename to turbojpeg_api/doc/html/tabs.css
diff --git a/doc/html/doxygen-extra.css b/turbojpeg_api/doxygen-extra.css
similarity index 100%
copy from doc/html/doxygen-extra.css
copy to turbojpeg_api/doxygen-extra.css
diff --git a/doxygen.config b/turbojpeg_api/doxygen.config
similarity index 100%
rename from doxygen.config
rename to turbojpeg_api/doxygen.config
diff --git a/jdatadst-tj.c b/turbojpeg_api/jdatadst-tj.c
similarity index 100%
rename from jdatadst-tj.c
rename to turbojpeg_api/jdatadst-tj.c
diff --git a/jdatasrc-tj.c b/turbojpeg_api/jdatasrc-tj.c
similarity index 100%
rename from jdatasrc-tj.c
rename to turbojpeg_api/jdatasrc-tj.c
diff --git a/tjbench.c b/turbojpeg_api/tjbench.c
similarity index 100%
rename from tjbench.c
rename to turbojpeg_api/tjbench.c
diff --git a/tjbenchtest.in b/turbojpeg_api/tjbenchtest.in
similarity index 100%
rename from tjbenchtest.in
rename to turbojpeg_api/tjbenchtest.in
diff --git a/tjbenchtest.java.in b/turbojpeg_api/tjbenchtest.java.in
similarity index 100%
rename from tjbenchtest.java.in
rename to turbojpeg_api/tjbenchtest.java.in
diff --git a/tjexample.c b/turbojpeg_api/tjexample.c
similarity index 100%
rename from tjexample.c
rename to turbojpeg_api/tjexample.c
diff --git a/tjexampletest.in b/turbojpeg_api/tjexampletest.in
similarity index 100%
rename from tjexampletest.in
rename to turbojpeg_api/tjexampletest.in
diff --git a/tjexampletest.java.in b/turbojpeg_api/tjexampletest.java.in
similarity index 100%
rename from tjexampletest.java.in
rename to turbojpeg_api/tjexampletest.java.in
diff --git a/tjunittest.c b/turbojpeg_api/tjunittest.c
similarity index 100%
rename from tjunittest.c
rename to turbojpeg_api/tjunittest.c
diff --git a/tjutil.c b/turbojpeg_api/tjutil.c
similarity index 100%
rename from tjutil.c
rename to turbojpeg_api/tjutil.c
diff --git a/tjutil.h b/turbojpeg_api/tjutil.h
similarity index 100%
rename from tjutil.h
rename to turbojpeg_api/tjutil.h
diff --git a/turbojpeg-jni.c b/turbojpeg_api/turbojpeg-jni.c
similarity index 100%
rename from turbojpeg-jni.c
rename to turbojpeg_api/turbojpeg-jni.c
diff --git a/turbojpeg-mapfile b/turbojpeg_api/turbojpeg-mapfile
similarity index 100%
rename from turbojpeg-mapfile
rename to turbojpeg_api/turbojpeg-mapfile
diff --git a/turbojpeg-mapfile.jni b/turbojpeg_api/turbojpeg-mapfile.jni
similarity index 100%
rename from turbojpeg-mapfile.jni
rename to turbojpeg_api/turbojpeg-mapfile.jni
diff --git a/turbojpeg.c b/turbojpeg_api/turbojpeg.c
similarity index 100%
rename from turbojpeg.c
rename to turbojpeg_api/turbojpeg.c
diff --git a/turbojpeg.h b/turbojpeg_api/turbojpeg.h
similarity index 100%
rename from turbojpeg.h
rename to turbojpeg_api/turbojpeg.h