Merge branch 'main' into dev
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 26c1283..7e4e5bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@
 endif()
 
 project(libjpeg-turbo C)
-set(VERSION 3.0.3)
+set(VERSION 3.0.80)
 set(COPYRIGHT_YEAR "1991-2024")
 string(REPLACE "." ";" VERSION_TRIPLET ${VERSION})
 list(GET VERSION_TRIPLET 0 VERSION_MAJOR)
@@ -575,13 +575,14 @@
 endif()
 
 # Generate files
-configure_file(jversion.h.in jversion.h)
+configure_file(src/jversion.h.in jversion.h)
 if(UNIX)
-  configure_file(libjpeg.map.in libjpeg.map)
+  configure_file(src/libjpeg.map.in libjpeg.map)
 endif()
 
 # Include directories and compiler definitions
-include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_BINARY_DIR}
+  ${CMAKE_CURRENT_SOURCE_DIR}/src)
 
 
 ###############################################################################
@@ -593,28 +594,31 @@
 endif()
 message(STATUS "CMAKE_EXECUTABLE_SUFFIX = ${CMAKE_EXECUTABLE_SUFFIX}")
 
-set(JPEG16_SOURCES jcapistd.c jccolor.c jcdiffct.c jclossls.c jcmainct.c
-  jcprepct.c jcsample.c jdapistd.c jdcolor.c jddiffct.c jdlossls.c jdmainct.c
-  jdpostct.c jdsample.c jutils.c)
-set(JPEG12_SOURCES ${JPEG16_SOURCES} jccoefct.c jcdctmgr.c jdcoefct.c
-  jddctmgr.c jdmerge.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c
-  jidctred.c jquant1.c jquant2.c)
-set(JPEG_SOURCES ${JPEG12_SOURCES} jcapimin.c jchuff.c jcicc.c jcinit.c
-  jclhuff.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c jctrans.c
-  jdapimin.c jdatadst.c jdatasrc.c jdhuff.c jdicc.c jdinput.c jdlhuff.c
-  jdmarker.c jdmaster.c jdphuff.c jdtrans.c jerror.c jfdctflt.c jmemmgr.c
-  jmemnobs.c jpeg_nbits.c)
+set(JPEG16_SOURCES src/jcapistd.c src/jccolor.c src/jcdiffct.c src/jclossls.c
+  src/jcmainct.c src/jcprepct.c src/jcsample.c src/jdapistd.c src/jdcolor.c
+  src/jddiffct.c src/jdlossls.c src/jdmainct.c src/jdpostct.c src/jdsample.c
+  src/jutils.c)
+set(JPEG12_SOURCES ${JPEG16_SOURCES} src/jccoefct.c src/jcdctmgr.c
+  src/jdcoefct.c src/jddctmgr.c src/jdmerge.c src/jfdctfst.c src/jfdctint.c
+  src/jidctflt.c src/jidctfst.c src/jidctint.c src/jidctred.c src/jquant1.c
+  src/jquant2.c)
+set(JPEG_SOURCES ${JPEG12_SOURCES} src/jcapimin.c src/jchuff.c src/jcicc.c
+  src/jcinit.c src/jclhuff.c src/jcmarker.c src/jcmaster.c src/jcomapi.c
+  src/jcparam.c src/jcphuff.c src/jctrans.c src/jdapimin.c src/jdatadst.c
+  src/jdatasrc.c src/jdhuff.c src/jdicc.c src/jdinput.c src/jdlhuff.c
+  src/jdmarker.c src/jdmaster.c src/jdphuff.c src/jdtrans.c src/jerror.c
+  src/jfdctflt.c src/jmemmgr.c src/jmemnobs.c src/jpeg_nbits.c)
 
 if(WITH_ARITH_ENC OR WITH_ARITH_DEC)
-  set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c)
+  set(JPEG_SOURCES ${JPEG_SOURCES} src/jaricom.c)
 endif()
 
 if(WITH_ARITH_ENC)
-  set(JPEG_SOURCES ${JPEG_SOURCES} jcarith.c)
+  set(JPEG_SOURCES ${JPEG_SOURCES} src/jcarith.c)
 endif()
 
 if(WITH_ARITH_DEC)
-  set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c)
+  set(JPEG_SOURCES ${JPEG_SOURCES} src/jdarith.c)
 endif()
 
 if(WITH_SIMD)
@@ -628,8 +632,8 @@
 
 # We have to generate these here, because if the build system tries and fails
 # to enable the SIMD extensions, the value of WITH_SIMD will have changed.
-configure_file(jconfig.h.in jconfig.h)
-configure_file(jconfigint.h.in jconfigint.h)
+configure_file(src/jconfig.h.in jconfig.h)
+configure_file(src/jconfigint.h.in jconfigint.h)
 
 if(WITH_SIMD)
   message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})")
@@ -675,13 +679,14 @@
 if(WITH_TURBOJPEG)
   if(ENABLE_SHARED)
     set(TURBOJPEG_SOURCES ${JPEG_SOURCES} ${SIMD_TARGET_OBJECTS} ${SIMD_OBJS}
-      turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c rdppm.c
-      wrbmp.c wrppm.c $<TARGET_OBJECTS:jpeg12> $<TARGET_OBJECTS:jpeg16>)
-    set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile)
+      src/turbojpeg.c src/transupp.c src/jdatadst-tj.c src/jdatasrc-tj.c
+      src/rdbmp.c src/rdppm.c src/wrbmp.c src/wrppm.c $<TARGET_OBJECTS:jpeg12>
+      $<TARGET_OBJECTS:jpeg16>)
+    set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/src/turbojpeg-mapfile)
     if(WITH_JAVA)
-      set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} turbojpeg-jni.c)
+      set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES} java/turbojpeg-jni.c)
       include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
-      set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg-mapfile.jni)
+      set(TJMAPFILE ${CMAKE_CURRENT_SOURCE_DIR}/src/turbojpeg-mapfile.jni)
     endif()
     if(MSVC)
       configure_file(${CMAKE_SOURCE_DIR}/win/turbojpeg.rc.in
@@ -689,11 +694,11 @@
       set(TURBOJPEG_SOURCES ${TURBOJPEG_SOURCES}
         ${CMAKE_BINARY_DIR}/win/turbojpeg.rc)
     endif()
-    add_library(turbojpeg12 OBJECT rdppm.c wrppm.c)
+    add_library(turbojpeg12 OBJECT src/rdppm.c src/wrppm.c)
     set_property(TARGET turbojpeg12 PROPERTY COMPILE_FLAGS
       "-DBITS_IN_JSAMPLE=12 -DPPM_SUPPORTED")
     set_target_properties(turbojpeg12 PROPERTIES POSITION_INDEPENDENT_CODE 1)
-    add_library(turbojpeg16 OBJECT rdppm.c wrppm.c)
+    add_library(turbojpeg16 OBJECT src/rdppm.c src/wrppm.c)
     set_property(TARGET turbojpeg16 PROPERTY COMPILE_FLAGS
       "-DBITS_IN_JSAMPLE=16 -DPPM_SUPPORTED")
     set_target_properties(turbojpeg16 PROPERTIES POSITION_INDEPENDENT_CODE 1)
@@ -721,33 +726,35 @@
         LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}")
     endif()
 
-    add_executable(tjunittest tjunittest.c tjutil.c md5/md5.c md5/md5hl.c)
+    add_executable(tjunittest src/tjunittest.c src/tjutil.c src/md5/md5.c
+      src/md5/md5hl.c)
     target_link_libraries(tjunittest turbojpeg)
 
-    add_executable(tjbench tjbench.c tjutil.c)
+    add_executable(tjbench src/tjbench.c src/tjutil.c)
     target_link_libraries(tjbench turbojpeg)
     if(UNIX)
       target_link_libraries(tjbench m)
     endif()
 
-    add_executable(tjexample tjexample.c)
+    add_executable(tjexample src/tjexample.c)
     target_link_libraries(tjexample turbojpeg)
 
-    add_custom_target(tjdoc COMMAND doxygen -s doxygen.config
-      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+    add_custom_target(tjdoc COMMAND doxygen -s ../doc/doxygen.config
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
   endif()
 
   if(ENABLE_STATIC)
-    add_library(turbojpeg12-static OBJECT rdppm.c wrppm.c)
+    add_library(turbojpeg12-static OBJECT src/rdppm.c src/wrppm.c)
     set_property(TARGET turbojpeg12-static PROPERTY COMPILE_FLAGS
       "-DBITS_IN_JSAMPLE=12 -DPPM_SUPPORTED")
-    add_library(turbojpeg16-static OBJECT rdppm.c wrppm.c)
+    add_library(turbojpeg16-static OBJECT src/rdppm.c src/wrppm.c)
     set_property(TARGET turbojpeg16-static PROPERTY COMPILE_FLAGS
       "-DBITS_IN_JSAMPLE=16 -DPPM_SUPPORTED")
     add_library(turbojpeg-static STATIC ${JPEG_SOURCES} ${SIMD_TARGET_OBJECTS}
-      ${SIMD_OBJS} turbojpeg.c transupp.c jdatadst-tj.c jdatasrc-tj.c rdbmp.c
-      rdppm.c wrbmp.c wrppm.c $<TARGET_OBJECTS:jpeg12-static>
-      $<TARGET_OBJECTS:jpeg16-static> $<TARGET_OBJECTS:turbojpeg12-static>
+      ${SIMD_OBJS} src/turbojpeg.c src/transupp.c src/jdatadst-tj.c
+      src/jdatasrc-tj.c src/rdbmp.c src/rdppm.c src/wrbmp.c src/wrppm.c
+      $<TARGET_OBJECTS:jpeg12-static> $<TARGET_OBJECTS:jpeg16-static>
+      $<TARGET_OBJECTS:turbojpeg12-static>
       $<TARGET_OBJECTS:turbojpeg16-static>)
     set_property(TARGET turbojpeg-static PROPERTY COMPILE_FLAGS
       "-DBMP_SUPPORTED -DPPM_SUPPORTED")
@@ -755,11 +762,11 @@
       set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg)
     endif()
 
-    add_executable(tjunittest-static tjunittest.c tjutil.c md5/md5.c
-      md5/md5hl.c)
+    add_executable(tjunittest-static src/tjunittest.c src/tjutil.c
+      src/md5/md5.c src/md5/md5hl.c)
     target_link_libraries(tjunittest-static turbojpeg-static)
 
-    add_executable(tjbench-static tjbench.c tjutil.c)
+    add_executable(tjbench-static src/tjbench.c src/tjutil.c)
     target_link_libraries(tjbench-static turbojpeg-static)
     if(UNIX)
       target_link_libraries(tjbench-static m)
@@ -776,14 +783,14 @@
 if(ENABLE_STATIC)
   # Compile a separate version of these source files with 12-bit and 16-bit
   # data precision.
-  add_library(cjpeg12-static OBJECT rdgif.c rdppm.c)
+  add_library(cjpeg12-static OBJECT src/rdgif.c src/rdppm.c)
   set_property(TARGET cjpeg12-static PROPERTY COMPILE_FLAGS
     "-DBITS_IN_JSAMPLE=12 -DGIF_SUPPORTED -DPPM_SUPPORTED")
-  add_library(cjpeg16-static OBJECT rdgif.c rdppm.c)
+  add_library(cjpeg16-static OBJECT src/rdgif.c src/rdppm.c)
   set_property(TARGET cjpeg16-static PROPERTY COMPILE_FLAGS
     "-DBITS_IN_JSAMPLE=16 -DGIF_SUPPORTED -DPPM_SUPPORTED")
-  add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c
-    rdswitch.c rdtarga.c $<TARGET_OBJECTS:cjpeg12-static>
+  add_executable(cjpeg-static src/cjpeg.c src/cdjpeg.c src/rdbmp.c src/rdgif.c
+    src/rdppm.c src/rdswitch.c src/rdtarga.c $<TARGET_OBJECTS:cjpeg12-static>
     $<TARGET_OBJECTS:cjpeg16-static>)
   set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS
     ${CDJPEG_COMPILE_FLAGS})
@@ -791,30 +798,31 @@
 
   # Compile a separate version of these source files with 12-bit and 16-bit
   # data precision.
-  add_library(djpeg12-static OBJECT rdcolmap.c wrgif.c wrppm.c)
+  add_library(djpeg12-static OBJECT src/rdcolmap.c src/wrgif.c src/wrppm.c)
   set_property(TARGET djpeg12-static PROPERTY COMPILE_FLAGS
     "-DBITS_IN_JSAMPLE=12 -DGIF_SUPPORTED -DPPM_SUPPORTED")
-  add_library(djpeg16-static OBJECT wrppm.c)
+  add_library(djpeg16-static OBJECT src/wrppm.c)
   set_property(TARGET djpeg16-static PROPERTY COMPILE_FLAGS
     "-DBITS_IN_JSAMPLE=16 -DPPM_SUPPORTED")
-  add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrbmp.c
-    wrgif.c wrppm.c wrtarga.c $<TARGET_OBJECTS:djpeg12-static>
-    $<TARGET_OBJECTS:djpeg16-static>)
+  add_executable(djpeg-static src/djpeg.c src/cdjpeg.c src/rdcolmap.c
+    src/rdswitch.c src/wrbmp.c src/wrgif.c src/wrppm.c src/wrtarga.c
+    $<TARGET_OBJECTS:djpeg12-static> $<TARGET_OBJECTS:djpeg16-static>)
   set_property(TARGET djpeg-static PROPERTY COMPILE_FLAGS
     ${CDJPEG_COMPILE_FLAGS})
   target_link_libraries(djpeg-static jpeg-static)
 
-  add_executable(jpegtran-static jpegtran.c cdjpeg.c rdswitch.c transupp.c)
+  add_executable(jpegtran-static src/jpegtran.c src/cdjpeg.c src/rdswitch.c
+    src/transupp.c)
   target_link_libraries(jpegtran-static jpeg-static)
   set_property(TARGET jpegtran-static PROPERTY COMPILE_FLAGS "${USE_SETMODE}")
 
-  add_executable(example-static example.c)
+  add_executable(example-static src/example.c)
   target_link_libraries(example-static jpeg-static)
 endif()
 
-add_executable(rdjpgcom rdjpgcom.c)
+add_executable(rdjpgcom src/rdjpgcom.c)
 
-add_executable(wrjpgcom wrjpgcom.c)
+add_executable(wrjpgcom src/wrjpgcom.c)
 
 
 ###############################################################################
@@ -825,9 +833,9 @@
   add_subdirectory(fuzz)
 endif()
 
-add_executable(strtest strtest.c)
+add_executable(strtest src/strtest.c)
 
-add_subdirectory(md5)
+add_subdirectory(src/md5)
 
 if(GENERATOR_IS_MULTI_CONFIG)
   set(OBJDIR "\${CTEST_CONFIGURATION_TYPE}/")
@@ -1752,7 +1760,7 @@
         DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME tjbench${EXE})
     endif()
   endif()
-  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg.h
+  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/turbojpeg.h
     DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 endif()
 
@@ -1778,11 +1786,13 @@
 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.c
-  ${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}/README.md
+  ${CMAKE_CURRENT_SOURCE_DIR}/src/example.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/src/tjexample.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/doc/libjpeg.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/doc/structure.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/doc/usage.txt
+  ${CMAKE_CURRENT_SOURCE_DIR}/doc/wizard.txt
   ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
 if(WITH_JAVA)
   install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJExample.java
@@ -1790,10 +1800,11 @@
 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
+  install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/cjpeg.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/doc/djpeg.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/doc/jpegtran.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/doc/rdjpgcom.1
+    ${CMAKE_CURRENT_SOURCE_DIR}/doc/wrjpgcom.1
     DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
 endif()
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc
@@ -1811,8 +1822,9 @@
   DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME})
 
 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
+  ${CMAKE_CURRENT_SOURCE_DIR}/src/jerror.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/src/jmorecfg.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
 
 include(cmakescripts/BuildPackages.cmake)
diff --git a/ChangeLog.md b/ChangeLog.md
index f15f87a..64b1c5e 100644
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,15 @@
+3.1 pre-beta
+============
+
+### Significant changes relative to 3.0.2:
+
+1. The libjpeg-turbo source tree has been reorganized to make it easier to find
+the README files, license information, and build instructions.  The
+documentation for the libjpeg API library and associated programs has been
+moved into the **doc/** subdirectory, and all C source code and headers have
+been moved into a new **src/** subdirectory.
+
+
 3.0.3
 =====
 
@@ -240,8 +252,8 @@
 `TJPARAM_LOSSLESSPT`/`TJ.PARAM_LOSSLESSPT`), and a cjpeg/TJBench option
 (`-lossless`) can be used to create a lossless JPEG image.  (Decompression of
 lossless JPEG images is handled automatically.)  Refer to
-[libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the TurboJPEG API
-documentation for more details.
+[libjpeg.txt](doc/libjpeg.txt), [usage.txt](doc/usage.txt), and the TurboJPEG
+API documentation for more details.
 
 6. Added support for 12-bit-per-component (lossy and lossless) and
 16-bit-per-component (lossless) JPEG images to the libjpeg and TurboJPEG APIs:
@@ -268,8 +280,8 @@
 (Decompression and transformation of 12-bit-per-component and
 16-bit-per-component JPEG images is handled automatically.)
 
-    Refer to [libjpeg.txt](libjpeg.txt), [usage.txt](usage.txt), and the
-TurboJPEG API documentation for more details.
+    Refer to [libjpeg.txt](doc/libjpeg.txt), [usage.txt](doc/usage.txt), and
+the TurboJPEG API documentation for more details.
 
 
 2.1.5.1
@@ -1331,7 +1343,7 @@
 
 2. Added two new libjpeg API functions (`jpeg_skip_scanlines()` and
 `jpeg_crop_scanline()`) that can be used to partially decode a JPEG image.  See
-[libjpeg.txt](libjpeg.txt) for more details.
+[libjpeg.txt](doc/libjpeg.txt) for more details.
 
 3. The TJCompressor and TJDecompressor classes in the TurboJPEG Java API now
 implement the Closeable interface, so those classes can be used with a
diff --git a/README.ijg b/README.ijg
index 8f37682..8bc4e6b 100644
--- a/README.ijg
+++ b/README.ijg
@@ -36,16 +36,18 @@
 Other documentation files in the distribution are:
 
 User documentation:
-  usage.txt         Usage instructions for cjpeg, djpeg, jpegtran,
-                    rdjpgcom, and wrjpgcom.
-  *.1               Unix-style man pages for programs (same info as usage.txt).
-  wizard.txt        Advanced usage instructions for JPEG wizards only.
-  change.log        Version-to-version change highlights.
+  doc/usage.txt         Usage instructions for cjpeg, djpeg, jpegtran,
+                        rdjpgcom, and wrjpgcom.
+  doc/*.1               Unix-style man pages for programs (same info as
+                        usage.txt).
+  doc/wizard.txt        Advanced usage instructions for JPEG wizards only.
+  doc/change.log        Version-to-version change highlights.
 Programmer and internal documentation:
-  libjpeg.txt       How to use the JPEG library in your own programs.
-  example.c         Sample code for calling the JPEG library.
-  structure.txt     Overview of the JPEG library's internal structure.
-  coderules.txt     Coding style rules --- please read if you contribute code.
+  doc/libjpeg.txt       How to use the JPEG library in your own programs.
+  src/example.c         Sample code for calling the JPEG library.
+  doc/structure.txt     Overview of the JPEG library's internal structure.
+  doc/coderules.txt     Coding style rules --- please read if you contribute
+                        code.
 
 Please read at least usage.txt.  Some information can also be found in the JPEG
 FAQ (Frequently Asked Questions) article.  See ARCHIVE LOCATIONS below to find
diff --git a/README.md b/README.md
index 923e61d..32eae0d 100644
--- a/README.md
+++ b/README.md
@@ -69,7 +69,7 @@
   generating planar YUV images and performing multiple simultaneous lossless
   transforms on an image.  The Java interface for libjpeg-turbo is written on
   top of the TurboJPEG API.  The TurboJPEG API is recommended for first-time
-  users of libjpeg-turbo.  Refer to [tjexample.c](tjexample.c) and
+  users of libjpeg-turbo.  Refer to [tjexample.c](src/tjexample.c) and
   [TJExample.java](java/TJExample.java) for examples of its usage and to
   <http://libjpeg-turbo.org/Documentation/Documentation> for API documentation.
 
@@ -79,8 +79,9 @@
   more powerful.  The libjpeg API implementation in libjpeg-turbo is both
   API/ABI-compatible and mathematically compatible with libjpeg v6b.  It can
   also optionally be configured to be API/ABI-compatible with libjpeg v7 and v8
-  (see below.)  Refer to [cjpeg.c](cjpeg.c) and [djpeg.c](djpeg.c) for examples
-  of its usage and to [libjpeg.txt](libjpeg.txt) for API documentation.
+  (see below.)  Refer to [cjpeg.c](src/cjpeg.c) and [djpeg.c](src/djpeg.c) for
+  examples of its usage and to [libjpeg.txt](doc/libjpeg.txt) for API
+  documentation.
 
 There is no significant performance advantage to either API when both are used
 to perform similar operations.
@@ -132,9 +133,9 @@
 
     #ifdef JCS_ALPHA_EXTENSIONS
 
-[jcstest.c](jcstest.c), located in the libjpeg-turbo source tree, demonstrates
-how to check for the existence of the colorspace extensions at compile time and
-run time.
+[jcstest.c](src/jcstest.c), located in the libjpeg-turbo source tree,
+demonstrates how to check for the existence of the colorspace extensions at
+compile time and run time.
 
 libjpeg v7 and v8 API/ABI Emulation
 -----------------------------------
diff --git a/change.log b/doc/change.log
similarity index 100%
rename from change.log
rename to doc/change.log
diff --git a/cjpeg.1 b/doc/cjpeg.1
similarity index 100%
rename from cjpeg.1
rename to doc/cjpeg.1
diff --git a/coderules.txt b/doc/coderules.txt
similarity index 100%
rename from coderules.txt
rename to doc/coderules.txt
diff --git a/djpeg.1 b/doc/djpeg.1
similarity index 100%
rename from djpeg.1
rename to doc/djpeg.1
diff --git a/doc/html/doxygen-extra.css b/doc/doxygen-extra.css
similarity index 100%
rename from doc/html/doxygen-extra.css
rename to doc/doxygen-extra.css
diff --git a/doxygen.config b/doc/doxygen.config
similarity index 76%
rename from doxygen.config
rename to doc/doxygen.config
index 09e4489..336adf8 100644
--- a/doxygen.config
+++ b/doc/doxygen.config
@@ -1,6 +1,7 @@
 PROJECT_NAME = TurboJPEG
 PROJECT_NUMBER = 3.0.1
-OUTPUT_DIRECTORY = doc/
+OUTPUT_DIRECTORY = ../doc/
+HTML_OUTPUT = turbojpeg
 USE_WINDOWS_ENCODING = NO
 OPTIMIZE_OUTPUT_FOR_C = YES
 WARN_NO_PARAMDOC = YES
@@ -13,4 +14,4 @@
 MAX_INITIALIZER_LINES = 0
 ALWAYS_DETAILED_SEC = YES
 HTML_TIMESTAMP = NO
-HTML_EXTRA_STYLESHEET = doxygen-extra.css
+HTML_EXTRA_STYLESHEET = ../doc/doxygen-extra.css
diff --git a/jpegtran.1 b/doc/jpegtran.1
similarity index 100%
rename from jpegtran.1
rename to doc/jpegtran.1
diff --git a/libjpeg.txt b/doc/libjpeg.txt
similarity index 100%
rename from libjpeg.txt
rename to doc/libjpeg.txt
diff --git a/rdjpgcom.1 b/doc/rdjpgcom.1
similarity index 100%
rename from rdjpgcom.1
rename to doc/rdjpgcom.1
diff --git a/structure.txt b/doc/structure.txt
similarity index 100%
rename from structure.txt
rename to doc/structure.txt
diff --git a/doc/html/annotated.html b/doc/turbojpeg/annotated.html
similarity index 100%
rename from doc/html/annotated.html
rename to doc/turbojpeg/annotated.html
diff --git a/doc/html/bc_s.png b/doc/turbojpeg/bc_s.png
similarity index 100%
rename from doc/html/bc_s.png
rename to doc/turbojpeg/bc_s.png
Binary files differ
diff --git a/doc/html/bc_sd.png b/doc/turbojpeg/bc_sd.png
similarity index 100%
rename from doc/html/bc_sd.png
rename to doc/turbojpeg/bc_sd.png
Binary files differ
diff --git a/doc/html/classes.html b/doc/turbojpeg/classes.html
similarity index 100%
rename from doc/html/classes.html
rename to doc/turbojpeg/classes.html
diff --git a/doc/html/closed.png b/doc/turbojpeg/closed.png
similarity index 100%
rename from doc/html/closed.png
rename to doc/turbojpeg/closed.png
Binary files differ
diff --git a/doc/html/doc.svg b/doc/turbojpeg/doc.svg
similarity index 100%
rename from doc/html/doc.svg
rename to doc/turbojpeg/doc.svg
diff --git a/doc/html/docd.svg b/doc/turbojpeg/docd.svg
similarity index 100%
rename from doc/html/docd.svg
rename to doc/turbojpeg/docd.svg
diff --git a/doc/html/doxygen-extra.css b/doc/turbojpeg/doxygen-extra.css
similarity index 100%
copy from doc/html/doxygen-extra.css
copy to doc/turbojpeg/doxygen-extra.css
diff --git a/doc/html/doxygen.css b/doc/turbojpeg/doxygen.css
similarity index 100%
rename from doc/html/doxygen.css
rename to doc/turbojpeg/doxygen.css
diff --git a/doc/html/doxygen.svg b/doc/turbojpeg/doxygen.svg
similarity index 100%
rename from doc/html/doxygen.svg
rename to doc/turbojpeg/doxygen.svg
diff --git a/doc/html/dynsections.js b/doc/turbojpeg/dynsections.js
similarity index 100%
rename from doc/html/dynsections.js
rename to doc/turbojpeg/dynsections.js
diff --git a/doc/html/folderclosed.svg b/doc/turbojpeg/folderclosed.svg
similarity index 100%
rename from doc/html/folderclosed.svg
rename to doc/turbojpeg/folderclosed.svg
diff --git a/doc/html/folderclosedd.svg b/doc/turbojpeg/folderclosedd.svg
similarity index 100%
rename from doc/html/folderclosedd.svg
rename to doc/turbojpeg/folderclosedd.svg
diff --git a/doc/html/folderopen.svg b/doc/turbojpeg/folderopen.svg
similarity index 100%
rename from doc/html/folderopen.svg
rename to doc/turbojpeg/folderopen.svg
diff --git a/doc/html/folderopend.svg b/doc/turbojpeg/folderopend.svg
similarity index 100%
rename from doc/html/folderopend.svg
rename to doc/turbojpeg/folderopend.svg
diff --git a/doc/html/functions.html b/doc/turbojpeg/functions.html
similarity index 100%
rename from doc/html/functions.html
rename to doc/turbojpeg/functions.html
diff --git a/doc/html/functions_vars.html b/doc/turbojpeg/functions_vars.html
similarity index 100%
rename from doc/html/functions_vars.html
rename to doc/turbojpeg/functions_vars.html
diff --git a/doc/html/group___turbo_j_p_e_g.html b/doc/turbojpeg/group___turbo_j_p_e_g.html
similarity index 100%
rename from doc/html/group___turbo_j_p_e_g.html
rename to doc/turbojpeg/group___turbo_j_p_e_g.html
diff --git a/doc/html/index.html b/doc/turbojpeg/index.html
similarity index 100%
rename from doc/html/index.html
rename to doc/turbojpeg/index.html
diff --git a/doc/html/jquery.js b/doc/turbojpeg/jquery.js
similarity index 100%
rename from doc/html/jquery.js
rename to doc/turbojpeg/jquery.js
diff --git a/doc/html/menu.js b/doc/turbojpeg/menu.js
similarity index 100%
rename from doc/html/menu.js
rename to doc/turbojpeg/menu.js
diff --git a/doc/html/menudata.js b/doc/turbojpeg/menudata.js
similarity index 100%
rename from doc/html/menudata.js
rename to doc/turbojpeg/menudata.js
diff --git a/doc/html/minus.svg b/doc/turbojpeg/minus.svg
similarity index 100%
rename from doc/html/minus.svg
rename to doc/turbojpeg/minus.svg
diff --git a/doc/html/minusd.svg b/doc/turbojpeg/minusd.svg
similarity index 100%
rename from doc/html/minusd.svg
rename to doc/turbojpeg/minusd.svg
diff --git a/doc/html/nav_f.png b/doc/turbojpeg/nav_f.png
similarity index 100%
rename from doc/html/nav_f.png
rename to doc/turbojpeg/nav_f.png
Binary files differ
diff --git a/doc/html/nav_fd.png b/doc/turbojpeg/nav_fd.png
similarity index 100%
rename from doc/html/nav_fd.png
rename to doc/turbojpeg/nav_fd.png
Binary files differ
diff --git a/doc/html/nav_g.png b/doc/turbojpeg/nav_g.png
similarity index 100%
rename from doc/html/nav_g.png
rename to doc/turbojpeg/nav_g.png
Binary files differ
diff --git a/doc/html/nav_h.png b/doc/turbojpeg/nav_h.png
similarity index 100%
rename from doc/html/nav_h.png
rename to doc/turbojpeg/nav_h.png
Binary files differ
diff --git a/doc/html/nav_hd.png b/doc/turbojpeg/nav_hd.png
similarity index 100%
rename from doc/html/nav_hd.png
rename to doc/turbojpeg/nav_hd.png
Binary files differ
diff --git a/doc/html/open.png b/doc/turbojpeg/open.png
similarity index 100%
rename from doc/html/open.png
rename to doc/turbojpeg/open.png
Binary files differ
diff --git a/doc/html/plus.svg b/doc/turbojpeg/plus.svg
similarity index 100%
rename from doc/html/plus.svg
rename to doc/turbojpeg/plus.svg
diff --git a/doc/html/plusd.svg b/doc/turbojpeg/plusd.svg
similarity index 100%
rename from doc/html/plusd.svg
rename to doc/turbojpeg/plusd.svg
diff --git a/doc/html/search/all_0.js b/doc/turbojpeg/search/all_0.js
similarity index 100%
rename from doc/html/search/all_0.js
rename to doc/turbojpeg/search/all_0.js
diff --git a/doc/html/search/all_1.js b/doc/turbojpeg/search/all_1.js
similarity index 100%
rename from doc/html/search/all_1.js
rename to doc/turbojpeg/search/all_1.js
diff --git a/doc/html/search/all_2.js b/doc/turbojpeg/search/all_2.js
similarity index 100%
rename from doc/html/search/all_2.js
rename to doc/turbojpeg/search/all_2.js
diff --git a/doc/html/search/all_3.js b/doc/turbojpeg/search/all_3.js
similarity index 100%
rename from doc/html/search/all_3.js
rename to doc/turbojpeg/search/all_3.js
diff --git a/doc/html/search/all_4.js b/doc/turbojpeg/search/all_4.js
similarity index 100%
rename from doc/html/search/all_4.js
rename to doc/turbojpeg/search/all_4.js
diff --git a/doc/html/search/all_5.js b/doc/turbojpeg/search/all_5.js
similarity index 100%
rename from doc/html/search/all_5.js
rename to doc/turbojpeg/search/all_5.js
diff --git a/doc/html/search/all_6.js b/doc/turbojpeg/search/all_6.js
similarity index 100%
rename from doc/html/search/all_6.js
rename to doc/turbojpeg/search/all_6.js
diff --git a/doc/html/search/all_7.js b/doc/turbojpeg/search/all_7.js
similarity index 100%
rename from doc/html/search/all_7.js
rename to doc/turbojpeg/search/all_7.js
diff --git a/doc/html/search/all_8.js b/doc/turbojpeg/search/all_8.js
similarity index 100%
rename from doc/html/search/all_8.js
rename to doc/turbojpeg/search/all_8.js
diff --git a/doc/html/search/all_9.js b/doc/turbojpeg/search/all_9.js
similarity index 100%
rename from doc/html/search/all_9.js
rename to doc/turbojpeg/search/all_9.js
diff --git a/doc/html/search/all_a.js b/doc/turbojpeg/search/all_a.js
similarity index 100%
rename from doc/html/search/all_a.js
rename to doc/turbojpeg/search/all_a.js
diff --git a/doc/html/search/all_b.js b/doc/turbojpeg/search/all_b.js
similarity index 100%
rename from doc/html/search/all_b.js
rename to doc/turbojpeg/search/all_b.js
diff --git a/doc/html/search/classes_0.js b/doc/turbojpeg/search/classes_0.js
similarity index 100%
rename from doc/html/search/classes_0.js
rename to doc/turbojpeg/search/classes_0.js
diff --git a/doc/html/search/close.svg b/doc/turbojpeg/search/close.svg
similarity index 100%
rename from doc/html/search/close.svg
rename to doc/turbojpeg/search/close.svg
diff --git a/doc/html/search/enums_0.js b/doc/turbojpeg/search/enums_0.js
similarity index 100%
rename from doc/html/search/enums_0.js
rename to doc/turbojpeg/search/enums_0.js
diff --git a/doc/html/search/enumvalues_0.js b/doc/turbojpeg/search/enumvalues_0.js
similarity index 100%
rename from doc/html/search/enumvalues_0.js
rename to doc/turbojpeg/search/enumvalues_0.js
diff --git a/doc/html/search/functions_0.js b/doc/turbojpeg/search/functions_0.js
similarity index 100%
rename from doc/html/search/functions_0.js
rename to doc/turbojpeg/search/functions_0.js
diff --git a/doc/html/search/groups_0.js b/doc/turbojpeg/search/groups_0.js
similarity index 100%
rename from doc/html/search/groups_0.js
rename to doc/turbojpeg/search/groups_0.js
diff --git a/doc/html/search/mag.svg b/doc/turbojpeg/search/mag.svg
similarity index 100%
rename from doc/html/search/mag.svg
rename to doc/turbojpeg/search/mag.svg
diff --git a/doc/html/search/mag_d.svg b/doc/turbojpeg/search/mag_d.svg
similarity index 100%
rename from doc/html/search/mag_d.svg
rename to doc/turbojpeg/search/mag_d.svg
diff --git a/doc/html/search/mag_sel.svg b/doc/turbojpeg/search/mag_sel.svg
similarity index 100%
rename from doc/html/search/mag_sel.svg
rename to doc/turbojpeg/search/mag_sel.svg
diff --git a/doc/html/search/mag_seld.svg b/doc/turbojpeg/search/mag_seld.svg
similarity index 100%
rename from doc/html/search/mag_seld.svg
rename to doc/turbojpeg/search/mag_seld.svg
diff --git a/doc/html/search/search.css b/doc/turbojpeg/search/search.css
similarity index 100%
rename from doc/html/search/search.css
rename to doc/turbojpeg/search/search.css
diff --git a/doc/html/search/search.js b/doc/turbojpeg/search/search.js
similarity index 100%
rename from doc/html/search/search.js
rename to doc/turbojpeg/search/search.js
diff --git a/doc/html/search/searchdata.js b/doc/turbojpeg/search/searchdata.js
similarity index 100%
rename from doc/html/search/searchdata.js
rename to doc/turbojpeg/search/searchdata.js
diff --git a/doc/html/search/typedefs_0.js b/doc/turbojpeg/search/typedefs_0.js
similarity index 100%
rename from doc/html/search/typedefs_0.js
rename to doc/turbojpeg/search/typedefs_0.js
diff --git a/doc/html/search/variables_0.js b/doc/turbojpeg/search/variables_0.js
similarity index 100%
rename from doc/html/search/variables_0.js
rename to doc/turbojpeg/search/variables_0.js
diff --git a/doc/html/search/variables_1.js b/doc/turbojpeg/search/variables_1.js
similarity index 100%
rename from doc/html/search/variables_1.js
rename to doc/turbojpeg/search/variables_1.js
diff --git a/doc/html/search/variables_2.js b/doc/turbojpeg/search/variables_2.js
similarity index 100%
rename from doc/html/search/variables_2.js
rename to doc/turbojpeg/search/variables_2.js
diff --git a/doc/html/search/variables_3.js b/doc/turbojpeg/search/variables_3.js
similarity index 100%
rename from doc/html/search/variables_3.js
rename to doc/turbojpeg/search/variables_3.js
diff --git a/doc/html/search/variables_4.js b/doc/turbojpeg/search/variables_4.js
similarity index 100%
rename from doc/html/search/variables_4.js
rename to doc/turbojpeg/search/variables_4.js
diff --git a/doc/html/search/variables_5.js b/doc/turbojpeg/search/variables_5.js
similarity index 100%
rename from doc/html/search/variables_5.js
rename to doc/turbojpeg/search/variables_5.js
diff --git a/doc/html/search/variables_6.js b/doc/turbojpeg/search/variables_6.js
similarity index 100%
rename from doc/html/search/variables_6.js
rename to doc/turbojpeg/search/variables_6.js
diff --git a/doc/html/search/variables_7.js b/doc/turbojpeg/search/variables_7.js
similarity index 100%
rename from doc/html/search/variables_7.js
rename to doc/turbojpeg/search/variables_7.js
diff --git a/doc/html/search/variables_8.js b/doc/turbojpeg/search/variables_8.js
similarity index 100%
rename from doc/html/search/variables_8.js
rename to doc/turbojpeg/search/variables_8.js
diff --git a/doc/html/search/variables_9.js b/doc/turbojpeg/search/variables_9.js
similarity index 100%
rename from doc/html/search/variables_9.js
rename to doc/turbojpeg/search/variables_9.js
diff --git a/doc/html/splitbar.png b/doc/turbojpeg/splitbar.png
similarity index 100%
rename from doc/html/splitbar.png
rename to doc/turbojpeg/splitbar.png
Binary files differ
diff --git a/doc/html/splitbard.png b/doc/turbojpeg/splitbard.png
similarity index 100%
rename from doc/html/splitbard.png
rename to doc/turbojpeg/splitbard.png
Binary files differ
diff --git a/doc/html/structtjregion.html b/doc/turbojpeg/structtjregion.html
similarity index 100%
rename from doc/html/structtjregion.html
rename to doc/turbojpeg/structtjregion.html
diff --git a/doc/html/structtjscalingfactor.html b/doc/turbojpeg/structtjscalingfactor.html
similarity index 100%
rename from doc/html/structtjscalingfactor.html
rename to doc/turbojpeg/structtjscalingfactor.html
diff --git a/doc/html/structtjtransform.html b/doc/turbojpeg/structtjtransform.html
similarity index 100%
rename from doc/html/structtjtransform.html
rename to doc/turbojpeg/structtjtransform.html
diff --git a/doc/html/sync_off.png b/doc/turbojpeg/sync_off.png
similarity index 100%
rename from doc/html/sync_off.png
rename to doc/turbojpeg/sync_off.png
Binary files differ
diff --git a/doc/html/sync_on.png b/doc/turbojpeg/sync_on.png
similarity index 100%
rename from doc/html/sync_on.png
rename to doc/turbojpeg/sync_on.png
Binary files differ
diff --git a/doc/html/tab_a.png b/doc/turbojpeg/tab_a.png
similarity index 100%
rename from doc/html/tab_a.png
rename to doc/turbojpeg/tab_a.png
Binary files differ
diff --git a/doc/html/tab_ad.png b/doc/turbojpeg/tab_ad.png
similarity index 100%
rename from doc/html/tab_ad.png
rename to doc/turbojpeg/tab_ad.png
Binary files differ
diff --git a/doc/html/tab_b.png b/doc/turbojpeg/tab_b.png
similarity index 100%
rename from doc/html/tab_b.png
rename to doc/turbojpeg/tab_b.png
Binary files differ
diff --git a/doc/html/tab_bd.png b/doc/turbojpeg/tab_bd.png
similarity index 100%
rename from doc/html/tab_bd.png
rename to doc/turbojpeg/tab_bd.png
Binary files differ
diff --git a/doc/html/tab_h.png b/doc/turbojpeg/tab_h.png
similarity index 100%
rename from doc/html/tab_h.png
rename to doc/turbojpeg/tab_h.png
Binary files differ
diff --git a/doc/html/tab_hd.png b/doc/turbojpeg/tab_hd.png
similarity index 100%
rename from doc/html/tab_hd.png
rename to doc/turbojpeg/tab_hd.png
Binary files differ
diff --git a/doc/html/tab_s.png b/doc/turbojpeg/tab_s.png
similarity index 100%
rename from doc/html/tab_s.png
rename to doc/turbojpeg/tab_s.png
Binary files differ
diff --git a/doc/html/tab_sd.png b/doc/turbojpeg/tab_sd.png
similarity index 100%
rename from doc/html/tab_sd.png
rename to doc/turbojpeg/tab_sd.png
Binary files differ
diff --git a/doc/html/tabs.css b/doc/turbojpeg/tabs.css
similarity index 100%
rename from doc/html/tabs.css
rename to doc/turbojpeg/tabs.css
diff --git a/doc/html/topics.html b/doc/turbojpeg/topics.html
similarity index 100%
rename from doc/html/topics.html
rename to doc/turbojpeg/topics.html
diff --git a/usage.txt b/doc/usage.txt
similarity index 100%
rename from usage.txt
rename to doc/usage.txt
diff --git a/wizard.txt b/doc/wizard.txt
similarity index 100%
rename from wizard.txt
rename to doc/wizard.txt
diff --git a/wrjpgcom.1 b/doc/wrjpgcom.1
similarity index 100%
rename from wrjpgcom.1
rename to doc/wrjpgcom.1
diff --git a/doxygen-extra.css b/doxygen-extra.css
deleted file mode 100644
index be54168..0000000
--- a/doxygen-extra.css
+++ /dev/null
@@ -1,7 +0,0 @@
-code {
-	color: #4665A2;
-}
-
-th.markdownTableHeadNone {
-	color: black;
-}
diff --git a/fuzz/CMakeLists.txt b/fuzz/CMakeLists.txt
index a08cb46..08f2f67 100644
--- a/fuzz/CMakeLists.txt
+++ b/fuzz/CMakeLists.txt
@@ -25,8 +25,9 @@
   "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UC}}")
 message(STATUS "C++ Compiler flags = ${EFFECTIVE_CXX_FLAGS}")
 
-add_executable(cjpeg_fuzzer${FUZZER_SUFFIX} cjpeg.cc ../cdjpeg.c ../rdbmp.c
-  ../rdgif.c ../rdppm.c ../rdswitch.c ../rdtarga.c)
+add_executable(cjpeg_fuzzer${FUZZER_SUFFIX} cjpeg.cc ../src/cdjpeg.c
+  ../src/rdbmp.c ../src/rdgif.c ../src/rdppm.c ../src/rdswitch.c
+  ../src/rdtarga.c)
 set_property(TARGET cjpeg_fuzzer${FUZZER_SUFFIX} PROPERTY COMPILE_FLAGS
   ${COMPILE_FLAGS})
 target_link_libraries(cjpeg_fuzzer${FUZZER_SUFFIX} ${FUZZ_LIBRARY} jpeg-static)
diff --git a/fuzz/cjpeg.cc b/fuzz/cjpeg.cc
index ee7b7ab..8a83c3d 100644
--- a/fuzz/cjpeg.cc
+++ b/fuzz/cjpeg.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (C)2021 D. R. Commander.  All Rights Reserved.
+ * Copyright (C)2021, 2024 D. R. Commander.  All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -32,7 +32,7 @@
 #define main  cjpeg_main
 #define CJPEG_FUZZER
 extern "C" {
-#include "../cjpeg.c"
+#include "../src/cjpeg.c"
 }
 #undef main
 #undef CJPEG_FUZZER
diff --git a/turbojpeg-jni.c b/java/turbojpeg-jni.c
similarity index 98%
rename from turbojpeg-jni.c
rename to java/turbojpeg-jni.c
index 32186f3..ca9fb54 100644
--- a/turbojpeg-jni.c
+++ b/java/turbojpeg-jni.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C)2011-2023 D. R. Commander.  All Rights Reserved.
+ * Copyright (C)2011-2024 D. R. Commander.  All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -30,10 +30,10 @@
 #include "turbojpeg.h"
 #include "jinclude.h"
 #include <jni.h>
-#include "java/org_libjpegturbo_turbojpeg_TJCompressor.h"
-#include "java/org_libjpegturbo_turbojpeg_TJDecompressor.h"
-#include "java/org_libjpegturbo_turbojpeg_TJTransformer.h"
-#include "java/org_libjpegturbo_turbojpeg_TJ.h"
+#include "org_libjpegturbo_turbojpeg_TJCompressor.h"
+#include "org_libjpegturbo_turbojpeg_TJDecompressor.h"
+#include "org_libjpegturbo_turbojpeg_TJTransformer.h"
+#include "org_libjpegturbo_turbojpeg_TJ.h"
 
 #define BAILIF0(f) { \
   if (!(f) || (*env)->ExceptionCheck(env)) { \
diff --git a/release/installer.nsi.in b/release/installer.nsi.in
index 0fdd2ed..52cfb8f 100644
--- a/release/installer.nsi.in
+++ b/release/installer.nsi.in
@@ -82,28 +82,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@\src\jerror.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\src\jmorecfg.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\src\jpeglib.h"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\src\turbojpeg.h"
 	SetOutPath $INSTDIR\doc
 	File "@CMAKE_CURRENT_SOURCE_DIR@\README.ijg"
 	File "@CMAKE_CURRENT_SOURCE_DIR@\README.md"
 	File "@CMAKE_CURRENT_SOURCE_DIR@\LICENSE.md"
-	File "@CMAKE_CURRENT_SOURCE_DIR@\example.c"
-	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@\src\example.c"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\libjpeg.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\structure.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\usage.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\wizard.txt"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\src\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@\doc\cjpeg.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\djpeg.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\jpegtran.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\rdjpgcom.1"
+	File "@CMAKE_CURRENT_SOURCE_DIR@\doc\wrjpgcom.1"
 !endif
 
 	WriteRegStr HKLM "SOFTWARE\@INST_REG_NAME@ @VERSION@" "Install_Dir" "$INSTDIR"
diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt
index 5ca8a8b..3cfa52f 100644
--- a/sharedlib/CMakeLists.txt
+++ b/sharedlib/CMakeLists.txt
@@ -82,40 +82,41 @@
 
 # Compile a separate version of these source files with 12-bit and 16-bit data
 # precision.
-add_library(cjpeg12 OBJECT ../rdgif.c ../rdppm.c)
+add_library(cjpeg12 OBJECT ../src/rdgif.c ../src/rdppm.c)
 set_property(TARGET cjpeg12 PROPERTY COMPILE_FLAGS
   "-DBITS_IN_JSAMPLE=12 -DGIF_SUPPORTED -DPPM_SUPPORTED")
-add_library(cjpeg16 OBJECT ../rdgif.c ../rdppm.c)
+add_library(cjpeg16 OBJECT ../src/rdgif.c ../src/rdppm.c)
 set_property(TARGET cjpeg16 PROPERTY COMPILE_FLAGS
   "-DBITS_IN_JSAMPLE=16 -DGIF_SUPPORTED -DPPM_SUPPORTED")
-add_executable(cjpeg ../cjpeg.c ../cdjpeg.c ../rdbmp.c ../rdgif.c ../rdppm.c
-  ../rdswitch.c ../rdtarga.c $<TARGET_OBJECTS:cjpeg12>
-  $<TARGET_OBJECTS:cjpeg16>)
+add_executable(cjpeg ../src/cjpeg.c ../src/cdjpeg.c ../src/rdbmp.c
+  ../src/rdgif.c ../src/rdppm.c ../src/rdswitch.c ../src/rdtarga.c
+  $<TARGET_OBJECTS:cjpeg12> $<TARGET_OBJECTS:cjpeg16>)
 set_property(TARGET cjpeg PROPERTY COMPILE_FLAGS ${CDJPEG_COMPILE_FLAGS})
 target_link_libraries(cjpeg jpeg)
 
 # Compile a separate version of these source files with 12-bit and 16-bit data
 # precision.
-add_library(djpeg12 OBJECT ../rdcolmap.c ../wrgif.c ../wrppm.c)
+add_library(djpeg12 OBJECT ../src/rdcolmap.c ../src/wrgif.c ../src/wrppm.c)
 set_property(TARGET djpeg12 PROPERTY COMPILE_FLAGS
   "-DBITS_IN_JSAMPLE=12 -DGIF_SUPPORTED -DPPM_SUPPORTED")
-add_library(djpeg16 OBJECT ../wrppm.c)
+add_library(djpeg16 OBJECT ../src/wrppm.c)
 set_property(TARGET djpeg16 PROPERTY COMPILE_FLAGS
   "-DBITS_IN_JSAMPLE=16 -DPPM_SUPPORTED")
-add_executable(djpeg ../djpeg.c ../cdjpeg.c ../rdcolmap.c ../rdswitch.c
-  ../wrbmp.c ../wrgif.c ../wrppm.c ../wrtarga.c $<TARGET_OBJECTS:djpeg12>
-  $<TARGET_OBJECTS:djpeg16>)
+add_executable(djpeg ../src/djpeg.c ../src/cdjpeg.c ../src/rdcolmap.c
+  ../src/rdswitch.c ../src/wrbmp.c ../src/wrgif.c ../src/wrppm.c
+  ../src/wrtarga.c $<TARGET_OBJECTS:djpeg12> $<TARGET_OBJECTS:djpeg16>)
 set_property(TARGET djpeg PROPERTY COMPILE_FLAGS ${CDJPEG_COMPILE_FLAGS})
 target_link_libraries(djpeg jpeg)
 
-add_executable(jpegtran ../jpegtran.c ../cdjpeg.c ../rdswitch.c ../transupp.c)
+add_executable(jpegtran ../src/jpegtran.c ../src/cdjpeg.c ../src/rdswitch.c
+  ../src/transupp.c)
 target_link_libraries(jpegtran jpeg)
 set_property(TARGET jpegtran PROPERTY COMPILE_FLAGS "${USE_SETMODE}")
 
-add_executable(example ../example.c)
+add_executable(example ../src/example.c)
 target_link_libraries(example jpeg)
 
-add_executable(jcstest ../jcstest.c)
+add_executable(jcstest ../src/jcstest.c)
 target_link_libraries(jcstest jpeg)
 
 install(TARGETS jpeg EXPORT ${CMAKE_PROJECT_NAME}Targets
diff --git a/simd/arm/aarch32/jchuff-neon.c b/simd/arm/aarch32/jchuff-neon.c
index 19d94f7..153da1f 100644
--- a/simd/arm/aarch32/jchuff-neon.c
+++ b/simd/arm/aarch32/jchuff-neon.c
@@ -2,6 +2,7 @@
  * jchuff-neon.c - Huffman entropy encoding (32-bit Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -24,11 +25,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../../jinclude.h"
-#include "../../../jpeglib.h"
-#include "../../../jsimd.h"
-#include "../../../jdct.h"
-#include "../../../jsimddct.h"
+#include "../../../src/jinclude.h"
+#include "../../../src/jpeglib.h"
+#include "../../../src/jsimd.h"
+#include "../../../src/jdct.h"
+#include "../../../src/jsimddct.h"
 #include "../../jsimd.h"
 #include "../jchuff.h"
 #include "neon-compat.h"
diff --git a/simd/arm/aarch32/jsimd.c b/simd/arm/aarch32/jsimd.c
index 04d6452..7c8ea30 100644
--- a/simd/arm/aarch32/jsimd.c
+++ b/simd/arm/aarch32/jsimd.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
  * Copyright (C) 2011, Nokia Corporation and/or its subsidiary(-ies).
- * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, 2022, D. R. Commander.
+ * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, 2022, 2024, D. R. Commander.
  * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
  * Copyright (C) 2019, Google LLC.
  * Copyright (C) 2020, Arm Limited.
@@ -18,11 +18,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../../jinclude.h"
-#include "../../../jpeglib.h"
-#include "../../../jsimd.h"
-#include "../../../jdct.h"
-#include "../../../jsimddct.h"
+#include "../../../src/jinclude.h"
+#include "../../../src/jpeglib.h"
+#include "../../../src/jsimd.h"
+#include "../../../src/jdct.h"
+#include "../../../src/jsimddct.h"
 #include "../../jsimd.h"
 
 #include <ctype.h>
diff --git a/simd/arm/aarch64/jchuff-neon.c b/simd/arm/aarch64/jchuff-neon.c
index 607a116..11bf6da 100644
--- a/simd/arm/aarch64/jchuff-neon.c
+++ b/simd/arm/aarch64/jchuff-neon.c
@@ -2,7 +2,7 @@
  * jchuff-neon.c - Huffman entropy encoding (64-bit Arm Neon)
  *
  * Copyright (C) 2020-2021, Arm Limited.  All Rights Reserved.
- * Copyright (C) 2020, 2022, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2020, 2022, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -25,11 +25,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../../jinclude.h"
-#include "../../../jpeglib.h"
-#include "../../../jsimd.h"
-#include "../../../jdct.h"
-#include "../../../jsimddct.h"
+#include "../../../src/jinclude.h"
+#include "../../../src/jpeglib.h"
+#include "../../../src/jsimd.h"
+#include "../../../src/jdct.h"
+#include "../../../src/jsimddct.h"
 #include "../../jsimd.h"
 #include "../align.h"
 #include "../jchuff.h"
diff --git a/simd/arm/aarch64/jsimd.c b/simd/arm/aarch64/jsimd.c
index 358e159..8a6f30a 100644
--- a/simd/arm/aarch64/jsimd.c
+++ b/simd/arm/aarch64/jsimd.c
@@ -3,7 +3,8 @@
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
  * Copyright (C) 2011, Nokia Corporation and/or its subsidiary(-ies).
- * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, 2020, 2022, D. R. Commander.
+ * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, 2020, 2022, 2024,
+ *           D. R. Commander.
  * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
  * Copyright (C) 2020, Arm Limited.
  *
@@ -17,11 +18,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../../jinclude.h"
-#include "../../../jpeglib.h"
-#include "../../../jsimd.h"
-#include "../../../jdct.h"
-#include "../../../jsimddct.h"
+#include "../../../src/jinclude.h"
+#include "../../../src/jpeglib.h"
+#include "../../../src/jsimd.h"
+#include "../../../src/jdct.h"
+#include "../../../src/jsimddct.h"
 #include "../../jsimd.h"
 
 #include <ctype.h>
diff --git a/simd/arm/jccolor-neon.c b/simd/arm/jccolor-neon.c
index 9fcc62d..d14a7bf 100644
--- a/simd/arm/jccolor-neon.c
+++ b/simd/arm/jccolor-neon.c
@@ -2,7 +2,7 @@
  * jccolor-neon.c - colorspace conversion (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
- * Copyright (C) 2020, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2020, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -22,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 #include "neon-compat.h"
diff --git a/simd/arm/jcgray-neon.c b/simd/arm/jcgray-neon.c
index 71c7b2d..7ec953a 100644
--- a/simd/arm/jcgray-neon.c
+++ b/simd/arm/jcgray-neon.c
@@ -2,6 +2,7 @@
  * jcgray-neon.c - grayscale colorspace conversion (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 
diff --git a/simd/arm/jcphuff-neon.c b/simd/arm/jcphuff-neon.c
index 51db3c5..435f96e 100644
--- a/simd/arm/jcphuff-neon.c
+++ b/simd/arm/jcphuff-neon.c
@@ -3,7 +3,7 @@
  *
  * Copyright (C) 2020-2021, Arm Limited.  All Rights Reserved.
  * Copyright (C) 2022, Matthieu Darbois.  All Rights Reserved.
- * Copyright (C) 2022, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2022, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -23,11 +23,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "neon-compat.h"
 
diff --git a/simd/arm/jcsample-neon.c b/simd/arm/jcsample-neon.c
index 8a3e237..129c3a8 100644
--- a/simd/arm/jcsample-neon.c
+++ b/simd/arm/jcsample-neon.c
@@ -2,6 +2,7 @@
  * jcsample-neon.c - downsampling (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 
diff --git a/simd/arm/jdcolor-neon.c b/simd/arm/jdcolor-neon.c
index 28dbc57..6d233e0 100644
--- a/simd/arm/jdcolor-neon.c
+++ b/simd/arm/jdcolor-neon.c
@@ -2,6 +2,7 @@
  * jdcolor-neon.c - colorspace conversion (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 
diff --git a/simd/arm/jdmerge-neon.c b/simd/arm/jdmerge-neon.c
index 18fb9d8..d668c40 100644
--- a/simd/arm/jdmerge-neon.c
+++ b/simd/arm/jdmerge-neon.c
@@ -2,6 +2,7 @@
  * jdmerge-neon.c - merged upsampling/color conversion (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 
diff --git a/simd/arm/jdsample-neon.c b/simd/arm/jdsample-neon.c
index 90ec678..e7b1ee5 100644
--- a/simd/arm/jdsample-neon.c
+++ b/simd/arm/jdsample-neon.c
@@ -2,7 +2,7 @@
  * jdsample-neon.c - upsampling (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
- * Copyright (C) 2020, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2020, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -22,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 #include <arm_neon.h>
diff --git a/simd/arm/jfdctfst-neon.c b/simd/arm/jfdctfst-neon.c
index bb371be..3d9e847 100644
--- a/simd/arm/jfdctfst-neon.c
+++ b/simd/arm/jfdctfst-neon.c
@@ -2,6 +2,7 @@
  * jfdctfst-neon.c - fast integer FDCT (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 
diff --git a/simd/arm/jfdctint-neon.c b/simd/arm/jfdctint-neon.c
index ccfc07b..bb290ea 100644
--- a/simd/arm/jfdctint-neon.c
+++ b/simd/arm/jfdctint-neon.c
@@ -2,7 +2,7 @@
  * jfdctint-neon.c - accurate integer FDCT (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
- * Copyright (C) 2020, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2020, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -22,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 #include "neon-compat.h"
diff --git a/simd/arm/jidctfst-neon.c b/simd/arm/jidctfst-neon.c
index a91be53..497854c 100644
--- a/simd/arm/jidctfst-neon.c
+++ b/simd/arm/jidctfst-neon.c
@@ -2,6 +2,7 @@
  * jidctfst-neon.c - fast integer IDCT (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 
diff --git a/simd/arm/jidctint-neon.c b/simd/arm/jidctint-neon.c
index d25112e..709e0ea 100644
--- a/simd/arm/jidctint-neon.c
+++ b/simd/arm/jidctint-neon.c
@@ -2,7 +2,7 @@
  * jidctint-neon.c - accurate integer IDCT (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
- * Copyright (C) 2020, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2020, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -22,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 #include "neon-compat.h"
diff --git a/simd/arm/jidctred-neon.c b/simd/arm/jidctred-neon.c
index be9627e..25b1add 100644
--- a/simd/arm/jidctred-neon.c
+++ b/simd/arm/jidctred-neon.c
@@ -2,7 +2,7 @@
  * jidctred-neon.c - reduced-size IDCT (Arm Neon)
  *
  * Copyright (C) 2020, Arm Limited.  All Rights Reserved.
- * Copyright (C) 2020, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2020, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -22,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include "align.h"
 #include "neon-compat.h"
diff --git a/simd/arm/jquanti-neon.c b/simd/arm/jquanti-neon.c
index d5d95d8..d5cc87c 100644
--- a/simd/arm/jquanti-neon.c
+++ b/simd/arm/jquanti-neon.c
@@ -2,6 +2,7 @@
  * jquanti-neon.c - sample data conversion and quantization (Arm Neon)
  *
  * Copyright (C) 2020-2021, Arm Limited.  All Rights Reserved.
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +22,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 #include <arm_neon.h>
diff --git a/simd/i386/jsimd.c b/simd/i386/jsimd.c
index b429b0a..d4786b1 100644
--- a/simd/i386/jsimd.c
+++ b/simd/i386/jsimd.c
@@ -2,7 +2,7 @@
  * jsimd_i386.c
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, 2022-2023, D. R. Commander.
+ * Copyright (C) 2009-2011, 2013-2014, 2016, 2018, 2022-2024, D. R. Commander.
  * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
  *
  * Based on the x86 SIMD extension for IJG JPEG library,
@@ -15,11 +15,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 /*
diff --git a/simd/mips/jsimd.c b/simd/mips/jsimd.c
index c6e789a..6a1f1e0 100644
--- a/simd/mips/jsimd.c
+++ b/simd/mips/jsimd.c
@@ -2,7 +2,8 @@
  * jsimd_mips.c
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014, 2016, 2018, 2020, 2022, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014, 2016, 2018, 2020, 2022, 2024,
+ *           D. R. Commander.
  * Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
  * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
  *
@@ -16,11 +17,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 #include <ctype.h>
diff --git a/simd/mips64/jsimd.c b/simd/mips64/jsimd.c
index 917440b..a2046d4 100644
--- a/simd/mips64/jsimd.c
+++ b/simd/mips64/jsimd.c
@@ -2,7 +2,7 @@
  * jsimd_mips64.c
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014, 2016, 2018, 2022, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014, 2016, 2018, 2022, 2024, D. R. Commander.
  * Copyright (C) 2013-2014, MIPS Technologies, Inc., California.
  * Copyright (C) 2015, 2018, 2022, Matthieu Darbois.
  * Copyright (C) 2016-2018, Loongson Technology Corporation Limited, BeiJing.
@@ -17,11 +17,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 #include <ctype.h>
diff --git a/simd/mips64/jsimd_mmi.h b/simd/mips64/jsimd_mmi.h
index 5e4261c..1ae71bf 100644
--- a/simd/mips64/jsimd_mmi.h
+++ b/simd/mips64/jsimd_mmi.h
@@ -7,6 +7,7 @@
  *           CaiWanwei   <caiwanwei@loongson.cn>
  *           SunZhangzhi <sunzhangzhi-cq@loongson.cn>
  *           QingfaLiu   <liuqingfa-hf@loongson.cn>
+ * Copyright (C) 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -26,9 +27,9 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jdct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jdct.h"
 #include "loongson-mmintrin.h"
 
 
diff --git a/simd/nasm/jsimdcfg.inc.h b/simd/nasm/jsimdcfg.inc.h
index bf2a45a..ed3f9c2 100644
--- a/simd/nasm/jsimdcfg.inc.h
+++ b/simd/nasm/jsimdcfg.inc.h
@@ -12,9 +12,9 @@
 
 #define JPEG_INTERNALS
 
-#include "../jpeglib.h"
+#include "../src/jpeglib.h"
 #include "../jconfig.h"
-#include "../jmorecfg.h"
+#include "../src/jmorecfg.h"
 #include "jsimd.h"
 
 ;
diff --git a/simd/powerpc/jsimd.c b/simd/powerpc/jsimd.c
index 461f603..e8c6c51 100644
--- a/simd/powerpc/jsimd.c
+++ b/simd/powerpc/jsimd.c
@@ -2,7 +2,7 @@
  * jsimd_powerpc.c
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014-2016, 2018, 2022, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014-2016, 2018, 2022, 2024, D. R. Commander.
  * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
  *
  * Based on the x86 SIMD extension for IJG JPEG library,
@@ -20,11 +20,11 @@
 #endif
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 #include <ctype.h>
diff --git a/simd/powerpc/jsimd_altivec.h b/simd/powerpc/jsimd_altivec.h
index e8bdb06..0114f70 100644
--- a/simd/powerpc/jsimd_altivec.h
+++ b/simd/powerpc/jsimd_altivec.h
@@ -1,7 +1,7 @@
 /*
  * AltiVec optimizations for libjpeg-turbo
  *
- * Copyright (C) 2014-2015, D. R. Commander.  All Rights Reserved.
+ * Copyright (C) 2014-2015, 2024, D. R. Commander.  All Rights Reserved.
  *
  * This software is provided 'as-is', without any express or implied
  * warranty.  In no event will the authors be held liable for any damages
@@ -21,11 +21,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 #include <altivec.h>
 
diff --git a/simd/x86_64/jsimd.c b/simd/x86_64/jsimd.c
index 3f5ee77..038cf0f 100644
--- a/simd/x86_64/jsimd.c
+++ b/simd/x86_64/jsimd.c
@@ -2,7 +2,7 @@
  * jsimd_x86_64.c
  *
  * Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
- * Copyright (C) 2009-2011, 2014, 2016, 2018, 2022-2023, D. R. Commander.
+ * Copyright (C) 2009-2011, 2014, 2016, 2018, 2022-2024, D. R. Commander.
  * Copyright (C) 2015-2016, 2018, 2022, Matthieu Darbois.
  *
  * Based on the x86 SIMD extension for IJG JPEG library,
@@ -15,11 +15,11 @@
  */
 
 #define JPEG_INTERNALS
-#include "../../jinclude.h"
-#include "../../jpeglib.h"
-#include "../../jsimd.h"
-#include "../../jdct.h"
-#include "../../jsimddct.h"
+#include "../../src/jinclude.h"
+#include "../../src/jpeglib.h"
+#include "../../src/jsimd.h"
+#include "../../src/jdct.h"
+#include "../../src/jsimddct.h"
 #include "../jsimd.h"
 
 /*
diff --git a/cderror.h b/src/cderror.h
similarity index 100%
rename from cderror.h
rename to src/cderror.h
diff --git a/cdjpeg.c b/src/cdjpeg.c
similarity index 100%
rename from cdjpeg.c
rename to src/cdjpeg.c
diff --git a/cdjpeg.h b/src/cdjpeg.h
similarity index 100%
rename from cdjpeg.h
rename to src/cdjpeg.h
diff --git a/cjpeg.c b/src/cjpeg.c
similarity index 100%
rename from cjpeg.c
rename to src/cjpeg.c
diff --git a/cmyk.h b/src/cmyk.h
similarity index 100%
rename from cmyk.h
rename to src/cmyk.h
diff --git a/djpeg.c b/src/djpeg.c
similarity index 100%
rename from djpeg.c
rename to src/djpeg.c
diff --git a/example.c b/src/example.c
similarity index 100%
rename from example.c
rename to src/example.c
diff --git a/jaricom.c b/src/jaricom.c
similarity index 100%
rename from jaricom.c
rename to src/jaricom.c
diff --git a/jcapimin.c b/src/jcapimin.c
similarity index 100%
rename from jcapimin.c
rename to src/jcapimin.c
diff --git a/jcapistd.c b/src/jcapistd.c
similarity index 100%
rename from jcapistd.c
rename to src/jcapistd.c
diff --git a/jcarith.c b/src/jcarith.c
similarity index 100%
rename from jcarith.c
rename to src/jcarith.c
diff --git a/jccoefct.c b/src/jccoefct.c
similarity index 100%
rename from jccoefct.c
rename to src/jccoefct.c
diff --git a/jccolext.c b/src/jccolext.c
similarity index 100%
rename from jccolext.c
rename to src/jccolext.c
diff --git a/jccolor.c b/src/jccolor.c
similarity index 100%
rename from jccolor.c
rename to src/jccolor.c
diff --git a/jcdctmgr.c b/src/jcdctmgr.c
similarity index 100%
rename from jcdctmgr.c
rename to src/jcdctmgr.c
diff --git a/jcdiffct.c b/src/jcdiffct.c
similarity index 100%
rename from jcdiffct.c
rename to src/jcdiffct.c
diff --git a/jchuff.c b/src/jchuff.c
similarity index 100%
rename from jchuff.c
rename to src/jchuff.c
diff --git a/jchuff.h b/src/jchuff.h
similarity index 100%
rename from jchuff.h
rename to src/jchuff.h
diff --git a/jcicc.c b/src/jcicc.c
similarity index 100%
rename from jcicc.c
rename to src/jcicc.c
diff --git a/jcinit.c b/src/jcinit.c
similarity index 100%
rename from jcinit.c
rename to src/jcinit.c
diff --git a/jclhuff.c b/src/jclhuff.c
similarity index 100%
rename from jclhuff.c
rename to src/jclhuff.c
diff --git a/jclossls.c b/src/jclossls.c
similarity index 100%
rename from jclossls.c
rename to src/jclossls.c
diff --git a/jcmainct.c b/src/jcmainct.c
similarity index 100%
rename from jcmainct.c
rename to src/jcmainct.c
diff --git a/jcmarker.c b/src/jcmarker.c
similarity index 100%
rename from jcmarker.c
rename to src/jcmarker.c
diff --git a/jcmaster.c b/src/jcmaster.c
similarity index 100%
rename from jcmaster.c
rename to src/jcmaster.c
diff --git a/jcmaster.h b/src/jcmaster.h
similarity index 100%
rename from jcmaster.h
rename to src/jcmaster.h
diff --git a/jcomapi.c b/src/jcomapi.c
similarity index 100%
rename from jcomapi.c
rename to src/jcomapi.c
diff --git a/jconfig.h.in b/src/jconfig.h.in
similarity index 100%
rename from jconfig.h.in
rename to src/jconfig.h.in
diff --git a/jconfig.txt b/src/jconfig.txt
similarity index 100%
rename from jconfig.txt
rename to src/jconfig.txt
diff --git a/jconfigint.h.in b/src/jconfigint.h.in
similarity index 100%
rename from jconfigint.h.in
rename to src/jconfigint.h.in
diff --git a/jcparam.c b/src/jcparam.c
similarity index 100%
rename from jcparam.c
rename to src/jcparam.c
diff --git a/jcphuff.c b/src/jcphuff.c
similarity index 100%
rename from jcphuff.c
rename to src/jcphuff.c
diff --git a/jcprepct.c b/src/jcprepct.c
similarity index 100%
rename from jcprepct.c
rename to src/jcprepct.c
diff --git a/jcsample.c b/src/jcsample.c
similarity index 100%
rename from jcsample.c
rename to src/jcsample.c
diff --git a/jcstest.c b/src/jcstest.c
similarity index 100%
rename from jcstest.c
rename to src/jcstest.c
diff --git a/jctrans.c b/src/jctrans.c
similarity index 100%
rename from jctrans.c
rename to src/jctrans.c
diff --git a/jdapimin.c b/src/jdapimin.c
similarity index 100%
rename from jdapimin.c
rename to src/jdapimin.c
diff --git a/jdapistd.c b/src/jdapistd.c
similarity index 100%
rename from jdapistd.c
rename to src/jdapistd.c
diff --git a/jdarith.c b/src/jdarith.c
similarity index 100%
rename from jdarith.c
rename to src/jdarith.c
diff --git a/jdatadst-tj.c b/src/jdatadst-tj.c
similarity index 100%
rename from jdatadst-tj.c
rename to src/jdatadst-tj.c
diff --git a/jdatadst.c b/src/jdatadst.c
similarity index 100%
rename from jdatadst.c
rename to src/jdatadst.c
diff --git a/jdatasrc-tj.c b/src/jdatasrc-tj.c
similarity index 100%
rename from jdatasrc-tj.c
rename to src/jdatasrc-tj.c
diff --git a/jdatasrc.c b/src/jdatasrc.c
similarity index 100%
rename from jdatasrc.c
rename to src/jdatasrc.c
diff --git a/jdcoefct.c b/src/jdcoefct.c
similarity index 100%
rename from jdcoefct.c
rename to src/jdcoefct.c
diff --git a/jdcoefct.h b/src/jdcoefct.h
similarity index 100%
rename from jdcoefct.h
rename to src/jdcoefct.h
diff --git a/jdcol565.c b/src/jdcol565.c
similarity index 100%
rename from jdcol565.c
rename to src/jdcol565.c
diff --git a/jdcolext.c b/src/jdcolext.c
similarity index 100%
rename from jdcolext.c
rename to src/jdcolext.c
diff --git a/jdcolor.c b/src/jdcolor.c
similarity index 100%
rename from jdcolor.c
rename to src/jdcolor.c
diff --git a/jdct.h b/src/jdct.h
similarity index 100%
rename from jdct.h
rename to src/jdct.h
diff --git a/jddctmgr.c b/src/jddctmgr.c
similarity index 100%
rename from jddctmgr.c
rename to src/jddctmgr.c
diff --git a/jddiffct.c b/src/jddiffct.c
similarity index 100%
rename from jddiffct.c
rename to src/jddiffct.c
diff --git a/jdhuff.c b/src/jdhuff.c
similarity index 100%
rename from jdhuff.c
rename to src/jdhuff.c
diff --git a/jdhuff.h b/src/jdhuff.h
similarity index 100%
rename from jdhuff.h
rename to src/jdhuff.h
diff --git a/jdicc.c b/src/jdicc.c
similarity index 100%
rename from jdicc.c
rename to src/jdicc.c
diff --git a/jdinput.c b/src/jdinput.c
similarity index 100%
rename from jdinput.c
rename to src/jdinput.c
diff --git a/jdlhuff.c b/src/jdlhuff.c
similarity index 100%
rename from jdlhuff.c
rename to src/jdlhuff.c
diff --git a/jdlossls.c b/src/jdlossls.c
similarity index 100%
rename from jdlossls.c
rename to src/jdlossls.c
diff --git a/jdmainct.c b/src/jdmainct.c
similarity index 100%
rename from jdmainct.c
rename to src/jdmainct.c
diff --git a/jdmainct.h b/src/jdmainct.h
similarity index 100%
rename from jdmainct.h
rename to src/jdmainct.h
diff --git a/jdmarker.c b/src/jdmarker.c
similarity index 100%
rename from jdmarker.c
rename to src/jdmarker.c
diff --git a/jdmaster.c b/src/jdmaster.c
similarity index 100%
rename from jdmaster.c
rename to src/jdmaster.c
diff --git a/jdmaster.h b/src/jdmaster.h
similarity index 100%
rename from jdmaster.h
rename to src/jdmaster.h
diff --git a/jdmerge.c b/src/jdmerge.c
similarity index 100%
rename from jdmerge.c
rename to src/jdmerge.c
diff --git a/jdmerge.h b/src/jdmerge.h
similarity index 100%
rename from jdmerge.h
rename to src/jdmerge.h
diff --git a/jdmrg565.c b/src/jdmrg565.c
similarity index 100%
rename from jdmrg565.c
rename to src/jdmrg565.c
diff --git a/jdmrgext.c b/src/jdmrgext.c
similarity index 100%
rename from jdmrgext.c
rename to src/jdmrgext.c
diff --git a/jdphuff.c b/src/jdphuff.c
similarity index 100%
rename from jdphuff.c
rename to src/jdphuff.c
diff --git a/jdpostct.c b/src/jdpostct.c
similarity index 100%
rename from jdpostct.c
rename to src/jdpostct.c
diff --git a/jdsample.c b/src/jdsample.c
similarity index 100%
rename from jdsample.c
rename to src/jdsample.c
diff --git a/jdsample.h b/src/jdsample.h
similarity index 100%
rename from jdsample.h
rename to src/jdsample.h
diff --git a/jdtrans.c b/src/jdtrans.c
similarity index 100%
rename from jdtrans.c
rename to src/jdtrans.c
diff --git a/jerror.c b/src/jerror.c
similarity index 100%
rename from jerror.c
rename to src/jerror.c
diff --git a/jerror.h b/src/jerror.h
similarity index 100%
rename from jerror.h
rename to src/jerror.h
diff --git a/jfdctflt.c b/src/jfdctflt.c
similarity index 100%
rename from jfdctflt.c
rename to src/jfdctflt.c
diff --git a/jfdctfst.c b/src/jfdctfst.c
similarity index 100%
rename from jfdctfst.c
rename to src/jfdctfst.c
diff --git a/jfdctint.c b/src/jfdctint.c
similarity index 100%
rename from jfdctint.c
rename to src/jfdctint.c
diff --git a/jidctflt.c b/src/jidctflt.c
similarity index 100%
rename from jidctflt.c
rename to src/jidctflt.c
diff --git a/jidctfst.c b/src/jidctfst.c
similarity index 100%
rename from jidctfst.c
rename to src/jidctfst.c
diff --git a/jidctint.c b/src/jidctint.c
similarity index 100%
rename from jidctint.c
rename to src/jidctint.c
diff --git a/jidctred.c b/src/jidctred.c
similarity index 100%
rename from jidctred.c
rename to src/jidctred.c
diff --git a/jinclude.h b/src/jinclude.h
similarity index 100%
rename from jinclude.h
rename to src/jinclude.h
diff --git a/jlossls.h b/src/jlossls.h
similarity index 100%
rename from jlossls.h
rename to src/jlossls.h
diff --git a/jmemmgr.c b/src/jmemmgr.c
similarity index 100%
rename from jmemmgr.c
rename to src/jmemmgr.c
diff --git a/jmemnobs.c b/src/jmemnobs.c
similarity index 100%
rename from jmemnobs.c
rename to src/jmemnobs.c
diff --git a/jmemsys.h b/src/jmemsys.h
similarity index 100%
rename from jmemsys.h
rename to src/jmemsys.h
diff --git a/jmorecfg.h b/src/jmorecfg.h
similarity index 100%
rename from jmorecfg.h
rename to src/jmorecfg.h
diff --git a/jpeg_nbits.c b/src/jpeg_nbits.c
similarity index 100%
rename from jpeg_nbits.c
rename to src/jpeg_nbits.c
diff --git a/jpeg_nbits.h b/src/jpeg_nbits.h
similarity index 100%
rename from jpeg_nbits.h
rename to src/jpeg_nbits.h
diff --git a/jpegapicomp.h b/src/jpegapicomp.h
similarity index 100%
rename from jpegapicomp.h
rename to src/jpegapicomp.h
diff --git a/jpegint.h b/src/jpegint.h
similarity index 100%
rename from jpegint.h
rename to src/jpegint.h
diff --git a/jpeglib.h b/src/jpeglib.h
similarity index 100%
rename from jpeglib.h
rename to src/jpeglib.h
diff --git a/jpegtran.c b/src/jpegtran.c
similarity index 100%
rename from jpegtran.c
rename to src/jpegtran.c
diff --git a/jquant1.c b/src/jquant1.c
similarity index 100%
rename from jquant1.c
rename to src/jquant1.c
diff --git a/jquant2.c b/src/jquant2.c
similarity index 100%
rename from jquant2.c
rename to src/jquant2.c
diff --git a/jsamplecomp.h b/src/jsamplecomp.h
similarity index 100%
rename from jsamplecomp.h
rename to src/jsamplecomp.h
diff --git a/jsimd.h b/src/jsimd.h
similarity index 100%
rename from jsimd.h
rename to src/jsimd.h
diff --git a/jsimddct.h b/src/jsimddct.h
similarity index 100%
rename from jsimddct.h
rename to src/jsimddct.h
diff --git a/jstdhuff.c b/src/jstdhuff.c
similarity index 100%
rename from jstdhuff.c
rename to src/jstdhuff.c
diff --git a/jutils.c b/src/jutils.c
similarity index 100%
rename from jutils.c
rename to src/jutils.c
diff --git a/jversion.h.in b/src/jversion.h.in
similarity index 100%
rename from jversion.h.in
rename to src/jversion.h.in
diff --git a/libjpeg.map.in b/src/libjpeg.map.in
similarity index 100%
rename from libjpeg.map.in
rename to src/libjpeg.map.in
diff --git a/md5/CMakeLists.txt b/src/md5/CMakeLists.txt
similarity index 100%
rename from md5/CMakeLists.txt
rename to src/md5/CMakeLists.txt
diff --git a/md5/md5.c b/src/md5/md5.c
similarity index 100%
rename from md5/md5.c
rename to src/md5/md5.c
diff --git a/md5/md5.h b/src/md5/md5.h
similarity index 100%
rename from md5/md5.h
rename to src/md5/md5.h
diff --git a/md5/md5cmp.c b/src/md5/md5cmp.c
similarity index 100%
rename from md5/md5cmp.c
rename to src/md5/md5cmp.c
diff --git a/md5/md5hl.c b/src/md5/md5hl.c
similarity index 100%
rename from md5/md5hl.c
rename to src/md5/md5hl.c
diff --git a/rdbmp.c b/src/rdbmp.c
similarity index 100%
rename from rdbmp.c
rename to src/rdbmp.c
diff --git a/rdcolmap.c b/src/rdcolmap.c
similarity index 100%
rename from rdcolmap.c
rename to src/rdcolmap.c
diff --git a/rdgif.c b/src/rdgif.c
similarity index 100%
rename from rdgif.c
rename to src/rdgif.c
diff --git a/rdjpgcom.c b/src/rdjpgcom.c
similarity index 100%
rename from rdjpgcom.c
rename to src/rdjpgcom.c
diff --git a/rdppm.c b/src/rdppm.c
similarity index 100%
rename from rdppm.c
rename to src/rdppm.c
diff --git a/rdswitch.c b/src/rdswitch.c
similarity index 100%
rename from rdswitch.c
rename to src/rdswitch.c
diff --git a/rdtarga.c b/src/rdtarga.c
similarity index 100%
rename from rdtarga.c
rename to src/rdtarga.c
diff --git a/strtest.c b/src/strtest.c
similarity index 100%
rename from strtest.c
rename to src/strtest.c
diff --git a/tjbench.c b/src/tjbench.c
similarity index 100%
rename from tjbench.c
rename to src/tjbench.c
diff --git a/tjexample.c b/src/tjexample.c
similarity index 100%
rename from tjexample.c
rename to src/tjexample.c
diff --git a/tjunittest.c b/src/tjunittest.c
similarity index 100%
rename from tjunittest.c
rename to src/tjunittest.c
diff --git a/tjutil.c b/src/tjutil.c
similarity index 100%
rename from tjutil.c
rename to src/tjutil.c
diff --git a/tjutil.h b/src/tjutil.h
similarity index 100%
rename from tjutil.h
rename to src/tjutil.h
diff --git a/transupp.c b/src/transupp.c
similarity index 100%
rename from transupp.c
rename to src/transupp.c
diff --git a/transupp.h b/src/transupp.h
similarity index 100%
rename from transupp.h
rename to src/transupp.h
diff --git a/turbojpeg-mapfile b/src/turbojpeg-mapfile
similarity index 100%
rename from turbojpeg-mapfile
rename to src/turbojpeg-mapfile
diff --git a/turbojpeg-mapfile.jni b/src/turbojpeg-mapfile.jni
similarity index 100%
rename from turbojpeg-mapfile.jni
rename to src/turbojpeg-mapfile.jni
diff --git a/turbojpeg-mp.c b/src/turbojpeg-mp.c
similarity index 100%
rename from turbojpeg-mp.c
rename to src/turbojpeg-mp.c
diff --git a/turbojpeg.c b/src/turbojpeg.c
similarity index 100%
rename from turbojpeg.c
rename to src/turbojpeg.c
diff --git a/turbojpeg.h b/src/turbojpeg.h
similarity index 100%
rename from turbojpeg.h
rename to src/turbojpeg.h
diff --git a/wrbmp.c b/src/wrbmp.c
similarity index 100%
rename from wrbmp.c
rename to src/wrbmp.c
diff --git a/wrgif.c b/src/wrgif.c
similarity index 100%
rename from wrgif.c
rename to src/wrgif.c
diff --git a/wrjpgcom.c b/src/wrjpgcom.c
similarity index 100%
rename from wrjpgcom.c
rename to src/wrjpgcom.c
diff --git a/wrppm.c b/src/wrppm.c
similarity index 100%
rename from wrppm.c
rename to src/wrppm.c
diff --git a/wrtarga.c b/src/wrtarga.c
similarity index 100%
rename from wrtarga.c
rename to src/wrtarga.c