mirror of
				https://git.code.sf.net/p/libpng/code.git
				synced 2025-07-10 18:04:09 +02:00 
			
		
		
		
	Merge branch 'libpng15'
Conflicts: ANNOUNCE CHANGES CMakeLists.txt INSTALL LICENSE Makefile.am Makefile.in README TODO aclocal.m4 config.guess config.h.in config.sub configure configure.ac contrib/gregbook/COPYING contrib/gregbook/Makefile.sgi contrib/gregbook/Makefile.unx contrib/gregbook/README contrib/gregbook/readpng2.c contrib/gregbook/rpng-x.c contrib/gregbook/rpng2-win.c contrib/gregbook/rpng2-x.c contrib/pngminim/decoder/README contrib/pngminim/decoder/makefile contrib/pngminim/decoder/pngusr.h contrib/pngminim/encoder/README contrib/pngminim/encoder/makefile contrib/pngminim/encoder/pngusr.h contrib/pngminim/preader/README contrib/pngminim/preader/makefile contrib/pngminim/preader/pngusr.h contrib/pngminus/makefile.std contrib/pngsuite/README contrib/visupng/PngFile.c contrib/visupng/PngFile.h contrib/visupng/VisualPng.c depcomp example.c install-sh libpng-1.4.9beta01.txt libpng-manual.txt libpng.3 libpng.txt libpngpf.3 ltmain.sh png.5 png.c png.h pngconf.h pngerror.c pngget.c pngmem.c pngpread.c pngpriv.h pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtest.c pngtest.png pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c projects/visualc6/README.txt projects/visualc6/libpng.dsp projects/visualc6/pngtest.dsp projects/visualc71/README.txt projects/visualc71/libpng.sln projects/visualc71/libpng.vcproj projects/visualc71/pngtest.vcproj projects/visualc71/zlib.vcproj projects/vstudio/libpng/libpng.vcxproj projects/vstudio/pngtest/pngtest.vcxproj projects/vstudio/readme.txt projects/vstudio/vstudio.sln projects/vstudio/zlib.props projects/vstudio/zlib/zlib.vcxproj scripts/README.txt scripts/descrip.mms scripts/libpng-config-head.in scripts/libpng.pc.in scripts/makefile.32sunu scripts/makefile.64sunu scripts/makefile.aix scripts/makefile.amiga scripts/makefile.bc32 scripts/makefile.beos scripts/makefile.bor scripts/makefile.cegcc scripts/makefile.cygwin scripts/makefile.darwin scripts/makefile.dec scripts/makefile.dj2 scripts/makefile.elf scripts/makefile.freebsd scripts/makefile.gcc scripts/makefile.hp64 scripts/makefile.hpgcc scripts/makefile.hpux scripts/makefile.ibmc scripts/makefile.intel scripts/makefile.knr scripts/makefile.linux scripts/makefile.mingw scripts/makefile.mips scripts/makefile.msc scripts/makefile.ne12bsd scripts/makefile.netbsd scripts/makefile.openbsd scripts/makefile.os2 scripts/makefile.sco scripts/makefile.sggcc scripts/makefile.sgi scripts/makefile.so9 scripts/makefile.solaris scripts/makefile.solaris-x86 scripts/makefile.std scripts/makefile.sunos scripts/makefile.tc3 scripts/makefile.vcwin32 scripts/makefile.watcom scripts/makevms.com scripts/png32ce.def scripts/pngos2.def
This commit is contained in:
		
						commit
						715423c8d6
					
				
							
								
								
									
										39
									
								
								ANNOUNCE
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								ANNOUNCE
									
									
									
									
									
								
							| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| Libpng 1.4.9beta01 - September 2, 2011 | ||||
| Libpng 1.5.10beta01 - February 21, 2012 | ||||
| 
 | ||||
| This is not intended to be a public release.  It will be replaced | ||||
| within a few weeks by a public version or by another test version. | ||||
| @ -9,31 +9,36 @@ Files available for download: | ||||
| Source files with LF line endings (for Unix/Linux) and with a | ||||
| "configure" script | ||||
| 
 | ||||
|    1.4.9beta01.tar.xz (LZMA-compressed, recommended) | ||||
|    1.4.9beta01.tar.gz | ||||
|    1.4.9beta01.tar.bz2 | ||||
|    1.5.10beta01.tar.xz (LZMA-compressed, recommended) | ||||
|    1.5.10beta01.tar.gz | ||||
|    1.5.10beta01.tar.bz2 | ||||
| 
 | ||||
| Source files with CRLF line endings (for Windows), without the | ||||
| "configure" script | ||||
| 
 | ||||
|    lp149b01.7z (LZMA-compressed, recommended) | ||||
|    lp149b01.zip | ||||
|    lp1510b01.7z  (LZMA-compressed, recommended) | ||||
|    lp1510b01.zip | ||||
| 
 | ||||
| Other information: | ||||
| 
 | ||||
|    1.4.9beta01-README.txt | ||||
|    1.4.9beta01-LICENSE.txt | ||||
|    1.5.10beta01-README.txt | ||||
|    1.5.10beta01-LICENSE.txt | ||||
| 
 | ||||
| Changes since the last public release (1.4.8): | ||||
| Changes since the last public release (1.5.9): | ||||
| 
 | ||||
| version 1.4.9beta01 [September 2, 2011] | ||||
|   Added vstudio/* and CMakeLists to EXTRA_DIST in Makefile.in and Makefile.am | ||||
|   Updated contrib/pngminus/makefile.std (Samuli Souminen) | ||||
|   Added SunOS support to configure.ac and Makefile.am (but configure and | ||||
|     Makefile.in were not updated) | ||||
| Version 1.5.10beta01 [February 21, 2012] | ||||
|   Removed two useless #ifdef directives from pngread.c and one from pngrutil.c | ||||
|   Always put the CMAKE_LIBRARY in "lib" (removed special WIN32 case). | ||||
|   Removed empty vstudio/pngstest directory (Clifford Yapp). | ||||
|   Eliminated redundant png_push_read_tEXt|zTXt|iTXt|unknown code from | ||||
|     pngpread.c and use the sequential png_handle_tEXt, etc., in pngrutil.c; | ||||
|     now that png_ptr->buffer is inaccessible to applications, the special | ||||
|     handling is no longer useful. | ||||
|   Fixed bug with png_handle_hIST with odd chunk length (Frank Busse). | ||||
| 
 | ||||
| Send comments/corrections/commendations to glennrp at users.sourceforge.net | ||||
| or to png-mng-implement at lists.sf.net (subscription required; visit | ||||
| https://lists.sourceforge.net/lists/listinfo/png-mng-implement). | ||||
| Send comments/corrections/commendations to png-mng-implement at lists.sf.net: | ||||
| (subscription required; visit | ||||
| https://lists.sourceforge.net/lists/listinfo/png-mng-implement | ||||
| to subscribe) or to glennrp at users.sourceforge.net | ||||
| 
 | ||||
| Glenn R-P | ||||
|  | ||||
							
								
								
									
										285
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										285
									
								
								CMakeLists.txt
									
									
									
									
									
								
							| @ -1,3 +1,11 @@ | ||||
| # CMakeLists.txt | ||||
| 
 | ||||
| # Copyright (C) 2007-2011 Glenn Randers-Pehrson | ||||
| 
 | ||||
| # This code is released under the libpng license. | ||||
| # For conditions of distribution and use, see the disclaimer | ||||
| # and license in png.h | ||||
| 
 | ||||
| cmake_minimum_required(VERSION 2.4.4) | ||||
| set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) | ||||
| 
 | ||||
| @ -25,15 +33,9 @@ endif() | ||||
| project(libpng C) | ||||
| enable_testing() | ||||
| 
 | ||||
| # Copyright (C) 2007-2010 Glenn Randers-Pehrson | ||||
| 
 | ||||
| # This code is released under the libpng license. | ||||
| # For conditions of distribution and use, see the disclaimer | ||||
| # and license in png.h | ||||
| 
 | ||||
| set(PNGLIB_MAJOR 1) | ||||
| set(PNGLIB_MINOR 4) | ||||
| set(PNGLIB_RELEASE 9) | ||||
| set(PNGLIB_MINOR 5) | ||||
| set(PNGLIB_RELEASE 10) | ||||
| set(PNGLIB_NAME libpng${PNGLIB_MAJOR}${PNGLIB_MINOR}) | ||||
| set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_RELEASE}) | ||||
| 
 | ||||
| @ -67,39 +69,11 @@ else() | ||||
|   option(PNG_STATIC "Build static lib" ON) | ||||
| endif() | ||||
| 
 | ||||
| if(MINGW) | ||||
|   option(PNG_TESTS  "Build pngtest" NO) | ||||
| else() | ||||
|   option(PNG_TESTS  "Build pngtest" YES) | ||||
| endif() | ||||
| option(PNG_TESTS  "Build libpng tests" YES) | ||||
| 
 | ||||
| option(PNG_NO_CONSOLE_IO "FIXME" YES) | ||||
| option(PNG_NO_STDIO      "FIXME" YES) | ||||
| # Many more configuration options could be added here | ||||
| option(PNG_DEBUG         "Build with debug output" NO) | ||||
| option(PNGARG            "FIXME" YES) | ||||
| #TODO: | ||||
| # PNG_CONSOLE_IO_SUPPORTED | ||||
| 
 | ||||
| # maybe needs improving, but currently I don't know when we can enable what :) | ||||
| set(png_asm_tmp "OFF") | ||||
| if(NOT WIN32) | ||||
|   find_program(uname_executable NAMES uname PATHS /bin /usr/bin /usr/local/bin) | ||||
|   if(uname_executable) | ||||
|     exec_program(${uname_executable} | ||||
|                  ARGS --machine OUTPUT_VARIABLE uname_output) | ||||
|     if("uname_output" MATCHES "^.*i[1-9]86.*$") | ||||
|       set(png_asm_tmp "ON") | ||||
|     else("uname_output" MATCHES "^.*i[1-9]86.*$") | ||||
|       set(png_asm_tmp "OFF") | ||||
|     endif("uname_output" MATCHES "^.*i[1-9]86.*$") | ||||
|   endif(uname_executable) | ||||
| else() | ||||
|   # this env var is normally only set on win64 | ||||
|   set(TEXT "ProgramFiles(x86)") | ||||
|   if("$ENV{${TEXT}}" STREQUAL "") | ||||
|     set(png_asm_tmp "ON") | ||||
|   endif("$ENV{${TEXT}}" STREQUAL "") | ||||
| endif() | ||||
| option(PNGARG            "Disable ANSI-C prototypes" NO) | ||||
| 
 | ||||
| # SET LIBNAME | ||||
| set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) | ||||
| @ -107,14 +81,26 @@ set(PNG_LIB_NAME png${PNGLIB_MAJOR}${PNGLIB_MINOR}) | ||||
| # to distinguish between debug and release lib | ||||
| set(CMAKE_DEBUG_POSTFIX "d") | ||||
| 
 | ||||
| # Use the prebuilt pnglibconf.h file from the scripts folder | ||||
| # TODO: fix this by building with awk; without this no cmake build can be | ||||
| # configured directly (to do so indirectly use your local awk to build a | ||||
| # pnglibconf.h in the build directory.) | ||||
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scripts/pnglibconf.h.prebuilt | ||||
|                ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h) | ||||
| include_directories(${CMAKE_CURRENT_BINARY_DIR}) | ||||
| 
 | ||||
| # OUR SOURCES | ||||
| set(libpng_public_hdrs | ||||
|   png.h | ||||
|   pngconf.h | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/pnglibconf.h | ||||
| ) | ||||
| set(libpng_sources | ||||
|   ${libpng_public_hdrs} | ||||
|   pngdebug.h | ||||
|   pnginfo.h | ||||
|   pngpriv.h | ||||
|   pngstruct.h | ||||
|   png.c | ||||
|   pngerror.c | ||||
|   pngget.c | ||||
| @ -134,44 +120,21 @@ set(libpng_sources | ||||
| set(pngtest_sources | ||||
|   pngtest.c | ||||
| ) | ||||
| set(pngvalid_sources | ||||
|   contrib/libtests/pngvalid.c | ||||
| ) | ||||
| # SOME NEEDED DEFINITIONS | ||||
| 
 | ||||
| add_definitions(-DPNG_CONFIGURE_LIBPNG) | ||||
| 
 | ||||
| if(_AIX) | ||||
|   add_definitions(-D_ALL_SOURCE) | ||||
| endif(_AIX) | ||||
| 
 | ||||
| if(MSVC) | ||||
|   add_definitions(-DPNG_NO_MODULEDEF -D_CRT_SECURE_NO_DEPRECATE) | ||||
|   add_definitions(-D_CRT_SECURE_NO_DEPRECATE) | ||||
| endif(MSVC) | ||||
| 
 | ||||
| if(PNG_SHARED OR  NOT MSVC) | ||||
|   #if building msvc static this has NOT to be defined | ||||
|   add_definitions(-DZLIB_DLL) | ||||
| endif() | ||||
| 
 | ||||
| 
 | ||||
| if(PNG_CONSOLE_IO_SUPPORTED) | ||||
|   add_definitions(-DPNG_CONSOLE_IO_SUPPORTED) | ||||
| endif() | ||||
| 
 | ||||
| if(PNG_NO_CONSOLE_IO) | ||||
|   add_definitions(-DPNG_NO_CONSOLE_IO) | ||||
| endif() | ||||
| 
 | ||||
| if(PNG_NO_STDIO) | ||||
|   add_definitions(-DPNG_NO_STDIO) | ||||
| endif() | ||||
| 
 | ||||
| if(PNG_DEBUG) | ||||
|   add_definitions(-DPNG_DEBUG) | ||||
| endif() | ||||
| 
 | ||||
| if(NOT M_LIBRARY AND NOT WIN32) | ||||
|   add_definitions(-DPNG_NO_FLOATING_POINT_SUPPORTED) | ||||
| endif() | ||||
| 
 | ||||
| # NOW BUILD OUR TARGET | ||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR}) | ||||
| 
 | ||||
| @ -196,7 +159,6 @@ if(PNG_STATIC) | ||||
|   target_link_libraries(${PNG_LIB_NAME_STATIC} ${ZLIB_LIBRARY} ${M_LIBRARY}) | ||||
| endif() | ||||
| 
 | ||||
| 
 | ||||
| if(PNG_SHARED AND WIN32) | ||||
|   set_target_properties(${PNG_LIB_NAME} PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL) | ||||
| endif() | ||||
| @ -206,58 +168,66 @@ if(PNG_TESTS AND PNG_SHARED) | ||||
|   add_executable(pngtest ${pngtest_sources}) | ||||
|   target_link_libraries(pngtest ${PNG_LIB_NAME}) | ||||
|   add_test(pngtest ./pngtest ${CMAKE_CURRENT_SOURCE_DIR}/pngtest.png) | ||||
|   # | ||||
|   add_executable(pngvalid ${pngvalid_sources}) | ||||
|   target_link_libraries(pngvalid ${PNG_LIB_NAME}) | ||||
|   add_test(pngvalid ./pngvalid) | ||||
| endif() | ||||
| 
 | ||||
| # | ||||
| # Ensure the CMAKE_LIBRARY_OUTPUT_DIRECTORY is set | ||||
| IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) | ||||
|   SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY "lib") | ||||
| ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY) | ||||
| 
 | ||||
| # Set a variable with CMake code which: | ||||
| # Creates a symlink from src to dest (if possible) or alternatively | ||||
| # copies if different. | ||||
| macro(_png_generate_symlink_code CODE SRC DEST) | ||||
|   if(WIN32 AND NOT CYGWIN) | ||||
|     set(_png_gsc_message "Copying ${SRC} to ${DEST} if needed") | ||||
|     set(_png_gsc_operation "copy_if_different") | ||||
|   else() | ||||
|     set(_png_gsc_message "Symlinking ${SRC} to ${DEST}") | ||||
|     set(_png_gsc_operation "create_symlink") | ||||
|   endif() | ||||
| 
 | ||||
|   set(${CODE} " | ||||
|     message(STATUS \"${_png_gsc_message}\") | ||||
|     execute_process(COMMAND \${CMAKE_COMMAND} -E ${_png_gsc_operation} | ||||
|       \"${SRC}\" \"${DEST}\") | ||||
|     ") | ||||
| macro(CREATE_SYMLINK SRC_FILE DEST_FILE) | ||||
|   FILE(REMOVE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}) | ||||
|   if(WIN32 AND NOT CYGWIN AND NOT MINGW) | ||||
|     ADD_CUSTOM_COMMAND( | ||||
|         OUTPUT ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}   ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE} | ||||
|         COMMAND ${CMAKE_COMMAND} -E copy        ${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} | ||||
|         COMMAND ${CMAKE_COMMAND} -E copy        ${CMAKE_CURRENT_BINARY_DIR}/${SRC_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${DEST_FILE} | ||||
|         DEPENDS ${PNG_LIB_NAME} ${PNG_LIB_NAME_STATIC} | ||||
|         ) | ||||
|     ADD_CUSTOM_TARGET(${DEST_FILE}_COPY ALL DEPENDS ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE}) | ||||
|   else(WIN32 AND NOT CYGWIN AND NOT MINGW) | ||||
|     execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC_FILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) | ||||
|     execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${SRC_FILE} ${DEST_FILE} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) | ||||
|   endif(WIN32 AND NOT CYGWIN AND NOT MINGW) | ||||
| endmacro() | ||||
| 
 | ||||
| # CREATE PKGCONFIG FILES | ||||
| # we use the same files like ./configure, so we have to set its vars | ||||
| # libpng is a library so default to 'lib' | ||||
| if(NOT DEFINED CMAKE_INSTALL_LIBDIR) | ||||
|   set(CMAKE_INSTALL_LIBDIR lib) | ||||
| endif(NOT DEFINED CMAKE_INSTALL_LIBDIR) | ||||
| set(prefix      ${CMAKE_INSTALL_PREFIX}) | ||||
| set(exec_prefix ${CMAKE_INSTALL_PREFIX}) | ||||
| set(libdir      ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) | ||||
| set(includedir  ${CMAKE_INSTALL_PREFIX}/include) | ||||
| set(LIBS        "-lz -lm") | ||||
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY) | ||||
| _png_generate_symlink_code(PNG_PC_INSTALL_CODE | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc) | ||||
| install(CODE ${PNG_PC_INSTALL_CODE}) | ||||
| 
 | ||||
| configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY) | ||||
| _png_generate_symlink_code(PNG_CONFIG_INSTALL_CODE | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config | ||||
|   ${CMAKE_CURRENT_BINARY_DIR}/libpng-config) | ||||
| install(CODE ${PNG_CONFIG_INSTALL_CODE}) | ||||
| # CREATE PKGCONFIG FILES | ||||
| # we use the same files like ./configure, so we have to set its vars | ||||
| # Only do this on Windows for Cygwin - the files don't make much sense outside | ||||
| # a UNIX look alike | ||||
| if(NOT WIN32 OR CYGWIN OR MINGW)  | ||||
|   set(prefix      ${CMAKE_INSTALL_PREFIX}) | ||||
|   set(exec_prefix ${CMAKE_INSTALL_PREFIX}) | ||||
|   set(libdir      ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) | ||||
|   set(includedir  ${CMAKE_INSTALL_PREFIX}/include) | ||||
|   set(LIBS        "-lz -lm") | ||||
|   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng.pc.in | ||||
|     ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc @ONLY) | ||||
|   CREATE_SYMLINK(${PNGLIB_NAME}.pc libpng.pc) | ||||
| 
 | ||||
|   configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libpng-config.in | ||||
|     ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config @ONLY) | ||||
|   CREATE_SYMLINK(${PNGLIB_NAME}-config libpng-config) | ||||
| endif(NOT WIN32 OR CYGWIN OR MINGW) | ||||
| 
 | ||||
| # SET UP LINKS | ||||
| if(PNG_SHARED) | ||||
|   set_target_properties(${PNG_LIB_NAME} PROPERTIES | ||||
| #   VERSION 14.${PNGLIB_RELEASE}.1.4.9beta01 | ||||
|     VERSION 14.${PNGLIB_RELEASE}.0 | ||||
|     SOVERSION 14 | ||||
| #   VERSION 15.${PNGLIB_RELEASE}.1.5.10beta01 | ||||
|     VERSION 15.${PNGLIB_RELEASE}.0 | ||||
|     SOVERSION 15 | ||||
|     CLEAN_DIRECT_OUTPUT 1) | ||||
| endif() | ||||
| if(PNG_STATIC) | ||||
| @ -289,63 +259,37 @@ if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL ) | ||||
|         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
| 
 | ||||
|     # Create a symlink for libpng.dll.a => libpng14.dll.a on Cygwin | ||||
|     if(CYGWIN) | ||||
|       _png_generate_symlink_code(PNG_SHARED_IMPLIB_INSTALL_CODE | ||||
|         ${PNGLIB_NAME}${CMAKE_IMPORT_LIBRARY_SUFFIX} | ||||
|         libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}) | ||||
|       install(CODE ${PNG_SHARED_IMPLIB_INSTALL_CODE}) | ||||
|       install(FILES | ||||
|         ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} | ||||
|         DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|     endif() | ||||
|     # Create a symlink for libpng.dll.a => libpng15.dll.a on Cygwin | ||||
|     if(CYGWIN OR MINGW) | ||||
|        get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE}) | ||||
|        get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME) | ||||
|        CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_IMPORT_LIBRARY_SUFFIX}) | ||||
|        install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_IMPORT_LIBRARY_SUFFIX} | ||||
|          DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|     endif(CYGWIN OR MINGW) | ||||
| 
 | ||||
|     if(NOT WIN32) | ||||
|       IF(CMAKE_LIBRARY_OUTPUT_DIRECTORY) | ||||
|         _png_generate_symlink_code(PNG_SHARED_INSTALL_CODE | ||||
|  ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${PNGLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} | ||||
|  ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX}) | ||||
|                 install(CODE ${PNG_SHARED_INSTALL_CODE}) | ||||
|                 install(FILES | ||||
|  ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} | ||||
|                 DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|       ELSE(CMAKE_LIBRARY_OUTPUT_DIRECTORY) | ||||
|         _png_generate_symlink_code(PNG_SHARED_INSTALL_CODE | ||||
|            ${PNGLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} | ||||
|            libpng${CMAKE_SHARED_LIBRARY_SUFFIX}) | ||||
|         install(CODE ${PNG_SHARED_INSTALL_CODE}) | ||||
|         install(FILES | ||||
|            ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} | ||||
|                 DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|       ENDIF(CMAKE_LIBRARY_OUTPUT_DIRECTORY) | ||||
|     endif() | ||||
|   endif() | ||||
|       get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME} LOCATION_${CMAKE_BUILD_TYPE}) | ||||
|       get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME) | ||||
|       CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_SHARED_LIBRARY_SUFFIX}) | ||||
|       install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_SHARED_LIBRARY_SUFFIX} | ||||
|          DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|     endif(NOT WIN32) | ||||
|   endif(PNG_SHARED) | ||||
| 
 | ||||
|   if(PNG_STATIC) | ||||
|     install(TARGETS ${PNG_LIB_NAME_STATIC} | ||||
|         ${PNG_EXPORT_RULE} | ||||
|             LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|             ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|     if(NOT WIN32 OR CYGWIN) | ||||
|       IF(CMAKE_ARCHIVE_OUTPUT_DIRECTORY) | ||||
|          _png_generate_symlink_code(PNG_STATIC_INSTALL_CODE | ||||
| ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${PNGLIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} | ||||
|         ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX}) | ||||
|         install(CODE ${PNG_STATIC_INSTALL_CODE}) | ||||
|         install(FILES | ||||
|           ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} | ||||
|              DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|       ELSE(CMAKE_ARCHIVE_OUTPUT_DIRECTORY) | ||||
|         _png_generate_symlink_code(PNG_STATIC_INSTALL_CODE | ||||
|            ${PNGLIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} | ||||
|            libpng${CMAKE_STATIC_LIBRARY_SUFFIX}) | ||||
|         install(CODE ${PNG_STATIC_INSTALL_CODE}) | ||||
|         install(FILES | ||||
|           ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} | ||||
|                      DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|       ENDIF(CMAKE_ARCHIVE_OUTPUT_DIRECTORY) | ||||
|     endif() | ||||
|   endif() | ||||
|         LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|         ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|     if(NOT WIN32 OR CYGWIN OR MINGW) | ||||
|       get_target_property(BUILD_TARGET_LOCATION ${PNG_LIB_NAME_STATIC} LOCATION_${CMAKE_BUILD_TYPE}) | ||||
|       get_filename_component(BUILD_TARGET_FILE ${BUILD_TARGET_LOCATION} NAME) | ||||
|       CREATE_SYMLINK(${BUILD_TARGET_FILE} libpng${CMAKE_STATIC_LIBRARY_SUFFIX}) | ||||
|       install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng${CMAKE_STATIC_LIBRARY_SUFFIX} | ||||
|          DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||||
|     endif(NOT WIN32 OR CYGWIN OR MINGW) | ||||
|  endif() | ||||
| endif() | ||||
| 
 | ||||
| if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) | ||||
| @ -353,10 +297,13 @@ if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL ) | ||||
|   install(FILES ${libpng_public_hdrs}   DESTINATION include/${PNGLIB_NAME}) | ||||
| endif() | ||||
| if(NOT SKIP_INSTALL_EXECUTABLES AND NOT SKIP_INSTALL_ALL ) | ||||
|   install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin) | ||||
|   install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config | ||||
|           DESTINATION bin) | ||||
|   if(NOT WIN32 OR CYGWIN OR MINGW) | ||||
|     install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config DESTINATION bin) | ||||
|     install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config | ||||
|             DESTINATION bin) | ||||
|   endif(NOT WIN32 OR CYGWIN OR MINGW) | ||||
| endif() | ||||
| 
 | ||||
| if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) | ||||
|   # Install man pages | ||||
|   if(NOT PNG_MAN_DIR) | ||||
| @ -365,14 +312,16 @@ if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL ) | ||||
|   install(FILES libpng.3 libpngpf.3      DESTINATION ${PNG_MAN_DIR}/man3) | ||||
|   install(FILES png.5                    DESTINATION ${PNG_MAN_DIR}/man5) | ||||
|   # Install pkg-config files | ||||
|   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc | ||||
|           DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) | ||||
|   install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config | ||||
|           DESTINATION bin) | ||||
|   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc | ||||
|           DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) | ||||
|   install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config | ||||
|           DESTINATION bin) | ||||
|   if(NOT WIN32 OR CYGWIN OR MINGW) | ||||
|     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libpng.pc | ||||
|             DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) | ||||
|     install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/libpng-config | ||||
|             DESTINATION bin) | ||||
|     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}.pc | ||||
|             DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) | ||||
|     install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${PNGLIB_NAME}-config | ||||
|             DESTINATION bin) | ||||
|   endif(NOT WIN32 OR CYGWIN OR MINGW) | ||||
| endif() | ||||
| 
 | ||||
| # On versions of CMake that support it, create an export file CMake | ||||
| @ -381,13 +330,11 @@ if(PNG_EXPORT_RULE AND NOT SKIP_INSTALL_EXPORT AND NOT SKIP_INSTALL_ALL ) | ||||
|   install(EXPORT libpng DESTINATION lib/libpng FILE lib${PNG_LIB_NAME}.cmake) | ||||
| endif() | ||||
| 
 | ||||
| # what's with libpng-manual.txt and all the extra files? | ||||
| 
 | ||||
| # what's with libpng-$VER%.txt and all the extra files? | ||||
| 
 | ||||
| # UNINSTALL | ||||
| # do we need this? | ||||
| 
 | ||||
| 
 | ||||
| # DIST | ||||
| # do we need this? | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										67
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								INSTALL
									
									
									
									
									
								
							| @ -1,5 +1,5 @@ | ||||
| 
 | ||||
| Installing libpng version 1.4.9beta01 - July 8, 2011 | ||||
| Installing libpng | ||||
| 
 | ||||
| On Unix/Linux and similar systems, you can simply type | ||||
| 
 | ||||
| @ -13,10 +13,16 @@ If configure does not work on your system and you have a reasonably | ||||
| up-to-date set of tools, running ./autogen.sh before running ./configure | ||||
| may fix the problem.  You can also run the individual commands in | ||||
| autogen.sh with the --force option, if supported by your version of | ||||
| the tools.  If you run 'libtoolize --force', though, this will replace | ||||
| the distributed, patched, version of ltmain.sh with an unpatched version | ||||
| and your shared library builds may fail to produce libraries with the | ||||
| correct version numbers. | ||||
| the tools.  To be really sure that you aren't using any of the included | ||||
| pre-built scripts, you can do this: | ||||
| 
 | ||||
|     ./configure --enable-maintainer-mode | ||||
|     make maintainer-clean | ||||
|     ./autogen.sh | ||||
|     ./configure [--prefix=/path] [other options] | ||||
|     make | ||||
|     make install | ||||
|     make check | ||||
| 
 | ||||
| Instead, you can use one of the custom-built makefiles in the | ||||
| "scripts" directory | ||||
| @ -46,8 +52,8 @@ to have access to the zlib.h and zconf.h include files that | ||||
| correspond to the version of zlib that's installed. | ||||
| 
 | ||||
| You can rename the directories that you downloaded (they | ||||
| might be called "libpng-1.4.9beta01" or "libpng14" and "zlib-1.2.3" | ||||
| or "zlib123") so that you have directories called "zlib" and "libpng". | ||||
| might be called "libpng-x.y.z" or "libpngNN" and "zlib-1.2.5" | ||||
| or "zlib125") so that you have directories called "zlib" and "libpng". | ||||
| 
 | ||||
| Your directory structure should look like this: | ||||
| 
 | ||||
| @ -60,9 +66,9 @@ Your directory structure should look like this: | ||||
|           CMakeLists.txt    =>  "cmake" script | ||||
|           configuration files: | ||||
|              configure.ac, configure, Makefile.am, Makefile.in, | ||||
|              autogen.sh, config.guess, ltmain.sh, missing, | ||||
|              aclocal.m4, config.h.in, config.sub, | ||||
|              depcomp, install-sh, test-pngtest.sh | ||||
|              autogen.sh, config.guess, ltmain.sh, missing, libpng.pc.in, | ||||
|              libpng-config.in, aclocal.m4, config.h.in, config.sub, | ||||
|              depcomp, install-sh, mkinstalldirs, test-pngtest.sh | ||||
|           contrib | ||||
|              gregbook | ||||
|              pngminim | ||||
| @ -70,14 +76,12 @@ Your directory structure should look like this: | ||||
|              pngsuite | ||||
|              visupng | ||||
|           projects | ||||
|              cbuilder5 (Borland) | ||||
|              visualc6 (msvc) | ||||
|              visualc71 | ||||
|              vstudio | ||||
|              xcode | ||||
|           scripts | ||||
|              makefile.* | ||||
|              *.def (module definition files) | ||||
|              etc. | ||||
|           pngtest.png | ||||
|           etc. | ||||
|       zlib | ||||
| @ -108,7 +112,7 @@ scripts directory into this directory, for example | ||||
| Read the makefile to see if you need to change any source or | ||||
| target directories to match your preferences. | ||||
| 
 | ||||
| Then read pngconf.h to see if you want to make any configuration | ||||
| Then read pnglibconf.dfa to see if you want to make any configuration | ||||
| changes. | ||||
| 
 | ||||
| Then just run "make" which will create the libpng library in | ||||
| @ -126,19 +130,26 @@ do that, run "make install" in the zlib directory first if necessary). | ||||
| Some also allow you to run "make test-installed" after you have | ||||
| run "make install". | ||||
| 
 | ||||
| If you encounter a compiler error message complaining about the | ||||
| lines | ||||
| 
 | ||||
|       __png.h__ already includes setjmp.h; | ||||
|       __dont__ include it again.; | ||||
| 
 | ||||
| this means you have compiled another module that includes setjmp.h, | ||||
| which is hazardous because the two modules might not include exactly | ||||
| the same setjmp.h.  If you are sure that you know what you are doing | ||||
| and that they are exactly the same, then you can comment out or | ||||
| delete the two lines.  Better yet, use the cexcept interface | ||||
| instead, as demonstrated in contrib/visupng of the libpng distribution. | ||||
| 
 | ||||
| Further information can be found in the README and libpng.txt | ||||
| Further information can be found in the README and libpng-manual.txt | ||||
| files, in the individual makefiles, in png.h, and the manual pages | ||||
| libpng.3 and png.5. | ||||
| 
 | ||||
| Using the ./configure script -- 16 December 2002. | ||||
| ================================================= | ||||
| 
 | ||||
| The ./configure script should work compatibly with what scripts/makefile.* | ||||
| did, however there are some options you might need to add to configure | ||||
| explicitly, which previously was done semi-automatically (if you didn't edit | ||||
| scripts/makefile.* yourself, that is) | ||||
| 
 | ||||
| CFLAGS="-Wall -O -funroll-loops \ | ||||
| -malign-loops=2 -malign-functions=2" ./configure --prefix=/usr/include \ | ||||
| --with-pkgconfigdir=/usr/lib/pkgconfig --includedir=/usr/include | ||||
| 
 | ||||
| You can alternatively specify --includedir=/usr/include, /usr/local/include, | ||||
| /usr/include/libpng%NN%, or whatever. | ||||
| 
 | ||||
| If you find that the configure script is out-of-date or is not supporting | ||||
| your platform properly, try running autogen.sh to regenerate "configure", | ||||
| "Makefile.in", and the other configuration files. Then try configure again. | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										6
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								LICENSE
									
									
									
									
									
								
							| @ -10,8 +10,8 @@ this sentence. | ||||
| 
 | ||||
| This code is released under the libpng license. | ||||
| 
 | ||||
| libpng versions 1.2.6, August 15, 2004, through 1.4.9beta01, July 8, 2011, are | ||||
| Copyright (c) 2004, 2006-2010 Glenn Randers-Pehrson, and are | ||||
| libpng versions 1.2.6, August 15, 2004, through 1.5.10beta01, February 19, 2012, are | ||||
| Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are | ||||
| distributed according to the same disclaimer and license as libpng-1.2.5 | ||||
| with the following individual added to the list of Contributing Authors | ||||
| 
 | ||||
| @ -108,4 +108,4 @@ certification mark of the Open Source Initiative. | ||||
| 
 | ||||
| Glenn Randers-Pehrson | ||||
| glennrp at users.sourceforge.net | ||||
| July 8, 2011 | ||||
| February 19, 2012 | ||||
|  | ||||
							
								
								
									
										173
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										173
									
								
								Makefile.am
									
									
									
									
									
								
							| @ -5,14 +5,24 @@ | ||||
| PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ | ||||
| 
 | ||||
| # libpng does not follow GNU file name conventions
 | ||||
| 
 | ||||
| # "color-tests" requires automake 1.11.1 or later.  Enable it if you like,
 | ||||
| # to get red "FAIL" and green "PASS" notations during tests.
 | ||||
| # AUTOMAKE_OPTIONS = foreign color-tests
 | ||||
| AUTOMAKE_OPTIONS = foreign | ||||
| 
 | ||||
| # test programs - run on make check, make distcheck
 | ||||
| TESTS_ENVIRONMENT= srcdir=$(srcdir) | ||||
| check_PROGRAMS= pngtest | ||||
| pngtest_SOURCES = pngtest.c | ||||
| pngtest_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| TESTS = test-pngtest.sh | ||||
| TESTS_ENVIRONMENT= srcdir=$(srcdir) | ||||
| 
 | ||||
| # Only do the following if the contrib directory is present.
 | ||||
| check_PROGRAMS+= pngvalid | ||||
| pngvalid_SOURCES = contrib/libtests/pngvalid.c | ||||
| pngvalid_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| TESTS += test-pngvalid-simple.sh test-pngvalid-full.sh | ||||
| 
 | ||||
| # man pages
 | ||||
| dist_man_MANS= libpng.3 libpngpf.3 png.5 | ||||
| @ -25,11 +35,16 @@ bin_SCRIPTS= @binconfigs@ | ||||
| # rules to build libpng, only build the old library on request
 | ||||
| lib_LTLIBRARIES=libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| # EXTRA_LTLIBRARIES= libpng.la
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngset.c pngget.c pngrutil.c \
 | ||||
| 	pngtrans.c pngwutil.c \
 | ||||
| 	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 | ||||
| 	pngwtran.c pngmem.c pngerror.c pngpread.c \
 | ||||
| 	png.h pngconf.h pngpriv.h | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngerror.c\
 | ||||
| 	pngget.c pngmem.c pngpread.c pngread.c pngrio.c pngrtran.c pngrutil.c\
 | ||||
| 	pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c\
 | ||||
| 	png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h pngstruct.h | ||||
| 
 | ||||
| if PNG_ARM_NEON | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES += arm/filter_neon.S | ||||
| endif | ||||
| 
 | ||||
| nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = pnglibconf.h | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS = @LIBPNG_DEFINES@ | ||||
| 
 | ||||
| @ -37,8 +52,7 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined -export-dynamic \ | ||||
| 	-version-number @PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0 | ||||
| 
 | ||||
| if HAVE_LD_VERSION_SCRIPT | ||||
|   # Versioned symbols and restricted exports | ||||
| 
 | ||||
| #   Versioned symbols and restricted exports
 | ||||
| if HAVE_SOLARIS_LD | ||||
|   libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -Wl,-M -Wl,libpng.vers | ||||
| else | ||||
| @ -47,17 +61,15 @@ endif | ||||
| 
 | ||||
|   libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers | ||||
| else | ||||
|   # Only restricted exports when possible | ||||
| #   Only restricted exports when possible
 | ||||
|   libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS += -export-symbols libpng.sym | ||||
|   libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym | ||||
| endif | ||||
| 
 | ||||
| # Avoid depending upon Character Ranges.
 | ||||
| AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' | ||||
| 
 | ||||
| #distribute headers in /usr/include/libpng/*
 | ||||
| pkgincludedir= $(includedir)/$(PNGLIB_BASENAME) | ||||
| pkginclude_HEADERS= png.h pngconf.h | ||||
| nodist_pkginclude_HEADERS= pnglibconf.h | ||||
| 
 | ||||
| # pkg-config stuff, note that libpng.pc is always required in order
 | ||||
| # to get the correct library
 | ||||
| @ -68,55 +80,129 @@ pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc | ||||
| EXTRA_DIST= \
 | ||||
| 	ANNOUNCE CHANGES INSTALL LICENSE README TODO \
 | ||||
| 	pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
 | ||||
| 	${srcdir}/projects/visualc6/* \
 | ||||
| 	${srcdir}/projects/visualc71/* \
 | ||||
| 	${srcdir}/projects/vstudio/* \
 | ||||
| 	${srcdir}/projects/xcode/* \
 | ||||
| 	${srcdir}/scripts/* \
 | ||||
| 	${srcdir}/contrib/gregbook/* \
 | ||||
| 	${srcdir}/contrib/pngminim/* \
 | ||||
| 	${srcdir}/contrib/pngminus/* \
 | ||||
| 	${srcdir}/contrib/pngsuite/* \
 | ||||
| 	${srcdir}/contrib/visupng/* \
 | ||||
| 	${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \
 | ||||
| 	$(TESTS) \
 | ||||
| 	example.c libpng-1.4.9beta01.txt | ||||
| 	CMakeLists.txt example.c libpng-manual.txt | ||||
| 
 | ||||
| CLEANFILES= pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
 | ||||
| libpng.sym | ||||
| SCRIPT_CLEANFILES=scripts/*.out scripts/*.chk scripts/pnglibconf.dfn | ||||
| 
 | ||||
| CLEANFILES= dfn.c dfn?.out pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers libpng.sym \
 | ||||
| 	check.new pnglibconf.* symbols.new pngtest-log.txt \
 | ||||
| 	$(SCRIPT_CLEANFILES) | ||||
| 
 | ||||
| MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
 | ||||
| config.sub configure depcomp install-sh ltmain.sh missing | ||||
| 
 | ||||
| # DFNCPP is normally just CPP - the C preprocessor - but on Solaris and maybe
 | ||||
| # other operating systems (NeXT?) the C preprocessor selected by configure
 | ||||
| # checks input tokens for validity - effectively it performs part of the ANSI-C
 | ||||
| # parsing - and therefore fails with the .df files.  configure.ac has special
 | ||||
| # checks for this and sets DFNCPP appropriately.
 | ||||
| DFNCPP = @DFNCPP@ | ||||
| 
 | ||||
| SUFFIXES = .chk .dfn .out | ||||
| 
 | ||||
| $(PNGLIB_BASENAME).pc: libpng.pc | ||||
| 	cp libpng.pc $@ | ||||
| 
 | ||||
| $(PNGLIB_BASENAME)-config: libpng-config | ||||
| 	cp libpng-config $@ | ||||
| 
 | ||||
| libpng.sym: png.h pngconf.h | ||||
| 	rm -f $@ $@.new | ||||
| 	$(CPP) @LIBPNG_DEFINES@ $(CPPFLAGS) -DPNG_BUILDSYMS $(srcdir)/png.h | \
 | ||||
| 		$(SED) -n -e \
 | ||||
| 		's|^.*PNG_FUNCTION_EXPORT[ 	]*\([$(AN)]*\).*$$|$(SYMBOL_PREFIX)\1|p' \
 | ||||
| 		-e 's|^.*PNG_DATA_EXPORT[ 	]*\([$(AN)]*\).*$$|$(SYMBOL_PREFIX)\1|p' \
 | ||||
| 			>$@.new | ||||
| 	mv $@.new $@ | ||||
| scripts/sym.out scripts/vers.out: png.h pngconf.h pnglibconf.h | ||||
| scripts/symbols.out: png.h pngconf.h $(srcdir)/scripts/pnglibconf.h.prebuilt | ||||
| 
 | ||||
| libpng.vers: libpng.sym | ||||
| 	rm -f $@ $@.new | ||||
| 	echo PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0 '{global:' > $@.new | ||||
| 	$(SED) s/$$/\;/ libpng.sym >> $@.new | ||||
| 	echo 'local: *; };' >> $@.new | ||||
| 	mv $@.new $@ | ||||
| libpng.sym: scripts/sym.out | ||||
| 	rm -f $@ | ||||
| 	cp $? $@ | ||||
| libpng.vers: scripts/vers.out | ||||
| 	rm -f $@ | ||||
| 	cp $? $@ | ||||
| pnglibconf.h: pnglibconf.out | ||||
| 	rm -f $@ | ||||
| 	cp $? $@ | ||||
| $(srcdir)/scripts/pnglibconf.h.prebuilt: | ||||
| 	@echo "Attempting to build $@" >&2 | ||||
| 	@echo "This is a machine generated file, but if you want to make" >&2 | ||||
| 	@echo "a new one simply make 'scripts/pnglibconf.out' and copy that" >&2 | ||||
| 	@exit 1 | ||||
| 
 | ||||
| test: check | ||||
| # The following is necessary to ensure that the local pnglibconf.h is used, not
 | ||||
| # an installed one (this can happen immediately after on a clean system if
 | ||||
| # 'make test' is the first thing the user does.)
 | ||||
| contrib/libtests/pngvalid.o pngtest.o: pnglibconf.h | ||||
| 
 | ||||
| # We must use -DPNG_NO_USE_READ_MACROS here even when the library may actually
 | ||||
| # be built with PNG_USE_READ_MACROS; this prevents the read macros from
 | ||||
| # interfering with the symbol file format.
 | ||||
| SYMBOL_CFLAGS = -DPNGLIB_LIBNAME='PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0'\
 | ||||
| 		-DPNGLIB_VERSION='@PNGLIB_VERSION@'\
 | ||||
| 		-DSYMBOL_PREFIX='$(SYMBOL_PREFIX)'\
 | ||||
| 		-DPNG_NO_USE_READ_MACROS -DPNG_BUILDING_SYMBOL_TABLE | ||||
| 
 | ||||
| .dfn.out: | ||||
| 	rm -f $@ dfn.c dfn?.out | ||||
| 	test -d scripts || mkdir scripts | ||||
| 	echo '#include "$<"' >dfn.c | ||||
| 	$(DFNCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @LIBPNG_DEFINES@\
 | ||||
| 	    $(CPPFLAGS) $(SYMBOL_CFLAGS) dfn.c > dfn1.out | ||||
| 	$(SED) -n -e 's|^.*PNG_DEFN_MAGIC *-\(.*\)- *PNG_DEFN_END.*$$|\1|p'\
 | ||||
| 	    dfn1.out >dfn2.out | ||||
| 	$(SED) -e 's| *PNG_JOIN *||g' -e 's| *$$||' dfn2.out >dfn3.out | ||||
| 	rm -f dfn.c dfn[12].out | ||||
| 	mv dfn3.out $@ | ||||
| 
 | ||||
| # The .dfn file for pnglibconf.h is machine generated
 | ||||
| pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h | ||||
| 	rm -f $@ dfn?.out | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn1.out version=search\
 | ||||
| 	    ${srcdir}/pngconf.h ${srcdir}/scripts/pnglibconf.dfa\
 | ||||
| 	    $(DFA_XTRA) 1>&2 | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn2.out dfn1.out 1>&2 | ||||
| 	rm dfn1.out | ||||
| 	mv dfn2.out $@ | ||||
| 
 | ||||
| # Symbol checks (.def and .out files should match)
 | ||||
| scripts/symbols.chk: scripts/checksym.awk scripts/symbols.def scripts/symbols.out | ||||
| .out.chk: | ||||
| 	rm -f $@ symbols.new | ||||
| 	$(AWK) -f ${srcdir}/scripts/checksym.awk ${srcdir}/scripts/${*F}.def\
 | ||||
| 	    $< >&2 | ||||
| 	mv symbols.new $@ | ||||
| 
 | ||||
| # used on demand to regenerate the standard header, CPPFLAGS should
 | ||||
| # be empty - no non-standard defines
 | ||||
| scripts/pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h | ||||
| 	rm -f $@ dfn?.out | ||||
| 	test -z "$(CPPFLAGS)" | ||||
| 	echo "com @PNGLIB_VERSION@ STANDARD API DEFINITION" |\
 | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn1.out logunsupported=1 | ||||
| 		version=search ${srcdir}/pngconf.h -\
 | ||||
| 		${srcdir}/scripts/pnglibconf.dfa 1>&2 | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn2.out dfn1.out 1>&2 | ||||
| 	rm dfn1.out | ||||
| 	mv dfn2.out $@ | ||||
| 
 | ||||
| $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS): png.h pngconf.h \ | ||||
| 	pnglibconf.h pngpriv.h pngdebug.h pnginfo.h pngstruct.h | ||||
| 
 | ||||
| test: check-am | ||||
| 
 | ||||
| # Extra checks
 | ||||
| check: scripts/symbols.chk | ||||
| 
 | ||||
| # Don't distribute the generated script files
 | ||||
| dist-hook: | ||||
| 	cd '$(top_distdir)'; rm -f $(SCRIPT_CLEANFILES) | ||||
| 
 | ||||
| # install the .../include headers as links to the new ones
 | ||||
| install-data-hook: | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h pnglibconf.h | ||||
| 	cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/png.h png.h | ||||
| 	cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngconf.h \
 | ||||
| 		pngconf.h | ||||
| 	cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pnglibconf.h \
 | ||||
| 		pnglibconf.h | ||||
| 	cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc | ||||
| 	cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc | ||||
| 
 | ||||
| @ -134,6 +220,9 @@ install-exec-hook: | ||||
| 	done | ||||
| 
 | ||||
| uninstall-hook: | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h pnglibconf.h | ||||
| 	rm -f $(DESTDIR)$(pkgconfigdir)/libpng.pc | ||||
| 	rm -f $(DESTDIR)$(bindir)/libpng-config | ||||
| 	rm -f $(DESTDIR)$(libdir)/libpng.a | ||||
| 	rm -f $(DESTDIR)$(libdir)/libpng.la | ||||
| 	rm -f $(DESTDIR)$(libdir)/libpng.dll.a | ||||
|  | ||||
							
								
								
									
										516
									
								
								Makefile.in
									
									
									
									
									
								
							
							
						
						
									
										516
									
								
								Makefile.in
									
									
									
									
									
								
							| @ -1,9 +1,9 @@ | ||||
| # Makefile.in generated by automake 1.11.1 from Makefile.am.
 | ||||
| # Makefile.in generated by automake 1.11.2 from Makefile.am.
 | ||||
| # @configure_input@
 | ||||
| 
 | ||||
| # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 | ||||
| # 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
 | ||||
| # Inc.
 | ||||
| # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
 | ||||
| # Foundation, Inc.
 | ||||
| # This Makefile.in is free software; the Free Software Foundation
 | ||||
| # gives unlimited permission to copy and/or distribute it,
 | ||||
| # with or without modifications, as long as this notice is preserved.
 | ||||
| @ -40,9 +40,14 @@ PRE_UNINSTALL = : | ||||
| POST_UNINSTALL = : | ||||
| build_triplet = @build@ | ||||
| host_triplet = @host@ | ||||
| check_PROGRAMS = pngtest$(EXEEXT) | ||||
| @HAVE_LD_VERSION_SCRIPT_TRUE@am__append_1 = -Wl,--version-script=libpng.vers | ||||
| @HAVE_LD_VERSION_SCRIPT_FALSE@am__append_2 = -export-symbols libpng.sym | ||||
| check_PROGRAMS = pngtest$(EXEEXT) pngvalid$(EXEEXT) | ||||
| @PNG_ARM_NEON_TRUE@am__append_1 = arm/filter_neon.S | ||||
| 
 | ||||
| #   Versioned symbols and restricted exports
 | ||||
| @HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_TRUE@am__append_2 = -Wl,-M -Wl,libpng.vers | ||||
| @HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_FALSE@am__append_3 = -Wl,--version-script=libpng.vers | ||||
| #   Only restricted exports when possible
 | ||||
| @HAVE_LD_VERSION_SCRIPT_FALSE@am__append_4 = -export-symbols libpng.sym | ||||
| subdir = . | ||||
| DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \
 | ||||
| 	$(pkginclude_HEADERS) $(srcdir)/Makefile.am \
 | ||||
| @ -81,29 +86,45 @@ am__nobase_list = $(am__nobase_strip_setup); \ | ||||
| am__base_list = \
 | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
 | ||||
|   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||||
| am__uninstall_files_from_dir = { \
 | ||||
|   test -z "$$files" \
 | ||||
|     || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
 | ||||
|     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
 | ||||
|          $(am__cd) "$$dir" && rm -f $$files; }; \
 | ||||
|   } | ||||
| am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
 | ||||
| 	"$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" \
 | ||||
| 	"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)" | ||||
| 	"$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)" \
 | ||||
| 	"$(DESTDIR)$(pkgincludedir)" | ||||
| LTLIBRARIES = $(lib_LTLIBRARIES) | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LIBADD = | ||||
| am__libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES_DIST = png.c \
 | ||||
| 	pngerror.c pngget.c pngmem.c pngpread.c pngread.c pngrio.c \
 | ||||
| 	pngrtran.c pngrutil.c pngset.c pngtrans.c pngwio.c pngwrite.c \
 | ||||
| 	pngwtran.c pngwutil.c png.h pngconf.h pngdebug.h pnginfo.h \
 | ||||
| 	pngpriv.h pngstruct.h arm/filter_neon.S | ||||
| @PNG_ARM_NEON_TRUE@am__objects_1 = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.lo | ||||
| am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS =  \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo \
 | ||||
| 	$(am__objects_1) | ||||
| nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS = | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS =  \
 | ||||
| 	$(am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) | ||||
| 	$(am_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) \
 | ||||
| 	$(nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS) | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LINK = $(LIBTOOL) --tag=CC \
 | ||||
| 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 | ||||
| 	$(AM_CFLAGS) $(CFLAGS) \
 | ||||
| @ -112,11 +133,19 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LINK = $(LIBTOOL) --tag=CC \ | ||||
| am_pngtest_OBJECTS = pngtest.$(OBJEXT) | ||||
| pngtest_OBJECTS = $(am_pngtest_OBJECTS) | ||||
| pngtest_DEPENDENCIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| am_pngvalid_OBJECTS = pngvalid.$(OBJEXT) | ||||
| pngvalid_OBJECTS = $(am_pngvalid_OBJECTS) | ||||
| pngvalid_DEPENDENCIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| SCRIPTS = $(bin_SCRIPTS) | ||||
| DEFAULT_INCLUDES = -I.@am__isrc@ | ||||
| depcomp = $(SHELL) $(top_srcdir)/depcomp | ||||
| am__depfiles_maybe = depfiles | ||||
| am__mv = mv -f | ||||
| CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 | ||||
| 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) | ||||
| LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 | ||||
| 	--mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 | ||||
| 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) | ||||
| COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 | ||||
| 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||||
| LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 | ||||
| @ -127,15 +156,17 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | ||||
| 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 | ||||
| 	$(LDFLAGS) -o $@ | ||||
| SOURCES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
 | ||||
| 	$(pngtest_SOURCES) | ||||
| DIST_SOURCES = $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
 | ||||
| 	$(pngtest_SOURCES) | ||||
| 	$(nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES) \
 | ||||
| 	$(pngtest_SOURCES) $(pngvalid_SOURCES) | ||||
| DIST_SOURCES =  \
 | ||||
| 	$(am__libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES_DIST) \
 | ||||
| 	$(pngtest_SOURCES) $(pngvalid_SOURCES) | ||||
| man3dir = $(mandir)/man3 | ||||
| man5dir = $(mandir)/man5 | ||||
| NROFF = nroff | ||||
| MANS = $(dist_man_MANS) | ||||
| DATA = $(pkgconfig_DATA) | ||||
| HEADERS = $(pkginclude_HEADERS) | ||||
| HEADERS = $(nodist_pkginclude_HEADERS) $(pkginclude_HEADERS) | ||||
| ETAGS = etags | ||||
| CTAGS = ctags | ||||
| am__tty_colors = \
 | ||||
| @ -150,12 +181,15 @@ am__remove_distdir = \ | ||||
| DIST_ARCHIVES = $(distdir).tar.gz | ||||
| GZIP_ENV = --best | ||||
| distuninstallcheck_listfiles = find . -type f -print | ||||
| am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
 | ||||
|   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' | ||||
| distcleancheck_listfiles = find . -type f -print | ||||
| 
 | ||||
| #distribute headers in /usr/include/libpng/*
 | ||||
| pkgincludedir = $(includedir)/$(PNGLIB_BASENAME) | ||||
| ACLOCAL = @ACLOCAL@ | ||||
| AMTAR = @AMTAR@ | ||||
| AM_CCASFLAGS = @AM_CCASFLAGS@ | ||||
| AR = @AR@ | ||||
| AS = @AS@ | ||||
| AUTOCONF = @AUTOCONF@ | ||||
| @ -163,6 +197,9 @@ AUTOHEADER = @AUTOHEADER@ | ||||
| AUTOMAKE = @AUTOMAKE@ | ||||
| AWK = @AWK@ | ||||
| CC = @CC@ | ||||
| CCAS = @CCAS@ | ||||
| CCASDEPMODE = @CCASDEPMODE@ | ||||
| CCASFLAGS = @CCASFLAGS@ | ||||
| CCDEPMODE = @CCDEPMODE@ | ||||
| CFLAGS = @CFLAGS@ | ||||
| CPP = @CPP@ | ||||
| @ -170,6 +207,13 @@ CPPFLAGS = @CPPFLAGS@ | ||||
| CYGPATH_W = @CYGPATH_W@ | ||||
| DEFS = @DEFS@ | ||||
| DEPDIR = @DEPDIR@ | ||||
| 
 | ||||
| # DFNCPP is normally just CPP - the C preprocessor - but on Solaris and maybe
 | ||||
| # other operating systems (NeXT?) the C preprocessor selected by configure
 | ||||
| # checks input tokens for validity - effectively it performs part of the ANSI-C
 | ||||
| # parsing - and therefore fails with the .df files.  configure.ac has special
 | ||||
| # checks for this and sets DFNCPP appropriately.
 | ||||
| DFNCPP = @DFNCPP@ | ||||
| DLLTOOL = @DLLTOOL@ | ||||
| DSYMUTIL = @DSYMUTIL@ | ||||
| DUMPBIN = @DUMPBIN@ | ||||
| @ -196,6 +240,7 @@ LN_S = @LN_S@ | ||||
| LTLIBOBJS = @LTLIBOBJS@ | ||||
| MAINT = @MAINT@ | ||||
| MAKEINFO = @MAKEINFO@ | ||||
| MANIFEST_TOOL = @MANIFEST_TOOL@ | ||||
| MKDIR_P = @MKDIR_P@ | ||||
| NM = @NM@ | ||||
| NMEDIT = @NMEDIT@ | ||||
| @ -227,6 +272,7 @@ abs_builddir = @abs_builddir@ | ||||
| abs_srcdir = @abs_srcdir@ | ||||
| abs_top_builddir = @abs_top_builddir@ | ||||
| abs_top_srcdir = @abs_top_srcdir@ | ||||
| ac_ct_AR = @ac_ct_AR@ | ||||
| ac_ct_CC = @ac_ct_CC@ | ||||
| ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||||
| am__include = @am__include@ | ||||
| @ -284,11 +330,19 @@ top_srcdir = @top_srcdir@ | ||||
| PNGLIB_BASENAME = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ | ||||
| 
 | ||||
| # libpng does not follow GNU file name conventions
 | ||||
| 
 | ||||
| # "color-tests" requires automake 1.11.1 or later.  Enable it if you like,
 | ||||
| # to get red "FAIL" and green "PASS" notations during tests.
 | ||||
| # AUTOMAKE_OPTIONS = foreign color-tests
 | ||||
| AUTOMAKE_OPTIONS = foreign | ||||
| 
 | ||||
| # test programs - run on make check, make distcheck
 | ||||
| TESTS_ENVIRONMENT = srcdir=$(srcdir) | ||||
| pngtest_SOURCES = pngtest.c | ||||
| pngtest_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| TESTS = test-pngtest.sh | ||||
| TESTS_ENVIRONMENT = srcdir=$(srcdir) | ||||
| TESTS = test-pngtest.sh test-pngvalid-simple.sh test-pngvalid-full.sh | ||||
| pngvalid_SOURCES = contrib/libtests/pngvalid.c | ||||
| pngvalid_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| 
 | ||||
| # man pages
 | ||||
| dist_man_MANS = libpng.3 libpngpf.3 png.5 | ||||
| @ -298,54 +352,56 @@ bin_SCRIPTS = @binconfigs@ | ||||
| # rules to build libpng, only build the old library on request
 | ||||
| lib_LTLIBRARIES = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la | ||||
| # EXTRA_LTLIBRARIES= libpng.la
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngset.c pngget.c pngrutil.c \
 | ||||
| 	pngtrans.c pngwutil.c \
 | ||||
| 	pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
 | ||||
| 	pngwtran.c pngmem.c pngerror.c pngpread.c \
 | ||||
| 	png.h pngconf.h pngpriv.h | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = png.c pngerror.c \
 | ||||
| 	pngget.c pngmem.c pngpread.c pngread.c pngrio.c pngrtran.c \
 | ||||
| 	pngrutil.c pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c \
 | ||||
| 	pngwutil.c png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h \
 | ||||
| 	pngstruct.h $(am__append_1) | ||||
| nodist_libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_SOURCES = pnglibconf.h | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS = @LIBPNG_DEFINES@ | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_LDFLAGS = -no-undefined \
 | ||||
| 	-export-dynamic -version-number \
 | ||||
| 	@PNGLIB_MAJOR@@PNGLIB_MINOR@:@PNGLIB_RELEASE@:0 \
 | ||||
| 	$(am__append_1) $(am__append_2) | ||||
| 	$(am__append_2) $(am__append_3) $(am__append_4) | ||||
| @HAVE_LD_VERSION_SCRIPT_FALSE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.sym | ||||
| @HAVE_LD_VERSION_SCRIPT_TRUE@libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_DEPENDENCIES = libpng.vers | ||||
| 
 | ||||
| # Avoid depending upon Character Ranges.
 | ||||
| AN = '_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' | ||||
| pkginclude_HEADERS = png.h pngconf.h | ||||
| nodist_pkginclude_HEADERS = pnglibconf.h | ||||
| pkgconfig_DATA = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc | ||||
| 
 | ||||
| #extra source distribution files.
 | ||||
| EXTRA_DIST = \
 | ||||
| 	ANNOUNCE CHANGES INSTALL LICENSE README TODO CMakeLists.txt \
 | ||||
| 	ANNOUNCE CHANGES INSTALL LICENSE README TODO \
 | ||||
| 	pngtest.png pngbar.png pngnow.png pngbar.jpg autogen.sh \
 | ||||
| 	${srcdir}/projects/vstudio/* \
 | ||||
| 	${srcdir}/projects/visualc6/* \
 | ||||
| 	${srcdir}/projects/visualc71/* \
 | ||||
| 	${srcdir}/projects/xcode/* \
 | ||||
| 	${srcdir}/scripts/* \
 | ||||
| 	${srcdir}/contrib/gregbook/* \
 | ||||
| 	${srcdir}/contrib/pngminim/* \
 | ||||
| 	${srcdir}/contrib/pngminus/* \
 | ||||
| 	${srcdir}/contrib/pngsuite/* \
 | ||||
| 	${srcdir}/contrib/visupng/* \
 | ||||
| 	${srcdir}/contrib ${srcdir}/projects ${srcdir}/scripts \
 | ||||
| 	$(TESTS) \
 | ||||
| 	example.c libpng-1.4.9beta01.txt | ||||
| 	CMakeLists.txt example.c libpng-manual.txt | ||||
| 
 | ||||
| CLEANFILES = pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers \
 | ||||
| libpng.sym | ||||
| SCRIPT_CLEANFILES = scripts/*.out scripts/*.chk scripts/pnglibconf.dfn | ||||
| CLEANFILES = dfn.c dfn?.out pngout.png libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.pc \
 | ||||
| 	libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@-config libpng.vers libpng.sym \
 | ||||
| 	check.new pnglibconf.* symbols.new pngtest-log.txt \
 | ||||
| 	$(SCRIPT_CLEANFILES) | ||||
| 
 | ||||
| MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in \
 | ||||
| config.sub configure depcomp install-sh ltmain.sh missing | ||||
| 
 | ||||
| SUFFIXES = .chk .dfn .out | ||||
| 
 | ||||
| # We must use -DPNG_NO_USE_READ_MACROS here even when the library may actually
 | ||||
| # be built with PNG_USE_READ_MACROS; this prevents the read macros from
 | ||||
| # interfering with the symbol file format.
 | ||||
| SYMBOL_CFLAGS = -DPNGLIB_LIBNAME='PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0'\
 | ||||
| 		-DPNGLIB_VERSION='@PNGLIB_VERSION@'\
 | ||||
| 		-DSYMBOL_PREFIX='$(SYMBOL_PREFIX)'\
 | ||||
| 		-DPNG_NO_USE_READ_MACROS -DPNG_BUILDING_SYMBOL_TABLE | ||||
| 
 | ||||
| all: config.h | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) all-am | ||||
| 
 | ||||
| .SUFFIXES: | ||||
| .SUFFIXES: .c .lo .o .obj | ||||
| am--refresh: | ||||
| .SUFFIXES: .chk .dfn .out .S .c .lo .o .obj | ||||
| am--refresh: Makefile | ||||
| 	@: | ||||
| $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps) | ||||
| 	@for dep in $?; do \
 | ||||
| @ -381,10 +437,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) | ||||
| $(am__aclocal_m4_deps): | ||||
| 
 | ||||
| config.h: stamp-h1 | ||||
| 	@if test ! -f $@; then \
 | ||||
| 	  rm -f stamp-h1; \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
 | ||||
| 	else :; fi | ||||
| 	@if test ! -f $@; then rm -f stamp-h1; else :; fi | ||||
| 	@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi | ||||
| 
 | ||||
| stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status | ||||
| 	@rm -f stamp-h1 | ||||
| @ -445,6 +499,9 @@ clean-checkPROGRAMS: | ||||
| pngtest$(EXEEXT): $(pngtest_OBJECTS) $(pngtest_DEPENDENCIES)  | ||||
| 	@rm -f pngtest$(EXEEXT) | ||||
| 	$(LINK) $(pngtest_OBJECTS) $(pngtest_LDADD) $(LIBS) | ||||
| pngvalid$(EXEEXT): $(pngvalid_OBJECTS) $(pngvalid_DEPENDENCIES)  | ||||
| 	@rm -f pngvalid$(EXEEXT) | ||||
| 	$(LINK) $(pngvalid_OBJECTS) $(pngvalid_LDADD) $(LIBS) | ||||
| install-binSCRIPTS: $(bin_SCRIPTS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" | ||||
| @ -476,9 +533,7 @@ uninstall-binSCRIPTS: | ||||
| 	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
 | ||||
| 	files=`for p in $$list; do echo "$$p"; done | \
 | ||||
| 	       sed -e 's,.*/,,;$(transform)'`; \
 | ||||
| 	test -n "$$list" || exit 0; \
 | ||||
| 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 | ||||
| 	cd "$(DESTDIR)$(bindir)" && rm -f $$files | ||||
| 	dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) | ||||
| 
 | ||||
| mostlyclean-compile: | ||||
| 	-rm -f *.$(OBJEXT) | ||||
| @ -486,6 +541,7 @@ mostlyclean-compile: | ||||
| distclean-compile: | ||||
| 	-rm -f *.tab.c | ||||
| 
 | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.Plo@am__quote@ | ||||
| @ -502,6 +558,35 @@ distclean-compile: | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Plo@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pngtest.Po@am__quote@ | ||||
| @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pngvalid.Po@am__quote@ | ||||
| 
 | ||||
| .S.o: | ||||
| @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $< | ||||
| 
 | ||||
| .S.obj: | ||||
| @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| @am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` | ||||
| 
 | ||||
| .S.lo: | ||||
| @am__fastdepCCAS_TRUE@	$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCCAS_FALSE@	$(LTCPPASCOMPILE) -c -o $@ $< | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.lo: arm/filter_neon.S | ||||
| @am__fastdepCCAS_TRUE@	$(LIBTOOL)  $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.lo `test -f 'arm/filter_neon.S' || echo '$(srcdir)/'`arm/filter_neon.S | ||||
| @am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='arm/filter_neon.S' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCCAS_FALSE@	$(LIBTOOL)  $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-filter_neon.lo `test -f 'arm/filter_neon.S' || echo '$(srcdir)/'`arm/filter_neon.S | ||||
| 
 | ||||
| .c.o: | ||||
| @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||||
| @ -531,12 +616,12 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo: png.c | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-png.lo `test -f 'png.c' || echo '$(srcdir)/'`png.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo: pngset.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngset.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo: pngerror.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngerror.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo: pngget.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo `test -f 'pngget.c' || echo '$(srcdir)/'`pngget.c | ||||
| @ -545,26 +630,19 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo: pngget.c | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngget.lo `test -f 'pngget.c' || echo '$(srcdir)/'`pngget.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo: pngrutil.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngrutil.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo: pngmem.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngmem.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo: pngtrans.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngtrans.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo: pngpread.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngpread.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo: pngwutil.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngwutil.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo: pngread.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngread.lo `test -f 'pngread.c' || echo '$(srcdir)/'`pngread.c | ||||
| @ -580,6 +658,34 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo: pngrio.c | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrio.lo `test -f 'pngrio.c' || echo '$(srcdir)/'`pngrio.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo: pngrtran.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngrtran.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo: pngrutil.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngrutil.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrutil.lo `test -f 'pngrutil.c' || echo '$(srcdir)/'`pngrutil.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo: pngset.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngset.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngset.lo `test -f 'pngset.c' || echo '$(srcdir)/'`pngset.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo: pngtrans.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngtrans.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngtrans.lo `test -f 'pngtrans.c' || echo '$(srcdir)/'`pngtrans.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo: pngwio.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.lo `test -f 'pngwio.c' || echo '$(srcdir)/'`pngwio.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwio.Plo | ||||
| @ -594,13 +700,6 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo: pngwrite.c | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwrite.lo `test -f 'pngwrite.c' || echo '$(srcdir)/'`pngwrite.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo: pngrtran.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngrtran.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngrtran.lo `test -f 'pngrtran.c' || echo '$(srcdir)/'`pngrtran.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo: pngwtran.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo `test -f 'pngwtran.c' || echo '$(srcdir)/'`pngwtran.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.Plo | ||||
| @ -608,26 +707,26 @@ libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo: pngwtran.c | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwtran.lo `test -f 'pngwtran.c' || echo '$(srcdir)/'`pngwtran.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo: pngmem.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngmem.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo: pngwutil.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngwutil.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngmem.lo `test -f 'pngmem.c' || echo '$(srcdir)/'`pngmem.c | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngwutil.lo `test -f 'pngwutil.c' || echo '$(srcdir)/'`pngwutil.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo: pngerror.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngerror.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| pngvalid.o: contrib/libtests/pngvalid.c | ||||
| @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pngvalid.o -MD -MP -MF $(DEPDIR)/pngvalid.Tpo -c -o pngvalid.o `test -f 'contrib/libtests/pngvalid.c' || echo '$(srcdir)/'`contrib/libtests/pngvalid.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/pngvalid.Tpo $(DEPDIR)/pngvalid.Po | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='contrib/libtests/pngvalid.c' object='pngvalid.o' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngerror.lo `test -f 'pngerror.c' || echo '$(srcdir)/'`pngerror.c | ||||
| @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pngvalid.o `test -f 'contrib/libtests/pngvalid.c' || echo '$(srcdir)/'`contrib/libtests/pngvalid.c | ||||
| 
 | ||||
| libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo: pngpread.c | ||||
| @am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo -MD -MP -MF $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Tpo -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Tpo $(DEPDIR)/libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.Plo | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='pngpread.c' object='libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo' libtool=yes @AMDEPBACKSLASH@ | ||||
| pngvalid.obj: contrib/libtests/pngvalid.c | ||||
| @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pngvalid.obj -MD -MP -MF $(DEPDIR)/pngvalid.Tpo -c -o pngvalid.obj `if test -f 'contrib/libtests/pngvalid.c'; then $(CYGPATH_W) 'contrib/libtests/pngvalid.c'; else $(CYGPATH_W) '$(srcdir)/contrib/libtests/pngvalid.c'; fi` | ||||
| @am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/pngvalid.Tpo $(DEPDIR)/pngvalid.Po | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='contrib/libtests/pngvalid.c' object='pngvalid.obj' libtool=no @AMDEPBACKSLASH@ | ||||
| @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||||
| @am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la-pngpread.lo `test -f 'pngpread.c' || echo '$(srcdir)/'`pngpread.c | ||||
| @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pngvalid.obj `if test -f 'contrib/libtests/pngvalid.c'; then $(CYGPATH_W) 'contrib/libtests/pngvalid.c'; else $(CYGPATH_W) '$(srcdir)/contrib/libtests/pngvalid.c'; fi` | ||||
| 
 | ||||
| mostlyclean-libtool: | ||||
| 	-rm -f *.lo | ||||
| @ -672,9 +771,7 @@ uninstall-man3: | ||||
| 	  sed -n '/\.3[a-z]*$$/p'; \
 | ||||
| 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
 | ||||
| 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
 | ||||
| 	test -z "$$files" || { \
 | ||||
| 	  echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
 | ||||
| 	  cd "$(DESTDIR)$(man3dir)" && rm -f $$files; } | ||||
| 	dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) | ||||
| install-man5: $(dist_man_MANS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)" | ||||
| @ -710,9 +807,7 @@ uninstall-man5: | ||||
| 	  sed -n '/\.5[a-z]*$$/p'; \
 | ||||
| 	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
 | ||||
| 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
 | ||||
| 	test -z "$$files" || { \
 | ||||
| 	  echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
 | ||||
| 	  cd "$(DESTDIR)$(man5dir)" && rm -f $$files; } | ||||
| 	dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) | ||||
| install-pkgconfigDATA: $(pkgconfig_DATA) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" | ||||
| @ -730,9 +825,25 @@ uninstall-pkgconfigDATA: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
 | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 | ||||
| 	test -n "$$files" || exit 0; \
 | ||||
| 	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
 | ||||
| 	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files | ||||
| 	dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) | ||||
| install-nodist_pkgincludeHEADERS: $(nodist_pkginclude_HEADERS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" | ||||
| 	@list='$(nodist_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
 | ||||
| 	for p in $$list; do \
 | ||||
| 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 | ||||
| 	  echo "$$d$$p"; \
 | ||||
| 	done | $(am__base_list) | \
 | ||||
| 	while read files; do \
 | ||||
| 	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \
 | ||||
| 	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \
 | ||||
| 	done | ||||
| 
 | ||||
| uninstall-nodist_pkgincludeHEADERS: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(nodist_pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
 | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 | ||||
| 	dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) | ||||
| install-pkgincludeHEADERS: $(pkginclude_HEADERS) | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" | ||||
| @ -750,9 +861,7 @@ uninstall-pkgincludeHEADERS: | ||||
| 	@$(NORMAL_UNINSTALL) | ||||
| 	@list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \
 | ||||
| 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 | ||||
| 	test -n "$$files" || exit 0; \
 | ||||
| 	echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
 | ||||
| 	cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files | ||||
| 	dir='$(DESTDIR)$(pkgincludedir)'; $(am__uninstall_files_from_dir) | ||||
| 
 | ||||
| ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||||
| 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 | ||||
| @ -887,14 +996,15 @@ check-TESTS: $(TESTS) | ||||
| 	  fi; \
 | ||||
| 	  dashes=`echo "$$dashes" | sed s/./=/g`; \
 | ||||
| 	  if test "$$failed" -eq 0; then \
 | ||||
| 	    echo "$$grn$$dashes"; \
 | ||||
| 	    col="$$grn"; \
 | ||||
| 	  else \
 | ||||
| 	    echo "$$red$$dashes"; \
 | ||||
| 	    col="$$red"; \
 | ||||
| 	  fi; \
 | ||||
| 	  echo "$$banner"; \
 | ||||
| 	  test -z "$$skipped" || echo "$$skipped"; \
 | ||||
| 	  test -z "$$report" || echo "$$report"; \
 | ||||
| 	  echo "$$dashes$$std"; \
 | ||||
| 	  echo "$${col}$$dashes$${std}"; \
 | ||||
| 	  echo "$${col}$$banner$${std}"; \
 | ||||
| 	  test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \
 | ||||
| 	  test -z "$$report" || echo "$${col}$$report$${std}"; \
 | ||||
| 	  echo "$${col}$$dashes$${std}"; \
 | ||||
| 	  test "$$failed" -eq 0; \
 | ||||
| 	else :; fi | ||||
| 
 | ||||
| @ -943,6 +1053,9 @@ distdir: $(DISTFILES) | ||||
| 	    || exit 1; \
 | ||||
| 	  fi; \
 | ||||
| 	done | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) \
 | ||||
| 	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
 | ||||
| 	  dist-hook | ||||
| 	-test -n "$(am__skip_mode_fix)" \
 | ||||
| 	|| find "$(distdir)" -type d ! -perm -755 \
 | ||||
| 		-exec chmod u+rwx,go+rx {} \; -o \
 | ||||
| @ -955,7 +1068,7 @@ dist-gzip: distdir | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-bzip2: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 | ||||
| 	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-lzma: distdir | ||||
| @ -963,7 +1076,7 @@ dist-lzma: distdir | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-xz: distdir | ||||
| 	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz | ||||
| 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz | ||||
| 	$(am__remove_distdir) | ||||
| 
 | ||||
| dist-tarZ: distdir | ||||
| @ -1013,6 +1126,7 @@ distcheck: dist | ||||
| 	  && am__cwd=`pwd` \
 | ||||
| 	  && $(am__cd) $(distdir)/_build \
 | ||||
| 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
 | ||||
| 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 | ||||
| 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) \
 | ||||
| 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 | ||||
| @ -1041,8 +1155,16 @@ distcheck: dist | ||||
| 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 | ||||
| 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' | ||||
| distuninstallcheck: | ||||
| 	@$(am__cd) '$(distuninstallcheck_dir)' \
 | ||||
| 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
 | ||||
| 	@test -n '$(distuninstallcheck_dir)' || { \
 | ||||
| 	  echo 'ERROR: trying to run $@ with an empty' \
 | ||||
| 	       '$$(distuninstallcheck_dir)' >&2; \
 | ||||
| 	  exit 1; \
 | ||||
| 	}; \
 | ||||
| 	$(am__cd) '$(distuninstallcheck_dir)' || { \
 | ||||
| 	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
 | ||||
| 	  exit 1; \
 | ||||
| 	}; \
 | ||||
| 	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
 | ||||
| 	   || { echo "ERROR: files left after uninstall:" ; \
 | ||||
| 	        if test -n "$(DESTDIR)"; then \
 | ||||
| 	          echo "  (check DESTDIR support)"; \
 | ||||
| @ -1065,7 +1187,7 @@ check: check-am | ||||
| all-am: Makefile $(LTLIBRARIES) $(SCRIPTS) $(MANS) $(DATA) $(HEADERS) \ | ||||
| 		config.h | ||||
| installdirs: | ||||
| 	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)"; do \
 | ||||
| 	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"; do \
 | ||||
| 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 | ||||
| 	done | ||||
| install: install-am | ||||
| @ -1078,10 +1200,15 @@ install-am: all-am | ||||
| 
 | ||||
| installcheck: installcheck-am | ||||
| install-strip: | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	  `test -z '$(STRIP)' || \
 | ||||
| 	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | ||||
| 	if test -z '$(STRIP)'; then \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	      install; \
 | ||||
| 	else \
 | ||||
| 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 | ||||
| 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 | ||||
| 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 | ||||
| 	fi | ||||
| mostlyclean-generic: | ||||
| 
 | ||||
| clean-generic: | ||||
| @ -1119,8 +1246,8 @@ info: info-am | ||||
| 
 | ||||
| info-am: | ||||
| 
 | ||||
| install-data-am: install-man install-pkgconfigDATA \ | ||||
| 	install-pkgincludeHEADERS | ||||
| install-data-am: install-man install-nodist_pkgincludeHEADERS \ | ||||
| 	install-pkgconfigDATA install-pkgincludeHEADERS | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) install-data-hook | ||||
| install-dvi: install-dvi-am | ||||
| @ -1171,8 +1298,8 @@ ps: ps-am | ||||
| ps-am: | ||||
| 
 | ||||
| uninstall-am: uninstall-binSCRIPTS uninstall-libLTLIBRARIES \ | ||||
| 	uninstall-man uninstall-pkgconfigDATA \
 | ||||
| 	uninstall-pkgincludeHEADERS | ||||
| 	uninstall-man uninstall-nodist_pkgincludeHEADERS \
 | ||||
| 	uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS | ||||
| 	@$(NORMAL_INSTALL) | ||||
| 	$(MAKE) $(AM_MAKEFLAGS) uninstall-hook | ||||
| uninstall-man: uninstall-man3 uninstall-man5 | ||||
| @ -1183,59 +1310,119 @@ uninstall-man: uninstall-man3 uninstall-man5 | ||||
| .PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ | ||||
| 	clean clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \
 | ||||
| 	clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \
 | ||||
| 	dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
 | ||||
| 	distclean distclean-compile distclean-generic distclean-hdr \
 | ||||
| 	distclean-libtool distclean-tags distcleancheck distdir \
 | ||||
| 	distuninstallcheck dvi dvi-am html html-am info info-am \
 | ||||
| 	install install-am install-binSCRIPTS install-data \
 | ||||
| 	dist-hook dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
 | ||||
| 	distcheck distclean distclean-compile distclean-generic \
 | ||||
| 	distclean-hdr distclean-libtool distclean-tags distcleancheck \
 | ||||
| 	distdir distuninstallcheck dvi dvi-am html html-am info \
 | ||||
| 	info-am install install-am install-binSCRIPTS install-data \
 | ||||
| 	install-data-am install-data-hook install-dvi install-dvi-am \
 | ||||
| 	install-exec install-exec-am install-exec-hook install-html \
 | ||||
| 	install-html-am install-info install-info-am \
 | ||||
| 	install-libLTLIBRARIES install-man install-man3 install-man5 \
 | ||||
| 	install-pdf install-pdf-am install-pkgconfigDATA \
 | ||||
| 	install-pkgincludeHEADERS install-ps install-ps-am \
 | ||||
| 	install-strip installcheck installcheck-am installdirs \
 | ||||
| 	maintainer-clean maintainer-clean-generic mostlyclean \
 | ||||
| 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 | ||||
| 	pdf pdf-am ps ps-am tags uninstall uninstall-am \
 | ||||
| 	uninstall-binSCRIPTS uninstall-hook uninstall-libLTLIBRARIES \
 | ||||
| 	uninstall-man uninstall-man3 uninstall-man5 \
 | ||||
| 	install-nodist_pkgincludeHEADERS install-pdf install-pdf-am \
 | ||||
| 	install-pkgconfigDATA install-pkgincludeHEADERS install-ps \
 | ||||
| 	install-ps-am install-strip installcheck installcheck-am \
 | ||||
| 	installdirs maintainer-clean maintainer-clean-generic \
 | ||||
| 	mostlyclean mostlyclean-compile mostlyclean-generic \
 | ||||
| 	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
 | ||||
| 	uninstall-am uninstall-binSCRIPTS uninstall-hook \
 | ||||
| 	uninstall-libLTLIBRARIES uninstall-man uninstall-man3 \
 | ||||
| 	uninstall-man5 uninstall-nodist_pkgincludeHEADERS \
 | ||||
| 	uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS | ||||
| 
 | ||||
| 
 | ||||
| @HAVE_LD_VERSION_SCRIPT_TRUE@  # Versioned symbols and restricted exports
 | ||||
| @HAVE_LD_VERSION_SCRIPT_FALSE@  # Only restricted exports when possible
 | ||||
| 
 | ||||
| $(PNGLIB_BASENAME).pc: libpng.pc | ||||
| 	cp libpng.pc $@ | ||||
| 
 | ||||
| $(PNGLIB_BASENAME)-config: libpng-config | ||||
| 	cp libpng-config $@ | ||||
| 
 | ||||
| libpng.sym: png.h pngconf.h | ||||
| 	rm -f $@ $@.new | ||||
| 	$(CPP) @LIBPNG_DEFINES@ $(CPPFLAGS) -DPNG_BUILDSYMS $(srcdir)/png.h | \
 | ||||
| 		$(SED) -n -e \
 | ||||
| 		's|^.*PNG_FUNCTION_EXPORT[ 	]*\([$(AN)]*\).*$$|$(SYMBOL_PREFIX)\1|p' \
 | ||||
| 		-e 's|^.*PNG_DATA_EXPORT[ 	]*\([$(AN)]*\).*$$|$(SYMBOL_PREFIX)\1|p' \
 | ||||
| 			>$@.new | ||||
| 	mv $@.new $@ | ||||
| scripts/sym.out scripts/vers.out: png.h pngconf.h pnglibconf.h | ||||
| scripts/symbols.out: png.h pngconf.h $(srcdir)/scripts/pnglibconf.h.prebuilt | ||||
| 
 | ||||
| libpng.vers: libpng.sym | ||||
| 	rm -f $@ $@.new | ||||
| 	echo PNG@PNGLIB_MAJOR@@PNGLIB_MINOR@_0 '{global:' > $@.new | ||||
| 	$(SED) s/$$/\;/ libpng.sym >> $@.new | ||||
| 	echo 'local: *; };' >> $@.new | ||||
| 	mv $@.new $@ | ||||
| libpng.sym: scripts/sym.out | ||||
| 	rm -f $@ | ||||
| 	cp $? $@ | ||||
| libpng.vers: scripts/vers.out | ||||
| 	rm -f $@ | ||||
| 	cp $? $@ | ||||
| pnglibconf.h: pnglibconf.out | ||||
| 	rm -f $@ | ||||
| 	cp $? $@ | ||||
| $(srcdir)/scripts/pnglibconf.h.prebuilt: | ||||
| 	@echo "Attempting to build $@" >&2 | ||||
| 	@echo "This is a machine generated file, but if you want to make" >&2 | ||||
| 	@echo "a new one simply make 'scripts/pnglibconf.out' and copy that" >&2 | ||||
| 	@exit 1 | ||||
| 
 | ||||
| test: check | ||||
| # The following is necessary to ensure that the local pnglibconf.h is used, not
 | ||||
| # an installed one (this can happen immediately after on a clean system if
 | ||||
| # 'make test' is the first thing the user does.)
 | ||||
| contrib/libtests/pngvalid.o pngtest.o: pnglibconf.h | ||||
| 
 | ||||
| .dfn.out: | ||||
| 	rm -f $@ dfn.c dfn?.out | ||||
| 	test -d scripts || mkdir scripts | ||||
| 	echo '#include "$<"' >dfn.c | ||||
| 	$(DFNCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @LIBPNG_DEFINES@\
 | ||||
| 	    $(CPPFLAGS) $(SYMBOL_CFLAGS) dfn.c > dfn1.out | ||||
| 	$(SED) -n -e 's|^.*PNG_DEFN_MAGIC *-\(.*\)- *PNG_DEFN_END.*$$|\1|p'\
 | ||||
| 	    dfn1.out >dfn2.out | ||||
| 	$(SED) -e 's| *PNG_JOIN *||g' -e 's| *$$||' dfn2.out >dfn3.out | ||||
| 	rm -f dfn.c dfn[12].out | ||||
| 	mv dfn3.out $@ | ||||
| 
 | ||||
| # The .dfn file for pnglibconf.h is machine generated
 | ||||
| pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h | ||||
| 	rm -f $@ dfn?.out | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn1.out version=search\
 | ||||
| 	    ${srcdir}/pngconf.h ${srcdir}/scripts/pnglibconf.dfa\
 | ||||
| 	    $(DFA_XTRA) 1>&2 | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn2.out dfn1.out 1>&2 | ||||
| 	rm dfn1.out | ||||
| 	mv dfn2.out $@ | ||||
| 
 | ||||
| # Symbol checks (.def and .out files should match)
 | ||||
| scripts/symbols.chk: scripts/checksym.awk scripts/symbols.def scripts/symbols.out | ||||
| .out.chk: | ||||
| 	rm -f $@ symbols.new | ||||
| 	$(AWK) -f ${srcdir}/scripts/checksym.awk ${srcdir}/scripts/${*F}.def\
 | ||||
| 	    $< >&2 | ||||
| 	mv symbols.new $@ | ||||
| 
 | ||||
| # used on demand to regenerate the standard header, CPPFLAGS should
 | ||||
| # be empty - no non-standard defines
 | ||||
| scripts/pnglibconf.dfn: scripts/pnglibconf.dfa scripts/options.awk pngconf.h | ||||
| 	rm -f $@ dfn?.out | ||||
| 	test -z "$(CPPFLAGS)" | ||||
| 	echo "com @PNGLIB_VERSION@ STANDARD API DEFINITION" |\
 | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn1.out logunsupported=1 | ||||
| 		version=search ${srcdir}/pngconf.h -\
 | ||||
| 		${srcdir}/scripts/pnglibconf.dfa 1>&2 | ||||
| 	$(AWK) -f ${srcdir}/scripts/options.awk out=dfn2.out dfn1.out 1>&2 | ||||
| 	rm dfn1.out | ||||
| 	mv dfn2.out $@ | ||||
| 
 | ||||
| $(libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@_la_OBJECTS): png.h pngconf.h \ | ||||
| 	pnglibconf.h pngpriv.h pngdebug.h pnginfo.h pngstruct.h | ||||
| 
 | ||||
| test: check-am | ||||
| 
 | ||||
| # Extra checks
 | ||||
| check: scripts/symbols.chk | ||||
| 
 | ||||
| # Don't distribute the generated script files
 | ||||
| dist-hook: | ||||
| 	cd '$(top_distdir)'; rm -f $(SCRIPT_CLEANFILES) | ||||
| 
 | ||||
| # install the .../include headers as links to the new ones
 | ||||
| install-data-hook: | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h pnglibconf.h | ||||
| 	cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/png.h png.h | ||||
| 	cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pngconf.h \
 | ||||
| 		pngconf.h | ||||
| 	cd $(DESTDIR)$(includedir); $(LN_S) $(PNGLIB_BASENAME)/pnglibconf.h \
 | ||||
| 		pnglibconf.h | ||||
| 	cd $(DESTDIR)$(pkgconfigdir); rm -f libpng.pc | ||||
| 	cd $(DESTDIR)$(pkgconfigdir); $(LN_S) $(PNGLIB_BASENAME).pc libpng.pc | ||||
| 
 | ||||
| @ -1253,9 +1440,12 @@ install-exec-hook: | ||||
| 	done | ||||
| 
 | ||||
| uninstall-hook: | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h | ||||
| 	cd $(DESTDIR)$(includedir); rm -f png.h pngconf.h pnglibconf.h | ||||
| 	rm -f $(DESTDIR)$(pkgconfigdir)/libpng.pc | ||||
| 	rm -f $(DESTDIR)$(bindir)/libpng-config | ||||
| 	rm -f $(DESTDIR)$(libdir)/libpng.a | ||||
| 	rm -f $(DESTDIR)$(libdir)/libpng.la | ||||
| 	rm -f $(DESTDIR)$(libdir)/libpng.dll.a | ||||
| 
 | ||||
| # Tell versions [3.59,3.63) of GNU make to not export all variables.
 | ||||
| # Otherwise a system limit (for SysV at least) may be exceeded.
 | ||||
|  | ||||
							
								
								
									
										84
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										84
									
								
								README
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | ||||
| README for libpng version 1.4.9beta01 - July 8, 2011 (shared library 14.0) | ||||
| README for libpng version 1.5.10beta01 - February 19, 2012 (shared library 15.0) | ||||
| See the note about version numbers near the top of png.h | ||||
| 
 | ||||
| See INSTALL for instructions on how to install libpng. | ||||
| @ -58,7 +58,7 @@ on the PNG-implement mailing list and not on material submitted | ||||
| privately to Guy, Andreas, or Glenn.  They will forward any good | ||||
| suggestions to the list. | ||||
| 
 | ||||
| For a detailed description on using libpng, read libpng.txt.  For | ||||
| For a detailed description on using libpng, read libpng-manual.txt.  For | ||||
| examples of libpng in a program, see example.c and pngtest.c.  For usage | ||||
| information and restrictions (what little they are) on libpng, see | ||||
| png.h.  For a description on using zlib (the compression library used by | ||||
| @ -138,13 +138,17 @@ Files in this distribution: | ||||
|       TODO          =>  Things not implemented in the current library | ||||
|       Y2KINFO       =>  Statement of Y2K compliance | ||||
|       example.c     =>  Example code for using libpng functions | ||||
|       libpng.3      =>  manual page for libpng (includes libpng.txt) | ||||
|       libpng.txt    =>  Description of libpng and its functions | ||||
|       libpng.3      =>  manual page for libpng (includes libpng-manual.txt) | ||||
|       libpng-manual.txt  =>  Description of libpng and its functions | ||||
|       libpngpf.3    =>  manual page for libpng's private functions | ||||
|       png.5         =>  manual page for the PNG format | ||||
|       png.c         =>  Basic interface functions common to library | ||||
|       png.h         =>  Library function and interface declarations | ||||
|       pngconf.h     =>  System specific library configuration | ||||
|       png.h         =>  Library function and interface declarations (public) | ||||
|       pngpriv.h     =>  Library function and interface declarations (private) | ||||
|       pngconf.h     =>  System specific library configuration (public) | ||||
|       pngstruct.h   =>  png_struct declaration (private) | ||||
|       pnginfo.h     =>  png_info struct declaration (private) | ||||
|       pngdebug.h    =>  debugging macros (private) | ||||
|       pngerror.c    =>  Error/warning message I/O functions | ||||
|       pngget.c      =>  Functions for retrieving info from struct | ||||
|       pngmem.c      =>  Memory handling functions | ||||
| @ -173,72 +177,16 @@ Files in this distribution: | ||||
|        visupng      =>  Contains a MSVC workspace for VisualPng | ||||
|       projects      =>  Contains project files and workspaces for | ||||
|                         building a DLL | ||||
|        c5builder        =>  Contains a Borland workspace for building | ||||
|        cbuilder5        =>  Contains a Borland workspace for building | ||||
|                             libpng and zlib | ||||
|        visualc6         =>  Contains a Microsoft Visual C++ (MSVC) | ||||
|                             workspace for building libpng and zlib | ||||
|        visualc71        =>  Contains a Microsoft Visual C++ (MSVC) | ||||
|                             workspace for building libpng and zlib | ||||
|        xcode            =>  Contains an Apple xcode | ||||
|                             workspace for building libpng and zlib | ||||
|       scripts       =>  Directory containing scripts for building libpng: | ||||
|        descrip.mms      =>  VMS makefile for MMS or MMK | ||||
|        makefile.std     =>  Generic UNIX makefile (cc, creates static | ||||
|                             libpng.a) | ||||
|        makefile.elf     =>  Linux/ELF makefile symbol versioning, | ||||
|                             (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|        makefile.linux   =>  Linux/ELF makefile | ||||
|                             (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|        makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a) | ||||
|        makefile.knr     =>  Archaic UNIX Makefile that converts files with | ||||
|                             ansi2knr (Requires ansi2knr.c from | ||||
|                             ftp://ftp.cs.wisc.edu/ghost) | ||||
|        makefile.aix     =>  AIX makefile | ||||
|        makefile.cygwin  =>  Cygwin/gcc makefile | ||||
|        makefile.darwin  =>  Darwin makefile | ||||
|        makefile.dec     =>  DEC Alpha UNIX makefile | ||||
|        makefile.freebsd =>  FreeBSD makefile | ||||
|        makefile.hpgcc   =>  HPUX makefile using gcc | ||||
|        makefile.hpux    =>  HPUX (10.20 and 11.00) makefile | ||||
|        makefile.hp64    =>  HPUX (10.20 and 11.00) makefile, 64 bit | ||||
|        makefile.ibmc    =>  IBM C/C++ version 3.x for Win32 and OS/2 (static) | ||||
|        makefile.intel   =>  Intel C/C++ version 4.0 and later | ||||
|        makefile.mingw   =>  Mingw/gcc makefile | ||||
|        makefile.netbsd  =>  NetBSD/cc makefile, makes libpng.so. | ||||
|        makefile.ne14bsd  =>  NetBSD/cc makefile, makes | ||||
|                             libpng14.so | ||||
|        makefile.openbsd =>  OpenBSD makefile | ||||
|        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib) | ||||
|        makefile.sggcc   =>  Silicon Graphics | ||||
|                             (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|        makefile.sunos   =>  Sun makefile | ||||
|        makefile.solaris =>  Solaris 2.X makefile | ||||
|                             (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|        makefile.so9     =>  Solaris 9 makefile | ||||
|                             (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|        makefile.32sunu  =>  Sun Ultra 32-bit makefile | ||||
|        makefile.64sunu  =>  Sun Ultra 64-bit makefile | ||||
|        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc | ||||
|        makefile.mips    =>  MIPS makefile | ||||
|        makefile.acorn   =>  Acorn makefile | ||||
|        makefile.amiga   =>  Amiga makefile | ||||
|        smakefile.ppc    =>  AMIGA smakefile for SAS C V6.58/7.00 PPC | ||||
|                             compiler (Requires SCOPTIONS, copied from | ||||
|                             scripts/SCOPTIONS.ppc) | ||||
|        makefile.atari   =>  Atari makefile | ||||
|        makefile.beos    =>  BEOS makefile for X86 | ||||
|        makefile.bor     =>  Borland makefile (uses bcc) | ||||
|        makefile.bc32    =>  32-bit Borland C++ (all modules compiled in C mode) | ||||
|        makefile.tc3     =>  Turbo C 3.0 makefile | ||||
|        makefile.dj2     =>  DJGPP 2 makefile | ||||
|        makefile.msc     =>  Microsoft C makefile | ||||
|        makefile.vcwin32 =>  makefile for Microsoft Visual C++ 4.0 and | ||||
|                             later (does not use assembler code) | ||||
|        makefile.os2     =>  OS/2 Makefile (gcc and emx, requires pngos2.def) | ||||
|        png32ce.def      =>  module definition for makefile.cegccg | ||||
|        pngos2.def       =>  OS/2 module definition file used by | ||||
|                             makefile.os2 | ||||
|        pngwin.def       =>  module definition file used by | ||||
|                             makefile.cygwin and makefile.mingw | ||||
|        makefile.watcom  =>  Watcom 10a+ Makefile, 32-bit flat memory model | ||||
|        makevms.com      =>  VMS build script | ||||
|        SCOPTIONS.ppc    =>  Used with smakefile.ppc | ||||
|                             (see scripts/README.txt for the list of scripts) | ||||
| 
 | ||||
| Good luck, and happy coding. | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										10
									
								
								TODO
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								TODO
									
									
									
									
									
								
							| @ -2,14 +2,12 @@ | ||||
| TODO - list of things to do for libpng: | ||||
| 
 | ||||
| Final bug fixes. | ||||
| Improve API by hiding the png_struct and png_info structs. | ||||
| Finish work on the no-floating-point version (including gamma compensation) | ||||
| Better C++ wrapper/full C++ implementation? | ||||
| Fix problem with C++ and EXTERN "C". | ||||
| cHRM transformation. | ||||
| Improve setjmp/longjmp usage or remove it in favor of returning error codes. | ||||
| Remove setjmp/longjmp usage in favor of returning error codes. | ||||
| Add "grayscale->palette" transformation and "palette->grayscale" detection. | ||||
| Improved quantizing and dithering. | ||||
| Improved dithering. | ||||
| Multi-lingual error and warning message support. | ||||
| Complete sRGB transformation (presently it simply uses gamma=0.45455). | ||||
| Man pages for function calls. | ||||
| @ -18,14 +16,12 @@ Better filter selection | ||||
|    (counting huffman bits/precompression?  filter inertia?  filter costs?). | ||||
| Histogram creation. | ||||
| Text conversion between different code pages (Latin-1 -> Mac and DOS). | ||||
| Build gamma tables using fixed point (and do away with floating point entirely). | ||||
| Avoid building gamma tables whenever possible. | ||||
| Use greater precision when changing to linear gamma for compositing against | ||||
|   background and doing rgb-to-gray transformation. | ||||
| Investigate pre-incremented loop counters and other loop constructions. | ||||
| Add interpolated method of handling interlacing. | ||||
| Provide for conditional compilation of 16-bit support (except for the | ||||
|   initial stripping down to 8-bits when reading a 16-bit PNG datastream). | ||||
| Switch to the simpler zlib (zlib/libpng) license if legally possible. | ||||
| Extend pngvalid.c to validate more of the libpng transformations. | ||||
| 
 | ||||
| */ | ||||
|  | ||||
							
								
								
									
										1453
									
								
								aclocal.m4
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1453
									
								
								aclocal.m4
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										225
									
								
								arm/filter_neon.S
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										225
									
								
								arm/filter_neon.S
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,225 @@ | ||||
| 
 | ||||
| /* filter_neon.S - NEON optimised filter functions | ||||
|  * | ||||
|  * Copyright (c) 2011 Glenn Randers-Pehrson | ||||
|  * Written by Mans Rullgard, 2011. | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| #if defined(__linux__) && defined(__ELF__) | ||||
| .section .note.GNU-stack,"",%progbits /* mark stack as non-executable */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef __ELF__ | ||||
| #   define ELF | ||||
| #else | ||||
| #   define ELF @
 | ||||
| #endif | ||||
| 
 | ||||
|         .arch armv7-a | ||||
|         .fpu  neon
 | ||||
| 
 | ||||
| .macro  func    name, export=0 | ||||
|     .macro endfunc
 | ||||
| ELF     .size   \name, . - \name | ||||
|         .endfunc | ||||
|         .purgem endfunc
 | ||||
|     .endm | ||||
|         .text | ||||
|     .if \export | ||||
|         .global \name | ||||
|     .endif | ||||
| ELF     .type   \name, STT_FUNC | ||||
|         .func   \name | ||||
| \name: | ||||
| .endm | ||||
| 
 | ||||
| func    png_read_filter_row_sub4_neon, export=1 | ||||
|         ldr             r3,  [r0, #4]           @ rowbytes
 | ||||
|         vmov.i8         d3,  #0 | ||||
| 1: | ||||
|         vld4.32         {d4[],d5[],d6[],d7[]},    [r1,:128] | ||||
|         vadd.u8         d0,  d3,  d4 | ||||
|         vadd.u8         d1,  d0,  d5 | ||||
|         vadd.u8         d2,  d1,  d6 | ||||
|         vadd.u8         d3,  d2,  d7 | ||||
|         vst4.32         {d0[0],d1[0],d2[0],d3[0]},[r1,:128]! | ||||
|         subs            r3,  r3,  #16 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         bx              lr | ||||
| endfunc | ||||
| 
 | ||||
| func    png_read_filter_row_sub3_neon, export=1 | ||||
|         ldr             r3,  [r0, #4]           @ rowbytes
 | ||||
|         vmov.i8         d3,  #0 | ||||
|         mov             r0,  r1 | ||||
|         mov             r2,  #3 | ||||
|         mov             r12, #12 | ||||
|         vld1.8          {q11},    [r0], r12 | ||||
| 1: | ||||
|         vext.8          d5,  d22, d23, #3 | ||||
|         vadd.u8         d0,  d3,  d22 | ||||
|         vext.8          d6,  d22, d23, #6 | ||||
|         vadd.u8         d1,  d0,  d5 | ||||
|         vext.8          d7,  d23, d23, #1 | ||||
|         vld1.8          {q11},    [r0], r12 | ||||
|         vst1.32         {d0[0]},  [r1,:32], r2 | ||||
|         vadd.u8         d2,  d1,  d6 | ||||
|         vst1.32         {d1[0]},  [r1], r2 | ||||
|         vadd.u8         d3,  d2,  d7 | ||||
|         vst1.32         {d2[0]},  [r1], r2 | ||||
|         vst1.32         {d3[0]},  [r1], r2 | ||||
|         subs            r3,  r3,  #12 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         bx              lr | ||||
| endfunc | ||||
| 
 | ||||
| func    png_read_filter_row_up_neon, export=1 | ||||
|         ldr             r3,  [r0, #4]           @ rowbytes
 | ||||
| 1: | ||||
|         vld1.8          {q0}, [r1,:128] | ||||
|         vld1.8          {q1}, [r2,:128]! | ||||
|         vadd.u8         q0,  q0,  q1 | ||||
|         vst1.8          {q0}, [r1,:128]! | ||||
|         subs            r3,  r3,  #16 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         bx              lr | ||||
| endfunc | ||||
| 
 | ||||
| func    png_read_filter_row_avg4_neon, export=1 | ||||
|         ldr             r12, [r0, #4]           @ rowbytes
 | ||||
|         vmov.i8         d3,  #0 | ||||
| 1: | ||||
|         vld4.32         {d4[],d5[],d6[],d7[]},    [r1,:128] | ||||
|         vld4.32         {d16[],d17[],d18[],d19[]},[r2,:128]! | ||||
|         vhadd.u8        d0,  d3,  d16 | ||||
|         vadd.u8         d0,  d0,  d4 | ||||
|         vhadd.u8        d1,  d0,  d17 | ||||
|         vadd.u8         d1,  d1,  d5 | ||||
|         vhadd.u8        d2,  d1,  d18 | ||||
|         vadd.u8         d2,  d2,  d6 | ||||
|         vhadd.u8        d3,  d2,  d19 | ||||
|         vadd.u8         d3,  d3,  d7 | ||||
|         vst4.32         {d0[0],d1[0],d2[0],d3[0]},[r1,:128]! | ||||
|         subs            r12, r12, #16 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         bx              lr | ||||
| endfunc | ||||
| 
 | ||||
| func    png_read_filter_row_avg3_neon, export=1 | ||||
|         push            {r4,lr} | ||||
|         ldr             r12, [r0, #4]           @ rowbytes
 | ||||
|         vmov.i8         d3,  #0 | ||||
|         mov             r0,  r1 | ||||
|         mov             r4,  #3 | ||||
|         mov             lr,  #12 | ||||
|         vld1.8          {q11},    [r0], lr | ||||
| 1: | ||||
|         vld1.8          {q10},    [r2], lr | ||||
|         vext.8          d5,  d22, d23, #3 | ||||
|         vhadd.u8        d0,  d3,  d20 | ||||
|         vext.8          d17, d20, d21, #3 | ||||
|         vadd.u8         d0,  d0,  d22 | ||||
|         vext.8          d6,  d22, d23, #6 | ||||
|         vhadd.u8        d1,  d0,  d17 | ||||
|         vext.8          d18, d20, d21, #6 | ||||
|         vadd.u8         d1,  d1,  d5 | ||||
|         vext.8          d7,  d23, d23, #1 | ||||
|         vld1.8          {q11},    [r0], lr | ||||
|         vst1.32         {d0[0]},  [r1,:32], r4 | ||||
|         vhadd.u8        d2,  d1,  d18 | ||||
|         vst1.32         {d1[0]},  [r1], r4 | ||||
|         vext.8          d19, d21, d21, #1 | ||||
|         vadd.u8         d2,  d2,  d6 | ||||
|         vhadd.u8        d3,  d2,  d19 | ||||
|         vst1.32         {d2[0]},  [r1], r4 | ||||
|         vadd.u8         d3,  d3,  d7 | ||||
|         vst1.32         {d3[0]},  [r1], r4 | ||||
|         subs            r12, r12, #12 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         pop             {r4,pc} | ||||
| endfunc | ||||
| 
 | ||||
| .macro  paeth           rx,  ra,  rb,  rc | ||||
|         vaddl.u8        q12, \ra, \rb           @ a + b
 | ||||
|         vaddl.u8        q15, \rc, \rc           @ 2*c
 | ||||
|         vabdl.u8        q13, \rb, \rc           @ pa
 | ||||
|         vabdl.u8        q14, \ra, \rc           @ pb
 | ||||
|         vabd.u16        q15, q12, q15           @ pc
 | ||||
|         vcle.u16        q12, q13, q14           @ pa <= pb
 | ||||
|         vcle.u16        q13, q13, q15           @ pa <= pc
 | ||||
|         vcle.u16        q14, q14, q15           @ pb <= pc
 | ||||
|         vand            q12, q12, q13           @ pa <= pb && pa <= pc
 | ||||
|         vmovn.u16       d28, q14 | ||||
|         vmovn.u16       \rx, q12 | ||||
|         vbsl            d28, \rb, \rc | ||||
|         vbsl            \rx, \ra, d28 | ||||
| .endm | ||||
| 
 | ||||
| func    png_read_filter_row_paeth4_neon, export=1 | ||||
|         ldr             r12, [r0, #4]           @ rowbytes
 | ||||
|         vmov.i8         d3,  #0 | ||||
|         vmov.i8         d20, #0 | ||||
| 1: | ||||
|         vld4.32         {d4[],d5[],d6[],d7[]},    [r1,:128] | ||||
|         vld4.32         {d16[],d17[],d18[],d19[]},[r2,:128]! | ||||
|         paeth           d0,  d3,  d16, d20 | ||||
|         vadd.u8         d0,  d0,  d4 | ||||
|         paeth           d1,  d0,  d17, d16 | ||||
|         vadd.u8         d1,  d1,  d5 | ||||
|         paeth           d2,  d1,  d18, d17 | ||||
|         vadd.u8         d2,  d2,  d6 | ||||
|         paeth           d3,  d2,  d19, d18 | ||||
|         vmov            d20, d19 | ||||
|         vadd.u8         d3,  d3,  d7 | ||||
|         vst4.32         {d0[0],d1[0],d2[0],d3[0]},[r1,:128]! | ||||
|         subs            r12, r12, #16 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         bx              lr | ||||
| endfunc | ||||
| 
 | ||||
| func    png_read_filter_row_paeth3_neon, export=1 | ||||
|         push            {r4,lr} | ||||
|         ldr             r12, [r0, #4]           @ rowbytes
 | ||||
|         vmov.i8         d3,  #0 | ||||
|         vmov.i8         d4,  #0 | ||||
|         mov             r0,  r1 | ||||
|         mov             r4,  #3 | ||||
|         mov             lr,  #12 | ||||
|         vld1.8          {q11},    [r0], lr | ||||
| 1: | ||||
|         vld1.8          {q10},    [r2], lr | ||||
|         paeth           d0,  d3,  d20, d4 | ||||
|         vext.8          d5,  d22, d23, #3 | ||||
|         vadd.u8         d0,  d0,  d22 | ||||
|         vext.8          d17, d20, d21, #3 | ||||
|         paeth           d1,  d0,  d17, d20 | ||||
|         vst1.32         {d0[0]},  [r1,:32], r4 | ||||
|         vext.8          d6,  d22, d23, #6 | ||||
|         vadd.u8         d1,  d1,  d5 | ||||
|         vext.8          d18, d20, d21, #6 | ||||
|         paeth           d2,  d1,  d18, d17 | ||||
|         vext.8          d7,  d23, d23, #1 | ||||
|         vld1.8          {q11},    [r0], lr | ||||
|         vst1.32         {d1[0]},  [r1], r4 | ||||
|         vadd.u8         d2,  d2,  d6 | ||||
|         vext.8          d19, d21, d21, #1 | ||||
|         paeth           d3,  d2,  d19, d18 | ||||
|         vst1.32         {d2[0]},  [r1], r4 | ||||
|         vmov            d4,  d19 | ||||
|         vadd.u8         d3,  d3,  d7 | ||||
|         vst1.32         {d3[0]},  [r1], r4 | ||||
|         subs            r12, r12, #12 | ||||
|         bgt             1b | ||||
| 
 | ||||
|         pop             {r4,pc} | ||||
| endfunc | ||||
							
								
								
									
										235
									
								
								config.guess
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										235
									
								
								config.guess
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							| @ -1,10 +1,10 @@ | ||||
| #! /bin/sh | ||||
| # Attempt to guess a canonical system name. | ||||
| #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 | ||||
| #   Free Software Foundation, Inc. | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
| #   2011 Free Software Foundation, Inc. | ||||
| 
 | ||||
| timestamp='2009-11-20' | ||||
| timestamp='2011-11-11' | ||||
| 
 | ||||
| # This file is free software; you can redistribute it and/or modify it | ||||
| # under the terms of the GNU General Public License as published by | ||||
| @ -56,8 +56,9 @@ version="\ | ||||
| GNU config.guess ($timestamp) | ||||
| 
 | ||||
| Originally written by Per Bothner. | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | ||||
| 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, | ||||
| 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free | ||||
| Software Foundation, Inc. | ||||
| 
 | ||||
| This is free software; see the source for copying conditions.  There is NO | ||||
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | ||||
| @ -180,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||||
| 		fi | ||||
| 		;; | ||||
| 	    *) | ||||
| 	        os=netbsd | ||||
| 		os=netbsd | ||||
| 		;; | ||||
| 	esac | ||||
| 	# The OS release | ||||
| @ -223,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||||
| 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` | ||||
| 		;; | ||||
| 	*5.*) | ||||
| 	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` | ||||
| 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` | ||||
| 		;; | ||||
| 	esac | ||||
| 	# According to Compaq, /usr/sbin/psrinfo has been available on | ||||
| @ -269,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||||
| 	# A Xn.n version is an unreleased experimental baselevel. | ||||
| 	# 1.2 uses "1.2" for uname -r. | ||||
| 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` | ||||
| 	exit ;; | ||||
| 	# Reset EXIT trap before exiting to avoid spurious non-zero exit code. | ||||
| 	exitcode=$? | ||||
| 	trap '' 0 | ||||
| 	exit $exitcode ;; | ||||
|     Alpha\ *:Windows_NT*:*) | ||||
| 	# How do we know it's Interix rather than the generic POSIX subsystem? | ||||
| 	# Should we change UNAME_MACHINE based on the output of uname instead | ||||
| @ -295,7 +299,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||||
| 	echo s390-ibm-zvmoe | ||||
| 	exit ;; | ||||
|     *:OS400:*:*) | ||||
|         echo powerpc-ibm-os400 | ||||
| 	echo powerpc-ibm-os400 | ||||
| 	exit ;; | ||||
|     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) | ||||
| 	echo arm-acorn-riscix${UNAME_RELEASE} | ||||
| @ -394,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in | ||||
|     # MiNT.  But MiNT is downward compatible to TOS, so this should | ||||
|     # be no problem. | ||||
|     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) | ||||
|         echo m68k-atari-mint${UNAME_RELEASE} | ||||
| 	echo m68k-atari-mint${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) | ||||
| 	echo m68k-atari-mint${UNAME_RELEASE} | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) | ||||
|         echo m68k-atari-mint${UNAME_RELEASE} | ||||
| 	echo m68k-atari-mint${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) | ||||
|         echo m68k-milan-mint${UNAME_RELEASE} | ||||
|         exit ;; | ||||
| 	echo m68k-milan-mint${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) | ||||
|         echo m68k-hades-mint${UNAME_RELEASE} | ||||
|         exit ;; | ||||
| 	echo m68k-hades-mint${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) | ||||
|         echo m68k-unknown-mint${UNAME_RELEASE} | ||||
|         exit ;; | ||||
| 	echo m68k-unknown-mint${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     m68k:machten:*:*) | ||||
| 	echo m68k-apple-machten${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
| @ -480,8 +484,8 @@ EOF | ||||
| 	echo m88k-motorola-sysv3 | ||||
| 	exit ;; | ||||
|     AViiON:dgux:*:*) | ||||
|         # DG/UX returns AViiON for all architectures | ||||
|         UNAME_PROCESSOR=`/usr/bin/uname -p` | ||||
| 	# DG/UX returns AViiON for all architectures | ||||
| 	UNAME_PROCESSOR=`/usr/bin/uname -p` | ||||
| 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] | ||||
| 	then | ||||
| 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ | ||||
| @ -494,7 +498,7 @@ EOF | ||||
| 	else | ||||
| 	    echo i586-dg-dgux${UNAME_RELEASE} | ||||
| 	fi | ||||
|  	exit ;; | ||||
| 	exit ;; | ||||
|     M88*:DolphinOS:*:*)	# DolphinOS (SVR3) | ||||
| 	echo m88k-dolphin-sysv3 | ||||
| 	exit ;; | ||||
| @ -551,7 +555,7 @@ EOF | ||||
| 		echo rs6000-ibm-aix3.2 | ||||
| 	fi | ||||
| 	exit ;; | ||||
|     *:AIX:*:[456]) | ||||
|     *:AIX:*:[4567]) | ||||
| 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` | ||||
| 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then | ||||
| 		IBM_ARCH=rs6000 | ||||
| @ -594,52 +598,52 @@ EOF | ||||
| 	    9000/[678][0-9][0-9]) | ||||
| 		if [ -x /usr/bin/getconf ]; then | ||||
| 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` | ||||
|                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` | ||||
|                     case "${sc_cpu_version}" in | ||||
|                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 | ||||
|                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 | ||||
|                       532)                      # CPU_PA_RISC2_0 | ||||
|                         case "${sc_kernel_bits}" in | ||||
|                           32) HP_ARCH="hppa2.0n" ;; | ||||
|                           64) HP_ARCH="hppa2.0w" ;; | ||||
| 		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` | ||||
| 		    case "${sc_cpu_version}" in | ||||
| 		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 | ||||
| 		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 | ||||
| 		      532)                      # CPU_PA_RISC2_0 | ||||
| 			case "${sc_kernel_bits}" in | ||||
| 			  32) HP_ARCH="hppa2.0n" ;; | ||||
| 			  64) HP_ARCH="hppa2.0w" ;; | ||||
| 			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20 | ||||
|                         esac ;; | ||||
|                     esac | ||||
| 			esac ;; | ||||
| 		    esac | ||||
| 		fi | ||||
| 		if [ "${HP_ARCH}" = "" ]; then | ||||
| 		    eval $set_cc_for_build | ||||
| 		    sed 's/^              //' << EOF >$dummy.c | ||||
| 		    sed 's/^		//' << EOF >$dummy.c | ||||
| 
 | ||||
|               #define _HPUX_SOURCE | ||||
|               #include <stdlib.h> | ||||
|               #include <unistd.h> | ||||
| 		#define _HPUX_SOURCE | ||||
| 		#include <stdlib.h> | ||||
| 		#include <unistd.h> | ||||
| 
 | ||||
|               int main () | ||||
|               { | ||||
|               #if defined(_SC_KERNEL_BITS) | ||||
|                   long bits = sysconf(_SC_KERNEL_BITS); | ||||
|               #endif | ||||
|                   long cpu  = sysconf (_SC_CPU_VERSION); | ||||
| 		int main () | ||||
| 		{ | ||||
| 		#if defined(_SC_KERNEL_BITS) | ||||
| 		    long bits = sysconf(_SC_KERNEL_BITS); | ||||
| 		#endif | ||||
| 		    long cpu  = sysconf (_SC_CPU_VERSION); | ||||
| 
 | ||||
|                   switch (cpu) | ||||
|               	{ | ||||
|               	case CPU_PA_RISC1_0: puts ("hppa1.0"); break; | ||||
|               	case CPU_PA_RISC1_1: puts ("hppa1.1"); break; | ||||
|               	case CPU_PA_RISC2_0: | ||||
|               #if defined(_SC_KERNEL_BITS) | ||||
|               	    switch (bits) | ||||
|               		{ | ||||
|               		case 64: puts ("hppa2.0w"); break; | ||||
|               		case 32: puts ("hppa2.0n"); break; | ||||
|               		default: puts ("hppa2.0"); break; | ||||
|               		} break; | ||||
|               #else  /* !defined(_SC_KERNEL_BITS) */ | ||||
|               	    puts ("hppa2.0"); break; | ||||
|               #endif | ||||
|               	default: puts ("hppa1.0"); break; | ||||
|               	} | ||||
|                   exit (0); | ||||
|               } | ||||
| 		    switch (cpu) | ||||
| 			{ | ||||
| 			case CPU_PA_RISC1_0: puts ("hppa1.0"); break; | ||||
| 			case CPU_PA_RISC1_1: puts ("hppa1.1"); break; | ||||
| 			case CPU_PA_RISC2_0: | ||||
| 		#if defined(_SC_KERNEL_BITS) | ||||
| 			    switch (bits) | ||||
| 				{ | ||||
| 				case 64: puts ("hppa2.0w"); break; | ||||
| 				case 32: puts ("hppa2.0n"); break; | ||||
| 				default: puts ("hppa2.0"); break; | ||||
| 				} break; | ||||
| 		#else  /* !defined(_SC_KERNEL_BITS) */ | ||||
| 			    puts ("hppa2.0"); break; | ||||
| 		#endif | ||||
| 			default: puts ("hppa1.0"); break; | ||||
| 			} | ||||
| 		    exit (0); | ||||
| 		} | ||||
| EOF | ||||
| 		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` | ||||
| 		    test -z "$HP_ARCH" && HP_ARCH=hppa | ||||
| @ -730,22 +734,22 @@ EOF | ||||
| 	exit ;; | ||||
|     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) | ||||
| 	echo c1-convex-bsd | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) | ||||
| 	if getsysinfo -f scalar_acc | ||||
| 	then echo c32-convex-bsd | ||||
| 	else echo c2-convex-bsd | ||||
| 	fi | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) | ||||
| 	echo c34-convex-bsd | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) | ||||
| 	echo c38-convex-bsd | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) | ||||
| 	echo c4-convex-bsd | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     CRAY*Y-MP:*:*:*) | ||||
| 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' | ||||
| 	exit ;; | ||||
| @ -769,14 +773,14 @@ EOF | ||||
| 	exit ;; | ||||
|     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) | ||||
| 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` | ||||
|         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` | ||||
|         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` | ||||
|         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||||
|         exit ;; | ||||
| 	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` | ||||
| 	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` | ||||
| 	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||||
| 	exit ;; | ||||
|     5000:UNIX_System_V:4.*:*) | ||||
|         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` | ||||
|         FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` | ||||
|         echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||||
| 	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` | ||||
| 	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` | ||||
| 	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" | ||||
| 	exit ;; | ||||
|     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) | ||||
| 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} | ||||
| @ -788,13 +792,12 @@ EOF | ||||
| 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     *:FreeBSD:*:*) | ||||
| 	case ${UNAME_MACHINE} in | ||||
| 	    pc98) | ||||
| 		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||||
| 	UNAME_PROCESSOR=`/usr/bin/uname -p` | ||||
| 	case ${UNAME_PROCESSOR} in | ||||
| 	    amd64) | ||||
| 		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||||
| 	    *) | ||||
| 		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||||
| 		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; | ||||
| 	esac | ||||
| 	exit ;; | ||||
|     i*:CYGWIN*:*) | ||||
| @ -803,15 +806,18 @@ EOF | ||||
|     *:MINGW*:*) | ||||
| 	echo ${UNAME_MACHINE}-pc-mingw32 | ||||
| 	exit ;; | ||||
|     i*:MSYS*:*) | ||||
| 	echo ${UNAME_MACHINE}-pc-msys | ||||
| 	exit ;; | ||||
|     i*:windows32*:*) | ||||
|     	# uname -m includes "-pc" on this system. | ||||
|     	echo ${UNAME_MACHINE}-mingw32 | ||||
| 	# uname -m includes "-pc" on this system. | ||||
| 	echo ${UNAME_MACHINE}-mingw32 | ||||
| 	exit ;; | ||||
|     i*:PW*:*) | ||||
| 	echo ${UNAME_MACHINE}-pc-pw32 | ||||
| 	exit ;; | ||||
|     *:Interix*:*) | ||||
|     	case ${UNAME_MACHINE} in | ||||
| 	case ${UNAME_MACHINE} in | ||||
| 	    x86) | ||||
| 		echo i586-pc-interix${UNAME_RELEASE} | ||||
| 		exit ;; | ||||
| @ -866,7 +872,7 @@ EOF | ||||
| 	  EV6)   UNAME_MACHINE=alphaev6 ;; | ||||
| 	  EV67)  UNAME_MACHINE=alphaev67 ;; | ||||
| 	  EV68*) UNAME_MACHINE=alphaev68 ;; | ||||
|         esac | ||||
| 	esac | ||||
| 	objdump --private-headers /bin/sh | grep -q ld.so.1 | ||||
| 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} | ||||
| @ -878,7 +884,13 @@ EOF | ||||
| 	then | ||||
| 	    echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	else | ||||
| 	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi | ||||
| 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | ||||
| 		| grep -q __ARM_PCS_VFP | ||||
| 	    then | ||||
| 		echo ${UNAME_MACHINE}-unknown-linux-gnueabi | ||||
| 	    else | ||||
| 		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf | ||||
| 	    fi | ||||
| 	fi | ||||
| 	exit ;; | ||||
|     avr32*:Linux:*:*) | ||||
| @ -891,7 +903,10 @@ EOF | ||||
| 	echo crisv32-axis-linux-gnu | ||||
| 	exit ;; | ||||
|     frv:Linux:*:*) | ||||
|     	echo frv-unknown-linux-gnu | ||||
| 	echo frv-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     hexagon:Linux:*:*) | ||||
| 	echo hexagon-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     i*86:Linux:*:*) | ||||
| 	LIBC=gnu | ||||
| @ -959,7 +974,7 @@ EOF | ||||
| 	echo ${UNAME_MACHINE}-ibm-linux | ||||
| 	exit ;; | ||||
|     sh64*:Linux:*:*) | ||||
|     	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     sh*:Linux:*:*) | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| @ -967,6 +982,9 @@ EOF | ||||
|     sparc:Linux:*:* | sparc64:Linux:*:*) | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     tile*:Linux:*:*) | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     vax:Linux:*:*) | ||||
| 	echo ${UNAME_MACHINE}-dec-linux-gnu | ||||
| 	exit ;; | ||||
| @ -974,7 +992,7 @@ EOF | ||||
| 	echo x86_64-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     xtensa*:Linux:*:*) | ||||
|     	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	echo ${UNAME_MACHINE}-unknown-linux-gnu | ||||
| 	exit ;; | ||||
|     i*86:DYNIX/ptx:4*:*) | ||||
| 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. | ||||
| @ -983,11 +1001,11 @@ EOF | ||||
| 	echo i386-sequent-sysv4 | ||||
| 	exit ;; | ||||
|     i*86:UNIX_SV:4.2MP:2.*) | ||||
|         # Unixware is an offshoot of SVR4, but it has its own version | ||||
|         # number series starting with 2... | ||||
|         # I am not positive that other SVR4 systems won't match this, | ||||
| 	# Unixware is an offshoot of SVR4, but it has its own version | ||||
| 	# number series starting with 2... | ||||
| 	# I am not positive that other SVR4 systems won't match this, | ||||
| 	# I just have to hope.  -- rms. | ||||
|         # Use sysv4.2uw... so that sysv4* matches it. | ||||
| 	# Use sysv4.2uw... so that sysv4* matches it. | ||||
| 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} | ||||
| 	exit ;; | ||||
|     i*86:OS/2:*:*) | ||||
| @ -1019,7 +1037,7 @@ EOF | ||||
| 	fi | ||||
| 	exit ;; | ||||
|     i*86:*:5:[678]*) | ||||
|     	# UnixWare 7.x, OpenUNIX and OpenServer 6. | ||||
| 	# UnixWare 7.x, OpenUNIX and OpenServer 6. | ||||
| 	case `/bin/uname -X | grep "^Machine"` in | ||||
| 	    *486*)	     UNAME_MACHINE=i486 ;; | ||||
| 	    *Pentium)	     UNAME_MACHINE=i586 ;; | ||||
| @ -1047,13 +1065,13 @@ EOF | ||||
| 	exit ;; | ||||
|     pc:*:*:*) | ||||
| 	# Left here for compatibility: | ||||
|         # uname -m prints for DJGPP always 'pc', but it prints nothing about | ||||
|         # the processor, so we play safe by assuming i586. | ||||
| 	# uname -m prints for DJGPP always 'pc', but it prints nothing about | ||||
| 	# the processor, so we play safe by assuming i586. | ||||
| 	# Note: whatever this is, it MUST be the same as what config.sub | ||||
| 	# prints for the "djgpp" host, or else GDB configury will decide that | ||||
| 	# this is a cross-build. | ||||
| 	echo i586-pc-msdosdjgpp | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     Intel:Mach:3*:*) | ||||
| 	echo i386-pc-mach3 | ||||
| 	exit ;; | ||||
| @ -1088,8 +1106,8 @@ EOF | ||||
| 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ | ||||
| 	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; | ||||
|     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) | ||||
|         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||||
|           && { echo i486-ncr-sysv4; exit; } ;; | ||||
| 	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ | ||||
| 	  && { echo i486-ncr-sysv4; exit; } ;; | ||||
|     NCR*:*:4.2:* | MPRAS*:*:4.2:*) | ||||
| 	OS_REL='.3' | ||||
| 	test -r /etc/.relid \ | ||||
| @ -1132,10 +1150,10 @@ EOF | ||||
| 		echo ns32k-sni-sysv | ||||
| 	fi | ||||
| 	exit ;; | ||||
|     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort | ||||
|                       # says <Richard.M.Bartel@ccMail.Census.GOV> | ||||
|         echo i586-unisys-sysv4 | ||||
|         exit ;; | ||||
|     PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort | ||||
| 			# says <Richard.M.Bartel@ccMail.Census.GOV> | ||||
| 	echo i586-unisys-sysv4 | ||||
| 	exit ;; | ||||
|     *:UNIX_System_V:4*:FTX*) | ||||
| 	# From Gerald Hewes <hewes@openmarket.com>. | ||||
| 	# How about differentiating between stratus architectures? -djm | ||||
| @ -1161,11 +1179,11 @@ EOF | ||||
| 	exit ;; | ||||
|     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) | ||||
| 	if [ -d /usr/nec ]; then | ||||
| 	        echo mips-nec-sysv${UNAME_RELEASE} | ||||
| 		echo mips-nec-sysv${UNAME_RELEASE} | ||||
| 	else | ||||
| 	        echo mips-unknown-sysv${UNAME_RELEASE} | ||||
| 		echo mips-unknown-sysv${UNAME_RELEASE} | ||||
| 	fi | ||||
|         exit ;; | ||||
| 	exit ;; | ||||
|     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only. | ||||
| 	echo powerpc-be-beos | ||||
| 	exit ;; | ||||
| @ -1230,6 +1248,9 @@ EOF | ||||
|     *:QNX:*:4*) | ||||
| 	echo i386-pc-qnx | ||||
| 	exit ;; | ||||
|     NEO-?:NONSTOP_KERNEL:*:*) | ||||
| 	echo neo-tandem-nsk${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     NSE-?:NONSTOP_KERNEL:*:*) | ||||
| 	echo nse-tandem-nsk${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
| @ -1275,13 +1296,13 @@ EOF | ||||
| 	echo pdp10-unknown-its | ||||
| 	exit ;; | ||||
|     SEI:*:*:SEIUX) | ||||
|         echo mips-sei-seiux${UNAME_RELEASE} | ||||
| 	echo mips-sei-seiux${UNAME_RELEASE} | ||||
| 	exit ;; | ||||
|     *:DragonFly:*:*) | ||||
| 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` | ||||
| 	exit ;; | ||||
|     *:*VMS:*:*) | ||||
|     	UNAME_MACHINE=`(uname -p) 2>/dev/null` | ||||
| 	UNAME_MACHINE=`(uname -p) 2>/dev/null` | ||||
| 	case "${UNAME_MACHINE}" in | ||||
| 	    A*) echo alpha-dec-vms ; exit ;; | ||||
| 	    I*) echo ia64-dec-vms ; exit ;; | ||||
| @ -1321,11 +1342,11 @@ main () | ||||
| #include <sys/param.h> | ||||
|   printf ("m68k-sony-newsos%s\n", | ||||
| #ifdef NEWSOS4 | ||||
|           "4" | ||||
| 	"4" | ||||
| #else | ||||
| 	  "" | ||||
| 	"" | ||||
| #endif | ||||
|          ); exit (0); | ||||
| 	); exit (0); | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										23
									
								
								config.h.in
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								config.h.in
									
									
									
									
									
								
							| @ -3,6 +3,9 @@ | ||||
| /* Define to 1 if you have the <dlfcn.h> header file. */ | ||||
| #undef HAVE_DLFCN_H | ||||
| 
 | ||||
| /* Define to 1 if you have the `feenableexcept' function. */ | ||||
| #undef HAVE_FEENABLEEXCEPT | ||||
| 
 | ||||
| /* Define to 1 if you have the <inttypes.h> header file. */ | ||||
| #undef HAVE_INTTYPES_H | ||||
| 
 | ||||
| @ -70,6 +73,12 @@ | ||||
| /* Define to the version of this package. */ | ||||
| #undef PACKAGE_VERSION | ||||
| 
 | ||||
| /* Align row buffers */ | ||||
| #undef PNG_ALIGNED_MEMORY_SUPPORTED | ||||
| 
 | ||||
| /* Enable ARM NEON optimizations */ | ||||
| #undef PNG_ARM_NEON | ||||
| 
 | ||||
| /* Define to 1 if you have the ANSI C header files. */ | ||||
| #undef STDC_HEADERS | ||||
| 
 | ||||
| @ -82,5 +91,19 @@ | ||||
| /* Define to empty if `const' does not conform to ANSI C. */ | ||||
| #undef const | ||||
| 
 | ||||
| /* Define to the equivalent of the C99 'restrict' keyword, or to
 | ||||
|    nothing if this is not supported.  Do not define if restrict is | ||||
|    supported directly.  */ | ||||
| #undef restrict | ||||
| /* Work around a bug in Sun C++: it does not support _Restrict or
 | ||||
|    __restrict__, even though the corresponding Sun C compiler ends up with | ||||
|    "#define restrict _Restrict" or "#define restrict __restrict__" in the | ||||
|    previous line.  Perhaps some future version of Sun C++ will work with | ||||
|    restrict; if so, hopefully it defines __RESTRICT like Sun C does.  */ | ||||
| #if defined __SUNPRO_CC && !defined __RESTRICT | ||||
| # define _Restrict | ||||
| # define __restrict__ | ||||
| #endif | ||||
| 
 | ||||
| /* Define to `unsigned int' if <sys/types.h> does not define. */ | ||||
| #undef size_t | ||||
|  | ||||
							
								
								
									
										184
									
								
								config.sub
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										184
									
								
								config.sub
									
									
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							| @ -1,10 +1,10 @@ | ||||
| #! /bin/sh | ||||
| # Configuration validation subroutine script. | ||||
| #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 | ||||
| #   Free Software Foundation, Inc. | ||||
| #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | ||||
| #   2011 Free Software Foundation, Inc. | ||||
| 
 | ||||
| timestamp='2009-11-20' | ||||
| timestamp='2011-11-11' | ||||
| 
 | ||||
| # This file is (in principle) common to ALL GNU software. | ||||
| # The presence of a machine in this file suggests that SOME GNU software | ||||
| @ -75,8 +75,9 @@ Report bugs and patches to <config-patches@gnu.org>." | ||||
| version="\ | ||||
| GNU config.sub ($timestamp) | ||||
| 
 | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | ||||
| 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | ||||
| Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, | ||||
| 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free | ||||
| Software Foundation, Inc. | ||||
| 
 | ||||
| This is free software; see the source for copying conditions.  There is NO | ||||
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." | ||||
| @ -123,8 +124,9 @@ esac | ||||
| # Here we must recognize all the valid KERNEL-OS combinations. | ||||
| maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` | ||||
| case $maybe_os in | ||||
|   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ | ||||
|   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ | ||||
|   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ | ||||
|   linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ | ||||
|   knetbsd*-gnu* | netbsd*-gnu* | \ | ||||
|   kopensolaris*-gnu* | \ | ||||
|   storm-chaos* | os2-emx* | rtmk-nova*) | ||||
|     os=-$maybe_os | ||||
| @ -156,8 +158,8 @@ case $os in | ||||
| 		os= | ||||
| 		basic_machine=$1 | ||||
| 		;; | ||||
|         -bluegene*) | ||||
| 	        os=-cnk | ||||
| 	-bluegene*) | ||||
| 		os=-cnk | ||||
| 		;; | ||||
| 	-sim | -cisco | -oki | -wec | -winbond) | ||||
| 		os= | ||||
| @ -173,10 +175,10 @@ case $os in | ||||
| 		os=-chorusos | ||||
| 		basic_machine=$1 | ||||
| 		;; | ||||
|  	-chorusrdb) | ||||
|  		os=-chorusrdb | ||||
| 	-chorusrdb) | ||||
| 		os=-chorusrdb | ||||
| 		basic_machine=$1 | ||||
|  		;; | ||||
| 		;; | ||||
| 	-hiux*) | ||||
| 		os=-hiuxwe2 | ||||
| 		;; | ||||
| @ -249,13 +251,17 @@ case $basic_machine in | ||||
| 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | ||||
| 	| am33_2.0 \ | ||||
| 	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | ||||
|         | be32 | be64 \ | ||||
| 	| bfin \ | ||||
| 	| c4x | clipper \ | ||||
| 	| d10v | d30v | dlx | dsp16xx \ | ||||
| 	| epiphany \ | ||||
| 	| fido | fr30 | frv \ | ||||
| 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | ||||
| 	| hexagon \ | ||||
| 	| i370 | i860 | i960 | ia64 \ | ||||
| 	| ip2k | iq2000 \ | ||||
| 	| le32 | le64 \ | ||||
| 	| lm32 \ | ||||
| 	| m32c | m32r | m32rle | m68000 | m68k | m88k \ | ||||
| 	| maxq | mb | microblaze | mcore | mep | metag \ | ||||
| @ -281,27 +287,38 @@ case $basic_machine in | ||||
| 	| moxie \ | ||||
| 	| mt \ | ||||
| 	| msp430 \ | ||||
| 	| nds32 | nds32le | nds32be \ | ||||
| 	| nios | nios2 \ | ||||
| 	| ns16k | ns32k \ | ||||
| 	| open8 \ | ||||
| 	| or32 \ | ||||
| 	| pdp10 | pdp11 | pj | pjl \ | ||||
| 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | ||||
| 	| powerpc | powerpc64 | powerpc64le | powerpcle \ | ||||
| 	| pyramid \ | ||||
| 	| rx \ | ||||
| 	| rl78 | rx \ | ||||
| 	| score \ | ||||
| 	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | ||||
| 	| sh64 | sh64le \ | ||||
| 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | ||||
| 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | ||||
| 	| spu | strongarm \ | ||||
| 	| tahoe | thumb | tic4x | tic80 | tron \ | ||||
| 	| spu \ | ||||
| 	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ||||
| 	| ubicom32 \ | ||||
| 	| v850 | v850e \ | ||||
| 	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | ||||
| 	| we32k \ | ||||
| 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | ||||
| 	| x86 | xc16x | xstormy16 | xtensa \ | ||||
| 	| z8k | z80) | ||||
| 		basic_machine=$basic_machine-unknown | ||||
| 		;; | ||||
| 	c54x) | ||||
| 		basic_machine=tic54x-unknown | ||||
| 		;; | ||||
| 	c55x) | ||||
| 		basic_machine=tic55x-unknown | ||||
| 		;; | ||||
| 	c6x) | ||||
| 		basic_machine=tic6x-unknown | ||||
| 		;; | ||||
| 	m6811 | m68hc11 | m6812 | m68hc12 | picochip) | ||||
| 		# Motorola 68HC11/12. | ||||
| 		basic_machine=$basic_machine-unknown | ||||
| @ -313,6 +330,18 @@ case $basic_machine in | ||||
| 		basic_machine=mt-unknown | ||||
| 		;; | ||||
| 
 | ||||
| 	strongarm | thumb | xscale) | ||||
| 		basic_machine=arm-unknown | ||||
| 		;; | ||||
| 
 | ||||
| 	xscaleeb) | ||||
| 		basic_machine=armeb-unknown | ||||
| 		;; | ||||
| 
 | ||||
| 	xscaleel) | ||||
| 		basic_machine=armel-unknown | ||||
| 		;; | ||||
| 
 | ||||
| 	# We use `pc' rather than `unknown' | ||||
| 	# because (1) that's what they normally are, and | ||||
| 	# (2) the word "unknown" tends to confuse beginning users. | ||||
| @ -332,16 +361,19 @@ case $basic_machine in | ||||
| 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | ||||
| 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \ | ||||
| 	| avr-* | avr32-* \ | ||||
| 	| be32-* | be64-* \ | ||||
| 	| bfin-* | bs2000-* \ | ||||
| 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | ||||
| 	| c[123]* | c30-* | [cjt]90-* | c4x-* \ | ||||
| 	| clipper-* | craynv-* | cydra-* \ | ||||
| 	| d10v-* | d30v-* | dlx-* \ | ||||
| 	| elxsi-* \ | ||||
| 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | ||||
| 	| h8300-* | h8500-* \ | ||||
| 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | ||||
| 	| hexagon-* \ | ||||
| 	| i*86-* | i860-* | i960-* | ia64-* \ | ||||
| 	| ip2k-* | iq2000-* \ | ||||
| 	| le32-* | le64-* \ | ||||
| 	| lm32-* \ | ||||
| 	| m32c-* | m32r-* | m32rle-* \ | ||||
| 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | ||||
| @ -367,25 +399,29 @@ case $basic_machine in | ||||
| 	| mmix-* \ | ||||
| 	| mt-* \ | ||||
| 	| msp430-* \ | ||||
| 	| nds32-* | nds32le-* | nds32be-* \ | ||||
| 	| nios-* | nios2-* \ | ||||
| 	| none-* | np1-* | ns16k-* | ns32k-* \ | ||||
| 	| open8-* \ | ||||
| 	| orion-* \ | ||||
| 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | ||||
| 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | ||||
| 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | ||||
| 	| pyramid-* \ | ||||
| 	| romp-* | rs6000-* | rx-* \ | ||||
| 	| rl78-* | romp-* | rs6000-* | rx-* \ | ||||
| 	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | ||||
| 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | ||||
| 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | ||||
| 	| sparclite-* \ | ||||
| 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | ||||
| 	| tahoe-* | thumb-* \ | ||||
| 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | ||||
| 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | ||||
| 	| tahoe-* \ | ||||
| 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | ||||
| 	| tile*-* \ | ||||
| 	| tron-* \ | ||||
| 	| ubicom32-* \ | ||||
| 	| v850-* | v850e-* | vax-* \ | ||||
| 	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | ||||
| 	| vax-* \ | ||||
| 	| we32k-* \ | ||||
| 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | ||||
| 	| x86-* | x86_64-* | xc16x-* | xps100-* \ | ||||
| 	| xstormy16-* | xtensa*-* \ | ||||
| 	| ymp-* \ | ||||
| 	| z8k-* | z80-*) | ||||
| @ -410,7 +446,7 @@ case $basic_machine in | ||||
| 		basic_machine=a29k-amd | ||||
| 		os=-udi | ||||
| 		;; | ||||
|     	abacus) | ||||
| 	abacus) | ||||
| 		basic_machine=abacus-unknown | ||||
| 		;; | ||||
| 	adobe68k) | ||||
| @ -480,11 +516,20 @@ case $basic_machine in | ||||
| 		basic_machine=powerpc-ibm | ||||
| 		os=-cnk | ||||
| 		;; | ||||
| 	c54x-*) | ||||
| 		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		;; | ||||
| 	c55x-*) | ||||
| 		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		;; | ||||
| 	c6x-*) | ||||
| 		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		;; | ||||
| 	c90) | ||||
| 		basic_machine=c90-cray | ||||
| 		os=-unicos | ||||
| 		;; | ||||
|         cegcc) | ||||
| 	cegcc) | ||||
| 		basic_machine=arm-unknown | ||||
| 		os=-cegcc | ||||
| 		;; | ||||
| @ -516,7 +561,7 @@ case $basic_machine in | ||||
| 		basic_machine=craynv-cray | ||||
| 		os=-unicosmp | ||||
| 		;; | ||||
| 	cr16) | ||||
| 	cr16 | cr16-*) | ||||
| 		basic_machine=cr16-unknown | ||||
| 		os=-elf | ||||
| 		;; | ||||
| @ -732,7 +777,7 @@ case $basic_machine in | ||||
| 		basic_machine=ns32k-utek | ||||
| 		os=-sysv | ||||
| 		;; | ||||
|         microblaze) | ||||
| 	microblaze) | ||||
| 		basic_machine=microblaze-xilinx | ||||
| 		;; | ||||
| 	mingw32) | ||||
| @ -771,10 +816,18 @@ case $basic_machine in | ||||
| 	ms1-*) | ||||
| 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` | ||||
| 		;; | ||||
| 	msys) | ||||
| 		basic_machine=i386-pc | ||||
| 		os=-msys | ||||
| 		;; | ||||
| 	mvs) | ||||
| 		basic_machine=i370-ibm | ||||
| 		os=-mvs | ||||
| 		;; | ||||
| 	nacl) | ||||
| 		basic_machine=le32-unknown | ||||
| 		os=-nacl | ||||
| 		;; | ||||
| 	ncr3000) | ||||
| 		basic_machine=i486-ncr | ||||
| 		os=-sysv4 | ||||
| @ -839,6 +892,12 @@ case $basic_machine in | ||||
| 	np1) | ||||
| 		basic_machine=np1-gould | ||||
| 		;; | ||||
| 	neo-tandem) | ||||
| 		basic_machine=neo-tandem | ||||
| 		;; | ||||
| 	nse-tandem) | ||||
| 		basic_machine=nse-tandem | ||||
| 		;; | ||||
| 	nsr-tandem) | ||||
| 		basic_machine=nsr-tandem | ||||
| 		;; | ||||
| @ -921,9 +980,10 @@ case $basic_machine in | ||||
| 		;; | ||||
| 	power)	basic_machine=power-ibm | ||||
| 		;; | ||||
| 	ppc)	basic_machine=powerpc-unknown | ||||
| 	ppc | ppcbe)	basic_machine=powerpc-unknown | ||||
| 		;; | ||||
| 	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 	ppc-* | ppcbe-*) | ||||
| 		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		;; | ||||
| 	ppcle | powerpclittle | ppc-le | powerpc-little) | ||||
| 		basic_machine=powerpcle-unknown | ||||
| @ -1017,6 +1077,9 @@ case $basic_machine in | ||||
| 		basic_machine=i860-stratus | ||||
| 		os=-sysv4 | ||||
| 		;; | ||||
| 	strongarm-* | thumb-*) | ||||
| 		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` | ||||
| 		;; | ||||
| 	sun2) | ||||
| 		basic_machine=m68000-sun | ||||
| 		;; | ||||
| @ -1073,20 +1136,8 @@ case $basic_machine in | ||||
| 		basic_machine=t90-cray | ||||
| 		os=-unicos | ||||
| 		;; | ||||
| 	tic54x | c54x*) | ||||
| 		basic_machine=tic54x-unknown | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tic55x | c55x*) | ||||
| 		basic_machine=tic55x-unknown | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tic6x | c6x*) | ||||
| 		basic_machine=tic6x-unknown | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tile*) | ||||
| 		basic_machine=tile-unknown | ||||
| 		basic_machine=$basic_machine-unknown | ||||
| 		os=-linux-gnu | ||||
| 		;; | ||||
| 	tx39) | ||||
| @ -1156,6 +1207,9 @@ case $basic_machine in | ||||
| 	xps | xps100) | ||||
| 		basic_machine=xps100-honeywell | ||||
| 		;; | ||||
| 	xscale-* | xscalee[bl]-*) | ||||
| 		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` | ||||
| 		;; | ||||
| 	ymp) | ||||
| 		basic_machine=ymp-cray | ||||
| 		os=-unicos | ||||
| @ -1253,11 +1307,11 @@ esac | ||||
| if [ x"$os" != x"" ] | ||||
| then | ||||
| case $os in | ||||
|         # First match some system type aliases | ||||
|         # that might get confused with valid system types. | ||||
| 	# First match some system type aliases | ||||
| 	# that might get confused with valid system types. | ||||
| 	# -solaris* is a basic system type, with this one exception. | ||||
|         -auroraux) | ||||
| 	        os=-auroraux | ||||
| 	-auroraux) | ||||
| 		os=-auroraux | ||||
| 		;; | ||||
| 	-solaris1 | -solaris1.*) | ||||
| 		os=`echo $os | sed -e 's|solaris1|sunos4|'` | ||||
| @ -1293,8 +1347,9 @@ case $os in | ||||
| 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | ||||
| 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | ||||
| 	      | -chorusos* | -chorusrdb* | -cegcc* \ | ||||
| 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | ||||
| 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | ||||
| 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | ||||
| 	      | -mingw32* | -linux-gnu* | -linux-android* \ | ||||
| 	      | -linux-newlib* | -linux-uclibc* \ | ||||
| 	      | -uxpv* | -beos* | -mpeix* | -udk* \ | ||||
| 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | ||||
| 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | ||||
| @ -1341,7 +1396,7 @@ case $os in | ||||
| 	-opened*) | ||||
| 		os=-openedition | ||||
| 		;; | ||||
|         -os400*) | ||||
| 	-os400*) | ||||
| 		os=-os400 | ||||
| 		;; | ||||
| 	-wince*) | ||||
| @ -1390,7 +1445,7 @@ case $os in | ||||
| 	-sinix*) | ||||
| 		os=-sysv4 | ||||
| 		;; | ||||
|         -tpf*) | ||||
| 	-tpf*) | ||||
| 		os=-tpf | ||||
| 		;; | ||||
| 	-triton*) | ||||
| @ -1435,6 +1490,8 @@ case $os in | ||||
| 	-dicos*) | ||||
| 		os=-dicos | ||||
| 		;; | ||||
| 	-nacl*) | ||||
| 		;; | ||||
| 	-none) | ||||
| 		;; | ||||
| 	*) | ||||
| @ -1457,10 +1514,10 @@ else | ||||
| # system, and we'll never get to this point. | ||||
| 
 | ||||
| case $basic_machine in | ||||
|         score-*) | ||||
| 	score-*) | ||||
| 		os=-elf | ||||
| 		;; | ||||
|         spu-*) | ||||
| 	spu-*) | ||||
| 		os=-elf | ||||
| 		;; | ||||
| 	*-acorn) | ||||
| @ -1472,8 +1529,17 @@ case $basic_machine in | ||||
| 	arm*-semi) | ||||
| 		os=-aout | ||||
| 		;; | ||||
|         c4x-* | tic4x-*) | ||||
|         	os=-coff | ||||
| 	c4x-* | tic4x-*) | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tic54x-*) | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tic55x-*) | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	tic6x-*) | ||||
| 		os=-coff | ||||
| 		;; | ||||
| 	# This must come before the *-dec entry. | ||||
| 	pdp10-*) | ||||
| @ -1500,7 +1566,7 @@ case $basic_machine in | ||||
| 	m68*-cisco) | ||||
| 		os=-aout | ||||
| 		;; | ||||
|         mep-*) | ||||
| 	mep-*) | ||||
| 		os=-elf | ||||
| 		;; | ||||
| 	mips*-cisco) | ||||
| @ -1527,7 +1593,7 @@ case $basic_machine in | ||||
| 	*-ibm) | ||||
| 		os=-aix | ||||
| 		;; | ||||
|     	*-knuth) | ||||
| 	*-knuth) | ||||
| 		os=-mmixware | ||||
| 		;; | ||||
| 	*-wec) | ||||
|  | ||||
							
								
								
									
										95
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										95
									
								
								configure.ac
									
									
									
									
									
								
							| @ -16,17 +16,17 @@ dnl should not be necessary to regenerate configure if the time | ||||
| dnl stamps are correct | ||||
| AC_PREREQ(2.59) | ||||
| 
 | ||||
| AC_INIT([libpng], [1.4.9beta01], [png-mng-implement@lists.sourceforge.net]) | ||||
| dnl Version number stuff here: | ||||
| 
 | ||||
| AC_INIT([libpng], [1.5.10beta01], [png-mng-implement@lists.sourceforge.net]) | ||||
| AM_INIT_AUTOMAKE | ||||
| dnl stop configure from automagically running automake | ||||
| AM_MAINTAINER_MODE | ||||
| 
 | ||||
| dnl Version number stuff here: | ||||
| 
 | ||||
| PNGLIB_VERSION=1.4.9beta01 | ||||
| PNGLIB_VERSION=1.5.10beta01 | ||||
| PNGLIB_MAJOR=1 | ||||
| PNGLIB_MINOR=4 | ||||
| PNGLIB_RELEASE=9 | ||||
| PNGLIB_MINOR=5 | ||||
| PNGLIB_RELEASE=10 | ||||
| 
 | ||||
| dnl End of version number stuff | ||||
| 
 | ||||
| @ -34,15 +34,40 @@ AC_CONFIG_SRCDIR([pngget.c]) | ||||
| AM_CONFIG_HEADER(config.h) | ||||
| 
 | ||||
| # Checks for programs. | ||||
| AC_LANG([C]) | ||||
| AC_PROG_CC | ||||
| AM_PROG_AS | ||||
| AC_PROG_LD | ||||
| AC_PROG_CPP | ||||
| AC_CHECK_TOOL(SED, sed, :) | ||||
| AC_CHECK_TOOL(AWK, awk, :) | ||||
| AC_PROG_INSTALL | ||||
| AC_PROG_LN_S | ||||
| AC_PROG_MAKE_SET | ||||
| LT_INIT([win32-dll]) | ||||
| 
 | ||||
| # On Solaris 10 and 12 CPP gets set to cc -E, however this still | ||||
| # does some input parsing.  We need strict ANSI-C style tokenization, | ||||
| # check this: | ||||
| AC_REQUIRE_CPP | ||||
| AC_MSG_CHECKING([for a C preprocessor that does not parse its input]) | ||||
| AC_TRY_CPP([1.5.0 16BIT], | ||||
|    [DFNCPP="$CPP"], | ||||
|    [DFNCPP="" | ||||
|    sav_CPP="$CPP" | ||||
|    for CPP in "${CC-cc} -E" "${CC-cc} -E -traditional-cpp" "/lib/cpp" "cpp"; do | ||||
|       AC_TRY_CPP([1.5.0 16BIT], | ||||
|          [DFNCPP="$CPP"] | ||||
|          [break],,) | ||||
|    done | ||||
|    CPP="$sav_CPP"]) | ||||
| if test -n "$DFNCPP"; then | ||||
|    AC_MSG_RESULT([$DFNCPP]) | ||||
|    AC_SUBST(DFNCPP) | ||||
| else | ||||
|    AC_MSG_FAILURE([not found], 1) | ||||
| fi | ||||
| 
 | ||||
| # Checks for header files. | ||||
| AC_HEADER_STDC | ||||
| AC_CHECK_HEADERS([malloc.h stdlib.h string.h strings.h]) | ||||
| @ -51,33 +76,31 @@ AC_CHECK_HEADERS([malloc.h stdlib.h string.h strings.h]) | ||||
| AC_C_CONST | ||||
| AC_TYPE_SIZE_T | ||||
| AC_STRUCT_TM | ||||
| AC_C_RESTRICT | ||||
| 
 | ||||
| # Checks for library functions. | ||||
| AC_FUNC_STRTOD | ||||
| AC_CHECK_FUNCS([memset], , AC_ERROR([memset not found in libc])) | ||||
| AC_CHECK_FUNCS([pow], , AC_CHECK_LIB(m, pow, , AC_ERROR([cannot find pow])) ) | ||||
| AC_CHECK_LIB(z, zlibVersion, , AC_ERROR([zlib not installed])) | ||||
| AC_ARG_WITH(zlib-prefix, | ||||
|    AC_HELP_STRING([--with-zlib-prefix], | ||||
|                   [prefix that may have been used in installed zlib]), | ||||
|                   [ZPREFIX=${withval}], | ||||
|                   [ZPREFIX='z_']) | ||||
| AC_CHECK_LIB(z, zlibVersion, , | ||||
|     AC_CHECK_LIB(z, ${ZPREFIX}zlibVersion, , | ||||
|                  AC_ERROR([zlib not installed]))) | ||||
| 
 | ||||
| case $host_os in | ||||
|   aix*) | ||||
|    LIBPNG_DEFINES="-DPNG_CONFIGURE_LIBPNG -D_ALL_SOURCE";; | ||||
|   *) | ||||
|    LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG;; | ||||
| esac | ||||
| # The following is for pngvalid, to ensure it catches FP errors even on | ||||
| # platforms that don't enable FP exceptions, the function appears in the math | ||||
| # library (typically), it's not an error if it is not found. | ||||
| AC_CHECK_LIB([m], [feenableexcept]) | ||||
| AC_CHECK_FUNCS([feenableexcept]) | ||||
| 
 | ||||
| LIBPNG_DEFINES=-DPNG_CONFIGURE_LIBPNG | ||||
| LIBPNG_DEFINES=$LIBPNG_DEFINES | ||||
| AC_SUBST(LIBPNG_DEFINES) | ||||
| 
 | ||||
| AC_MSG_CHECKING([if libraries can be versioned]) | ||||
| # Special case for PE/COFF platforms: ld reports | ||||
| # support for version-script, but doesn't actually | ||||
| # DO anything with it. | ||||
| case $host in | ||||
| *cygwin* | *mingw32* ) | ||||
|     have_ld_version_script=no | ||||
|     AC_MSG_RESULT(no) | ||||
| ;; | ||||
| * ) | ||||
| 
 | ||||
| AC_MSG_CHECKING([if using Solaris linker]) | ||||
| SLD=`$LD --version 2>&1 | grep Solaris` | ||||
| if test "$SLD"; then | ||||
| @ -89,6 +112,17 @@ else | ||||
| fi | ||||
| AM_CONDITIONAL(HAVE_SOLARIS_LD, test "$have_solaris_ld" = "yes") | ||||
| 
 | ||||
| AC_MSG_CHECKING([if libraries can be versioned]) | ||||
| # Special case for PE/COFF platforms: ld reports | ||||
| # support for version-script, but doesn't actually | ||||
| # DO anything with it. | ||||
| case $host in | ||||
| *cygwin* | *mingw32* | *interix* ) | ||||
|     have_ld_version_script=no | ||||
|     AC_MSG_RESULT(no) | ||||
| ;; | ||||
| * ) | ||||
| 
 | ||||
| if test "$have_solaris_ld" = "yes"; then | ||||
|     GLD=`$LD --help < /dev/null 2>&1 | grep 'M mapfile'` | ||||
| else | ||||
| @ -149,6 +183,19 @@ AC_ARG_WITH(binconfigs, | ||||
| 	[binconfigs='${binconfigs}']) | ||||
| AC_SUBST([binconfigs]) | ||||
| 
 | ||||
| # Because GCC by default assembles code with an executable stack, even though it | ||||
| # compiles C code with a non-executable stack, it is necessary to do a fixup | ||||
| # here (this may by GCC specific) | ||||
| AC_SUBST([AM_CCASFLAGS], [-Wa,--noexecstack]) | ||||
| 
 | ||||
| AC_ARG_ENABLE([arm-neon], | ||||
| 	AC_HELP_STRING([--enable-arm-neon], [Enable ARM NEON optimizations]), | ||||
| 	[if test "${enableval}" = yes; then | ||||
| 		AC_DEFINE([PNG_ARM_NEON], [1], [Enable ARM NEON optimizations]) | ||||
| 		AC_DEFINE([PNG_ALIGNED_MEMORY_SUPPORTED], [1], [Align row buffers]) | ||||
| 	fi]) | ||||
| AM_CONDITIONAL([PNG_ARM_NEON], [test "${enable_arm_neon:-no}" = yes]) | ||||
| 
 | ||||
| # Config files, substituting as above | ||||
| AC_CONFIG_FILES([Makefile libpng.pc:libpng.pc.in]) | ||||
| AC_CONFIG_FILES([libpng-config:libpng-config.in], | ||||
|  | ||||
							
								
								
									
										4
									
								
								contrib/README.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								contrib/README.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| 
 | ||||
| This "contrib" directory contains contributions which are not necessarily under | ||||
| the libpng license, although all are open source.  They are not part of | ||||
| libpng proper and are not used for building the library. | ||||
| @ -1,12 +1,12 @@ | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|                     GNU GENERAL PUBLIC LICENSE | ||||
|                        Version 2, June 1991 | ||||
| 
 | ||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc. | ||||
|      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
| 
 | ||||
| 			    Preamble | ||||
|                             Preamble | ||||
| 
 | ||||
|   The licenses for most software are designed to take away your | ||||
| freedom to share and change it.  By contrast, the GNU General Public | ||||
| @ -56,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all. | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
|                     GNU GENERAL PUBLIC LICENSE | ||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
| 
 | ||||
|   0. This License applies to any program or other work which contains | ||||
| @ -255,7 +255,7 @@ make exceptions for this.  Our decision will be guided by the two goals | ||||
| of preserving the free status of all derivatives of our free software and | ||||
| of promoting the sharing and reuse of software generally. | ||||
| 
 | ||||
| 			    NO WARRANTY | ||||
|                             NO WARRANTY | ||||
| 
 | ||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | ||||
| @ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
| 
 | ||||
| 		     END OF TERMS AND CONDITIONS | ||||
|                      END OF TERMS AND CONDITIONS | ||||
|  | ||||
| 	    How to Apply These Terms to Your New Programs | ||||
|             How to Apply These Terms to Your New Programs | ||||
| 
 | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
|  | ||||
| @ -23,9 +23,9 @@ | ||||
| 
 | ||||
| # macros --------------------------------------------------------------------
 | ||||
| 
 | ||||
| PNGINC = -I/usr/local/include/libpng14 | ||||
| PNGLIB = -L/usr/local/lib -lpng14	  # dynamically linked against libpng | ||||
| #PNGLIB = /usr/local/lib/libpng14.a # statically linked against libpng
 | ||||
| PNGINC = -I/usr/local/include/libpng15 | ||||
| PNGLIB = -L/usr/local/lib -lpng15	  # dynamically linked against libpng | ||||
| #PNGLIB = /usr/local/lib/libpng15.a # statically linked against libpng
 | ||||
| # or:
 | ||||
| #PNGINC = -I../..
 | ||||
| #PNGLIB = -L../.. -lpng
 | ||||
|  | ||||
| @ -26,14 +26,14 @@ | ||||
| # macros --------------------------------------------------------------------
 | ||||
| 
 | ||||
| #PNGDIR = /usr/local/lib
 | ||||
| #PNGINC = -I/usr/local/include/libpng14
 | ||||
| #PNGLIBd = -L$(PNGDIR) -lpng14 # dynamically linked, installed libpng
 | ||||
| #PNGLIBs = $(PNGDIR)/libpng14.a # statically linked, installed libpng
 | ||||
| #PNGINC = -I/usr/local/include/libpng15
 | ||||
| #PNGLIBd = -L$(PNGDIR) -lpng15 # dynamically linked, installed libpng
 | ||||
| #PNGLIBs = $(PNGDIR)/libpng15.a # statically linked, installed libpng
 | ||||
| # or:
 | ||||
| PNGDIR = ../..#	this one is for libpng-x.y.z/contrib/gregbook builds | ||||
| #PNGDIR = ../libpng
 | ||||
| PNGINC = -I$(PNGDIR) | ||||
| PNGLIBd = -Wl,-rpath,$(PNGDIR) -L$(PNGDIR) -lpng14	# dynamically linked | ||||
| PNGLIBd = -Wl,-rpath,$(PNGDIR) -L$(PNGDIR) -lpng15	# dynamically linked | ||||
| PNGLIBs = $(PNGDIR)/libpng.a		# statically linked, local libpng | ||||
| 
 | ||||
| ZDIR = /usr/local/lib | ||||
|  | ||||
| @ -63,9 +63,9 @@ BUILD INSTRUCTIONS | ||||
| 
 | ||||
|  - Prerequisites (in order of compilation): | ||||
| 
 | ||||
|       - zlib		http://zlib.net/ | ||||
|       - libpng		http://www.libpng.org/pub/png/libpng.html | ||||
|       - pngbook		http://www.libpng.org/pub/png/book/sources.html | ||||
|       - zlib            http://zlib.net/ | ||||
|       - libpng          http://www.libpng.org/pub/png/libpng.html | ||||
|       - pngbook         http://www.libpng.org/pub/png/book/sources.html | ||||
| 
 | ||||
|      The pngbook demo programs are explicitly designed to demonstrate proper | ||||
|      coding techniques for using the libpng reference library.  As a result, | ||||
| @ -165,19 +165,19 @@ RUNNING THE PROGRAMS:  (VERY) BRIEF INTRO | ||||
|      rpng is a simple PNG viewer that can display transparent PNGs with a | ||||
|      specified background color; for example, | ||||
| 
 | ||||
| 	rpng -bgcolor \#ff0000 toucan.png | ||||
|         rpng -bgcolor \#ff0000 toucan.png | ||||
| 
 | ||||
|      would display the image with a red background.  rpng2 is a progressive | ||||
|      viewer that simulates a web browser in some respects; it can display | ||||
|      images against either a background color or a dynamically generated | ||||
|      background image.  For example: | ||||
| 
 | ||||
| 	rpng2 -bgpat 16 toucan.png | ||||
|         rpng2 -bgpat 16 toucan.png | ||||
| 
 | ||||
|      wpng is a purely command-line image converter from binary PBMPLUS/NetPBM | ||||
|      format (.pgm or .ppm) to PNG; for example, | ||||
| 
 | ||||
| 	wpng -time < toucan-notrans.ppm > toucan-notrans.png | ||||
|         wpng -time < toucan-notrans.ppm > toucan-notrans.png | ||||
| 
 | ||||
|      would convert the specified PPM file (using redirection) to PNG, auto- | ||||
|      matically setting the PNG modification-time chunk. | ||||
|  | ||||
| @ -229,8 +229,14 @@ uch *readpng_get_image(double display_exponent, int *pChannels, ulg *pRowbytes) | ||||
|         png_set_expand(png_ptr); | ||||
|     if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) | ||||
|         png_set_expand(png_ptr); | ||||
| #ifdef PNG_READ_16_TO_8_SUPPORTED | ||||
|     if (bit_depth == 16) | ||||
| #  ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED | ||||
|         png_set_scale_16(png_ptr); | ||||
| #  else | ||||
|         png_set_strip_16(png_ptr); | ||||
| #  endif | ||||
| #endif | ||||
|     if (color_type == PNG_COLOR_TYPE_GRAY || | ||||
|         color_type == PNG_COLOR_TYPE_GRAY_ALPHA) | ||||
|         png_set_gray_to_rgb(png_ptr); | ||||
| @ -263,7 +269,8 @@ uch *readpng_get_image(double display_exponent, int *pChannels, ulg *pRowbytes) | ||||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|     Trace((stderr, "readpng_get_image:  channels = %d, rowbytes = %ld, height = %ld\n", *pChannels, rowbytes, height)); | ||||
|     Trace((stderr, "readpng_get_image:  channels = %d, rowbytes = %ld, height = %ld\n", | ||||
|         *pChannels, rowbytes, height)); | ||||
| 
 | ||||
| 
 | ||||
|     /* set the individual row_pointers to point at the correct offsets */ | ||||
|  | ||||
| @ -55,8 +55,10 @@ | ||||
| 
 | ||||
| 
 | ||||
| #include <stdlib.h>     /* for exit() prototype */ | ||||
| #include <setjmp.h> | ||||
| 
 | ||||
| #include "png.h"        /* libpng header; includes zlib.h and setjmp.h */ | ||||
| #include <zlib.h> | ||||
| #include "png.h"        /* libpng header from the local directory */ | ||||
| #include "readpng2.h"   /* typedefs, common macros, public prototypes */ | ||||
| 
 | ||||
| 
 | ||||
| @ -216,7 +218,11 @@ static void readpng2_info_callback(png_structp png_ptr, png_infop info_ptr) | ||||
|     mainprog_info  *mainprog_ptr; | ||||
|     int  color_type, bit_depth; | ||||
|     png_uint_32 width, height; | ||||
| #ifdef PNG_FLOATING_POINT_SUPPORTED | ||||
|     double  gamma; | ||||
| #else | ||||
|     png_fixed_point gamma; | ||||
| #endif | ||||
| 
 | ||||
| 
 | ||||
|     /* setjmp() doesn't make sense here, because we'd either have to exit(),
 | ||||
| @ -305,8 +311,14 @@ static void readpng2_info_callback(png_structp png_ptr, png_infop info_ptr) | ||||
|         png_set_expand(png_ptr); | ||||
|     if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) | ||||
|         png_set_expand(png_ptr); | ||||
| #ifdef PNG_READ_16_TO_8_SUPPORTED | ||||
|     if (bit_depth == 16) | ||||
| #  ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED | ||||
|         png_set_scale_16(png_ptr); | ||||
| #  else | ||||
|         png_set_strip_16(png_ptr); | ||||
| #  endif | ||||
| #endif | ||||
|     if (color_type == PNG_COLOR_TYPE_GRAY || | ||||
|         color_type == PNG_COLOR_TYPE_GRAY_ALPHA) | ||||
|         png_set_gray_to_rgb(png_ptr); | ||||
| @ -327,11 +339,19 @@ static void readpng2_info_callback(png_structp png_ptr, png_infop info_ptr) | ||||
|      * "gamma" value for the entire display system, i.e., the product of | ||||
|      * LUT_exponent and CRT_exponent. */ | ||||
| 
 | ||||
| #ifdef PNG_FLOATING_POINT_SUPPORTED | ||||
|     if (png_get_gAMA(png_ptr, info_ptr, &gamma)) | ||||
|         png_set_gamma(png_ptr, mainprog_ptr->display_exponent, gamma); | ||||
|     else | ||||
|         png_set_gamma(png_ptr, mainprog_ptr->display_exponent, 0.45455); | ||||
| 
 | ||||
| #else | ||||
|     if (png_get_gAMA_fixed(png_ptr, info_ptr, &gamma)) | ||||
|         png_set_gamma_fixed(png_ptr, | ||||
|             (png_fixed_point)(100000*mainprog_ptr->display_exponent+.5), gamma); | ||||
|     else | ||||
|         png_set_gamma_fixed(png_ptr, | ||||
|             (png_fixed_point)(100000*mainprog_ptr->display_exponent+.5), 45455); | ||||
| #endif | ||||
| 
 | ||||
|     /* we'll let libpng expand interlaced images, too */ | ||||
| 
 | ||||
| @ -480,5 +500,12 @@ static void readpng2_error_handler(png_structp png_ptr, png_const_charp msg) | ||||
|         exit(99); | ||||
|     } | ||||
| 
 | ||||
|     /* Now we have our data structure we can use the information in it
 | ||||
|      * to return control to our own higher level code (all the points | ||||
|      * where 'setjmp' is called in this file.)  This will work with other | ||||
|      * error handling mechanisms as well - libpng always calls png_error | ||||
|      * when it can proceed no further, thus, so long as the error handler | ||||
|      * is intercepted, application code can do its own error recovery. | ||||
|      */ | ||||
|     longjmp(mainprog_ptr->jmpbuf, 1); | ||||
| } | ||||
|  | ||||
| @ -81,8 +81,8 @@ | ||||
| #define PROGNAME  "rpng-x" | ||||
| #define LONGNAME  "Simple PNG Viewer for X" | ||||
| #define VERSION   "2.01 of 16 March 2008" | ||||
| #define RESNAME   "rpng"	/* our X resource application name */ | ||||
| #define RESCLASS  "Rpng"	/* our X resource class name */ | ||||
| #define RESNAME   "rpng"        /* our X resource application name */ | ||||
| #define RESCLASS  "Rpng"        /* our X resource class name */ | ||||
| 
 | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| @ -590,7 +590,7 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, PSTR cmd, int showmode) | ||||
|                   "(unexpectedly) while reading PNG image file\n"); | ||||
|                 exit(3); | ||||
|             } else /* if (error) */ { | ||||
|                 // will print error message below
 | ||||
|                 /* will print error message below */ | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|  | ||||
| @ -96,8 +96,8 @@ | ||||
| #define PROGNAME  "rpng2-x" | ||||
| #define LONGNAME  "Progressive PNG Viewer for X" | ||||
| #define VERSION   "2.03 of 25 February 2010" | ||||
| #define RESNAME   "rpng2"	/* our X resource application name */ | ||||
| #define RESCLASS  "Rpng"	/* our X resource class name */ | ||||
| #define RESNAME   "rpng2"       /* our X resource application name */ | ||||
| #define RESCLASS  "Rpng"       /* our X resource class name */ | ||||
| 
 | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| @ -132,7 +132,7 @@ | ||||
|                   (e.type == KeyPress &&   /*  v--- or 1 for shifted keys */  \ | ||||
|                   ((k = XLookupKeysym(&e.xkey, 0)) == XK_q || k == XK_Escape))) | ||||
| 
 | ||||
| #define NO_24BIT_MASKS	/* undef case not fully written--only for redisplay() */ | ||||
| #define NO_24BIT_MASKS /* undef case not fully written--only for redisplay() */ | ||||
| 
 | ||||
| #define rgb1_max   bg_freq | ||||
| #define rgb1_min   bg_gray | ||||
| @ -302,7 +302,7 @@ int main(int argc, char **argv) | ||||
|     int have_bg = FALSE; | ||||
| #ifdef FEATURE_LOOP | ||||
|     int loop = FALSE; | ||||
|     long loop_interval = -1;		/* seconds (100,000 max) */ | ||||
|     long loop_interval = -1;            /* seconds (100,000 max) */ | ||||
| #endif | ||||
|     double LUT_exponent;                /* just the lookup table */ | ||||
|     double CRT_exponent = 2.2;          /* just the monitor */ | ||||
| @ -485,9 +485,6 @@ int main(int argc, char **argv) | ||||
|           "\nPress Q, Esc or mouse button 1 (within image window, after image\n" | ||||
|           "is displayed) to quit.\n" | ||||
|           "\n", PROGNAME, | ||||
| #if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__)) | ||||
|           (int)strlen(PROGNAME), " ", | ||||
| #endif | ||||
|           (int)strlen(PROGNAME), " ", default_display_exponent, num_bgpat-1); | ||||
|         exit(1); | ||||
|     } | ||||
| @ -594,7 +591,7 @@ int main(int argc, char **argv) | ||||
|                   "(unexpectedly) while reading PNG image file\n"); | ||||
|                 exit(3); | ||||
|             } else /* if (error) */ { | ||||
|                 // will print error message below
 | ||||
|                 /* will print error message below */ | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
| @ -784,8 +781,9 @@ static void rpng2_x_init(void) | ||||
|     if (rpng2_x_create_window()) { | ||||
| 
 | ||||
|         /* GRR TEMPORARY HACK:  this is fundamentally no different from cases
 | ||||
|          * above; libpng should longjmp() back to us when png_ptr goes away. | ||||
|          * If we/it segfault instead, seems like a libpng bug... */ | ||||
|          * above; libpng should call our error handler to longjmp() back to us | ||||
|          * when png_ptr goes away.  If we/it segfault instead, seems like a | ||||
|          * libpng bug... */ | ||||
| 
 | ||||
|         /* we're here via libpng callback, so if window fails, clean and bail */ | ||||
|         readpng2_cleanup(&rpng2_info); | ||||
| @ -1279,7 +1277,7 @@ static int rpng2_x_load_bg_image(void) | ||||
|         for (row = 0;  row < rpng2_info.height;  ++row) { | ||||
|             src = bg_data + row*bg_rowbytes; | ||||
|             dest = ximage->data + row*ximage_rowbytes; | ||||
|             if (bpp == 32) {	/* slightly optimized version */ | ||||
|             if (bpp == 32) {    /* slightly optimized version */ | ||||
|                 for (i = rpng2_info.width;  i > 0;  --i) { | ||||
|                     red   = *src++; | ||||
|                     green = *src++; | ||||
|  | ||||
| @ -104,7 +104,8 @@ int writepng_init(mainprog_info *mainprog_ptr) | ||||
|     /* setjmp() must be called in every function that calls a PNG-writing
 | ||||
|      * libpng function, unless an alternate error handler was installed-- | ||||
|      * but compatible error handlers must either use longjmp() themselves | ||||
|      * (as in this program) or exit immediately, so here we go: */ | ||||
|      * (as in this program) or some other method to return control to | ||||
|      * application code, so here we go: */ | ||||
| 
 | ||||
|     if (setjmp(mainprog_ptr->jmpbuf)) { | ||||
|         png_destroy_write_struct(&png_ptr, &info_ptr); | ||||
| @ -388,5 +389,12 @@ static void writepng_error_handler(png_structp png_ptr, png_const_charp msg) | ||||
|         exit(99); | ||||
|     } | ||||
| 
 | ||||
|     /* Now we have our data structure we can use the information in it
 | ||||
|      * to return control to our own higher level code (all the points | ||||
|      * where 'setjmp' is called in this file.)  This will work with other | ||||
|      * error handling mechanisms as well - libpng always calls png_error | ||||
|      * when it can proceed no further, thus, so long as the error handler | ||||
|      * is intercepted, application code can do its own error recovery. | ||||
|      */ | ||||
|     longjmp(mainprog_ptr->jmpbuf, 1); | ||||
| } | ||||
|  | ||||
							
								
								
									
										9837
									
								
								contrib/libtests/pngvalid.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9837
									
								
								contrib/libtests/pngvalid.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										4
									
								
								contrib/pngminim/README
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								contrib/pngminim/README
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| This demonstrates the use of PNG_USER_CONFIG, pngusr.h and pngusr.dfa | ||||
| to build minimal decoder, encoder, and progressive reader applications. | ||||
| 
 | ||||
| See the individual README and pngusr.dfa files for more explanation. | ||||
| @ -1,9 +1,10 @@ | ||||
| This demonstrates the use of PNG_USER_CONFIG and pngusr.h | ||||
| This demonstrates the use of PNG_USER_CONFIG, pngusr.h and pngusr.dfa | ||||
| 
 | ||||
| To build a minimal read-only decoder with embedded libpng and zlib, run | ||||
| The makefile builds a minimal read-only decoder with embedded libpng | ||||
| and zlib. | ||||
| 
 | ||||
|     gather.sh  # to collect needed files from pngminus, libpng, and zlib | ||||
|     make | ||||
| Specify the location of the zlib source (1.2.1 or later) as ZLIBSRC | ||||
| on the make command line. | ||||
| 
 | ||||
| If you prefer to use the shared libraries, go to contrib/pngminus | ||||
| and build the png2pnm application there. | ||||
|  | ||||
| @ -5,27 +5,82 @@ | ||||
| CC=gcc | ||||
| LD=$(CC) | ||||
| 
 | ||||
| RM=rm -f | ||||
| # If awk fails try
 | ||||
| # make AWK=nawk
 | ||||
| 
 | ||||
| CFLAGS=-DPNG_USER_CONFIG -DNO_GZCOMPRESS -DNO_GZIP \
 | ||||
|        -DdeflateParams\(a,b,c\)=Z_OK -I. -O1 | ||||
| # If cpp fails try
 | ||||
| # make CPP=/lib/cpp
 | ||||
| 
 | ||||
| RM=rm -f | ||||
| COPY=cp | ||||
| 
 | ||||
| CFLAGS=-DPNG_USER_CONFIG -DNO_GZCOMPRESS -DNO_GZIP -I. -O1 | ||||
| 
 | ||||
| C=.c | ||||
| O=.o | ||||
| L=.a | ||||
| E= | ||||
| 
 | ||||
| ZOBJS  = adler32$(O) crc32$(O) \
 | ||||
| 	 infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
 | ||||
| 	 trees$(O) uncompr$(O) zutil$(O) | ||||
| # Where to find the source code:
 | ||||
| PNGSRC =../../.. | ||||
| ZLIBSRC=$(PNGSRC)/../zlib | ||||
| PROGSRC=$(PNGSRC)/contrib/pngminus | ||||
| 
 | ||||
| OBJS  = pngm2pnm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
 | ||||
| # Zlib (minimal inflate requirements - crc32 is used by libpng)
 | ||||
| # zutil can be eliminated if you provide your own zcalloc and zcfree
 | ||||
| ZSRCS  = adler32$(C) crc32$(C) \
 | ||||
| 	 inffast$(C) inflate$(C) inftrees$(C) \
 | ||||
| 	 zutil$(C) | ||||
| 
 | ||||
| # Standard headers
 | ||||
| ZH     = zlib.h crc32.h inffast.h inffixed.h \
 | ||||
| 	 inflate.h inftrees.h zutil.h | ||||
| 
 | ||||
| # Machine generated headers
 | ||||
| ZCONF  = zconf.h | ||||
| 
 | ||||
| # Headers callers use
 | ||||
| ZINC   = zlib.h $(ZCONF) | ||||
| 
 | ||||
| # Headers the Zlib source uses
 | ||||
| ZHDRS  = $(ZH) $(ZCONF) | ||||
| 
 | ||||
| ZOBJS  = adler32$(O) crc32$(O) \
 | ||||
| 	 inffast$(O) inflate$(O) inftrees$(O) \
 | ||||
| 	 zutil$(O) | ||||
| 
 | ||||
| # libpng
 | ||||
| PNGSRCS=png$(C) pngerror$(C) pngget$(C) pngmem$(C) \
 | ||||
| 	pngread$(C) pngrio$(C) pngrtran$(C) pngrutil$(C) \
 | ||||
| 	pngset$(C) pngtrans$(C) | ||||
| 	 | ||||
| # Standard headers
 | ||||
| PNGH   =png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h pngstruct.h | ||||
| 
 | ||||
| # Machine generated headers
 | ||||
| PNGCONF=pnglibconf.h | ||||
| 
 | ||||
| # Headers callers use
 | ||||
| PNGINC= png.h pngconf.h pngusr.h $(PNGCONF) | ||||
| 
 | ||||
| # Headers the PNG library uses
 | ||||
| PNGHDRS=$(PNGH) $(PNGCONF) pngusr.h | ||||
| 
 | ||||
| PNGOBJS=png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
 | ||||
| 	pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) \
 | ||||
| 	pngset$(O) pngtrans$(O)  $(ZOBJS) | ||||
| 	pngset$(O) pngtrans$(O) | ||||
| 
 | ||||
| PROGSRCS= pngm2pnm$(C) | ||||
| PROGHDRS= | ||||
| PROGDOCS= | ||||
| PROGOBJS= pngm2pnm$(O) | ||||
| 
 | ||||
| OBJS    = $(PROGOBJS) $(PNGOBJS) $(ZOBJS) | ||||
| 
 | ||||
| # implicit make rules -------------------------------------------------------
 | ||||
| 
 | ||||
| .c$(O): png.h pngconf.h pngpriv.h pngusr.h zlib.h | ||||
| # note: dependencies do not work on implicit rule lines
 | ||||
| .c$(O): | ||||
| 	$(CC) -c $(CFLAGS) $< | ||||
| 
 | ||||
| # dependencies
 | ||||
| @ -35,9 +90,61 @@ all: pngm2pnm$(E) | ||||
| pngm2pnm$(E): $(OBJS) | ||||
| 	$(LD) -o pngm2pnm$(E) $(OBJS) | ||||
| 
 | ||||
| # The DFA_XTRA setting turns all libpng options off then
 | ||||
| # turns on those required for this minimal build.
 | ||||
| # The CPP_FLAGS setting causes pngusr.h to be included in
 | ||||
| # both the build of pnglibconf.h and, subsequently, when
 | ||||
| # building libpng itself.
 | ||||
| $(PNGCONF): $(PNGSRC)/scripts/pnglibconf.mak\ | ||||
| 	$(PNGSRC)/scripts/pnglibconf.dfa \
 | ||||
| 	$(PNGSRC)/scripts/options.awk pngusr.h pngusr.dfa | ||||
| 	$(RM) pnglibconf.h pnglibconf.dfn | ||||
| 	$(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\
 | ||||
| 	    srcdir=$(PNGSRC) CPPFLAGS="-DPNG_USER_CONFIG"\
 | ||||
| 	    DFA_XTRA="pngusr.dfa" $@ | ||||
| 
 | ||||
| clean: | ||||
| 	$(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\
 | ||||
| 	    srcdir=$(PNGSRC) clean | ||||
| 	$(RM) pngm2pnm$(O) | ||||
| 	$(RM) pngm2pnm$(E) | ||||
| 	$(RM) $(OBJS) | ||||
| 
 | ||||
| # distclean also removes the copied source and headers
 | ||||
| distclean: clean | ||||
| 	$(RM) -r scripts # historical reasons | ||||
| 	$(RM) $(PNGSRCS) $(PNGH) | ||||
| 	$(RM) $(ZSRCS) $(ZH) $(ZCONF) | ||||
| 	$(RM) $(PROGSRCS) $(PROGHDRS) $(PROGDOCS) | ||||
| 
 | ||||
| # Header file dependencies:
 | ||||
| $(PROGOBJS): $(PROGHDRS) $(PNGINC) $(ZINC) | ||||
| $(PNGOBJS): $(PNGHDRS) $(ZINC) | ||||
| $(ZOBJS): $(ZHDRS) | ||||
| 
 | ||||
| # Gather the source code from the respective directories
 | ||||
| $(PNGSRCS) $(PNGH): $(PNGSRC)/$@ | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(PNGSRC)/$@ $@ | ||||
| 
 | ||||
| # No dependency on the ZLIBSRC target so that it only needs
 | ||||
| # to be specified once.
 | ||||
| $(ZSRCS) $(ZH): | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(ZLIBSRC)/$@ $@ | ||||
| 
 | ||||
| # The unconfigured zconf.h varies in name according to the
 | ||||
| # zlib release
 | ||||
| $(ZCONF): | ||||
| 	$(RM) $@ | ||||
| 	@for f in zconf.h.in zconf.in.h zconf.h; do\
 | ||||
| 	    test -r $(ZLIBSRC)/$$f &&\
 | ||||
| 	    echo $(COPY) $(ZLIBSRC)/$$f $@ &&\
 | ||||
| 	    $(COPY) $(ZLIBSRC)/$$f $@ && exit 0;\
 | ||||
| 	done; echo copy: $(ZLIBSRC)/zconf.h not found; exit 1 | ||||
| 
 | ||||
| pngm2pnm.c: $(PROGSRC)/png2pnm.c | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(PROGSRC)/png2pnm.c $@ | ||||
| 
 | ||||
| # End of makefile for pngm2pnm
 | ||||
|  | ||||
							
								
								
									
										39
									
								
								contrib/pngminim/decoder/pngusr.dfa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								contrib/pngminim/decoder/pngusr.dfa
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| # pngminim/decoder/pngusr.dfa | ||||
| # | ||||
| # Copyright (c) 2010-2011 Glenn Randers-Pehrson | ||||
| # | ||||
| # This code is released under the libpng license. | ||||
| # For conditions of distribution and use, see the disclaimer | ||||
| # and license in png.h | ||||
| 
 | ||||
| # First all the build options off: | ||||
| 
 | ||||
| everything = off | ||||
| 
 | ||||
| # All that is required is some read code. This example switches | ||||
| # on the sequential read code (see ../preader for a progressive | ||||
| # read example). | ||||
| 
 | ||||
| option SEQUENTIAL_READ on | ||||
| 
 | ||||
| # You must choose fixed or floating point arithmetic: | ||||
| # option FLOATING_POINT on | ||||
| 
 | ||||
| option FIXED_POINT on | ||||
| 
 | ||||
| # You must chose the internal fixed point implementation or to | ||||
| # use the system floating point.  The latter is considerably | ||||
| # smaller (by about 1kbyte on an x86 system): | ||||
| # option FLOATING_ARITHMETIC on | ||||
| 
 | ||||
| option FLOATING_ARITHMETIC off | ||||
| 
 | ||||
| # Your program will probably need other options.  The example | ||||
| # program here, pngm2pnm, requires the following.  Take a look | ||||
| # at pnglibconf.h to find out the full set of what has to be | ||||
| # enabled to make the following work. | ||||
| 
 | ||||
| option SETJMP on | ||||
| option STDIO on | ||||
| option READ_EXPAND on | ||||
| option READ_STRIP_16_TO_8 on | ||||
| @ -1,6 +1,6 @@ | ||||
| /* minrdpngconf.h: headers to make a minimal png-read-only library
 | ||||
|  * | ||||
|  * Copyright (c) 2007, 2009 Glenn Randers-Pehrson | ||||
|  * Copyright (c) 2007, 2010-2011 Glenn Randers-Pehrson | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
| @ -12,64 +12,13 @@ | ||||
| #ifndef MINRDPNGCONF_H | ||||
| #define MINRDPNGCONF_H | ||||
| 
 | ||||
| /* To include pngusr.h set -DPNG_USER_CONFIG in CPPFLAGS */ | ||||
| 
 | ||||
| /* List options to turn off features of the build that do not
 | ||||
|  * affect the API (so are not recorded in pnglibconf.h) | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_WARNINGS | ||||
| #define png_warning(s1,s2) "" | ||||
| #define png_chunk_warning(s1,s2) "" | ||||
| #define PNG_NO_ERROR_TEXT | ||||
| #define png_error(s1,s2) png_err(s1) | ||||
| #define png_chunk_error(s1,s2) png_err(s1) | ||||
| 
 | ||||
| #define PNG_NO_READ_BGR | ||||
| #define PNG_NO_READ_GAMMA | ||||
| #define PNG_NO_READ_BACKGROUND | ||||
| #define PNG_NO_READ_QUANTIZE | ||||
| #define PNG_NO_READ_INVERT | ||||
| #define PNG_NO_READ_SHIFT | ||||
| #define PNG_NO_READ_PACK | ||||
| #define PNG_NO_READ_PACKSWAP | ||||
| #define PNG_NO_READ_FILLER | ||||
| #define PNG_NO_READ_SWAP | ||||
| #define PNG_NO_READ_SWAP_ALPHA | ||||
| #define PNG_NO_READ_INVERT_ALPHA | ||||
| #define PNG_NO_READ_RGB_TO_GRAY | ||||
| #define PNG_NO_READ_USER_TRANSFORM | ||||
| #define PNG_NO_READ_bKGD | ||||
| #define PNG_NO_READ_cHRM | ||||
| #define PNG_NO_READ_gAMA | ||||
| #define PNG_NO_READ_hIST | ||||
| #define PNG_NO_READ_iCCP | ||||
| #define PNG_NO_READ_oFFs | ||||
| #define PNG_NO_READ_pCAL | ||||
| #define PNG_NO_READ_pHYs | ||||
| #define PNG_NO_READ_sBIT | ||||
| #define PNG_NO_READ_sCAL | ||||
| #define PNG_NO_READ_sPLT | ||||
| #define PNG_NO_READ_sRGB | ||||
| #define PNG_NO_READ_TEXT | ||||
| #define PNG_NO_READ_tIME | ||||
| #define PNG_NO_READ_UNKNOWN_CHUNKS | ||||
| #define PNG_NO_READ_USER_CHUNKS | ||||
| #define PNG_NO_READ_EMPTY_PLTE | ||||
| #define PNG_NO_READ_OPT_PLTE | ||||
| #define PNG_NO_READ_STRIP_ALPHA | ||||
| 
 | ||||
| #define PNG_NO_WRITE_SUPPORTED | ||||
| 
 | ||||
| #define PNG_NO_INFO_IMAGE | ||||
| #define PNG_NO_IO_STATE | ||||
| #define PNG_NO_USER_MEM | ||||
| #define PNG_NO_FIXED_POINT_SUPPORTED | ||||
| #define PNG_NO_MNG_FEATURES | ||||
| #define PNG_NO_USER_TRANSFORM_PTR | ||||
| #define PNG_NO_HANDLE_AS_UNKNOWN | ||||
| #define PNG_NO_CONSOLE_IO | ||||
| #define PNG_NO_ZALLOC_ZERO | ||||
| #define PNG_NO_ERROR_NUMBERS | ||||
| #define PNG_NO_EASY_ACCESS | ||||
| #define PNG_NO_PROGRESSIVE_READ | ||||
| #define PNG_NO_USER_LIMITS | ||||
| #define PNG_NO_SET_USER_LIMITS | ||||
| #define PNG_NO_TIME_RFC1123 | ||||
| #define PNG_ALIGN_TYPE PNG_ALIGN_NONE | ||||
| 
 | ||||
| #endif /* MINRDPNGCONF_H */ | ||||
| 
 | ||||
|  | ||||
| @ -1,9 +1,10 @@ | ||||
| This demonstrates the use of PNG_USER_CONFIG and pngusr.h | ||||
| 
 | ||||
| To build a minimal write-only decoder with embedded libpng and zlib, run | ||||
| The makefile builds a minimal write-only decoder with embedded libpng | ||||
| and zlib. | ||||
| 
 | ||||
|     gather.sh  # to collect needed files from pngminus, libpng, and zlib | ||||
|     make | ||||
| Specify the location of the zlib source (1.2.1 or later) as ZLIBSRC | ||||
| on the make command line. | ||||
| 
 | ||||
| If you prefer to use the shared libraries, go to contrib/pngminus | ||||
| and build the pnm2png application there. | ||||
|  | ||||
| @ -5,7 +5,14 @@ | ||||
| CC=gcc | ||||
| LD=$(CC) | ||||
| 
 | ||||
| # If awk fails try
 | ||||
| # make AWK=nawk
 | ||||
| 
 | ||||
| # If cpp fails try
 | ||||
| # make CPP=/lib/cpp
 | ||||
| 
 | ||||
| RM=rm -f | ||||
| COPY=cp | ||||
| 
 | ||||
| CFLAGS=-DPNG_USER_CONFIG -DNO_GZIP -I. -O1 | ||||
| 
 | ||||
| @ -14,16 +21,65 @@ O=.o | ||||
| L=.a | ||||
| E= | ||||
| 
 | ||||
| # Where to find the source code:
 | ||||
| PNGSRC =../../.. | ||||
| ZLIBSRC=$(PNGSRC)/../zlib | ||||
| PROGSRC=$(PNGSRC)/contrib/pngminus | ||||
| 
 | ||||
| # Zlib
 | ||||
| ZSRCS  = adler32$(C) compress$(C) crc32$(C) deflate$(C) \
 | ||||
| 	 trees$(C) zutil$(C) | ||||
| 
 | ||||
| # Standard headers
 | ||||
| #ZH     = zlib.h crc32.h deflate.h trees.h zutil.h
 | ||||
| ZH     = zlib.h crc32.h deflate.h trees.h zutil.h | ||||
| 
 | ||||
| # Machine generated headers
 | ||||
| ZCONF  = zconf.h | ||||
| 
 | ||||
| # Headers callers use
 | ||||
| ZINC   = zlib.h $(ZCONF) | ||||
| 
 | ||||
| # Headers the Zlib source uses
 | ||||
| ZHDRS  = $(ZH) $(ZCONF) | ||||
| 
 | ||||
| # compress is not required; it is needed to link the zlib
 | ||||
| # code because deflate defines an unused API function deflateBound
 | ||||
| # which itself calls compressBound from compress.
 | ||||
| ZOBJS  = adler32$(O) compress$(O) crc32$(O) deflate$(O) \
 | ||||
| 	 trees$(O) zutil$(O) | ||||
| 
 | ||||
| OBJS  = pnm2pngm$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
 | ||||
| # libpng
 | ||||
| PNGSRCS=png$(C) pngerror$(C) pngget$(C) pngmem$(C) \
 | ||||
| 	pngset$(C) pngtrans$(C) pngwio$(C) pngwrite$(C) \
 | ||||
| 	pngwtran$(C) pngwutil$(C) | ||||
| 
 | ||||
| # Standard headers
 | ||||
| PNGH   =png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h pngstruct.h | ||||
| 
 | ||||
| # Machine generated headers
 | ||||
| PNGCONF=pnglibconf.h | ||||
| 
 | ||||
| # Headers callers use
 | ||||
| PNGINC= png.h pngconf.h pngusr.h $(PNGCONF) | ||||
| 
 | ||||
| # Headers the PNG library uses
 | ||||
| PNGHDRS=$(PNGH) $(PNGCONF) pngusr.h | ||||
| 
 | ||||
| PNGOBJS=png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
 | ||||
| 	pngset$(O) pngtrans$(O) pngwio$(O) pngwrite$(O) \
 | ||||
| 	pngwtran$(O) pngwutil$(O) $(ZOBJS) | ||||
| 	pngwtran$(O) pngwutil$(O) | ||||
| 
 | ||||
| PROGSRCS= pnm2pngm$(C) | ||||
| PROGHDRS= | ||||
| PROGDOCS= | ||||
| PROGOBJS= pnm2pngm$(O) | ||||
| 
 | ||||
| OBJS    = $(PROGOBJS) $(PNGOBJS) $(ZOBJS) | ||||
| 
 | ||||
| # implicit make rules -------------------------------------------------------
 | ||||
| 
 | ||||
| .c$(O): png.h pngconf.h pngpriv.h pngusr.h zlib.h | ||||
| .c$(O): | ||||
| 	$(CC) -c $(CFLAGS) $< | ||||
| 
 | ||||
| # dependencies
 | ||||
| @ -33,9 +89,61 @@ all: pnm2pngm$(E) | ||||
| pnm2pngm$(E): $(OBJS) | ||||
| 	$(LD) -o pnm2pngm$(E) $(OBJS) | ||||
| 
 | ||||
| # The DFA_XTRA setting turns all libpng options off then
 | ||||
| # turns on those required for this minimal build.
 | ||||
| # The CPP_FLAGS setting causes pngusr.h to be included in
 | ||||
| # both the build of pnglibconf.h and, subsequently, when
 | ||||
| # building libpng itself.
 | ||||
| $(PNGCONF): $(PNGSRC)/scripts/pnglibconf.mak\ | ||||
| 	$(PNGSRC)/scripts/pnglibconf.dfa \
 | ||||
| 	$(PNGSRC)/scripts/options.awk pngusr.h pngusr.dfa | ||||
| 	$(RM) pnglibconf.h pnglibconf.dfn | ||||
| 	$(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\
 | ||||
| 	    srcdir=$(PNGSRC) CPPFLAGS="-DPNG_USER_CONFIG"\
 | ||||
| 	    DFA_XTRA="pngusr.dfa" $@ | ||||
| 
 | ||||
| clean: | ||||
| 	$(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\
 | ||||
| 	    srcdir=$(PNGSRC) clean | ||||
| 	$(RM) pnm2pngm$(O) | ||||
| 	$(RM) pnm2pngm$(E) | ||||
| 	$(RM) $(OBJS) | ||||
| 
 | ||||
| # distclean also removes the copied source and headers
 | ||||
| distclean: clean | ||||
| 	$(RM) -r scripts # historical reasons | ||||
| 	$(RM) $(PNGSRCS) $(PNGH) | ||||
| 	$(RM) $(ZSRCS) $(ZH) $(ZCONF) | ||||
| 	$(RM) $(PROGSRCS) $(PROGHDRS) $(PROGDOCS) | ||||
| 
 | ||||
| # Header file dependencies:
 | ||||
| $(PROGOBJS): $(PROGHDRS) $(PNGINC) $(ZINC) | ||||
| $(PNGOBJS): $(PNGHDRS) $(ZINC) | ||||
| $(ZOBJS): $(ZHDRS) | ||||
| 
 | ||||
| # Gather the source code from the respective directories
 | ||||
| $(PNGSRCS) $(PNGH): $(PNGSRC)/$@ | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(PNGSRC)/$@ $@ | ||||
| 
 | ||||
| # No dependency on the ZLIBSRC target so that it only needs
 | ||||
| # to be specified once.
 | ||||
| $(ZSRCS) $(ZH): | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(ZLIBSRC)/$@ $@ | ||||
| 
 | ||||
| # The unconfigured zconf.h varies in name according to the
 | ||||
| # zlib release
 | ||||
| $(ZCONF): | ||||
| 	$(RM) $@ | ||||
| 	@for f in zconf.h.in zconf.in.h zconf.h; do\
 | ||||
| 	    test -r $(ZLIBSRC)/$$f &&\
 | ||||
| 	    echo $(COPY) $(ZLIBSRC)/$$f $@ &&\
 | ||||
| 	    $(COPY) $(ZLIBSRC)/$$f $@ && exit 0;\
 | ||||
| 	done; echo copy: $(ZLIBSRC)/zconf.h not found; exit 1 | ||||
| 
 | ||||
| pnm2pngm.c: $(PROGSRC)/pnm2png.c | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(PROGSRC)/pnm2png.c $@ | ||||
| 
 | ||||
| # End of makefile for pnm2pngm
 | ||||
|  | ||||
							
								
								
									
										35
									
								
								contrib/pngminim/encoder/pngusr.dfa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								contrib/pngminim/encoder/pngusr.dfa
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| # pngminim/encoder/pngusr.dfa | ||||
| # | ||||
| # Copyright (c) 2010-2011 Glenn Randers-Pehrson | ||||
| # | ||||
| # This code is released under the libpng license. | ||||
| # For conditions of distribution and use, see the disclaimer | ||||
| # and license in png.h | ||||
| 
 | ||||
| # First all the build options off: | ||||
| 
 | ||||
| everything = off | ||||
| 
 | ||||
| # Switch on the write code - this makes a minimalist encoder | ||||
| 
 | ||||
| option WRITE on | ||||
| 
 | ||||
| # You must choose fixed or floating point arithmetic: | ||||
| # option FLOATING_POINT on | ||||
| 
 | ||||
| option FIXED_POINT on | ||||
| 
 | ||||
| # You must chose the internal fixed point implementation or to | ||||
| # use the system floating point.  The latter is considerably | ||||
| # smaller (by about 1kbyte on an x86 system): | ||||
| # option FLOATING_ARITHMETIC on | ||||
| 
 | ||||
| option FLOATING_ARITHMETIC off | ||||
| 
 | ||||
| # Your program will probably need other options.  The example | ||||
| # program here, pnm2pngm, requires the following.  Take a look | ||||
| # at pnglibconf.h to find out the full set of what has to be | ||||
| # enabled to make the following work. | ||||
| 
 | ||||
| option SETJMP on | ||||
| option STDIO on | ||||
| @ -1,6 +1,6 @@ | ||||
| /* minwrpngconf.h: headers to make a minimal png-write-only library
 | ||||
|  * | ||||
|  * Copyright (c) 2007, 2009 Glenn Randers-Pehrson | ||||
|  * Copyright (c) 2007, 2010-2011 Glenn Randers-Pehrson | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
| @ -12,64 +12,13 @@ | ||||
| #ifndef MINWRPNGCONF_H | ||||
| #define MINWRPNGCONF_H | ||||
| 
 | ||||
| #define PNG_NO_READ_SUPPORTED | ||||
| /* To include pngusr.h set -DPNG_USER_CONFIG in CPPFLAGS */ | ||||
| 
 | ||||
| /* List options to turn off features of the build that do not
 | ||||
|  * affect the API (so are not recorded in pnglibconf.h) | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_WARNINGS | ||||
| #define png_warning(s1,s2) "" | ||||
| #define png_chunk_warning(s1,s2) "" | ||||
| #define PNG_NO_ERROR_TEXT | ||||
| #define png_error(s1,s2) png_err(s1) | ||||
| #define png_chunk_error(s1,s2) png_err(s1) | ||||
| 
 | ||||
| #define PNG_NO_WRITE_BACKGROUND | ||||
| #define PNG_NO_WRITE_BGR | ||||
| #define PNG_NO_WRITE_QUANTIZE | ||||
| #define PNG_NO_WRITE_INVERT | ||||
| #define PNG_NO_WRITE_SHIFT | ||||
| #define PNG_NO_WRITE_PACK | ||||
| #define PNG_NO_WRITE_PACKSWAP | ||||
| #define PNG_NO_WRITE_FILLER | ||||
| #define PNG_NO_WRITE_SWAP | ||||
| #define PNG_NO_WRITE_SWAP_ALPHA | ||||
| #define PNG_NO_WRITE_INVERT_ALPHA | ||||
| #define PNG_NO_WRITE_RGB_TO_GRAY | ||||
| #define PNG_NO_WRITE_USER_TRANSFORM | ||||
| #define PNG_NO_WRITE_bKGD | ||||
| #define PNG_NO_WRITE_cHRM | ||||
| #define PNG_NO_WRITE_gAMA | ||||
| #define PNG_NO_WRITE_hIST | ||||
| #define PNG_NO_WRITE_iCCP | ||||
| #define PNG_NO_WRITE_oFFs | ||||
| #define PNG_NO_WRITE_pCAL | ||||
| #define PNG_NO_WRITE_pHYs | ||||
| #define PNG_NO_WRITE_sBIT | ||||
| #define PNG_NO_WRITE_sCAL | ||||
| #define PNG_NO_WRITE_sPLT | ||||
| #define PNG_NO_WRITE_sRGB | ||||
| #define PNG_NO_WRITE_TEXT | ||||
| #define PNG_NO_WRITE_tIME | ||||
| #define PNG_NO_WRITE_UNKNOWN_CHUNKS | ||||
| #define PNG_NO_WRITE_USER_CHUNKS | ||||
| #define PNG_NO_WRITE_EMPTY_PLTE | ||||
| #define PNG_NO_WRITE_OPT_PLTE | ||||
| #define PNG_NO_WRITE_FILTER | ||||
| #define PNG_NO_WRITE_WEIGHTED_FILTER | ||||
| #define PNG_NO_WRITE_INTERLACING_SUPPORTED | ||||
| #define PNG_NO_WRITE_FLUSH | ||||
| 
 | ||||
| #define PNG_NO_INFO_IMAGE | ||||
| #define PNG_NO_IO_STATE | ||||
| #define PNG_NO_USER_MEM | ||||
| #define PNG_NO_FIXED_POINT_SUPPORTED | ||||
| #define PNG_NO_MNG_FEATURES | ||||
| #define PNG_NO_USER_TRANSFORM_PTR | ||||
| #define PNG_NO_HANDLE_AS_UNKNOWN | ||||
| #define PNG_NO_CONSOLE_IO | ||||
| #define PNG_NO_ZALLOC_ZERO | ||||
| #define PNG_NO_ERROR_NUMBERS | ||||
| #define PNG_NO_EASY_ACCESS | ||||
| #define PNG_NO_USER_LIMITS | ||||
| #define PNG_NO_SET_USER_LIMITS | ||||
| #define PNG_NO_TIME_RFC1123 | ||||
| #define PNG_ALIGN_TYPE PNG_ALIGN_NONE | ||||
| 
 | ||||
| #endif /* MINWRPNGCONF_H */ | ||||
|  | ||||
| @ -1,14 +1,15 @@ | ||||
| This demonstrates the use of PNG_USER_CONFIG and pngusr.h | ||||
| 
 | ||||
| To build a minimal read-only progressive decoder embedded libpng and | ||||
| zlib and with your system's X library, run | ||||
| The makefile builds a minimal read-only progressive decoder with | ||||
| embedded libpng, zlib and your system's X library. | ||||
| 
 | ||||
|     gather.sh # to collect needed files from gregbook, libpng, and zlib | ||||
| Specify the location of the zlib source (1.2.1 or later) as ZLIBSRC | ||||
| on the make command line. | ||||
| 
 | ||||
| Edit makefile if required, to find your X library and include files, | ||||
| then | ||||
| 
 | ||||
|     make | ||||
|     make ZLIBSRC=directory | ||||
| 
 | ||||
| If you prefer to use the shared libraries, go to contrib/gregbook | ||||
| and build the rpng2-x application there. | ||||
|  | ||||
| @ -5,7 +5,14 @@ | ||||
| CC=gcc | ||||
| LD=$(CC) | ||||
| 
 | ||||
| # If awk fails try
 | ||||
| # make AWK=nawk
 | ||||
| 
 | ||||
| # If cpp fails try
 | ||||
| # make CPP=/lib/cpp
 | ||||
| 
 | ||||
| RM=rm -f | ||||
| COPY=cp | ||||
| 
 | ||||
| #XINC = -I/usr/include			# old-style, stock X distributions
 | ||||
| #XLIB = -L/usr/lib/X11 -lX11		#  (including SGI IRIX)
 | ||||
| @ -23,37 +30,136 @@ XLIB = -L/usr/X11R6/lib -lX11 | ||||
| #LIBS = $(XLIB)
 | ||||
| LIBS = $(XLIB) -lm                      #platforms that need libm | ||||
| 
 | ||||
| CFLAGS=-DPNG_USER_CONFIG -DNO_GZCOMPRESS -DNO_GZIP \
 | ||||
|        -DdeflateParams\(a,b,c\)=Z_OK -I. $(XINC) -O1 | ||||
| CFLAGS=-DPNG_USER_CONFIG -DNO_GZCOMPRESS -DNO_GZIP -I. $(XINC) -O1 | ||||
| 
 | ||||
| C=.c | ||||
| O=.o | ||||
| L=.a | ||||
| E= | ||||
| 
 | ||||
| ZOBJS  = adler32$(O) crc32$(O) \
 | ||||
| 	 infback$(O) inffast$(O) inflate$(O) inftrees$(O) \
 | ||||
| 	 trees$(O) uncompr$(O) zutil$(O) | ||||
| # Where to find the source code:
 | ||||
| PNGSRC =../../.. | ||||
| ZLIBSRC=$(PNGSRC)/../zlib | ||||
| PROGSRC=$(PNGSRC)/contrib/gregbook | ||||
| 
 | ||||
| OBJS  = rpng2-x$(O) readpng2$(O) png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
 | ||||
| # Zlib (minimal inflate requirements - crc32 is used by libpng)
 | ||||
| # zutil can be eliminated if you provide your own zcalloc and zcfree
 | ||||
| ZSRCS  = adler32$(C) crc32$(C) \
 | ||||
| 	 inffast$(C) inflate$(C) inftrees$(C) \
 | ||||
| 	 zutil$(C) | ||||
| 
 | ||||
| # Standard headers
 | ||||
| ZH     = zlib.h crc32.h inffast.h inffixed.h \
 | ||||
| 	 inflate.h inftrees.h zutil.h | ||||
| 
 | ||||
| # Machine generated headers
 | ||||
| ZCONF  = zconf.h | ||||
| 
 | ||||
| # Headers callers use
 | ||||
| ZINC   = zlib.h $(ZCONF) | ||||
| 
 | ||||
| # Headers the Zlib source uses
 | ||||
| ZHDRS  = $(ZH) $(ZCONF) | ||||
| 
 | ||||
| ZOBJS  = adler32$(O) crc32$(O) \
 | ||||
| 	 inffast$(O) inflate$(O) inftrees$(O) \
 | ||||
| 	 zutil$(O) | ||||
| 
 | ||||
| # libpng
 | ||||
| PNGSRCS=png$(C) pngerror$(C) pngget$(C) pngmem$(C) \
 | ||||
| 	pngpread$(C) pngread$(C) pngrio$(C) pngrtran$(C) pngrutil$(C) \
 | ||||
| 	pngset$(C) pngtrans$(C) | ||||
| 
 | ||||
| # Standard headers
 | ||||
| PNGH   =png.h pngconf.h pngdebug.h pnginfo.h pngpriv.h pngstruct.h | ||||
| 
 | ||||
| # Machine generated headers
 | ||||
| PNGCONF=pnglibconf.h | ||||
| 
 | ||||
| # Headers callers use
 | ||||
| PNGINC= png.h pngconf.h pngusr.h $(PNGCONF) | ||||
| 
 | ||||
| # Headers the PNG library uses
 | ||||
| PNGHDRS=$(PNGH) $(PNGCONF) pngusr.h | ||||
| 
 | ||||
| PNGOBJS=png$(O) pngerror$(O) pngget$(O) pngmem$(O) \
 | ||||
| 	pngpread$(O) pngread$(O) pngrio$(O) pngrtran$(O) pngrutil$(O) \
 | ||||
| 	pngset$(O) pngtrans$(O)  $(ZOBJS) | ||||
| 	pngset$(O) pngtrans$(O) | ||||
| 
 | ||||
| PROGSRCS= rpng2-x$(C) readpng2$(C) | ||||
| PROGHDRS= readpng2.h | ||||
| PROGDOCS= COPYING LICENSE | ||||
| PROGOBJS= rpng2-x$(O) readpng2$(O) | ||||
| 
 | ||||
| OBJS    = $(PROGOBJS) $(PNGOBJS) $(ZOBJS) | ||||
| 
 | ||||
| # implicit make rules -------------------------------------------------------
 | ||||
| 
 | ||||
| .c$(O): png.h pngconf.h pngpriv.h readpng2.h pngusr.h zlib.h | ||||
| .c$(O): | ||||
| 	$(CC) -c $(CFLAGS) $< | ||||
| 
 | ||||
| # dependencies
 | ||||
| 
 | ||||
| all: rpng2-x$(E) | ||||
| all: $(PROGDOCS) rpng2-x$(E) | ||||
| 
 | ||||
| rpng2-x$(E): $(OBJS) | ||||
| 	$(LD) -o rpng2-x$(E) $(OBJS) $(LIBS) | ||||
| 
 | ||||
| # The DFA_XTRA setting turns all libpng options off then
 | ||||
| # turns on those required for this minimal build.
 | ||||
| # The CPP_FLAGS setting causes pngusr.h to be included in
 | ||||
| # both the build of pnglibconf.h and, subsequently, when
 | ||||
| # building libpng itself.
 | ||||
| $(PNGCONF): $(PNGSRC)/scripts/pnglibconf.mak\ | ||||
| 	$(PNGSRC)/scripts/pnglibconf.dfa \
 | ||||
| 	$(PNGSRC)/scripts/options.awk pngusr.h pngusr.dfa | ||||
| 	$(RM) pnglibconf.h pnglibconf.dfn | ||||
| 	$(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\
 | ||||
| 	    srcdir=$(PNGSRC) CPPFLAGS="-DPNG_USER_CONFIG"\
 | ||||
| 	    DFA_XTRA="pngusr.dfa" $@ | ||||
| 
 | ||||
| clean: | ||||
| 	$(MAKE) $(MAKEFLAGS) -f $(PNGSRC)/scripts/pnglibconf.mak\
 | ||||
| 	    srcdir=$(PNGSRC) clean | ||||
| 	$(RM) rpng2-x$(O) | ||||
| 	$(RM) rpng2-x$(E) | ||||
| 	$(RM) $(OBJS) | ||||
| 
 | ||||
| # distclean also removes the copied source and headers
 | ||||
| distclean: clean | ||||
| 	$(RM) -r scripts # historical reasons | ||||
| 	$(RM) $(PNGSRCS) $(PNGH) | ||||
| 	$(RM) $(ZSRCS) $(ZH) $(ZCONF) | ||||
| 	$(RM) $(PROGSRCS) $(PROGHDRS) $(PROGDOCS) | ||||
| 
 | ||||
| # Header file dependencies:
 | ||||
| $(PROGOBJS): $(PROGHDRS) $(PNGINC) $(ZINC) | ||||
| $(PNGOBJS): $(PNGHDRS) $(ZINC) | ||||
| $(ZOBJS): $(ZHDRS) | ||||
| 
 | ||||
| # Gather the source code from the respective directories
 | ||||
| $(PNGSRCS) $(PNGH): $(PNGSRC)/$@ | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(PNGSRC)/$@ $@ | ||||
| 
 | ||||
| # No dependency on the ZLIBSRC target so that it only needs
 | ||||
| # to be specified once.
 | ||||
| $(ZSRCS) $(ZH): | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(ZLIBSRC)/$@ $@ | ||||
| 
 | ||||
| # The unconfigured zconf.h varies in name according to the
 | ||||
| # zlib release
 | ||||
| $(ZCONF): | ||||
| 	$(RM) $@ | ||||
| 	@for f in zconf.h.in zconf.in.h zconf.h; do\
 | ||||
| 	    test -r $(ZLIBSRC)/$$f &&\
 | ||||
| 	    echo $(COPY) $(ZLIBSRC)/$$f $@ &&\
 | ||||
| 	    $(COPY) $(ZLIBSRC)/$$f $@ && exit 0;\
 | ||||
| 	done; echo copy: $(ZLIBSRC)/zconf.h not found; exit 1 | ||||
| 
 | ||||
| $(PROGSRCS) $(PROGHDRS) $(PROGDOCS): $(PROGSRC)/$@ | ||||
| 	$(RM) $@ | ||||
| 	$(COPY) $(PROGSRC)/$@ $@ | ||||
| 
 | ||||
| # End of makefile for rpng2-x
 | ||||
|  | ||||
							
								
								
									
										40
									
								
								contrib/pngminim/preader/pngusr.dfa
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								contrib/pngminim/preader/pngusr.dfa
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | ||||
| # pngminim/preader/pngusr.dfa | ||||
| # | ||||
| # Copyright (c) 2010-2011 Glenn Randers-Pehrson | ||||
| # | ||||
| # This code is released under the libpng license. | ||||
| # For conditions of distribution and use, see the disclaimer | ||||
| # and license in png.h | ||||
| 
 | ||||
| # First all the build options off: | ||||
| 
 | ||||
| everything = off | ||||
| 
 | ||||
| # Just switch on the progressive read code | ||||
| 
 | ||||
| option PROGRESSIVE_READ on | ||||
| 
 | ||||
| # You may choose fixed or floating point APIs: | ||||
| # option FLOATING_POINT on | ||||
| 
 | ||||
| option FIXED_POINT on | ||||
| 
 | ||||
| # You must chose the internal fixed point implementation or to | ||||
| # use the system floating point.  The latter is considerably | ||||
| # smaller (by about 1kbyte on an x86 system): | ||||
| 
 | ||||
| option FLOATING_ARITHMETIC on | ||||
| # option FLOATING_ARITHMETIC off | ||||
| 
 | ||||
| # Your program will probably need other options.  The example | ||||
| # program here, rpng2-x, requires the following.  Take a look | ||||
| # at pnglibconf.h to find out the full set of what has to be | ||||
| # enabled to make the following work. | ||||
| 
 | ||||
| option SETJMP on | ||||
| option STDIO on | ||||
| option READ_bKGD on | ||||
| option READ_GAMMA on | ||||
| option READ_EXPAND on | ||||
| option READ_STRIP_16_TO_8 on | ||||
| option READ_GRAY_TO_RGB on | ||||
| @ -1,6 +1,6 @@ | ||||
| /* minrdpngconf.h: headers to make a minimal png-read-only library
 | ||||
|  * | ||||
|  * Copyright (c) 2009 Glenn Randers-Pehrson | ||||
|  * Copyright (c) 2009, 2010-2011 Glenn Randers-Pehrson | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
| @ -12,57 +12,13 @@ | ||||
| #ifndef MINPRDPNGCONF_H | ||||
| #define MINPRDPNGCONF_H | ||||
| 
 | ||||
| /* To include pngusr.h set -DPNG_USER_CONFIG in CPPFLAGS */ | ||||
| 
 | ||||
| /* List options to turn off features of the build that do not
 | ||||
|  * affect the API (so are not recorded in pnglibconf.h) | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_WARNINGS | ||||
| #define png_warning(s1,s2) "" | ||||
| #define png_chunk_warning(s1,s2) "" | ||||
| #define PNG_NO_ERROR_TEXT | ||||
| #define png_error(s1,s2) png_err(s1) | ||||
| #define png_chunk_error(s1,s2) png_err(s1) | ||||
| 
 | ||||
| #define PNG_NO_READ_BGR | ||||
| #define PNG_NO_READ_DITHER | ||||
| #define PNG_NO_READ_INVERT | ||||
| #define PNG_NO_READ_SHIFT | ||||
| #define PNG_NO_READ_PACK | ||||
| #define PNG_NO_READ_PACKSWAP | ||||
| #define PNG_NO_READ_FILLER | ||||
| #define PNG_NO_READ_SWAP | ||||
| #define PNG_NO_READ_SWAP_ALPHA | ||||
| #define PNG_NO_READ_INVERT_ALPHA | ||||
| #define PNG_NO_READ_RGB_TO_GRAY | ||||
| #define PNG_NO_READ_USER_TRANSFORM | ||||
| #define PNG_NO_READ_cHRM | ||||
| #define PNG_NO_READ_hIST | ||||
| #define PNG_NO_READ_iCCP | ||||
| #define PNG_NO_READ_oFFs | ||||
| #define PNG_NO_READ_pCAL | ||||
| #define PNG_NO_READ_pHYs | ||||
| #define PNG_NO_READ_sBIT | ||||
| #define PNG_NO_READ_sCAL | ||||
| #define PNG_NO_READ_sPLT | ||||
| #define PNG_NO_READ_TEXT | ||||
| #define PNG_NO_READ_tIME | ||||
| #define PNG_NO_READ_UNKNOWN_CHUNKS | ||||
| #define PNG_NO_READ_USER_CHUNKS | ||||
| #define PNG_NO_READ_EMPTY_PLTE | ||||
| #define PNG_NO_READ_OPT_PLTE | ||||
| #define PNG_NO_READ_STRIP_ALPHA | ||||
| 
 | ||||
| #define PNG_NO_WRITE_SUPPORTED | ||||
| 
 | ||||
| #define PNG_NO_INFO_IMAGE | ||||
| #define PNG_NO_IO_STATE | ||||
| #define PNG_NO_USER_MEM | ||||
| #define PNG_NO_FIXED_POINT_SUPPORTED | ||||
| #define PNG_NO_MNG_FEATURES | ||||
| #define PNG_NO_USER_TRANSFORM_PTR | ||||
| #define PNG_NO_HANDLE_AS_UNKNOWN | ||||
| #define PNG_NO_CONSOLE_IO | ||||
| #define PNG_NO_ZALLOC_ZERO | ||||
| #define PNG_NO_ERROR_NUMBERS | ||||
| #define PNG_NO_EASY_ACCESS | ||||
| #define PNG_NO_USER_LIMITS | ||||
| #define PNG_NO_SET_USER_LIMITS | ||||
| #define PNG_NO_TIME_RFC1123 | ||||
| #define PNG_ALIGN_TYPE PNG_ALIGN_NONE | ||||
| 
 | ||||
| #endif /* MINPRDPNGCONF_H */ | ||||
|  | ||||
| @ -8,9 +8,9 @@ LD=$(CC) | ||||
| RM=rm -f | ||||
| 
 | ||||
| #PNGPATH = /usr/local | ||||
| #PNGINC = -I$(PNGPATH)/include/libpng14 | ||||
| #PNGLIB = -L$(PNGPATH)/lib -lpng14 | ||||
| #PNGLIBS = $(PNGPATH)/lib/libpng14.a | ||||
| #PNGINC = -I$(PNGPATH)/include/libpng15 | ||||
| #PNGLIB = -L$(PNGPATH)/lib -lpng15 | ||||
| #PNGLIBS = $(PNGPATH)/lib/libpng15.a | ||||
| PNGINC = -I../.. | ||||
| PNGLIB = -L../.. -lpng | ||||
| PNGLIBS = ../../libpng.a | ||||
|  | ||||
| @ -144,7 +144,7 @@ int main(int argc, char *argv[]) | ||||
|   if (png2pnm (fp_rd, fp_wr, fp_al, raw, alpha) == FALSE) | ||||
|   { | ||||
|     fprintf (stderr, "PNG2PNM\n"); | ||||
|     fprintf (stderr, "Error:  unsuccessful convertion of PNG-image\n"); | ||||
|     fprintf (stderr, "Error:  unsuccessful conversion of PNG-image\n"); | ||||
|     exit(1); | ||||
|   } | ||||
| 
 | ||||
| @ -188,7 +188,7 @@ void usage() | ||||
| BOOL png2pnm (FILE *png_file, FILE *pnm_file, FILE *alpha_file, BOOL raw, BOOL alpha) | ||||
| { | ||||
|   png_struct    *png_ptr = NULL; | ||||
|   png_info	*info_ptr = NULL; | ||||
|   png_info        *info_ptr = NULL; | ||||
|   png_byte      buf[8]; | ||||
|   png_byte      *png_pixels = NULL; | ||||
|   png_byte      **row_pointers = NULL; | ||||
| @ -381,7 +381,7 @@ BOOL png2pnm (FILE *png_file, FILE *pnm_file, FILE *alpha_file, BOOL raw, BOOL a | ||||
|           fputc ((int) *pix_ptr++ , pnm_file); | ||||
|         else | ||||
|           if (bit_depth == 16){ | ||||
| 	    dep_16 = (long) *pix_ptr++; | ||||
|             dep_16 = (long) *pix_ptr++; | ||||
|             fprintf (pnm_file, "%ld ", (dep_16 << 8) + ((long) *pix_ptr++)); | ||||
|           } | ||||
|           else | ||||
| @ -401,9 +401,9 @@ BOOL png2pnm (FILE *png_file, FILE *pnm_file, FILE *alpha_file, BOOL raw, BOOL a | ||||
|             fputc ((int) *pix_ptr++ , alpha_file); | ||||
|           else | ||||
|             if (bit_depth == 16){ | ||||
| 	      dep_16 = (long) *pix_ptr++; | ||||
|               dep_16 = (long) *pix_ptr++; | ||||
|               fprintf (alpha_file, "%ld ", (dep_16 << 8) + (long) *pix_ptr++); | ||||
| 	    }   | ||||
|             } | ||||
|             else | ||||
|               fprintf (alpha_file, "%ld ", (long) *pix_ptr++); | ||||
|         } | ||||
|  | ||||
| @ -1,12 +1,13 @@ | ||||
| //-------------------------------------
 | ||||
| //  PNGFILE.C -- Image File Functions
 | ||||
| //-------------------------------------
 | ||||
| 
 | ||||
| // Copyright 2000, Willem van Schaik.
 | ||||
| //
 | ||||
| // This code is released under the libpng license.
 | ||||
| // For conditions of distribution and use, see the disclaimer
 | ||||
| // and license in png.h
 | ||||
| /*-------------------------------------
 | ||||
|  *  PNGFILE.C -- Image File Functions | ||||
|  *------------------------------------- | ||||
|  * | ||||
|  * Copyright 2000, Willem van Schaik. | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| #include <windows.h> | ||||
| #include <commdlg.h> | ||||
| @ -28,7 +29,7 @@ static png_structp png_ptr = NULL; | ||||
| static png_infop info_ptr = NULL; | ||||
| 
 | ||||
| 
 | ||||
| // cexcept interface
 | ||||
| /* cexcept interface */ | ||||
| 
 | ||||
| static void | ||||
| png_cexcept_error(png_structp png_ptr, png_const_charp msg) | ||||
| @ -43,7 +44,7 @@ png_cexcept_error(png_structp png_ptr, png_const_charp msg) | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| // Windows open-file functions
 | ||||
| /* Windows open-file functions */ | ||||
| 
 | ||||
| void PngFileInitialize (HWND hwnd) | ||||
| { | ||||
| @ -57,13 +58,13 @@ void PngFileInitialize (HWND hwnd) | ||||
|     ofn.lpstrCustomFilter = NULL; | ||||
|     ofn.nMaxCustFilter    = 0; | ||||
|     ofn.nFilterIndex      = 0; | ||||
|     ofn.lpstrFile         = NULL;          // Set in Open and Close functions
 | ||||
|     ofn.lpstrFile         = NULL;          /* Set in Open and Close functions */ | ||||
|     ofn.nMaxFile          = MAX_PATH; | ||||
|     ofn.lpstrFileTitle    = NULL;          // Set in Open and Close functions
 | ||||
|     ofn.lpstrFileTitle    = NULL;          /* Set in Open and Close functions */ | ||||
|     ofn.nMaxFileTitle     = MAX_PATH; | ||||
|     ofn.lpstrInitialDir   = NULL; | ||||
|     ofn.lpstrTitle        = NULL; | ||||
|     ofn.Flags             = 0;             // Set in Open and Close functions
 | ||||
|     ofn.Flags             = 0;             /* Set in Open and Close functions */ | ||||
|     ofn.nFileOffset       = 0; | ||||
|     ofn.nFileExtension    = 0; | ||||
|     ofn.lpstrDefExt       = TEXT ("png"); | ||||
| @ -92,7 +93,7 @@ BOOL PngFileSaveDlg (HWND hwnd, PTSTR pstrFileName, PTSTR pstrTitleName) | ||||
|     return GetSaveFileName (&ofn); | ||||
| } | ||||
| 
 | ||||
| // PNG image handler functions
 | ||||
| /* PNG image handler functions */ | ||||
| 
 | ||||
| BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|                    int *piWidth, int *piHeight, int *piChannels, png_color *pBkgColor) | ||||
| @ -109,7 +110,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|     static png_byte   **ppbRowPointers = NULL; | ||||
|     int                 i; | ||||
| 
 | ||||
|     // open the PNG input file
 | ||||
|     /* open the PNG input file */ | ||||
| 
 | ||||
|     if (!pstrFileName) | ||||
|     { | ||||
| @ -123,7 +124,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|         return FALSE; | ||||
|     } | ||||
| 
 | ||||
|     // first check the eight byte PNG signature
 | ||||
|     /* first check the eight byte PNG signature */ | ||||
| 
 | ||||
|     fread(pbSig, 1, 8, pfFile); | ||||
|     if (png_sig_cmp(pbSig, 0, 8)) | ||||
| @ -132,7 +133,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|         return FALSE; | ||||
|     } | ||||
| 
 | ||||
|     // create the two png(-info) structures
 | ||||
|     /* create the two png(-info) structures */ | ||||
| 
 | ||||
|     png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, | ||||
|       (png_error_ptr)png_cexcept_error, (png_error_ptr)NULL); | ||||
| @ -153,7 +154,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|     Try | ||||
|     { | ||||
| 
 | ||||
|         // initialize the png structure
 | ||||
|         /* initialize the png structure */ | ||||
| 
 | ||||
| #ifdef PNG_STDIO_SUPPORTED | ||||
|         png_init_io(png_ptr, pfFile); | ||||
| @ -163,20 +164,26 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
| 
 | ||||
|         png_set_sig_bytes(png_ptr, 8); | ||||
| 
 | ||||
|         // read all PNG info up to image data
 | ||||
|         /* read all PNG info up to image data */ | ||||
| 
 | ||||
|         png_read_info(png_ptr, info_ptr); | ||||
| 
 | ||||
|         // get width, height, bit-depth and color-type
 | ||||
|         /* get width, height, bit-depth and color-type */ | ||||
| 
 | ||||
|         png_get_IHDR(png_ptr, info_ptr, piWidth, piHeight, &iBitDepth, | ||||
|             &iColorType, NULL, NULL, NULL); | ||||
| 
 | ||||
|         // expand images of all color-type and bit-depth to 3x8 bit RGB images
 | ||||
|         // let the library process things like alpha, transparency, background
 | ||||
|         /* expand images of all color-type and bit-depth to 3x8-bit RGB */ | ||||
|         /* let the library process alpha, transparency, background, etc. */ | ||||
| 
 | ||||
|         if (iBitDepth == 16) | ||||
|             png_set_strip_16(png_ptr); | ||||
| #ifdef PNG_READ_16_TO_8_SUPPORTED | ||||
|     if (iBitDepth == 16) | ||||
| #  ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED | ||||
|         png_set_scale_16(png_ptr); | ||||
| #  else | ||||
|         png_set_strip_16(png_ptr); | ||||
| #  endif | ||||
| #endif | ||||
|         if (iColorType == PNG_COLOR_TYPE_PALETTE) | ||||
|             png_set_expand(png_ptr); | ||||
|         if (iBitDepth < 8) | ||||
| @ -187,7 +194,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|             iColorType == PNG_COLOR_TYPE_GRAY_ALPHA) | ||||
|             png_set_gray_to_rgb(png_ptr); | ||||
| 
 | ||||
|         // set the background color to draw transparent and alpha images over.
 | ||||
|         /* set the background color to draw transparent and alpha images over */ | ||||
|         if (png_get_bKGD(png_ptr, info_ptr, &pBackground)) | ||||
|         { | ||||
|             png_set_background(png_ptr, pBackground, PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); | ||||
| @ -200,28 +207,28 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|             pBkgColor = NULL; | ||||
|         } | ||||
| 
 | ||||
|         // if required set gamma conversion
 | ||||
|         /* if required set gamma conversion */ | ||||
|         if (png_get_gAMA(png_ptr, info_ptr, &dGamma)) | ||||
|             png_set_gamma(png_ptr, (double) 2.2, dGamma); | ||||
| 
 | ||||
|         // after the transformations have been registered update info_ptr data
 | ||||
|         /* after the transformations are registered, update info_ptr data */ | ||||
| 
 | ||||
|         png_read_update_info(png_ptr, info_ptr); | ||||
| 
 | ||||
|         // get again width, height and the new bit-depth and color-type
 | ||||
|         /* get again width, height and the new bit-depth and color-type */ | ||||
| 
 | ||||
|         png_get_IHDR(png_ptr, info_ptr, piWidth, piHeight, &iBitDepth, | ||||
|             &iColorType, NULL, NULL, NULL); | ||||
| 
 | ||||
| 
 | ||||
|         // row_bytes is the width x number of channels
 | ||||
|         /* row_bytes is the width x number of channels */ | ||||
| 
 | ||||
|         ulRowBytes = png_get_rowbytes(png_ptr, info_ptr); | ||||
|         ulChannels = png_get_channels(png_ptr, info_ptr); | ||||
| 
 | ||||
|         *piChannels = ulChannels; | ||||
| 
 | ||||
|         // now we can allocate memory to store the image
 | ||||
|         /* now we can allocate memory to store the image */ | ||||
| 
 | ||||
|         if (pbImageData) | ||||
|         { | ||||
| @ -235,7 +242,7 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|         } | ||||
|         *ppbImageData = pbImageData; | ||||
| 
 | ||||
|         // and allocate memory for an array of row-pointers
 | ||||
|         /* and allocate memory for an array of row-pointers */ | ||||
| 
 | ||||
|         if ((ppbRowPointers = (png_bytepp) malloc((*piHeight) | ||||
|                             * sizeof(png_bytep))) == NULL) | ||||
| @ -243,25 +250,25 @@ BOOL PngLoadImage (PTSTR pstrFileName, png_byte **ppbImageData, | ||||
|             png_error(png_ptr, "Visual PNG: out of memory"); | ||||
|         } | ||||
| 
 | ||||
|         // set the individual row-pointers to point at the correct offsets
 | ||||
|         /* set the individual row-pointers to point at the correct offsets */ | ||||
| 
 | ||||
|         for (i = 0; i < (*piHeight); i++) | ||||
|             ppbRowPointers[i] = pbImageData + i * ulRowBytes; | ||||
| 
 | ||||
|         // now we can go ahead and just read the whole image
 | ||||
|         /* now we can go ahead and just read the whole image */ | ||||
| 
 | ||||
|         png_read_image(png_ptr, ppbRowPointers); | ||||
| 
 | ||||
|         // read the additional chunks in the PNG file (not really needed)
 | ||||
|         /* read the additional chunks in the PNG file (not really needed) */ | ||||
| 
 | ||||
|         png_read_end(png_ptr, NULL); | ||||
| 
 | ||||
|         // and we're done
 | ||||
|         /* and we're done */ | ||||
| 
 | ||||
|         free (ppbRowPointers); | ||||
|         ppbRowPointers = NULL; | ||||
| 
 | ||||
|         // yepp, done
 | ||||
|         /* yepp, done */ | ||||
|     } | ||||
| 
 | ||||
|     Catch (msg) | ||||
| @ -295,7 +302,7 @@ BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData, | ||||
|     static png_byte   **ppbRowPointers = NULL; | ||||
|     int                 i; | ||||
| 
 | ||||
|     // open the PNG output file
 | ||||
|     /* open the PNG output file */ | ||||
| 
 | ||||
|     if (!pstrFileName) | ||||
|         return FALSE; | ||||
| @ -303,7 +310,7 @@ BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData, | ||||
|     if (!(pfFile = fopen(pstrFileName, "wb"))) | ||||
|         return FALSE; | ||||
| 
 | ||||
|     // prepare the standard PNG structures
 | ||||
|     /* prepare the standard PNG structures */ | ||||
| 
 | ||||
|     png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, | ||||
|       (png_error_ptr)png_cexcept_error, (png_error_ptr)NULL); | ||||
| @ -322,7 +329,7 @@ BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData, | ||||
| 
 | ||||
|     Try | ||||
|     { | ||||
|         // initialize the png structure
 | ||||
|         /* initialize the png structure */ | ||||
| 
 | ||||
| #ifdef PNG_STDIO_SUPPORTED | ||||
|         png_init_io(png_ptr, pfFile); | ||||
| @ -330,52 +337,52 @@ BOOL PngSaveImage (PTSTR pstrFileName, png_byte *pDiData, | ||||
|         png_set_write_fn(png_ptr, (png_voidp)pfFile, png_write_data, png_flush); | ||||
| #endif | ||||
| 
 | ||||
|         // we're going to write a very simple 3x8 bit RGB image
 | ||||
|         /* we're going to write a very simple 3x8-bit RGB image */ | ||||
| 
 | ||||
|         png_set_IHDR(png_ptr, info_ptr, iWidth, iHeight, ciBitDepth, | ||||
|             PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, | ||||
|             PNG_FILTER_TYPE_BASE); | ||||
| 
 | ||||
|         // write the file header information
 | ||||
|         /* write the file header information */ | ||||
| 
 | ||||
|         png_write_info(png_ptr, info_ptr); | ||||
| 
 | ||||
|         // swap the BGR pixels in the DiData structure to RGB
 | ||||
|         /* swap the BGR pixels in the DiData structure to RGB */ | ||||
| 
 | ||||
|         png_set_bgr(png_ptr); | ||||
| 
 | ||||
|         // row_bytes is the width x number of channels
 | ||||
|         /* row_bytes is the width x number of channels */ | ||||
| 
 | ||||
|         ulRowBytes = iWidth * ciChannels; | ||||
| 
 | ||||
|         // we can allocate memory for an array of row-pointers
 | ||||
|         /* we can allocate memory for an array of row-pointers */ | ||||
| 
 | ||||
|         if ((ppbRowPointers = (png_bytepp) malloc(iHeight * sizeof(png_bytep))) == NULL) | ||||
|             Throw "Visualpng: Out of memory"; | ||||
| 
 | ||||
|         // set the individual row-pointers to point at the correct offsets
 | ||||
|         /* set the individual row-pointers to point at the correct offsets */ | ||||
| 
 | ||||
|         for (i = 0; i < iHeight; i++) | ||||
|             ppbRowPointers[i] = pDiData + i * (((ulRowBytes + 3) >> 2) << 2); | ||||
| 
 | ||||
|         // write out the entire image data in one call
 | ||||
|         /* write out the entire image data in one call */ | ||||
| 
 | ||||
|         png_write_image (png_ptr, ppbRowPointers); | ||||
| 
 | ||||
|         // write the additional chunks to the PNG file (not really needed)
 | ||||
|         /* write the additional chunks to the PNG file (not really needed) */ | ||||
| 
 | ||||
|         png_write_end(png_ptr, info_ptr); | ||||
| 
 | ||||
|         // and we're done
 | ||||
|         /* and we're done */ | ||||
| 
 | ||||
|         free (ppbRowPointers); | ||||
|         ppbRowPointers = NULL; | ||||
| 
 | ||||
|         // clean up after the write, and free any memory allocated
 | ||||
|         /* clean up after the write, and free any memory allocated */ | ||||
| 
 | ||||
|         png_destroy_write_struct(&png_ptr, (png_infopp) NULL); | ||||
| 
 | ||||
|         // yepp, done
 | ||||
|         /* yepp, done */ | ||||
|     } | ||||
| 
 | ||||
|     Catch (msg) | ||||
| @ -437,6 +444,7 @@ png_flush(png_structp png_ptr) | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| //-----------------
 | ||||
| //  end of source
 | ||||
| //-----------------
 | ||||
| /*-----------------
 | ||||
|  *  end of source | ||||
|  *----------------- | ||||
|  */ | ||||
|  | ||||
| @ -1,12 +1,12 @@ | ||||
| //------------------------------------------
 | ||||
| //  PNGFILE.H -- Header File for pngfile.c
 | ||||
| //------------------------------------------
 | ||||
| /*------------------------------------------*/ | ||||
| /*  PNGFILE.H -- Header File for pngfile.c*/ | ||||
| /*------------------------------------------*/ | ||||
| 
 | ||||
| // Copyright 2000, Willem van Schaik.
 | ||||
| /* Copyright 2000, Willem van Schaik.*/ | ||||
| 
 | ||||
| // This code is released under the libpng license.
 | ||||
| // For conditions of distribution and use, see the disclaimer
 | ||||
| // and license in png.h
 | ||||
| /* This code is released under the libpng license.*/ | ||||
| /* For conditions of distribution and use, see the disclaimer*/ | ||||
| /* and license in png.h*/ | ||||
| 
 | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
|  | ||||
| @ -1,41 +1,42 @@ | ||||
| //------------------------------------
 | ||||
| //  VisualPng.C -- Shows a PNG image
 | ||||
| //------------------------------------
 | ||||
| /*------------------------------------
 | ||||
|  *  VisualPng.C -- Shows a PNG image | ||||
|  *------------------------------------ | ||||
|  * | ||||
|  * Copyright 2000, Willem van Schaik. | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| // Copyright 2000, Willem van Schaik.
 | ||||
| /* switches */ | ||||
| 
 | ||||
| // This code is released under the libpng license.
 | ||||
| // For conditions of distribution and use, see the disclaimer
 | ||||
| // and license in png.h
 | ||||
| 
 | ||||
| // switches
 | ||||
| 
 | ||||
| // defines
 | ||||
| /* defines */ | ||||
| 
 | ||||
| #define PROGNAME  "VisualPng" | ||||
| #define LONGNAME  "Win32 Viewer for PNG-files" | ||||
| #define VERSION   "1.0 of 2000 June 07" | ||||
| 
 | ||||
| // constants
 | ||||
| /* constants */ | ||||
| 
 | ||||
| #define MARGIN 8 | ||||
| 
 | ||||
| // standard includes
 | ||||
| /* standard includes */ | ||||
| 
 | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <windows.h> | ||||
| 
 | ||||
| // application includes
 | ||||
| /* application includes */ | ||||
| 
 | ||||
| #include "png.h" | ||||
| #include "pngfile.h" | ||||
| #include "resource.h" | ||||
| 
 | ||||
| // macros
 | ||||
| /* macros */ | ||||
| 
 | ||||
| // function prototypes
 | ||||
| /* function prototypes */ | ||||
| 
 | ||||
| LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); | ||||
| BOOL    CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ; | ||||
| @ -65,14 +66,14 @@ BOOL FillBitmap ( | ||||
|         BYTE *pbImage, int cxImgSize, int cyImgSize, int cImgChannels, | ||||
|         BOOL bStretched); | ||||
| 
 | ||||
| // a few global variables
 | ||||
| /* a few global variables */ | ||||
| 
 | ||||
| static char *szProgName = PROGNAME; | ||||
| static char *szAppName = LONGNAME; | ||||
| static char *szIconName = PROGNAME; | ||||
| static char szCmdFileName [MAX_PATH]; | ||||
| 
 | ||||
| // MAIN routine
 | ||||
| /* MAIN routine */ | ||||
| 
 | ||||
| int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, | ||||
|                     PSTR szCmdLine, int iCmdShow) | ||||
| @ -90,7 +91,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, | ||||
|     wndclass.hInstance     = hInstance; | ||||
|     wndclass.hIcon         = LoadIcon (hInstance, szIconName) ; | ||||
|     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW); | ||||
|     wndclass.hbrBackground = NULL; // (HBRUSH) GetStockObject (GRAY_BRUSH);
 | ||||
|     wndclass.hbrBackground = NULL; /* (HBRUSH) GetStockObject (GRAY_BRUSH); */ | ||||
|     wndclass.lpszMenuName  = szProgName; | ||||
|     wndclass.lpszClassName = szProgName; | ||||
| 
 | ||||
| @ -101,7 +102,7 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, | ||||
|         return 0; | ||||
|     } | ||||
| 
 | ||||
|     // if filename given on commandline, store it
 | ||||
|     /* if filename given on commandline, store it */ | ||||
|     if ((szCmdLine != NULL) && (*szCmdLine != '\0')) | ||||
|         if (szCmdLine[0] == '"') | ||||
|             strncpy (szCmdFileName, szCmdLine + 1, strlen(szCmdLine) - 2); | ||||
| @ -110,20 +111,20 @@ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, | ||||
|     else | ||||
|         strcpy (szCmdFileName, ""); | ||||
| 
 | ||||
|     // calculate size of window-borders
 | ||||
|     /* calculate size of window-borders */ | ||||
|     ixBorders = 2 * (GetSystemMetrics (SM_CXBORDER) + | ||||
|                      GetSystemMetrics (SM_CXDLGFRAME)); | ||||
|     iyBorders = 2 * (GetSystemMetrics (SM_CYBORDER) + | ||||
|                      GetSystemMetrics (SM_CYDLGFRAME)) + | ||||
|                      GetSystemMetrics (SM_CYCAPTION) + | ||||
|                      GetSystemMetrics (SM_CYMENUSIZE) + | ||||
|                      1; /* WvS: don't ask me why? */ | ||||
|                      1; /* WvS: don't ask me why?  */ | ||||
| 
 | ||||
|     hwnd = CreateWindow (szProgName, szAppName, | ||||
|         WS_OVERLAPPEDWINDOW, | ||||
|         CW_USEDEFAULT, CW_USEDEFAULT, | ||||
|         512 + 2 * MARGIN + ixBorders, 384 + 2 * MARGIN + iyBorders, | ||||
| //      CW_USEDEFAULT, CW_USEDEFAULT,
 | ||||
| /*      CW_USEDEFAULT, CW_USEDEFAULT, */ | ||||
|         NULL, NULL, hInstance, NULL); | ||||
| 
 | ||||
|     ShowWindow (hwnd, iCmdShow); | ||||
| @ -180,29 +181,29 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
| 
 | ||||
|         strcpy (szImgPathName, ""); | ||||
| 
 | ||||
|         // in case we process file given on command-line
 | ||||
|         /* in case we process file given on command-line */ | ||||
| 
 | ||||
|         if (szCmdFileName[0] != '\0') | ||||
|         { | ||||
|             strcpy (szImgPathName, szCmdFileName); | ||||
| 
 | ||||
|             // read the other png-files in the directory for later
 | ||||
|             // next/previous commands
 | ||||
|             /* read the other png-files in the directory for later */ | ||||
|             /* next/previous commands */ | ||||
| 
 | ||||
|             BuildPngList (szImgPathName, &pPngFileList, &iPngFileCount, | ||||
|                           &iPngFileIndex); | ||||
| 
 | ||||
|             // load the image from file
 | ||||
|             /* load the image from file */ | ||||
| 
 | ||||
|             if (!LoadImageFile (hwnd, szImgPathName, | ||||
|                 &pbImage, &cxImgSize, &cyImgSize, &cImgChannels, &bkgColor)) | ||||
|                 return 0; | ||||
| 
 | ||||
|             // invalidate the client area for later update
 | ||||
|             /* invalidate the client area for later update */ | ||||
| 
 | ||||
|             InvalidateRect (hwnd, NULL, TRUE); | ||||
| 
 | ||||
|             // display the PNG into the DIBitmap
 | ||||
|             /* display the PNG into the DIBitmap */ | ||||
| 
 | ||||
|             DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize, | ||||
|                 pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched); | ||||
| @ -214,11 +215,11 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|         cxWinSize = LOWORD (lParam); | ||||
|         cyWinSize = HIWORD (lParam); | ||||
| 
 | ||||
|         // invalidate the client area for later update
 | ||||
|         /* invalidate the client area for later update */ | ||||
| 
 | ||||
|         InvalidateRect (hwnd, NULL, TRUE); | ||||
| 
 | ||||
|         // display the PNG into the DIBitmap
 | ||||
|         /* display the PNG into the DIBitmap */ | ||||
| 
 | ||||
|         DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize, | ||||
|             pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched); | ||||
| @ -242,28 +243,28 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|         { | ||||
|         case IDM_FILE_OPEN: | ||||
| 
 | ||||
|             // show the File Open dialog box
 | ||||
|             /* show the File Open dialog box */ | ||||
| 
 | ||||
|             if (!PngFileOpenDlg (hwnd, szImgPathName, szTitleName)) | ||||
|                 return 0; | ||||
| 
 | ||||
|             // read the other png-files in the directory for later
 | ||||
|             // next/previous commands
 | ||||
|             /* read the other png-files in the directory for later */ | ||||
|             /* next/previous commands */ | ||||
| 
 | ||||
|             BuildPngList (szImgPathName, &pPngFileList, &iPngFileCount, | ||||
|                           &iPngFileIndex); | ||||
| 
 | ||||
|             // load the image from file
 | ||||
|             /* load the image from file */ | ||||
| 
 | ||||
|             if (!LoadImageFile (hwnd, szImgPathName, | ||||
|                 &pbImage, &cxImgSize, &cyImgSize, &cImgChannels, &bkgColor)) | ||||
|                 return 0; | ||||
| 
 | ||||
|             // invalidate the client area for later update
 | ||||
|             /* invalidate the client area for later update */ | ||||
| 
 | ||||
|             InvalidateRect (hwnd, NULL, TRUE); | ||||
| 
 | ||||
|             // display the PNG into the DIBitmap
 | ||||
|             /* display the PNG into the DIBitmap */ | ||||
| 
 | ||||
|             DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize, | ||||
|                 pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched); | ||||
| @ -272,12 +273,12 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
| 
 | ||||
|         case IDM_FILE_SAVE: | ||||
| 
 | ||||
|             // show the File Save dialog box
 | ||||
|             /* show the File Save dialog box */ | ||||
| 
 | ||||
|             if (!PngFileSaveDlg (hwnd, szImgPathName, szTitleName)) | ||||
|                 return 0; | ||||
| 
 | ||||
|             // save the PNG to a disk file
 | ||||
|             /* save the PNG to a disk file */ | ||||
| 
 | ||||
|             SetCursor (LoadCursor (NULL, IDC_WAIT)); | ||||
|             ShowCursor (TRUE); | ||||
| @ -295,7 +296,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
| 
 | ||||
|         case IDM_FILE_NEXT: | ||||
| 
 | ||||
|             // read next entry in the directory
 | ||||
|             /* read next entry in the directory */ | ||||
| 
 | ||||
|             if (SearchPngList (pPngFileList, iPngFileCount, &iPngFileIndex, | ||||
|                 NULL, szImgPathName)) | ||||
| @ -303,17 +304,17 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|                 if (strcmp (szImgPathName, "") == 0) | ||||
|                     return 0; | ||||
| 
 | ||||
|                 // load the image from file
 | ||||
|                 /* load the image from file */ | ||||
| 
 | ||||
|                 if (!LoadImageFile (hwnd, szImgPathName, &pbImage, | ||||
|                         &cxImgSize, &cyImgSize, &cImgChannels, &bkgColor)) | ||||
|                     return 0; | ||||
| 
 | ||||
|                 // invalidate the client area for later update
 | ||||
|                 /* invalidate the client area for later update */ | ||||
| 
 | ||||
|                 InvalidateRect (hwnd, NULL, TRUE); | ||||
| 
 | ||||
|                 // display the PNG into the DIBitmap
 | ||||
|                 /* display the PNG into the DIBitmap */ | ||||
| 
 | ||||
|                 DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize, | ||||
|                     pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched); | ||||
| @ -323,7 +324,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
| 
 | ||||
|         case IDM_FILE_PREVIOUS: | ||||
| 
 | ||||
|             // read previous entry in the directory
 | ||||
|             /* read previous entry in the directory */ | ||||
| 
 | ||||
|             if (SearchPngList (pPngFileList, iPngFileCount, &iPngFileIndex, | ||||
|                 szImgPathName, NULL)) | ||||
| @ -332,17 +333,17 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|                 if (strcmp (szImgPathName, "") == 0) | ||||
|                     return 0; | ||||
| 
 | ||||
|                 // load the image from file
 | ||||
|                 /* load the image from file */ | ||||
| 
 | ||||
|                 if (!LoadImageFile (hwnd, szImgPathName, &pbImage, &cxImgSize, | ||||
|                     &cyImgSize, &cImgChannels, &bkgColor)) | ||||
|                     return 0; | ||||
| 
 | ||||
|                 // invalidate the client area for later update
 | ||||
|                 /* invalidate the client area for later update */ | ||||
| 
 | ||||
|                 InvalidateRect (hwnd, NULL, TRUE); | ||||
| 
 | ||||
|                 // display the PNG into the DIBitmap
 | ||||
|                 /* display the PNG into the DIBitmap */ | ||||
| 
 | ||||
|                 DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize, | ||||
|                     pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched); | ||||
| @ -352,9 +353,9 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
| 
 | ||||
|         case IDM_FILE_EXIT: | ||||
| 
 | ||||
|             // more cleanup needed...
 | ||||
|             /* more cleanup needed... */ | ||||
| 
 | ||||
|             // free image buffer
 | ||||
|             /* free image buffer */ | ||||
| 
 | ||||
|             if (pDib != NULL) | ||||
|             { | ||||
| @ -362,7 +363,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|                 pDib = NULL; | ||||
|             } | ||||
| 
 | ||||
|             // free file-list
 | ||||
|             /* free file-list */ | ||||
| 
 | ||||
|             if (pPngFileList != NULL) | ||||
|             { | ||||
| @ -370,7 +371,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|                 pPngFileList = NULL; | ||||
|             } | ||||
| 
 | ||||
|             // let's go ...
 | ||||
|             /* let's go ... */ | ||||
| 
 | ||||
|             exit (0); | ||||
| 
 | ||||
| @ -383,11 +384,11 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|             else | ||||
|                 CheckMenuItem (hMenu, IDM_OPTIONS_STRETCH, MF_UNCHECKED); | ||||
| 
 | ||||
|             // invalidate the client area for later update
 | ||||
|             /* invalidate the client area for later update */ | ||||
| 
 | ||||
|             InvalidateRect (hwnd, NULL, TRUE); | ||||
| 
 | ||||
|             // display the PNG into the DIBitmap
 | ||||
|             /* display the PNG into the DIBitmap */ | ||||
| 
 | ||||
|             DisplayImage (hwnd, &pDib, &pDiData, cxWinSize, cyWinSize, | ||||
|                 pbImage, cxImgSize, cyImgSize, cImgChannels, bStretched); | ||||
| @ -398,7 +399,7 @@ LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, | ||||
|             DialogBox (hInstance, TEXT ("AboutBox"), hwnd, AboutDlgProc) ; | ||||
|             return 0; | ||||
| 
 | ||||
|         } // end switch
 | ||||
|         } /* end switch */ | ||||
| 
 | ||||
|         break; | ||||
| 
 | ||||
| @ -450,10 +451,10 @@ BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, | ||||
|      return FALSE ; | ||||
| } | ||||
| 
 | ||||
| //---------------
 | ||||
| //  CenterAbout
 | ||||
| //---------------
 | ||||
| 
 | ||||
| /*---------------
 | ||||
|  *  CenterAbout | ||||
|  *--------------- | ||||
|  */ | ||||
| BOOL CenterAbout (HWND hwndChild, HWND hwndParent) | ||||
| { | ||||
|    RECT    rChild, rParent, rWorkArea; | ||||
| @ -461,19 +462,19 @@ BOOL CenterAbout (HWND hwndChild, HWND hwndParent) | ||||
|    int     xNew, yNew; | ||||
|    BOOL  bResult; | ||||
| 
 | ||||
|    // Get the Height and Width of the child window
 | ||||
|    /* Get the Height and Width of the child window */ | ||||
|    GetWindowRect (hwndChild, &rChild); | ||||
|    wChild = rChild.right - rChild.left; | ||||
|    hChild = rChild.bottom - rChild.top; | ||||
| 
 | ||||
|    // Get the Height and Width of the parent window
 | ||||
|    /* Get the Height and Width of the parent window */ | ||||
|    GetWindowRect (hwndParent, &rParent); | ||||
|    wParent = rParent.right - rParent.left; | ||||
|    hParent = rParent.bottom - rParent.top; | ||||
| 
 | ||||
|    // Get the limits of the 'workarea'
 | ||||
|    /* Get the limits of the 'workarea' */ | ||||
|    bResult = SystemParametersInfo( | ||||
|       SPI_GETWORKAREA,  // system parameter to query or set
 | ||||
|       SPI_GETWORKAREA,  /* system parameter to query or set */ | ||||
|       sizeof(RECT), | ||||
|       &rWorkArea, | ||||
|       0); | ||||
| @ -483,7 +484,7 @@ BOOL CenterAbout (HWND hwndChild, HWND hwndParent) | ||||
|       rWorkArea.bottom = GetSystemMetrics(SM_CYSCREEN); | ||||
|    } | ||||
| 
 | ||||
|    // Calculate new X position, then adjust for workarea
 | ||||
|    /* Calculate new X position, then adjust for workarea */ | ||||
|    xNew = rParent.left + ((wParent - wChild) /2); | ||||
|    if (xNew < rWorkArea.left) { | ||||
|       xNew = rWorkArea.left; | ||||
| @ -491,7 +492,7 @@ BOOL CenterAbout (HWND hwndChild, HWND hwndParent) | ||||
|       xNew = rWorkArea.right - wChild; | ||||
|    } | ||||
| 
 | ||||
|    // Calculate new Y position, then adjust for workarea
 | ||||
|    /* Calculate new Y position, then adjust for workarea */ | ||||
|    yNew = rParent.top  + ((hParent - hChild) /2); | ||||
|    if (yNew < rWorkArea.top) { | ||||
|       yNew = rWorkArea.top; | ||||
| @ -499,15 +500,15 @@ BOOL CenterAbout (HWND hwndChild, HWND hwndParent) | ||||
|       yNew = rWorkArea.bottom - hChild; | ||||
|    } | ||||
| 
 | ||||
|    // Set it, and return
 | ||||
|    /* Set it, and return */ | ||||
|    return SetWindowPos (hwndChild, NULL, xNew, yNew, 0, 0, SWP_NOSIZE | | ||||
|           SWP_NOZORDER); | ||||
| } | ||||
| 
 | ||||
| //----------------
 | ||||
| //  BuildPngList
 | ||||
| //----------------
 | ||||
| 
 | ||||
| /*----------------
 | ||||
|  *  BuildPngList | ||||
|  *---------------- | ||||
|  */ | ||||
| BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|      int *pFileIndex) | ||||
| { | ||||
| @ -523,7 +524,7 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|     int                       i, ii; | ||||
|     int                       j, jj; | ||||
| 
 | ||||
|     // free previous file-list
 | ||||
|     /* free previous file-list */ | ||||
| 
 | ||||
|     if (*ppFileList != NULL) | ||||
|     { | ||||
| @ -531,7 +532,7 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|         *ppFileList = NULL; | ||||
|     } | ||||
| 
 | ||||
|     // extract foldername, filename and search-name
 | ||||
|     /* extract foldername, filename and search-name */ | ||||
| 
 | ||||
|     strcpy (szImgPathName, pstrPathName); | ||||
|     strcpy (szImgFileName, strrchr (pstrPathName, '\\') + 1); | ||||
| @ -540,7 +541,7 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|     *(strrchr (szImgFindName, '\\') + 1) = '\0'; | ||||
|     strcat (szImgFindName, "*.png"); | ||||
| 
 | ||||
|     // first cycle: count number of files in directory for memory allocation
 | ||||
|     /* first cycle: count number of files in directory for memory allocation */ | ||||
| 
 | ||||
|     *pFileCount = 0; | ||||
| 
 | ||||
| @ -554,11 +555,11 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|     } | ||||
|     FindClose(hFind); | ||||
| 
 | ||||
|     // allocation memory for file-list
 | ||||
|     /* allocation memory for file-list */ | ||||
| 
 | ||||
|     *ppFileList = (TCHAR *) malloc (*pFileCount * MAX_PATH); | ||||
| 
 | ||||
|     // second cycle: read directory and store filenames in file-list
 | ||||
|     /* second cycle: read directory and store filenames in file-list */ | ||||
| 
 | ||||
|     hFind = FindFirstFile(szImgFindName, &finddata); | ||||
|     bOk = (hFind != (HANDLE) -1); | ||||
| @ -580,7 +581,7 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|     } | ||||
|     FindClose(hFind); | ||||
| 
 | ||||
|     // finally we must sort the file-list
 | ||||
|     /* finally we must sort the file-list */ | ||||
| 
 | ||||
|     for (i = 0; i < *pFileCount - 1; i++) | ||||
|     { | ||||
| @ -594,7 +595,7 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|                 strcpy (*ppFileList + jj, *ppFileList + ii); | ||||
|                 strcpy (*ppFileList + ii, szTmp); | ||||
| 
 | ||||
|                 // check if this was the current image that we moved
 | ||||
|                 /* check if this was the current image that we moved */ | ||||
| 
 | ||||
|                 if (*pFileIndex == i) | ||||
|                     *pFileIndex = j; | ||||
| @ -608,9 +609,10 @@ BOOL BuildPngList (PTSTR pstrPathName, TCHAR **ppFileList, int *pFileCount, | ||||
|     return TRUE; | ||||
| } | ||||
| 
 | ||||
| //----------------
 | ||||
| //  SearchPngList
 | ||||
| //----------------
 | ||||
| /*----------------
 | ||||
|  *  SearchPngList | ||||
|  *---------------- | ||||
|  */ | ||||
| 
 | ||||
| BOOL SearchPngList ( | ||||
|         TCHAR *pFileList, int FileCount, int *pFileIndex, | ||||
| @ -618,7 +620,7 @@ BOOL SearchPngList ( | ||||
| { | ||||
|     if (FileCount > 0) | ||||
|     { | ||||
|         // get previous entry
 | ||||
|         /* get previous entry */ | ||||
| 
 | ||||
|         if (pstrPrevName != NULL) | ||||
|         { | ||||
| @ -630,7 +632,7 @@ BOOL SearchPngList ( | ||||
|             strcpy (pstrPrevName, pFileList + (*pFileIndex * MAX_PATH)); | ||||
|         } | ||||
| 
 | ||||
|         // get next entry
 | ||||
|         /* get next entry */ | ||||
| 
 | ||||
|         if (pstrNextName != NULL) | ||||
|         { | ||||
| @ -650,9 +652,10 @@ BOOL SearchPngList ( | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| //-----------------
 | ||||
| //  LoadImageFile
 | ||||
| //-----------------
 | ||||
| /*-----------------
 | ||||
|  *  LoadImageFile | ||||
|  *----------------- | ||||
|  */ | ||||
| 
 | ||||
| BOOL LoadImageFile (HWND hwnd, PTSTR pstrPathName, | ||||
|                 png_byte **ppbImage, int *pxImgSize, int *pyImgSize, | ||||
| @ -660,7 +663,7 @@ BOOL LoadImageFile (HWND hwnd, PTSTR pstrPathName, | ||||
| { | ||||
|     static TCHAR szTmp [MAX_PATH]; | ||||
| 
 | ||||
|     // if there's an existing PNG, free the memory
 | ||||
|     /* if there's an existing PNG, free the memory */ | ||||
| 
 | ||||
|     if (*ppbImage) | ||||
|     { | ||||
| @ -668,7 +671,7 @@ BOOL LoadImageFile (HWND hwnd, PTSTR pstrPathName, | ||||
|         *ppbImage = NULL; | ||||
|     } | ||||
| 
 | ||||
|     // Load the entire PNG into memory
 | ||||
|     /* Load the entire PNG into memory */ | ||||
| 
 | ||||
|     SetCursor (LoadCursor (NULL, IDC_WAIT)); | ||||
|     ShowCursor (TRUE); | ||||
| @ -694,10 +697,10 @@ BOOL LoadImageFile (HWND hwnd, PTSTR pstrPathName, | ||||
|     return TRUE; | ||||
| } | ||||
| 
 | ||||
| //----------------
 | ||||
| //  DisplayImage
 | ||||
| //----------------
 | ||||
| 
 | ||||
| /*----------------
 | ||||
|  *  DisplayImage | ||||
|  *---------------- | ||||
|  */ | ||||
| BOOL DisplayImage (HWND hwnd, BYTE **ppDib, | ||||
|         BYTE **ppDiData, int cxWinSize, int cyWinSize, | ||||
|         BYTE *pbImage, int cxImgSize, int cyImgSize, int cImgChannels, | ||||
| @ -705,14 +708,14 @@ BOOL DisplayImage (HWND hwnd, BYTE **ppDib, | ||||
| { | ||||
|     BYTE                       *pDib = *ppDib; | ||||
|     BYTE                       *pDiData = *ppDiData; | ||||
|     // BITMAPFILEHEADER        *pbmfh;
 | ||||
|     /* BITMAPFILEHEADER        *pbmfh; */ | ||||
|     BITMAPINFOHEADER           *pbmih; | ||||
|     WORD                        wDIRowBytes; | ||||
|     png_color                   bkgBlack = {0, 0, 0}; | ||||
|     png_color                   bkgGray  = {127, 127, 127}; | ||||
|     png_color                   bkgWhite = {255, 255, 255}; | ||||
| 
 | ||||
|     // allocate memory for the Device Independant bitmap
 | ||||
|     /* allocate memory for the Device Independant bitmap */ | ||||
| 
 | ||||
|     wDIRowBytes = (WORD) ((3 * cxWinSize + 3L) >> 2) << 2; | ||||
| 
 | ||||
| @ -733,7 +736,7 @@ BOOL DisplayImage (HWND hwnd, BYTE **ppDib, | ||||
|     *ppDib = pDib; | ||||
|     memset (pDib, 0, sizeof(BITMAPINFOHEADER)); | ||||
| 
 | ||||
|     // initialize the dib-structure
 | ||||
|     /* initialize the dib-structure */ | ||||
| 
 | ||||
|     pbmih = (BITMAPINFOHEADER *) pDib; | ||||
|     pbmih->biSize = sizeof(BITMAPINFOHEADER); | ||||
| @ -745,11 +748,11 @@ BOOL DisplayImage (HWND hwnd, BYTE **ppDib, | ||||
|     pDiData = pDib + sizeof(BITMAPINFOHEADER); | ||||
|     *ppDiData = pDiData; | ||||
| 
 | ||||
|     // first fill bitmap with gray and image border
 | ||||
|     /* first fill bitmap with gray and image border */ | ||||
| 
 | ||||
|     InitBitmap (pDiData, cxWinSize, cyWinSize); | ||||
| 
 | ||||
|     // then fill bitmap with image
 | ||||
|     /* then fill bitmap with image */ | ||||
| 
 | ||||
|     if (pbImage) | ||||
|     { | ||||
| @ -762,16 +765,16 @@ BOOL DisplayImage (HWND hwnd, BYTE **ppDib, | ||||
|     return TRUE; | ||||
| } | ||||
| 
 | ||||
| //--------------
 | ||||
| //  InitBitmap
 | ||||
| //--------------
 | ||||
| 
 | ||||
| /*--------------
 | ||||
|  *  InitBitmap | ||||
|  *-------------- | ||||
|  */ | ||||
| BOOL InitBitmap (BYTE *pDiData, int cxWinSize, int cyWinSize) | ||||
| { | ||||
|     BYTE *dst; | ||||
|     int x, y, col; | ||||
| 
 | ||||
|     // initialize the background with gray
 | ||||
|     /* initialize the background with gray */ | ||||
| 
 | ||||
|     dst = pDiData; | ||||
|     for (y = 0; y < cyWinSize; y++) | ||||
| @ -779,13 +782,13 @@ BOOL InitBitmap (BYTE *pDiData, int cxWinSize, int cyWinSize) | ||||
|         col = 0; | ||||
|         for (x = 0; x < cxWinSize; x++) | ||||
|         { | ||||
|             // fill with GRAY
 | ||||
|             /* fill with GRAY */ | ||||
|             *dst++ = 127; | ||||
|             *dst++ = 127; | ||||
|             *dst++ = 127; | ||||
|             col += 3; | ||||
|         } | ||||
|         // rows start on 4 byte boundaries
 | ||||
|         /* rows start on 4 byte boundaries */ | ||||
|         while ((col % 4) != 0) | ||||
|         { | ||||
|             dst++; | ||||
| @ -796,10 +799,10 @@ BOOL InitBitmap (BYTE *pDiData, int cxWinSize, int cyWinSize) | ||||
|     return TRUE; | ||||
| } | ||||
| 
 | ||||
| //--------------
 | ||||
| //  FillBitmap
 | ||||
| //--------------
 | ||||
| 
 | ||||
| /*--------------
 | ||||
|  *  FillBitmap | ||||
|  *-------------- | ||||
|  */ | ||||
| BOOL FillBitmap ( | ||||
|         BYTE *pDiData, int cxWinSize, int cyWinSize, | ||||
|         BYTE *pbImage, int cxImgSize, int cyImgSize, int cImgChannels, | ||||
| @ -824,11 +827,12 @@ BOOL FillBitmap ( | ||||
|         cxNewSize = cxWinSize - 2 * MARGIN; | ||||
|         cyNewSize = cyWinSize - 2 * MARGIN; | ||||
| 
 | ||||
|         // stretch the image to it's window determined size
 | ||||
|         /* stretch the image to it's window determined size */ | ||||
| 
 | ||||
|         // the following two are the same, but the first has side-effects
 | ||||
|         // because of rounding
 | ||||
| //      if ((cyNewSize / cxNewSize) > (cyImgSize / cxImgSize))
 | ||||
|         /* the following two are mathematically the same, but the first
 | ||||
|          * has side-effects because of rounding | ||||
|          */ | ||||
| /*      if ((cyNewSize / cxNewSize) > (cyImgSize / cxImgSize)) */ | ||||
|         if ((cyNewSize * cxImgSize) > (cyImgSize * cxNewSize)) | ||||
|         { | ||||
|             cyNewSize = cxNewSize * cyImgSize / cxImgSize; | ||||
| @ -867,12 +871,12 @@ BOOL FillBitmap ( | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // calculate row-bytes
 | ||||
|         /* calculate row-bytes */ | ||||
| 
 | ||||
|         wImgRowBytes = cImgChannels * cxNewSize; | ||||
|         wDIRowBytes = (WORD) ((cDIChannels * cxWinSize + 3L) >> 2) << 2; | ||||
| 
 | ||||
|         // copy image to screen
 | ||||
|         /* copy image to screen */ | ||||
| 
 | ||||
|         for (yImg = 0, yWin = cyImgPos; yImg < cyNewSize; yImg++, yWin++) | ||||
|         { | ||||
| @ -888,7 +892,7 @@ BOOL FillBitmap ( | ||||
|                 r = *src++; | ||||
|                 g = *src++; | ||||
|                 b = *src++; | ||||
|                 *dst++ = b; /* note the reverse order */ | ||||
|                 *dst++ = b; /* note the reverse order  */ | ||||
|                 *dst++ = g; | ||||
|                 *dst++ = r; | ||||
|                 if (cImgChannels == 4) | ||||
| @ -898,7 +902,7 @@ BOOL FillBitmap ( | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // free memory
 | ||||
|         /* free memory */ | ||||
| 
 | ||||
|         if (pStretchedImage != NULL) | ||||
|         { | ||||
| @ -908,28 +912,28 @@ BOOL FillBitmap ( | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     // process the image not-stretched
 | ||||
|     /* process the image not-stretched */ | ||||
| 
 | ||||
|     else | ||||
|     { | ||||
|         // calculate the central position
 | ||||
|         /* calculate the central position */ | ||||
| 
 | ||||
|         cxImgPos = (cxWinSize - cxImgSize) / 2; | ||||
|         cyImgPos = (cyWinSize - cyImgSize) / 2; | ||||
| 
 | ||||
|         // check for image larger than window
 | ||||
|         /* check for image larger than window */ | ||||
| 
 | ||||
|         if (cxImgPos < MARGIN) | ||||
|             cxImgPos = MARGIN; | ||||
|         if (cyImgPos < MARGIN) | ||||
|             cyImgPos = MARGIN; | ||||
| 
 | ||||
|         // calculate both row-bytes
 | ||||
|         /* calculate both row-bytes */ | ||||
| 
 | ||||
|         wImgRowBytes = cImgChannels * cxImgSize; | ||||
|         wDIRowBytes = (WORD) ((cDIChannels * cxWinSize + 3L) >> 2) << 2; | ||||
| 
 | ||||
|         // copy image to screen
 | ||||
|         /* copy image to screen */ | ||||
| 
 | ||||
|         for (yImg = 0, yWin = cyImgPos; yImg < cyImgSize; yImg++, yWin++) | ||||
|         { | ||||
| @ -945,7 +949,7 @@ BOOL FillBitmap ( | ||||
|                 r = *src++; | ||||
|                 g = *src++; | ||||
|                 b = *src++; | ||||
|                 *dst++ = b; /* note the reverse order */ | ||||
|                 *dst++ = b; /* note the reverse order  */ | ||||
|                 *dst++ = g; | ||||
|                 *dst++ = r; | ||||
|                 if (cImgChannels == 4) | ||||
| @ -959,6 +963,7 @@ BOOL FillBitmap ( | ||||
|     return TRUE; | ||||
| } | ||||
| 
 | ||||
| //-----------------
 | ||||
| //  end of source
 | ||||
| //-----------------
 | ||||
| /*-----------------
 | ||||
|  *  end of source | ||||
|  *----------------- | ||||
|  */ | ||||
|  | ||||
							
								
								
									
										74
									
								
								depcomp
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								depcomp
									
									
									
									
									
								
							| @ -1,10 +1,10 @@ | ||||
| #! /bin/sh | ||||
| # depcomp - compile a program generating dependencies as side-effects | ||||
| 
 | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
| scriptversion=2011-12-04.11; # UTC | ||||
| 
 | ||||
| # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free | ||||
| # Software Foundation, Inc. | ||||
| # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, | ||||
| # 2011 Free Software Foundation, Inc. | ||||
| 
 | ||||
| # This program is free software; you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| @ -44,7 +44,7 @@ Environment variables: | ||||
|   object      Object file output by `PROGRAMS ARGS'. | ||||
|   DEPDIR      directory where to store dependencies. | ||||
|   depfile     Dependency file to output. | ||||
|   tmpdepfile  Temporary file to use when outputing dependencies. | ||||
|   tmpdepfile  Temporary file to use when outputting dependencies. | ||||
|   libtool     Whether libtool is used (yes/no). | ||||
| 
 | ||||
| Report bugs to <bug-automake@gnu.org>. | ||||
| @ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then | ||||
|    # This is just like msvisualcpp but w/o cygpath translation. | ||||
|    # Just convert the backslash-escaped backslashes to single forward | ||||
|    # slashes to satisfy depend.m4 | ||||
|    cygpath_u="sed s,\\\\\\\\,/,g" | ||||
|    cygpath_u='sed s,\\\\,/,g' | ||||
|    depmode=msvisualcpp | ||||
| fi | ||||
| 
 | ||||
| if test "$depmode" = msvc7msys; then | ||||
|    # This is just like msvc7 but w/o cygpath translation. | ||||
|    # Just convert the backslash-escaped backslashes to single forward | ||||
|    # slashes to satisfy depend.m4 | ||||
|    cygpath_u='sed s,\\\\,/,g' | ||||
|    depmode=msvc7 | ||||
| fi | ||||
| 
 | ||||
| case "$depmode" in | ||||
| gcc3) | ||||
| ## gcc 3 implements dependency tracking that does exactly what | ||||
| @ -158,10 +166,12 @@ gcc) | ||||
| ' < "$tmpdepfile" | | ||||
| ## Some versions of gcc put a space before the `:'.  On the theory | ||||
| ## that the space means something, we add a space to the output as | ||||
| ## well. | ||||
| ## well.  hp depmode also adds that space, but also prefixes the VPATH | ||||
| ## to the object.  Take care to not repeat it in the output. | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
| ## correctly.  Breaking it into two sed invocations is a workaround. | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" | ||||
|     sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | ||||
|       | sed -e 's/$/ :/' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| @ -405,6 +415,52 @@ tru64) | ||||
|    rm -f "$tmpdepfile" | ||||
|    ;; | ||||
| 
 | ||||
| msvc7) | ||||
|   if test "$libtool" = yes; then | ||||
|     showIncludes=-Wc,-showIncludes | ||||
|   else | ||||
|     showIncludes=-showIncludes | ||||
|   fi | ||||
|   "$@" $showIncludes > "$tmpdepfile" | ||||
|   stat=$? | ||||
|   grep -v '^Note: including file: ' "$tmpdepfile" | ||||
|   if test "$stat" = 0; then : | ||||
|   else | ||||
|     rm -f "$tmpdepfile" | ||||
|     exit $stat | ||||
|   fi | ||||
|   rm -f "$depfile" | ||||
|   echo "$object : \\" > "$depfile" | ||||
|   # The first sed program below extracts the file names and escapes | ||||
|   # backslashes for cygpath.  The second sed program outputs the file | ||||
|   # name when reading, but also accumulates all include files in the | ||||
|   # hold buffer in order to output them again at the end.  This only | ||||
|   # works with sed implementations that can handle large buffers. | ||||
|   sed < "$tmpdepfile" -n ' | ||||
| /^Note: including file:  *\(.*\)/ { | ||||
|   s//\1/ | ||||
|   s/\\/\\\\/g | ||||
|   p | ||||
| }' | $cygpath_u | sort -u | sed -n ' | ||||
| s/ /\\ /g | ||||
| s/\(.*\)/	\1 \\/p | ||||
| s/.\(.*\) \\/\1:/ | ||||
| H | ||||
| $ { | ||||
|   s/.*/	/ | ||||
|   G | ||||
|   p | ||||
| }' >> "$depfile" | ||||
|   rm -f "$tmpdepfile" | ||||
|   ;; | ||||
| 
 | ||||
| msvc7msys) | ||||
|   # This case exists only to let depend.m4 do its work.  It works by | ||||
|   # looking at the text of this script.  This case will never be run, | ||||
|   # since it is checked for above. | ||||
|   exit 1 | ||||
|   ;; | ||||
| 
 | ||||
| #nosideeffect) | ||||
|   # This comment above is used by automake to tell side-effect | ||||
|   # dependency tracking mechanisms from slower ones. | ||||
| @ -503,7 +559,9 @@ makedepend) | ||||
|   touch "$tmpdepfile" | ||||
|   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" | ||||
|   rm -f "$depfile" | ||||
|   cat < "$tmpdepfile" > "$depfile" | ||||
|   # makedepend may prepend the VPATH from the source file name to the object. | ||||
|   # No need to regex-escape $object, excess matching of '.' is harmless. | ||||
|   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" | ||||
|   sed '1,2d' "$tmpdepfile" | tr ' ' ' | ||||
| ' | \ | ||||
| ## Some versions of the HPUX 10.20 sed can't process this invocation | ||||
|  | ||||
							
								
								
									
										54
									
								
								example.c
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								example.c
									
									
									
									
									
								
							| @ -2,18 +2,19 @@ | ||||
| #if 0 /* in case someone actually tries to compile this */
 | ||||
| 
 | ||||
| /* example.c - an example of using libpng
 | ||||
|  * Last changed in libpng 1.4.2 [May 6, 2010] | ||||
|  * This file has been placed in the public domain by the authors. | ||||
|  * Maintained 1998-2010 Glenn Randers-Pehrson | ||||
|  * Maintained 1996, 1997 Andreas Dilger) | ||||
|  * Written 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * Last changed in libpng 1.5.7 [December 15, 2011] | ||||
|  * Maintained 1998-2011 Glenn Randers-Pehrson | ||||
|  * Maintained 1996, 1997 Andreas Dilger | ||||
|  * Written 1995, 1996 Guy Eric Schalnat, Group 42, Inc. | ||||
|  */ | ||||
| 
 | ||||
| /* This is an example of how to use libpng to read and write PNG files.
 | ||||
|  * The file libpng.txt is much more verbose then this.  If you have not | ||||
|  * The file libpng-manual.txt is much more verbose then this.  If you have not | ||||
|  * read it, do so first.  This was designed to be a starting point of an | ||||
|  * implementation.  This is not officially part of libpng, is hereby placed | ||||
|  * in the public domain, and therefore does not require a copyright notice. | ||||
|  * To the extent possible under law, the authors have waived all copyright and | ||||
|  * related or neighboring rights to this file. | ||||
|  * | ||||
|  * This file does not currently compile, because it is missing certain | ||||
|  * parts, like allocating memory to hold an image.  You will have to | ||||
| @ -22,6 +23,10 @@ | ||||
|  * see also the programs in the contrib directory. | ||||
|  */ | ||||
| 
 | ||||
| #define _POSIX_SOURCE 1  /* libpng and zlib are POSIX-compliant.  You may | ||||
|                           * change this if your application uses non-POSIX | ||||
|                           * extensions. */ | ||||
| 
 | ||||
| #include "png.h" | ||||
| 
 | ||||
|  /* The png_jmpbuf() macro, used in error handling, became available in
 | ||||
| @ -31,7 +36,7 @@ | ||||
|   */ | ||||
| 
 | ||||
| #ifndef png_jmpbuf | ||||
| #  define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf) | ||||
| #  define png_jmpbuf(png_ptr) ((png_ptr)->png_jmpbuf) | ||||
| #endif | ||||
| 
 | ||||
| /* Check to see if a file is a PNG file using png_sig_cmp().  png_sig_cmp()
 | ||||
| @ -183,8 +188,15 @@ void read_png(FILE *fp, unsigned int sig_read)  /* File is already open */ | ||||
|     * are mutually exclusive. | ||||
|     */ | ||||
| 
 | ||||
|    /* Tell libpng to strip 16 bit/color files down to 8 bits/color */ | ||||
|    /* Tell libpng to strip 16 bit/color files down to 8 bits/color.
 | ||||
|     * Use accurate scaling if it's available, otherwise just chop off the | ||||
|     * low byte. | ||||
|     */ | ||||
| #ifdef PNG_READ_SCALE_16_TO_8_SUPPORTED | ||||
|     png_set_scale_16(png_ptr); | ||||
| #else | ||||
|    png_set_strip_16(png_ptr); | ||||
| #endif | ||||
| 
 | ||||
|    /* Strip alpha bytes from the input data without combining with the
 | ||||
|     * background (not recommended). | ||||
| @ -286,7 +298,6 @@ void read_png(FILE *fp, unsigned int sig_read)  /* File is already open */ | ||||
|          /* An array of colors to which the image should be quantized */ | ||||
|          png_color std_color_cube[MAX_SCREEN_COLORS]; | ||||
| 
 | ||||
|          /* Prior to libpng-1.4.2, this was png_set_dither(). */ | ||||
|          png_set_quantize(png_ptr, std_color_cube, MAX_SCREEN_COLORS, | ||||
|             MAX_SCREEN_COLORS, NULL, 0); | ||||
|       } | ||||
| @ -331,11 +342,16 @@ void read_png(FILE *fp, unsigned int sig_read)  /* File is already open */ | ||||
|    /* Add filler (or alpha) byte (before/after each RGB triplet) */ | ||||
|    png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); | ||||
| 
 | ||||
| #ifdef PNG_READ_INTERLACING_SUPPORTED | ||||
|    /* Turn on interlace handling.  REQUIRED if you are not using
 | ||||
|     * png_read_image().  To see how to handle interlacing passes, | ||||
|     * see the png_read_row() method below: | ||||
|     */ | ||||
|    number_passes = png_set_interlace_handling(png_ptr); | ||||
| #else | ||||
|    number_passes = 1; | ||||
| #endif /* PNG_READ_INTERLACING_SUPPORTED */ | ||||
| 
 | ||||
| 
 | ||||
|    /* Optional call to gamma correct and add the background to the palette
 | ||||
|     * and update info structure.  REQUIRED if you are expecting libpng to | ||||
| @ -517,6 +533,7 @@ row_callback(png_structp png_ptr, png_bytep new_row, | ||||
|     */ | ||||
|    png_bytep old_row = ((png_bytep *)our_data)[row_num]; | ||||
| 
 | ||||
| #ifdef PNG_READ_INTERLACING_SUPPORTED | ||||
|    /* If both rows are allocated then copy the new row
 | ||||
|     * data to the corresponding row data. | ||||
|     */ | ||||
| @ -545,6 +562,7 @@ row_callback(png_structp png_ptr, png_bytep new_row, | ||||
|     * to pass the current row as new_row, and the function will combine | ||||
|     * the old row and the new row. | ||||
|     */ | ||||
| #endif /* PNG_READ_INTERLACING_SUPPORTED */ | ||||
| } | ||||
| 
 | ||||
| end_callback(png_structp png_ptr, png_infop info) | ||||
| @ -656,14 +674,18 @@ void write_png(char *file_name /* , ... other image information ... */) | ||||
| 
 | ||||
|    /* Optional significant bit (sBIT) chunk */ | ||||
|    png_color_8 sig_bit; | ||||
| 
 | ||||
|    /* If we are dealing with a grayscale image then */ | ||||
|    sig_bit.gray = true_bit_depth; | ||||
| 
 | ||||
|    /* Otherwise, if we are dealing with a color image then */ | ||||
|    sig_bit.red = true_red_bit_depth; | ||||
|    sig_bit.green = true_green_bit_depth; | ||||
|    sig_bit.blue = true_blue_bit_depth; | ||||
| 
 | ||||
|    /* If the image has an alpha channel then */ | ||||
|    sig_bit.alpha = true_alpha_bit_depth; | ||||
| 
 | ||||
|    png_set_sBIT(png_ptr, info_ptr, &sig_bit); | ||||
| 
 | ||||
| 
 | ||||
| @ -676,20 +698,21 @@ void write_png(char *file_name /* , ... other image information ... */) | ||||
|    text_ptr[0].key = "Title"; | ||||
|    text_ptr[0].text = "Mona Lisa"; | ||||
|    text_ptr[0].compression = PNG_TEXT_COMPRESSION_NONE; | ||||
|    text_ptr[0].itxt_length = 0; | ||||
|    text_ptr[0].lang = NULL; | ||||
|    text_ptr[0].lang_key = NULL; | ||||
|    text_ptr[1].key = "Author"; | ||||
|    text_ptr[1].text = "Leonardo DaVinci"; | ||||
|    text_ptr[1].compression = PNG_TEXT_COMPRESSION_NONE; | ||||
|    text_ptr[1].itxt_length = 0; | ||||
|    text_ptr[1].lang = NULL; | ||||
|    text_ptr[1].lang_key = NULL; | ||||
|    text_ptr[2].key = "Description"; | ||||
|    text_ptr[2].text = "<long text>"; | ||||
|    text_ptr[2].compression = PNG_TEXT_COMPRESSION_zTXt; | ||||
| #ifdef PNG_iTXt_SUPPORTED | ||||
|    text_ptr[0].lang = NULL; | ||||
|    text_ptr[0].lang_key = NULL; | ||||
|    text_ptr[1].lang = NULL; | ||||
|    text_ptr[1].lang_key = NULL; | ||||
|    text_ptr[2].itxt_length = 0; | ||||
|    text_ptr[2].lang = NULL; | ||||
|    text_ptr[2].lang_key = NULL; | ||||
| #endif | ||||
|    png_set_text(png_ptr, info_ptr, text_ptr, 3); | ||||
| 
 | ||||
|    /* Other optional chunks like cHRM, bKGD, tRNS, tIME, oFFs, pHYs */ | ||||
| @ -754,6 +777,7 @@ void write_png(char *file_name /* , ... other image information ... */) | ||||
|    /* Turn on interlace handling if you are not using png_write_image() */ | ||||
|    if (interlacing) | ||||
|       number_passes = png_set_interlace_handling(png_ptr); | ||||
| 
 | ||||
|    else | ||||
|       number_passes = 1; | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										29
									
								
								install-sh
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								install-sh
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| #!/bin/sh | ||||
| # install - install a program, script, or datafile | ||||
| 
 | ||||
| scriptversion=2009-04-28.21; # UTC | ||||
| scriptversion=2011-01-19.21; # UTC | ||||
| 
 | ||||
| # This originates from X11R5 (mit/util/scripts/install.sh), which was | ||||
| # later released in X11R6 (xc/config/util/install.sh) with the | ||||
| @ -156,6 +156,10 @@ while test $# -ne 0; do | ||||
|     -s) stripcmd=$stripprog;; | ||||
| 
 | ||||
|     -t) dst_arg=$2 | ||||
| 	# Protect names problematic for `test' and other utilities. | ||||
| 	case $dst_arg in | ||||
| 	  -* | [=\(\)!]) dst_arg=./$dst_arg;; | ||||
| 	esac | ||||
| 	shift;; | ||||
| 
 | ||||
|     -T) no_target_directory=true;; | ||||
| @ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then | ||||
|     fi | ||||
|     shift # arg | ||||
|     dst_arg=$arg | ||||
|     # Protect names problematic for `test' and other utilities. | ||||
|     case $dst_arg in | ||||
|       -* | [=\(\)!]) dst_arg=./$dst_arg;; | ||||
|     esac | ||||
|   done | ||||
| fi | ||||
| 
 | ||||
| @ -200,7 +208,11 @@ if test $# -eq 0; then | ||||
| fi | ||||
| 
 | ||||
| if test -z "$dir_arg"; then | ||||
|   trap '(exit $?); exit' 1 2 13 15 | ||||
|   do_exit='(exit $ret); exit $ret' | ||||
|   trap "ret=129; $do_exit" 1 | ||||
|   trap "ret=130; $do_exit" 2 | ||||
|   trap "ret=141; $do_exit" 13 | ||||
|   trap "ret=143; $do_exit" 15 | ||||
| 
 | ||||
|   # Set umask so as not to create temps with too-generous modes. | ||||
|   # However, 'strip' requires both read and write access to temps. | ||||
| @ -228,9 +240,9 @@ fi | ||||
| 
 | ||||
| for src | ||||
| do | ||||
|   # Protect names starting with `-'. | ||||
|   # Protect names problematic for `test' and other utilities. | ||||
|   case $src in | ||||
|     -*) src=./$src;; | ||||
|     -* | [=\(\)!]) src=./$src;; | ||||
|   esac | ||||
| 
 | ||||
|   if test -n "$dir_arg"; then | ||||
| @ -252,12 +264,7 @@ do | ||||
|       echo "$0: no destination specified." >&2 | ||||
|       exit 1 | ||||
|     fi | ||||
| 
 | ||||
|     dst=$dst_arg | ||||
|     # Protect names starting with `-'. | ||||
|     case $dst in | ||||
|       -*) dst=./$dst;; | ||||
|     esac | ||||
| 
 | ||||
|     # If destination is a directory, append the input filename; won't work | ||||
|     # if double slashes aren't ignored. | ||||
| @ -385,7 +392,7 @@ do | ||||
| 
 | ||||
|       case $dstdir in | ||||
| 	/*) prefix='/';; | ||||
| 	-*) prefix='./';; | ||||
| 	[-=\(\)!]*) prefix='./';; | ||||
| 	*)  prefix='';; | ||||
|       esac | ||||
| 
 | ||||
| @ -403,7 +410,7 @@ do | ||||
| 
 | ||||
|       for d | ||||
|       do | ||||
| 	test -z "$d" && continue | ||||
| 	test X"$d" = X && continue | ||||
| 
 | ||||
| 	prefix=$prefix$d | ||||
| 	if test -d "$prefix"; then | ||||
|  | ||||
| @ -104,8 +104,8 @@ while test $# -gt 0; do | ||||
|         ;; | ||||
| 
 | ||||
|     --ldopts) | ||||
|     	echo ${ldopts} | ||||
| 	;; | ||||
|         echo ${ldopts} | ||||
|         ;; | ||||
| 
 | ||||
|     --ldflags) | ||||
|         echo ${ldopts} ${L_opts} ${R_opts} ${libs} | ||||
| @ -113,7 +113,7 @@ while test $# -gt 0; do | ||||
| 
 | ||||
|     --static) | ||||
|         R_opts="" | ||||
| 	libs=${all_libs} | ||||
|         libs=${all_libs} | ||||
|         ;; | ||||
| 
 | ||||
|     *) | ||||
|  | ||||
							
								
								
									
										4628
									
								
								libpng-manual.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4628
									
								
								libpng-manual.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										790
									
								
								libpngpf.3
									
									
									
									
									
								
							
							
						
						
									
										790
									
								
								libpngpf.3
									
									
									
									
									
								
							| @ -1,800 +1,26 @@ | ||||
| .TH LIBPNGPF 3 "July 8, 2011" | ||||
| .TH LIBPNGPF 3 "February 19, 2012" | ||||
| .SH NAME | ||||
| libpng \- Portable Network Graphics (PNG) Reference Library 1.4.9beta01 | ||||
| libpng \- Portable Network Graphics (PNG) Reference Library 1.5.10beta01 | ||||
| (private functions) | ||||
| .SH SYNOPSIS | ||||
| \fB#include <png.h>\fP | ||||
| 
 | ||||
| \fB#include \fI"pngpriv.h" | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_64bit_product (long \fP\fIv1\fP\fB, long \fP\fIv2\fP\fB, unsigned long \fI*hi_product, | ||||
| \fBAs of libpng version \fP\fI1.5.1\fP\fB, this section is no longer \fP\fImaintained\fP\fB, now \fIthat | ||||
| 
 | ||||
| \fBunsigned long \fI*lo_product\fP\fB);\fP | ||||
| \fBthe private function prototypes are hidden in pngpriv.h and not \fIaccessible | ||||
| 
 | ||||
| \fI\fB | ||||
| \fBto applications. Look in pngpriv.h for the prototypes and a short \fIdescription | ||||
| 
 | ||||
| \fBvoid png_build_gamma_table (png_structp \fP\fIpng_ptr\fP\fB, png_byte \fIbit_depth\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_build_grayscale_palette (int \fP\fIbit_depth\fP\fB, png_colorp \fIpalette\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_calculate_crc (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIptr\fP\fB, png_size_t \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_check_cHRM_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_fixed_point \fP\fIint_white_x\fP\fB, png_fixed_point \fP\fIint_white_y\fP\fB, png_fixed_point \fP\fIint_red_x\fP\fB, png_fixed_point \fP\fIint_red_y\fP\fB, png_fixed_point \fP\fIint_green_x\fP\fB, png_fixed_point \fP\fIint_green_y\fP\fB, png_fixed_point \fP\fIint_blue_x\fP\fB, png_fixed_point \fIint_blue_y\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_check_chunk_name (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIchunk_name\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_size_t png_check_keyword (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIkey\fP\fB, png_charpp \fInew_key\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_check_IHDR (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIwidth\fP\fB, png_uint_32 \fP\fIheight\fP\fB, int \fP\fIbit_depth\fP\fB, int \fP\fIcolor_type\fP\fB, int \fP\fIinterlace_type\fP\fB, int \fP\fIcompression_type\fP\fB, int \fIfilter_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_combine_row (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIrow\fP\fB, int \fImask\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_correct_palette (png_structp \fP\fIpng_ptr\fP\fB, png_colorp \fP\fIpalette\fP\fB, int \fInum_palette\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_crc_error (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_crc_finish (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIskip\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_crc_read (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIbuf\fP\fB, png_size_t \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_voidp png_create_struct (int \fItype\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBpng_voidp png_create_struct_2 (int \fP\fItype\fP\fB, png_malloc_ptr \fP\fImalloc_fn\fP\fB, png_voidp \fImem_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_debug(int \fP\fIlevel\fP\fB, png_const_charp \fImessage\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_debug1(int \fP\fIlevel\fP\fB, png_const_charp \fP\fImessage\fP\fB, \fIp1\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_debug2(int \fP\fIlevel\fP\fB, png_const_charp \fP\fImessage\fP\fB, \fP\fIp1\fP\fB, \fIp2\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_decompress_chunk (png_structp \fP\fIpng_ptr\fP\fB, int \fP\fIcomp_type\fP\fB, png_size_t \fP\fIchunklength\fP\fB, png_size_t \fP\fIprefix_length\fP\fB, png_size_t \fI*data_length\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_destroy_struct (png_voidp \fIstruct_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_destroy_struct_2 (png_voidp \fP\fIstruct_ptr\fP\fB, png_free_ptr \fP\fIfree_fn\fP\fB, png_voidp \fImem_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_background (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_16p \fP\fItrans_color\fP\fB, png_color_16p \fP\fIbackground\fP\fB, png_color_16p \fP\fIbackground_1\fP\fB, png_bytep \fP\fIgamma_table\fP\fB, png_bytep \fP\fIgamma_from_1\fP\fB, png_bytep \fP\fIgamma_to_1\fP\fB, png_uint_16pp \fP\fIgamma_16\fP\fB, png_uint_16pp \fP\fIgamma_16_from_1\fP\fB, png_uint_16pp \fP\fIgamma_16_to_1\fP\fB, int \fIgamma_shift\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_bgr (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_chop (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_expand (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_16p \fItrans_value\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_expand_palette (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_colorp \fP\fIpalette\fP\fB, png_bytep \fP\fItrans\fP\fB, int \fInum_trans\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_gamma (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIgamma_table\fP\fB, png_uint_16pp \fP\fIgamma_16_table\fP\fB, int \fIgamma_shift\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_gray_to_rgb (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_invert (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_pack (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fIbit_depth\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_packswap (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_quantize (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIpalette_lookup\fP\fB, png_bytep \fIquantize_lookup\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_read_filler (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fP\fIfiller\fP\fB, png_uint_32 \fIflags\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_read_interlace (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, int \fP\fIpass\fP\fB, png_uint_32 \fItransformations\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_read_invert_alpha (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_read_swap_alpha (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_read_transformations (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_do_rgb_to_gray (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_shift (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_8p \fIbit_depth\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_strip_filler (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_uint_32 \fIflags\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_swap (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_unpack (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_unshift (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_color_8p \fIsig_bits\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_write_interlace (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, int \fIpass\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_write_invert_alpha (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_write_swap_alpha (png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_do_write_transformations (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid *png_far_to_near (png_structp png_ptr,png_voidp \fP\fIptr\fP\fB, int \fIcheck\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_flush (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_bKGD (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_cHRM (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_gAMA (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_hIST (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_IEND (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_IHDR (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_iCCP (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_iTXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_pCAL (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_pHYs (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_PLTE (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_sBIT (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_sCAL (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_sPLT (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_sRGB (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_tEXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_tIME (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_tRNS (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_unknown (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_handle_zTXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_info_destroy (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_init_mmx_flags (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_init_read_transformations (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_process_IDAT_data (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIbuffer\fP\fB, png_size_t \fIbuffer_length\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_process_some_data (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_check_crc (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_crc_finish (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_crc_skip (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_fill_buffer (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIbuffer\fP\fB, png_size_t \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_handle_tEXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_handle_unknown (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_handle_zTXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_uint_32 \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_have_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_have_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_have_row (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIrow\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_process_row (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_read_chunk (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_read_end (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_read_IDAT (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_read_sig (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_read_tEXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_read_zTXt (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_restore_buffer (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIbuffer\fP\fB, png_size_t \fIbuffer_length\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_push_save_buffer (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_data (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIdata\fP\fB, png_size_t \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_destroy (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_infop \fIend_info_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_filter_row (png_structp \fP\fIpng_ptr\fP\fB, png_row_infop \fP\fIrow_info\fP\fB, png_bytep \fP\fIrow\fP\fB, png_bytep \fP\fIprev_row\fP\fB, int \fIfilter\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_finish_row (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_push_finish_row (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_sig (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_start_row (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_read_transform_info (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fIinfo_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_reset_crc (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBint png_set_text_2 (png_structp \fP\fIpng_ptr\fP\fB, png_infop \fP\fIinfo_ptr\fP\fB, png_textp \fP\fItext_ptr\fP\fB, int \fInum_text\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_cHRM (png_structp \fP\fIpng_ptr\fP\fB, double \fP\fIwhite_x\fP\fB, double \fP\fIwhite_y\fP\fB, double \fP\fIred_x\fP\fB, double \fP\fIred_y\fP\fB, double \fP\fIgreen_x\fP\fB, double \fP\fIgreen_y\fP\fB, double \fP\fIblue_x\fP\fB, double \fIblue_y\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_cHRM_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIwhite_x\fP\fB, png_uint_32 \fP\fIwhite_y\fP\fB, png_uint_32 \fP\fIred_x\fP\fB, png_uint_32 \fP\fIred_y\fP\fB, png_uint_32 \fP\fIgreen_x\fP\fB, png_uint_32 \fP\fIgreen_y\fP\fB, png_uint_32 \fP\fIblue_x\fP\fB, png_uint_32 \fIblue_y\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_data (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIdata\fP\fB, png_size_t \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_destroy (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_filtered_row (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fIfiltered_row\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_find_filter (png_structp \fP\fIpng_ptr\fP\fB, png_row_infop \fIrow_info\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_finish_row (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_gAMA (png_structp \fP\fIpng_ptr\fP\fB, double \fIfile_gamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_gAMA_fixed (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fIint_file_gamma\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_hIST (png_structp \fP\fIpng_ptr\fP\fB, png_uint_16p \fP\fIhist\fP\fB, int \fInum_hist\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_iCCP (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIname\fP\fB, int \fP\fIcompression_type\fP\fB, png_charp \fP\fIprofile\fP\fB, int \fIproflen\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_IDAT (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fIdata\fP\fB, png_size_t \fIlength\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_IEND (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_IHDR (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIwidth\fP\fB, png_uint_32 \fP\fIheight\fP\fB, int \fP\fIbit_depth\fP\fB, int \fP\fIcolor_type\fP\fB, int \fP\fIcompression_type\fP\fB, int \fP\fIfilter_type\fP\fB, int \fIinterlace_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_iTXt (png_structp \fP\fIpng_ptr\fP\fB, int \fP\fIcompression\fP\fB, png_charp \fP\fIkey\fP\fB, png_charp \fP\fIlang\fP\fB, png_charp \fP\fItranslated_key\fP\fB, png_charp \fItext\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_oFFs (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIx_offset\fP\fB, png_uint_32 \fP\fIy_offset\fP\fB, int \fIunit_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_pCAL (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIpurpose\fP\fB, png_int_32 \fP\fIX0\fP\fB, png_int_32 \fP\fIX1\fP\fB, int \fP\fItype\fP\fB, int \fP\fInparams\fP\fB, png_charp \fP\fIunits\fP\fB, png_charpp \fIparams\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_pHYs (png_structp \fP\fIpng_ptr\fP\fB, png_uint_32 \fP\fIx_pixels_per_unit\fP\fB, png_uint_32 \fP\fIy_pixels_per_unit\fP\fB, int \fIunit_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_PLTE (png_structp \fP\fIpng_ptr\fP\fB, png_colorp \fP\fIpalette\fP\fB, png_uint_32 \fInum_pal\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_sBIT (png_structp \fP\fIpng_ptr\fP\fB, png_color_8p \fP\fIsbit\fP\fB, int \fIcolor_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_sCAL (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIunit\fP\fB, double \fP\fIwidth\fP\fB, double \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_sCAL_s (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIunit\fP\fB, png_charp \fP\fIwidth\fP\fB, png_charp \fIheight\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_sRGB (png_structp \fP\fIpng_ptr\fP\fB, int \fIintent\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_sPLT (png_structp \fP\fIpng_ptr\fP\fB, png_spalette_p \fIpalette\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_start_row (png_structp \fIpng_ptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_tEXt (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIkey\fP\fB, png_charp \fP\fItext\fP\fB, png_size_t \fItext_len\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_tIME (png_structp \fP\fIpng_ptr\fP\fB, png_timep \fImod_time\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_tRNS (png_structp \fP\fIpng_ptr\fP\fB, png_bytep \fP\fItrans\fP\fB, png_color_16p \fP\fIvalues\fP\fB, int \fP\fInumber\fP\fB, int \fIcolor_type\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_write_zTXt (png_structp \fP\fIpng_ptr\fP\fB, png_charp \fP\fIkey\fP\fB, png_charp \fP\fItext\fP\fB, png_size_t \fP\fItext_len\fP\fB, int \fIcompression\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoidpf png_zalloc (voidpf \fP\fIpng_ptr\fP\fB, uInt \fP\fIitems\fP\fB, uInt \fIsize\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| \fBvoid png_zfree (voidpf \fP\fIpng_ptr\fP\fB, voidpf \fIptr\fP\fB);\fP | ||||
| 
 | ||||
| \fI\fB | ||||
| \fBof each \fIfunction. | ||||
| 
 | ||||
| \fI\fB | ||||
| 
 | ||||
| .SH DESCRIPTION | ||||
| The functions listed above are used privately by libpng | ||||
| The functions previously listed here are used privately by libpng | ||||
| and are not recommended for use by applications.  They are | ||||
| not "exported" to applications using shared libraries.  They | ||||
| are listed alphabetically here as an aid to libpng maintainers. | ||||
| See png.h for more information on these functions. | ||||
| not "exported" to applications using shared libraries. | ||||
| 
 | ||||
| .SH SEE ALSO | ||||
| .BR "png"(5), " libpng"(3), " zlib"(3), " deflate"(5), " " and " zlib"(5) | ||||
|  | ||||
							
								
								
									
										2
									
								
								png.5
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								png.5
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | ||||
| .TH PNG 5 "July 8, 2011" | ||||
| .TH PNG 5 "February 19, 2012" | ||||
| .SH NAME | ||||
| png \- Portable Network Graphics (PNG) format | ||||
| .SH DESCRIPTION | ||||
|  | ||||
							
								
								
									
										157
									
								
								pngdebug.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										157
									
								
								pngdebug.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,157 @@ | ||||
| 
 | ||||
| /* pngdebug.h - Debugging macros for libpng, also used in pngtest.c
 | ||||
|  * | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * | ||||
|  * Last changed in libpng 1.5.0 [January 6, 2011] | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| /* Define PNG_DEBUG at compile time for debugging information.  Higher
 | ||||
|  * numbers for PNG_DEBUG mean more debugging information.  This has | ||||
|  * only been added since version 0.95 so it is not implemented throughout | ||||
|  * libpng yet, but more support will be added as needed. | ||||
|  * | ||||
|  * png_debug[1-2]?(level, message ,arg{0-2}) | ||||
|  *   Expands to a statement (either a simple expression or a compound | ||||
|  *   do..while(0) statement) that outputs a message with parameter | ||||
|  *   substitution if PNG_DEBUG is defined to 2 or more.  If PNG_DEBUG | ||||
|  *   is undefined, 0 or 1 every png_debug expands to a simple expression | ||||
|  *   (actually ((void)0)). | ||||
|  * | ||||
|  *   level: level of detail of message, starting at 0.  A level 'n' | ||||
|  *          message is preceded by 'n' tab characters (not implemented | ||||
|  *          on Microsoft compilers unless PNG_DEBUG_FILE is also | ||||
|  *          defined, to allow debug DLL compilation with no standard IO). | ||||
|  *   message: a printf(3) style text string.  A trailing '\n' is added | ||||
|  *            to the message. | ||||
|  *   arg: 0 to 2 arguments for printf(3) style substitution in message. | ||||
|  */ | ||||
| #ifndef PNGDEBUG_H | ||||
| #define PNGDEBUG_H | ||||
| /* These settings control the formatting of messages in png.c and pngerror.c */ | ||||
| /* Moved to pngdebug.h at 1.5.0 */ | ||||
| #  ifndef PNG_LITERAL_SHARP | ||||
| #    define PNG_LITERAL_SHARP 0x23 | ||||
| #  endif | ||||
| #  ifndef PNG_LITERAL_LEFT_SQUARE_BRACKET | ||||
| #    define PNG_LITERAL_LEFT_SQUARE_BRACKET 0x5b | ||||
| #  endif | ||||
| #  ifndef PNG_LITERAL_RIGHT_SQUARE_BRACKET | ||||
| #    define PNG_LITERAL_RIGHT_SQUARE_BRACKET 0x5d | ||||
| #  endif | ||||
| #  ifndef PNG_STRING_NEWLINE | ||||
| #    define PNG_STRING_NEWLINE "\n" | ||||
| #  endif | ||||
| 
 | ||||
| #ifdef PNG_DEBUG | ||||
| #  if (PNG_DEBUG > 0) | ||||
| #    if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER) | ||||
| #      include <crtdbg.h> | ||||
| #      if (PNG_DEBUG > 1) | ||||
| #        ifndef _DEBUG | ||||
| #          define _DEBUG | ||||
| #        endif | ||||
| #        ifndef png_debug | ||||
| #          define png_debug(l,m)  _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE) | ||||
| #        endif | ||||
| #        ifndef png_debug1 | ||||
| #          define png_debug1(l,m,p1)  _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1) | ||||
| #        endif | ||||
| #        ifndef png_debug2 | ||||
| #          define png_debug2(l,m,p1,p2) \ | ||||
|              _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2) | ||||
| #        endif | ||||
| #      endif | ||||
| #    else /* PNG_DEBUG_FILE || !_MSC_VER */ | ||||
| #      ifndef PNG_STDIO_SUPPORTED | ||||
| #        include <stdio.h> /* not included yet */ | ||||
| #      endif | ||||
| #      ifndef PNG_DEBUG_FILE | ||||
| #        define PNG_DEBUG_FILE stderr | ||||
| #      endif /* PNG_DEBUG_FILE */ | ||||
| 
 | ||||
| #      if (PNG_DEBUG > 1) | ||||
| /* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on
 | ||||
|  * non-ISO compilers | ||||
|  */ | ||||
| #        ifdef __STDC__ | ||||
| #          ifndef png_debug | ||||
| #            define png_debug(l,m) \ | ||||
|        do { \ | ||||
|        int num_tabs=l; \ | ||||
|        fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ | ||||
|          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \ | ||||
|        } while (0) | ||||
| #          endif | ||||
| #          ifndef png_debug1 | ||||
| #            define png_debug1(l,m,p1) \ | ||||
|        do { \ | ||||
|        int num_tabs=l; \ | ||||
|        fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ | ||||
|          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \ | ||||
|        } while (0) | ||||
| #          endif | ||||
| #          ifndef png_debug2 | ||||
| #            define png_debug2(l,m,p1,p2) \ | ||||
|        do { \ | ||||
|        int num_tabs=l; \ | ||||
|        fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \ | ||||
|          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \ | ||||
|        } while (0) | ||||
| #          endif | ||||
| #        else /* __STDC __ */ | ||||
| #          ifndef png_debug | ||||
| #            define png_debug(l,m) \ | ||||
|        do { \ | ||||
|        int num_tabs=l; \ | ||||
|        char format[256]; \ | ||||
|        snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ | ||||
|          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ | ||||
|          m,PNG_STRING_NEWLINE); \ | ||||
|        fprintf(PNG_DEBUG_FILE,format); \ | ||||
|        } while (0) | ||||
| #          endif | ||||
| #          ifndef png_debug1 | ||||
| #            define png_debug1(l,m,p1) \ | ||||
|        do { \ | ||||
|        int num_tabs=l; \ | ||||
|        char format[256]; \ | ||||
|        snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ | ||||
|          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ | ||||
|          m,PNG_STRING_NEWLINE); \ | ||||
|        fprintf(PNG_DEBUG_FILE,format,p1); \ | ||||
|        } while (0) | ||||
| #          endif | ||||
| #          ifndef png_debug2 | ||||
| #            define png_debug2(l,m,p1,p2) \ | ||||
|        do { \ | ||||
|        int num_tabs=l; \ | ||||
|        char format[256]; \ | ||||
|        snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \ | ||||
|          (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \ | ||||
|          m,PNG_STRING_NEWLINE); \ | ||||
|        fprintf(PNG_DEBUG_FILE,format,p1,p2); \ | ||||
|        } while (0) | ||||
| #          endif | ||||
| #        endif /* __STDC __ */ | ||||
| #      endif /* (PNG_DEBUG > 1) */ | ||||
| 
 | ||||
| #    endif /* _MSC_VER */ | ||||
| #  endif /* (PNG_DEBUG > 0) */ | ||||
| #endif /* PNG_DEBUG */ | ||||
| #ifndef png_debug | ||||
| #  define png_debug(l, m) ((void)0) | ||||
| #endif | ||||
| #ifndef png_debug1 | ||||
| #  define png_debug1(l, m, p1) ((void)0) | ||||
| #endif | ||||
| #ifndef png_debug2 | ||||
| #  define png_debug2(l, m, p1, p2) ((void)0) | ||||
| #endif | ||||
| #endif /* PNGDEBUG_H */ | ||||
							
								
								
									
										539
									
								
								pngerror.c
									
									
									
									
									
								
							
							
						
						
									
										539
									
								
								pngerror.c
									
									
									
									
									
								
							| @ -1,8 +1,8 @@ | ||||
| 
 | ||||
| /* pngerror.c - stub functions for i/o and memory allocation
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.8 [July 7, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * Last changed in libpng 1.5.8 [February 1, 2011] | ||||
|  * Copyright (c) 1998-2012 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * | ||||
| @ -16,18 +16,17 @@ | ||||
|  * at each function. | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_PEDANTIC_WARNINGS | ||||
| #include "png.h" | ||||
| #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | ||||
| #include "pngpriv.h" | ||||
| 
 | ||||
| static void /* PRIVATE */ | ||||
| png_default_error PNGARG((png_structp png_ptr, | ||||
|   png_const_charp error_message)) PNG_NORETURN; | ||||
| #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | ||||
| 
 | ||||
| static PNG_FUNCTION(void, png_default_error,PNGARG((png_structp png_ptr, | ||||
|     png_const_charp error_message)),PNG_NORETURN); | ||||
| 
 | ||||
| #ifdef PNG_WARNINGS_SUPPORTED | ||||
| static void /* PRIVATE */ | ||||
| png_default_warning PNGARG((png_structp png_ptr, | ||||
|   png_const_charp warning_message)); | ||||
|    png_const_charp warning_message)); | ||||
| #endif /* PNG_WARNINGS_SUPPORTED */ | ||||
| 
 | ||||
| /* This function is called whenever there is a fatal error.  This function
 | ||||
| @ -36,42 +35,45 @@ png_default_warning PNGARG((png_structp png_ptr, | ||||
|  * to replace the error function at run-time. | ||||
|  */ | ||||
| #ifdef PNG_ERROR_TEXT_SUPPORTED | ||||
| void PNGAPI | ||||
| png_error(png_structp png_ptr, png_const_charp error_message) | ||||
| PNG_FUNCTION(void,PNGAPI | ||||
| png_error,(png_structp png_ptr, png_const_charp error_message),PNG_NORETURN) | ||||
| { | ||||
| #ifdef PNG_ERROR_NUMBERS_SUPPORTED | ||||
|    char msg[16]; | ||||
|    if (png_ptr != NULL) | ||||
|    { | ||||
|      if (png_ptr->flags& | ||||
|        (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT)) | ||||
|      { | ||||
|        if (*error_message == PNG_LITERAL_SHARP) | ||||
|        { | ||||
|            /* Strip "#nnnn " from beginning of error message. */ | ||||
|            int offset; | ||||
|            for (offset = 1; offset<15; offset++) | ||||
|               if (error_message[offset] == ' ') | ||||
|       if (png_ptr->flags& | ||||
|          (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT)) | ||||
|       { | ||||
|          if (*error_message == PNG_LITERAL_SHARP) | ||||
|          { | ||||
|             /* Strip "#nnnn " from beginning of error message. */ | ||||
|             int offset; | ||||
|             for (offset = 1; offset<15; offset++) | ||||
|                if (error_message[offset] == ' ') | ||||
|                   break; | ||||
|            if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT) | ||||
|            { | ||||
|               int i; | ||||
|               for (i = 0; i < offset - 1; i++) | ||||
|                  msg[i] = error_message[i + 1]; | ||||
|               msg[i - 1] = '\0'; | ||||
|               error_message = msg; | ||||
|            } | ||||
|            else | ||||
|               error_message += offset; | ||||
|        } | ||||
|        else | ||||
|        { | ||||
|            if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT) | ||||
|            { | ||||
|               msg[0] = '0'; | ||||
|               msg[1] = '\0'; | ||||
|               error_message = msg; | ||||
|            } | ||||
| 
 | ||||
|             if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT) | ||||
|             { | ||||
|                int i; | ||||
|                for (i = 0; i < offset - 1; i++) | ||||
|                   msg[i] = error_message[i + 1]; | ||||
|                msg[i - 1] = '\0'; | ||||
|                error_message = msg; | ||||
|             } | ||||
| 
 | ||||
|             else | ||||
|                error_message += offset; | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          if (png_ptr->flags&PNG_FLAG_STRIP_ERROR_TEXT) | ||||
|          { | ||||
|             msg[0] = '0'; | ||||
|             msg[1] = '\0'; | ||||
|             error_message = msg; | ||||
|          } | ||||
|        } | ||||
|      } | ||||
|    } | ||||
| @ -84,10 +86,10 @@ png_error(png_structp png_ptr, png_const_charp error_message) | ||||
|    png_default_error(png_ptr, error_message); | ||||
| } | ||||
| #else | ||||
| void PNGAPI | ||||
| png_err(png_structp png_ptr) | ||||
| PNG_FUNCTION(void,PNGAPI | ||||
| png_err,(png_structp png_ptr),PNG_NORETURN) | ||||
| { | ||||
|    /* Prior to 1.4.8 the error_fn received a NULL pointer, expressed
 | ||||
|    /* Prior to 1.5.2 the error_fn received a NULL pointer, expressed
 | ||||
|     * erroneously as '\0', instead of the empty string "".  This was | ||||
|     * apparently an error, introduced in libpng-1.2.20, and png_default_error | ||||
|     * will crash in this case. | ||||
| @ -101,6 +103,107 @@ png_err(png_structp png_ptr) | ||||
| } | ||||
| #endif /* PNG_ERROR_TEXT_SUPPORTED */ | ||||
| 
 | ||||
| /* Utility to safely appends strings to a buffer.  This never errors out so
 | ||||
|  * error checking is not required in the caller. | ||||
|  */ | ||||
| size_t | ||||
| png_safecat(png_charp buffer, size_t bufsize, size_t pos, | ||||
|    png_const_charp string) | ||||
| { | ||||
|    if (buffer != NULL && pos < bufsize) | ||||
|    { | ||||
|       if (string != NULL) | ||||
|          while (*string != '\0' && pos < bufsize-1) | ||||
|            buffer[pos++] = *string++; | ||||
| 
 | ||||
|       buffer[pos] = '\0'; | ||||
|    } | ||||
| 
 | ||||
|    return pos; | ||||
| } | ||||
| 
 | ||||
| #if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_TIME_RFC1123_SUPPORTED) | ||||
| /* Utility to dump an unsigned value into a buffer, given a start pointer and
 | ||||
|  * and end pointer (which should point just *beyond* the end of the buffer!) | ||||
|  * Returns the pointer to the start of the formatted string. | ||||
|  */ | ||||
| png_charp | ||||
| png_format_number(png_const_charp start, png_charp end, int format, | ||||
|    png_alloc_size_t number) | ||||
| { | ||||
|    int count = 0;    /* number of digits output */ | ||||
|    int mincount = 1; /* minimum number required */ | ||||
|    int output = 0;   /* digit output (for the fixed point format) */ | ||||
| 
 | ||||
|    *--end = '\0'; | ||||
| 
 | ||||
|    /* This is written so that the loop always runs at least once, even with
 | ||||
|     * number zero. | ||||
|     */ | ||||
|    while (end > start && (number != 0 || count < mincount)) | ||||
|    { | ||||
| 
 | ||||
|       static const char digits[] = "0123456789ABCDEF"; | ||||
| 
 | ||||
|       switch (format) | ||||
|       { | ||||
|          case PNG_NUMBER_FORMAT_fixed: | ||||
|             /* Needs five digits (the fraction) */ | ||||
|             mincount = 5; | ||||
|             if (output || number % 10 != 0) | ||||
|             { | ||||
|                *--end = digits[number % 10]; | ||||
|                output = 1; | ||||
|             } | ||||
|             number /= 10; | ||||
|             break; | ||||
| 
 | ||||
|          case PNG_NUMBER_FORMAT_02u: | ||||
|             /* Expects at least 2 digits. */ | ||||
|             mincount = 2; | ||||
|             /* fall through */ | ||||
| 
 | ||||
|          case PNG_NUMBER_FORMAT_u: | ||||
|             *--end = digits[number % 10]; | ||||
|             number /= 10; | ||||
|             break; | ||||
| 
 | ||||
|          case PNG_NUMBER_FORMAT_02x: | ||||
|             /* This format expects at least two digits */ | ||||
|             mincount = 2; | ||||
|             /* fall through */ | ||||
| 
 | ||||
|          case PNG_NUMBER_FORMAT_x: | ||||
|             *--end = digits[number & 0xf]; | ||||
|             number >>= 4; | ||||
|             break; | ||||
| 
 | ||||
|          default: /* an error */ | ||||
|             number = 0; | ||||
|             break; | ||||
|       } | ||||
| 
 | ||||
|       /* Keep track of the number of digits added */ | ||||
|       ++count; | ||||
| 
 | ||||
|       /* Float a fixed number here: */ | ||||
|       if (format == PNG_NUMBER_FORMAT_fixed) if (count == 5) if (end > start) | ||||
|       { | ||||
|          /* End of the fraction, but maybe nothing was output?  In that case
 | ||||
|           * drop the decimal point.  If the number is a true zero handle that | ||||
|           * here. | ||||
|           */ | ||||
|          if (output) | ||||
|             *--end = '.'; | ||||
|          else if (number == 0) /* and !output */ | ||||
|             *--end = '0'; | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
|    return end; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WARNINGS_SUPPORTED | ||||
| /* This function is called whenever there is a non-fatal error.  This function
 | ||||
|  * should not be changed.  If there is a need to handle warnings differently, | ||||
| @ -115,22 +218,140 @@ png_warning(png_structp png_ptr, png_const_charp warning_message) | ||||
|    { | ||||
| #ifdef PNG_ERROR_NUMBERS_SUPPORTED | ||||
|    if (png_ptr->flags& | ||||
|      (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT)) | ||||
|        (PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT)) | ||||
| #endif | ||||
|      { | ||||
|        if (*warning_message == PNG_LITERAL_SHARP) | ||||
|        { | ||||
|            for (offset = 1; offset < 15; offset++) | ||||
|               if (warning_message[offset] == ' ') | ||||
|       { | ||||
|          if (*warning_message == PNG_LITERAL_SHARP) | ||||
|          { | ||||
|             for (offset = 1; offset < 15; offset++) | ||||
|                if (warning_message[offset] == ' ') | ||||
|                   break; | ||||
|        } | ||||
|      } | ||||
|          } | ||||
|       } | ||||
|    } | ||||
|    if (png_ptr != NULL && png_ptr->warning_fn != NULL) | ||||
|       (*(png_ptr->warning_fn))(png_ptr, warning_message + offset); | ||||
|    else | ||||
|       png_default_warning(png_ptr, warning_message + offset); | ||||
| } | ||||
| 
 | ||||
| /* These functions support 'formatted' warning messages with up to
 | ||||
|  * PNG_WARNING_PARAMETER_COUNT parameters.  In the format string the parameter | ||||
|  * is introduced by @<number>, where 'number' starts at 1.  This follows the | ||||
|  * standard established by X/Open for internationalizable error messages. | ||||
|  */ | ||||
| void | ||||
| png_warning_parameter(png_warning_parameters p, int number, | ||||
|    png_const_charp string) | ||||
| { | ||||
|    if (number > 0 && number <= PNG_WARNING_PARAMETER_COUNT) | ||||
|       (void)png_safecat(p[number-1], (sizeof p[number-1]), 0, string); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| png_warning_parameter_unsigned(png_warning_parameters p, int number, int format, | ||||
|    png_alloc_size_t value) | ||||
| { | ||||
|    char buffer[PNG_NUMBER_BUFFER_SIZE]; | ||||
|    png_warning_parameter(p, number, PNG_FORMAT_NUMBER(buffer, format, value)); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| png_warning_parameter_signed(png_warning_parameters p, int number, int format, | ||||
|    png_int_32 value) | ||||
| { | ||||
|    png_alloc_size_t u; | ||||
|    png_charp str; | ||||
|    char buffer[PNG_NUMBER_BUFFER_SIZE]; | ||||
| 
 | ||||
|    /* Avoid overflow by doing the negate in a png_alloc_size_t: */ | ||||
|    u = (png_alloc_size_t)value; | ||||
|    if (value < 0) | ||||
|       u = ~u + 1; | ||||
| 
 | ||||
|    str = PNG_FORMAT_NUMBER(buffer, format, u); | ||||
| 
 | ||||
|    if (value < 0 && str > buffer) | ||||
|       *--str = '-'; | ||||
| 
 | ||||
|    png_warning_parameter(p, number, str); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| png_formatted_warning(png_structp png_ptr, png_warning_parameters p, | ||||
|    png_const_charp message) | ||||
| { | ||||
|    /* The internal buffer is just 192 bytes - enough for all our messages,
 | ||||
|     * overflow doesn't happen because this code checks!  If someone figures | ||||
|     * out how to send us a message longer than 192 bytes, all that will | ||||
|     * happen is that the message will be truncated appropriately. | ||||
|     */ | ||||
|    size_t i = 0; /* Index in the msg[] buffer: */ | ||||
|    char msg[192]; | ||||
| 
 | ||||
|    /* Each iteration through the following loop writes at most one character
 | ||||
|     * to msg[i++] then returns here to validate that there is still space for | ||||
|     * the trailing '\0'.  It may (in the case of a parameter) read more than | ||||
|     * one character from message[]; it must check for '\0' and continue to the | ||||
|     * test if it finds the end of string. | ||||
|     */ | ||||
|    while (i<(sizeof msg)-1 && *message != '\0') | ||||
|    { | ||||
|       /* '@' at end of string is now just printed (previously it was skipped);
 | ||||
|        * it is an error in the calling code to terminate the string with @. | ||||
|        */ | ||||
|       if (p != NULL && *message == '@' && message[1] != '\0') | ||||
|       { | ||||
|          int parameter_char = *++message; /* Consume the '@' */ | ||||
|          static const char valid_parameters[] = "123456789"; | ||||
|          int parameter = 0; | ||||
| 
 | ||||
|          /* Search for the parameter digit, the index in the string is the
 | ||||
|           * parameter to use. | ||||
|           */ | ||||
|          while (valid_parameters[parameter] != parameter_char && | ||||
|             valid_parameters[parameter] != '\0') | ||||
|             ++parameter; | ||||
| 
 | ||||
|          /* If the parameter digit is out of range it will just get printed. */ | ||||
|          if (parameter < PNG_WARNING_PARAMETER_COUNT) | ||||
|          { | ||||
|             /* Append this parameter */ | ||||
|             png_const_charp parm = p[parameter]; | ||||
|             png_const_charp pend = p[parameter] + (sizeof p[parameter]); | ||||
| 
 | ||||
|             /* No need to copy the trailing '\0' here, but there is no guarantee
 | ||||
|              * that parm[] has been initialized, so there is no guarantee of a | ||||
|              * trailing '\0': | ||||
|              */ | ||||
|             while (i<(sizeof msg)-1 && *parm != '\0' && parm < pend) | ||||
|                msg[i++] = *parm++; | ||||
| 
 | ||||
|             /* Consume the parameter digit too: */ | ||||
|             ++message; | ||||
|             continue; | ||||
|          } | ||||
| 
 | ||||
|          /* else not a parameter and there is a character after the @ sign; just
 | ||||
|           * copy that.  This is known not to be '\0' because of the test above. | ||||
|           */ | ||||
|       } | ||||
| 
 | ||||
|       /* At this point *message can't be '\0', even in the bad parameter case
 | ||||
|        * above where there is a lone '@' at the end of the message string. | ||||
|        */ | ||||
|       msg[i++] = *message++; | ||||
|    } | ||||
| 
 | ||||
|    /* i is always less than (sizeof msg), so: */ | ||||
|    msg[i] = '\0'; | ||||
| 
 | ||||
|    /* And this is the formatted message, it may be larger than
 | ||||
|     * PNG_MAX_ERROR_TEXT, but that is only used for 'chunk' errors and these are | ||||
|     * not (currently) formatted. | ||||
|     */ | ||||
|    png_warning(png_ptr, msg); | ||||
| } | ||||
| #endif /* PNG_WARNINGS_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_BENIGN_ERRORS_SUPPORTED | ||||
| @ -138,9 +359,9 @@ void PNGAPI | ||||
| png_benign_error(png_structp png_ptr, png_const_charp error_message) | ||||
| { | ||||
|   if (png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN) | ||||
|     png_warning(png_ptr, error_message); | ||||
|      png_warning(png_ptr, error_message); | ||||
|   else | ||||
|     png_error(png_ptr, error_message); | ||||
|      png_error(png_ptr, error_message); | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| @ -160,13 +381,16 @@ static PNG_CONST char png_digit[16] = { | ||||
| #if defined(PNG_WARNINGS_SUPPORTED) || defined(PNG_ERROR_TEXT_SUPPORTED) | ||||
| static void /* PRIVATE */ | ||||
| png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp | ||||
|    error_message) | ||||
|     error_message) | ||||
| { | ||||
|    int iout = 0, iin = 0; | ||||
|    png_uint_32 chunk_name = png_ptr->chunk_name; | ||||
|    int iout = 0, ishift = 24; | ||||
| 
 | ||||
|    while (iin < 4) | ||||
|    while (ishift >= 0) | ||||
|    { | ||||
|       int c = png_ptr->chunk_name[iin++]; | ||||
|       int c = (int)(chunk_name >> ishift) & 0xff; | ||||
| 
 | ||||
|       ishift -= 8; | ||||
|       if (isnonalpha(c)) | ||||
|       { | ||||
|          buffer[iout++] = PNG_LITERAL_LEFT_SQUARE_BRACKET; | ||||
| @ -174,20 +398,23 @@ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp | ||||
|          buffer[iout++] = png_digit[c & 0x0f]; | ||||
|          buffer[iout++] = PNG_LITERAL_RIGHT_SQUARE_BRACKET; | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          buffer[iout++] = (png_byte)c; | ||||
|          buffer[iout++] = (char)c; | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
|    if (error_message == NULL) | ||||
|       buffer[iout] = '\0'; | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|       int iin = 0; | ||||
| 
 | ||||
|       buffer[iout++] = ':'; | ||||
|       buffer[iout++] = ' '; | ||||
| 
 | ||||
|       iin = 0; | ||||
|       while (iin < PNG_MAX_ERROR_TEXT-1 && error_message[iin] != '\0') | ||||
|          buffer[iout++] = error_message[iin++]; | ||||
| 
 | ||||
| @ -195,22 +422,24 @@ png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp | ||||
|       buffer[iout] = '\0'; | ||||
|    } | ||||
| } | ||||
| #endif /* PNG_WARNINGS_SUPPORTED || PNG_ERROR_TEXT_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_READ_SUPPORTED | ||||
| void PNGAPI | ||||
| png_chunk_error(png_structp png_ptr, png_const_charp error_message) | ||||
| #if defined(PNG_READ_SUPPORTED) && defined(PNG_ERROR_TEXT_SUPPORTED) | ||||
| PNG_FUNCTION(void,PNGAPI | ||||
| png_chunk_error,(png_structp png_ptr, png_const_charp error_message), | ||||
|    PNG_NORETURN) | ||||
| { | ||||
|    char msg[18+PNG_MAX_ERROR_TEXT]; | ||||
|    if (png_ptr == NULL) | ||||
|      png_error(png_ptr, error_message); | ||||
|       png_error(png_ptr, error_message); | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|      png_format_buffer(png_ptr, msg, error_message); | ||||
|      png_error(png_ptr, msg); | ||||
|       png_format_buffer(png_ptr, msg, error_message); | ||||
|       png_error(png_ptr, msg); | ||||
|    } | ||||
| } | ||||
| #endif /* PNG_READ_SUPPORTED */ | ||||
| #endif /* PNG_WARNINGS_SUPPORTED || PNG_ERROR_TEXT_SUPPORTED */ | ||||
| #endif /* PNG_READ_SUPPORTED && PNG_ERROR_TEXT_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_WARNINGS_SUPPORTED | ||||
| void PNGAPI | ||||
| @ -218,11 +447,12 @@ png_chunk_warning(png_structp png_ptr, png_const_charp warning_message) | ||||
| { | ||||
|    char msg[18+PNG_MAX_ERROR_TEXT]; | ||||
|    if (png_ptr == NULL) | ||||
|      png_warning(png_ptr, warning_message); | ||||
|       png_warning(png_ptr, warning_message); | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|      png_format_buffer(png_ptr, msg, warning_message); | ||||
|      png_warning(png_ptr, msg); | ||||
|       png_format_buffer(png_ptr, msg, warning_message); | ||||
|       png_warning(png_ptr, msg); | ||||
|    } | ||||
| } | ||||
| #endif /* PNG_WARNINGS_SUPPORTED */ | ||||
| @ -232,14 +462,37 @@ png_chunk_warning(png_structp png_ptr, png_const_charp warning_message) | ||||
| void PNGAPI | ||||
| png_chunk_benign_error(png_structp png_ptr, png_const_charp error_message) | ||||
| { | ||||
|   if (png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN) | ||||
|     png_chunk_warning(png_ptr, error_message); | ||||
|   else | ||||
|     png_chunk_error(png_ptr, error_message); | ||||
|    if (png_ptr->flags & PNG_FLAG_BENIGN_ERRORS_WARN) | ||||
|       png_chunk_warning(png_ptr, error_message); | ||||
| 
 | ||||
|    else | ||||
|       png_chunk_error(png_ptr, error_message); | ||||
| } | ||||
| #endif | ||||
| #endif /* PNG_READ_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_ERROR_TEXT_SUPPORTED | ||||
| #ifdef PNG_FLOATING_POINT_SUPPORTED | ||||
| PNG_FUNCTION(void, | ||||
| png_fixed_error,(png_structp png_ptr, png_const_charp name),PNG_NORETURN) | ||||
| { | ||||
| #  define fixed_message "fixed point overflow in " | ||||
| #  define fixed_message_ln ((sizeof fixed_message)-1) | ||||
|    int  iin; | ||||
|    char msg[fixed_message_ln+PNG_MAX_ERROR_TEXT]; | ||||
|    png_memcpy(msg, fixed_message, fixed_message_ln); | ||||
|    iin = 0; | ||||
|    if (name != NULL) while (iin < (PNG_MAX_ERROR_TEXT-1) && name[iin] != 0) | ||||
|    { | ||||
|       msg[fixed_message_ln + iin] = name[iin]; | ||||
|       ++iin; | ||||
|    } | ||||
|    msg[fixed_message_ln + iin] = 0; | ||||
|    png_error(png_ptr, msg); | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_SETJMP_SUPPORTED | ||||
| /* This API only exists if ANSI-C style error handling is used,
 | ||||
|  * otherwise it is necessary for png_default_error to be overridden. | ||||
| @ -252,7 +505,7 @@ png_set_longjmp_fn(png_structp png_ptr, png_longjmp_ptr longjmp_fn, | ||||
|       return NULL; | ||||
| 
 | ||||
|    png_ptr->longjmp_fn = longjmp_fn; | ||||
|    return &png_ptr->jmpbuf; | ||||
|    return &png_ptr->longjmp_buffer; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| @ -261,63 +514,73 @@ png_set_longjmp_fn(png_structp png_ptr, png_longjmp_ptr longjmp_fn, | ||||
|  * function is used by default, or if the program supplies NULL for the | ||||
|  * error function pointer in png_set_error_fn(). | ||||
|  */ | ||||
| static void /* PRIVATE */ | ||||
| png_default_error(png_structp png_ptr, png_const_charp error_message) | ||||
| static PNG_FUNCTION(void /* PRIVATE */, | ||||
| png_default_error,(png_structp png_ptr, png_const_charp error_message), | ||||
|    PNG_NORETURN) | ||||
| { | ||||
| #ifdef PNG_CONSOLE_IO_SUPPORTED | ||||
| #ifdef PNG_ERROR_NUMBERS_SUPPORTED | ||||
|    if (*error_message == PNG_LITERAL_SHARP) | ||||
|    /* Check on NULL only added in 1.5.4 */ | ||||
|    if (error_message != NULL && *error_message == PNG_LITERAL_SHARP) | ||||
|    { | ||||
|      /* Strip "#nnnn " from beginning of error message. */ | ||||
|      int offset; | ||||
|      char error_number[16]; | ||||
|      for (offset = 0; offset<15; offset++) | ||||
|      { | ||||
|       /* Strip "#nnnn " from beginning of error message. */ | ||||
|       int offset; | ||||
|       char error_number[16]; | ||||
|       for (offset = 0; offset<15; offset++) | ||||
|       { | ||||
|          error_number[offset] = error_message[offset + 1]; | ||||
|          if (error_message[offset] == ' ') | ||||
|              break; | ||||
|      } | ||||
|      if ((offset > 1) && (offset < 15)) | ||||
|      { | ||||
|        error_number[offset - 1] = '\0'; | ||||
|        fprintf(stderr, "libpng error no. %s: %s", | ||||
|           error_number, error_message + offset + 1); | ||||
|        fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|      } | ||||
|      else | ||||
|      { | ||||
|        fprintf(stderr, "libpng error: %s, offset=%d", | ||||
|           error_message, offset); | ||||
|        fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|      } | ||||
|             break; | ||||
|       } | ||||
| 
 | ||||
|       if ((offset > 1) && (offset < 15)) | ||||
|       { | ||||
|          error_number[offset - 1] = '\0'; | ||||
|          fprintf(stderr, "libpng error no. %s: %s", | ||||
|              error_number, error_message + offset + 1); | ||||
|          fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          fprintf(stderr, "libpng error: %s, offset=%d", | ||||
|              error_message, offset); | ||||
|          fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|       } | ||||
|    } | ||||
|    else | ||||
| #endif | ||||
|    { | ||||
|       fprintf(stderr, "libpng error: %s", error_message); | ||||
|       fprintf(stderr, "libpng error: %s", error_message ? error_message : | ||||
|          "undefined"); | ||||
|       fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|    } | ||||
| #else | ||||
|    PNG_UNUSED(error_message) /* Make compiler happy */ | ||||
| #endif | ||||
|    png_longjmp(png_ptr, 1); | ||||
| } | ||||
| 
 | ||||
| PNG_FUNCTION(void,PNGAPI | ||||
| png_longjmp,(png_structp png_ptr, int val),PNG_NORETURN) | ||||
| { | ||||
| #ifdef PNG_SETJMP_SUPPORTED | ||||
|    if (png_ptr && png_ptr->longjmp_fn) | ||||
|    { | ||||
| #  ifdef USE_FAR_KEYWORD | ||||
|    { | ||||
|       jmp_buf jmpbuf; | ||||
|       png_memcpy(jmpbuf, png_ptr->jmpbuf, png_sizeof(jmp_buf)); | ||||
|      png_ptr->longjmp_fn(jmpbuf, 1); | ||||
|    } | ||||
|       { | ||||
|          jmp_buf tmp_jmpbuf; | ||||
|          png_memcpy(tmp_jmpbuf, png_ptr->longjmp_buffer, png_sizeof(jmp_buf)); | ||||
|          png_ptr->longjmp_fn(tmp_jmpbuf, val); | ||||
|       } | ||||
| 
 | ||||
| #  else | ||||
|    png_ptr->longjmp_fn(png_ptr->jmpbuf, 1); | ||||
|    png_ptr->longjmp_fn(png_ptr->longjmp_buffer, val); | ||||
| #  endif | ||||
|    } | ||||
| #endif | ||||
|    /* Here if not setjmp support or if png_ptr is null. */ | ||||
|    PNG_ABORT(); | ||||
| #ifndef PNG_CONSOLE_IO_SUPPORTED | ||||
|    PNG_UNUSED(error_message) /* Make compiler happy */ | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| #ifdef PNG_WARNINGS_SUPPORTED | ||||
| @ -333,33 +596,36 @@ png_default_warning(png_structp png_ptr, png_const_charp warning_message) | ||||
| #  ifdef PNG_ERROR_NUMBERS_SUPPORTED | ||||
|    if (*warning_message == PNG_LITERAL_SHARP) | ||||
|    { | ||||
|      int offset; | ||||
|      char warning_number[16]; | ||||
|      for (offset = 0; offset < 15; offset++) | ||||
|      { | ||||
|         warning_number[offset] = warning_message[offset + 1]; | ||||
|         if (warning_message[offset] == ' ') | ||||
|       int offset; | ||||
|       char warning_number[16]; | ||||
|       for (offset = 0; offset < 15; offset++) | ||||
|       { | ||||
|          warning_number[offset] = warning_message[offset + 1]; | ||||
|          if (warning_message[offset] == ' ') | ||||
|             break; | ||||
|      } | ||||
|      if ((offset > 1) && (offset < 15)) | ||||
|      { | ||||
|        warning_number[offset + 1] = '\0'; | ||||
|        fprintf(stderr, "libpng warning no. %s: %s", | ||||
|           warning_number, warning_message + offset); | ||||
|        fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|      } | ||||
|      else | ||||
|      { | ||||
|        fprintf(stderr, "libpng warning: %s", | ||||
|           warning_message); | ||||
|        fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|      } | ||||
|       } | ||||
| 
 | ||||
|       if ((offset > 1) && (offset < 15)) | ||||
|       { | ||||
|          warning_number[offset + 1] = '\0'; | ||||
|          fprintf(stderr, "libpng warning no. %s: %s", | ||||
|              warning_number, warning_message + offset); | ||||
|          fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          fprintf(stderr, "libpng warning: %s", | ||||
|              warning_message); | ||||
|          fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|       } | ||||
|    } | ||||
|    else | ||||
| #  endif | ||||
| 
 | ||||
|    { | ||||
|      fprintf(stderr, "libpng warning: %s", warning_message); | ||||
|      fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|       fprintf(stderr, "libpng warning: %s", warning_message); | ||||
|       fprintf(stderr, PNG_STRING_NEWLINE); | ||||
|    } | ||||
| #else | ||||
|    PNG_UNUSED(warning_message) /* Make compiler happy */ | ||||
| @ -371,17 +637,22 @@ png_default_warning(png_structp png_ptr, png_const_charp warning_message) | ||||
| /* This function is called when the application wants to use another method
 | ||||
|  * of handling errors and warnings.  Note that the error function MUST NOT | ||||
|  * return to the calling routine or serious problems will occur.  The return | ||||
|  * method used in the default routine calls longjmp(png_ptr->jmpbuf, 1) | ||||
|  * method used in the default routine calls longjmp(png_ptr->longjmp_buffer, 1) | ||||
|  */ | ||||
| void PNGAPI | ||||
| png_set_error_fn(png_structp png_ptr, png_voidp error_ptr, | ||||
|    png_error_ptr error_fn, png_error_ptr warning_fn) | ||||
|     png_error_ptr error_fn, png_error_ptr warning_fn) | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->error_ptr = error_ptr; | ||||
|    png_ptr->error_fn = error_fn; | ||||
| #ifdef PNG_WARNINGS_SUPPORTED | ||||
|    png_ptr->warning_fn = warning_fn; | ||||
| #else | ||||
|    PNG_UNUSED(warning_fn) | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -394,6 +665,7 @@ png_get_error_ptr(png_const_structp png_ptr) | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       return NULL; | ||||
| 
 | ||||
|    return ((png_voidp)png_ptr->error_ptr); | ||||
| } | ||||
| 
 | ||||
| @ -404,8 +676,9 @@ png_set_strip_error_numbers(png_structp png_ptr, png_uint_32 strip_mode) | ||||
| { | ||||
|    if (png_ptr != NULL) | ||||
|    { | ||||
|      png_ptr->flags &= | ||||
|        ((~(PNG_FLAG_STRIP_ERROR_NUMBERS|PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode); | ||||
|       png_ptr->flags &= | ||||
|          ((~(PNG_FLAG_STRIP_ERROR_NUMBERS | | ||||
|          PNG_FLAG_STRIP_ERROR_TEXT))&strip_mode); | ||||
|    } | ||||
| } | ||||
| #endif | ||||
|  | ||||
							
								
								
									
										269
									
								
								pnginfo.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										269
									
								
								pnginfo.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,269 @@ | ||||
| 
 | ||||
| /* pnginfo.h - header file for PNG reference library
 | ||||
|  * | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * | ||||
|  * Last changed in libpng 1.5.0 [January 6, 2011] | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
|  /* png_info is a structure that holds the information in a PNG file so
 | ||||
|  * that the application can find out the characteristics of the image. | ||||
|  * If you are reading the file, this structure will tell you what is | ||||
|  * in the PNG file.  If you are writing the file, fill in the information | ||||
|  * you want to put into the PNG file, using png_set_*() functions, then | ||||
|  * call png_write_info(). | ||||
|  * | ||||
|  * The names chosen should be very close to the PNG specification, so | ||||
|  * consult that document for information about the meaning of each field. | ||||
|  * | ||||
|  * With libpng < 0.95, it was only possible to directly set and read the | ||||
|  * the values in the png_info_struct, which meant that the contents and | ||||
|  * order of the values had to remain fixed.  With libpng 0.95 and later, | ||||
|  * however, there are now functions that abstract the contents of | ||||
|  * png_info_struct from the application, so this makes it easier to use | ||||
|  * libpng with dynamic libraries, and even makes it possible to use | ||||
|  * libraries that don't have all of the libpng ancillary chunk-handing | ||||
|  * functionality.  In libpng-1.5.0 this was moved into a separate private | ||||
|  * file that is not visible to applications. | ||||
|  * | ||||
|  * The following members may have allocated storage attached that should be | ||||
|  * cleaned up before the structure is discarded: palette, trans, text, | ||||
|  * pcal_purpose, pcal_units, pcal_params, hist, iccp_name, iccp_profile, | ||||
|  * splt_palettes, scal_unit, row_pointers, and unknowns.   By default, these | ||||
|  * are automatically freed when the info structure is deallocated, if they were | ||||
|  * allocated internally by libpng.  This behavior can be changed by means | ||||
|  * of the png_data_freer() function. | ||||
|  * | ||||
|  * More allocation details: all the chunk-reading functions that | ||||
|  * change these members go through the corresponding png_set_* | ||||
|  * functions.  A function to clear these members is available: see | ||||
|  * png_free_data().  The png_set_* functions do not depend on being | ||||
|  * able to point info structure members to any of the storage they are | ||||
|  * passed (they make their own copies), EXCEPT that the png_set_text | ||||
|  * functions use the same storage passed to them in the text_ptr or | ||||
|  * itxt_ptr structure argument, and the png_set_rows and png_set_unknowns | ||||
|  * functions do not make their own copies. | ||||
|  */ | ||||
| #ifndef PNGINFO_H | ||||
| #define PNGINFO_H | ||||
| 
 | ||||
| struct png_info_def | ||||
| { | ||||
|    /* the following are necessary for every PNG file */ | ||||
|    png_uint_32 width;  /* width of image in pixels (from IHDR) */ | ||||
|    png_uint_32 height; /* height of image in pixels (from IHDR) */ | ||||
|    png_uint_32 valid;  /* valid chunk data (see PNG_INFO_ below) */ | ||||
|    png_size_t rowbytes; /* bytes needed to hold an untransformed row */ | ||||
|    png_colorp palette;      /* array of color values (valid & PNG_INFO_PLTE) */ | ||||
|    png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */ | ||||
|    png_uint_16 num_trans;   /* number of transparent palette color (tRNS) */ | ||||
|    png_byte bit_depth;      /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ | ||||
|    png_byte color_type;     /* see PNG_COLOR_TYPE_ below (from IHDR) */ | ||||
|    /* The following three should have been named *_method not *_type */ | ||||
|    png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ | ||||
|    png_byte filter_type;    /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ | ||||
|    png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ | ||||
| 
 | ||||
|    /* The following is informational only on read, and not used on writes. */ | ||||
|    png_byte channels;       /* number of data channels per pixel (1, 2, 3, 4) */ | ||||
|    png_byte pixel_depth;    /* number of bits per pixel */ | ||||
|    png_byte spare_byte;     /* to align the data, and for future use */ | ||||
|    png_byte signature[8];   /* magic bytes read by libpng from start of file */ | ||||
| 
 | ||||
|    /* The rest of the data is optional.  If you are reading, check the
 | ||||
|     * valid field to see if the information in these are valid.  If you | ||||
|     * are writing, set the valid field to those chunks you want written, | ||||
|     * and initialize the appropriate fields below. | ||||
|     */ | ||||
| 
 | ||||
| #if defined(PNG_gAMA_SUPPORTED) | ||||
|    /* The gAMA chunk describes the gamma characteristics of the system
 | ||||
|     * on which the image was created, normally in the range [1.0, 2.5]. | ||||
|     * Data is valid if (valid & PNG_INFO_gAMA) is non-zero. | ||||
|     */ | ||||
|    png_fixed_point gamma; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_sRGB_SUPPORTED | ||||
|     /* GR-P, 0.96a */ | ||||
|     /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */ | ||||
|    png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_TEXT_SUPPORTED | ||||
|    /* The tEXt, and zTXt chunks contain human-readable textual data in
 | ||||
|     * uncompressed, compressed, and optionally compressed forms, respectively. | ||||
|     * The data in "text" is an array of pointers to uncompressed, | ||||
|     * null-terminated C strings. Each chunk has a keyword that describes the | ||||
|     * textual data contained in that chunk.  Keywords are not required to be | ||||
|     * unique, and the text string may be empty.  Any number of text chunks may | ||||
|     * be in an image. | ||||
|     */ | ||||
|    int num_text; /* number of comments read or comments to write */ | ||||
|    int max_text; /* current size of text array */ | ||||
|    png_textp text; /* array of comments read or comments to write */ | ||||
| #endif /* PNG_TEXT_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_tIME_SUPPORTED | ||||
|    /* The tIME chunk holds the last time the displayed image data was
 | ||||
|     * modified.  See the png_time struct for the contents of this struct. | ||||
|     */ | ||||
|    png_time mod_time; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_sBIT_SUPPORTED | ||||
|    /* The sBIT chunk specifies the number of significant high-order bits
 | ||||
|     * in the pixel data.  Values are in the range [1, bit_depth], and are | ||||
|     * only specified for the channels in the pixel data.  The contents of | ||||
|     * the low-order bits is not specified.  Data is valid if | ||||
|     * (valid & PNG_INFO_sBIT) is non-zero. | ||||
|     */ | ||||
|    png_color_8 sig_bit; /* significant bits in color channels */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_EXPAND_SUPPORTED) || \ | ||||
| defined(PNG_READ_BACKGROUND_SUPPORTED) | ||||
|    /* The tRNS chunk supplies transparency data for paletted images and
 | ||||
|     * other image types that don't need a full alpha channel.  There are | ||||
|     * "num_trans" transparency values for a paletted image, stored in the | ||||
|     * same order as the palette colors, starting from index 0.  Values | ||||
|     * for the data are in the range [0, 255], ranging from fully transparent | ||||
|     * to fully opaque, respectively.  For non-paletted images, there is a | ||||
|     * single color specified that should be treated as fully transparent. | ||||
|     * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. | ||||
|     */ | ||||
|    png_bytep trans_alpha;    /* alpha values for paletted image */ | ||||
|    png_color_16 trans_color; /* transparent color for non-palette image */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) | ||||
|    /* The bKGD chunk gives the suggested image background color if the
 | ||||
|     * display program does not have its own background color and the image | ||||
|     * is needs to composited onto a background before display.  The colors | ||||
|     * in "background" are normally in the same color space/depth as the | ||||
|     * pixel data.  Data is valid if (valid & PNG_INFO_bKGD) is non-zero. | ||||
|     */ | ||||
|    png_color_16 background; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_oFFs_SUPPORTED | ||||
|    /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards
 | ||||
|     * and downwards from the top-left corner of the display, page, or other | ||||
|     * application-specific co-ordinate space.  See the PNG_OFFSET_ defines | ||||
|     * below for the unit types.  Valid if (valid & PNG_INFO_oFFs) non-zero. | ||||
|     */ | ||||
|    png_int_32 x_offset; /* x offset on page */ | ||||
|    png_int_32 y_offset; /* y offset on page */ | ||||
|    png_byte offset_unit_type; /* offset units type */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_pHYs_SUPPORTED | ||||
|    /* The pHYs chunk gives the physical pixel density of the image for
 | ||||
|     * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ | ||||
|     * defines below).  Data is valid if (valid & PNG_INFO_pHYs) is non-zero. | ||||
|     */ | ||||
|    png_uint_32 x_pixels_per_unit; /* horizontal pixel density */ | ||||
|    png_uint_32 y_pixels_per_unit; /* vertical pixel density */ | ||||
|    png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_hIST_SUPPORTED | ||||
|    /* The hIST chunk contains the relative frequency or importance of the
 | ||||
|     * various palette entries, so that a viewer can intelligently select a | ||||
|     * reduced-color palette, if required.  Data is an array of "num_palette" | ||||
|     * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) | ||||
|     * is non-zero. | ||||
|     */ | ||||
|    png_uint_16p hist; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_cHRM_SUPPORTED | ||||
|    /* The cHRM chunk describes the CIE color characteristics of the monitor
 | ||||
|     * on which the PNG was created.  This data allows the viewer to do gamut | ||||
|     * mapping of the input image to ensure that the viewer sees the same | ||||
|     * colors in the image as the creator.  Values are in the range | ||||
|     * [0.0, 0.8].  Data valid if (valid & PNG_INFO_cHRM) non-zero. | ||||
|     */ | ||||
|    png_fixed_point x_white; | ||||
|    png_fixed_point y_white; | ||||
|    png_fixed_point x_red; | ||||
|    png_fixed_point y_red; | ||||
|    png_fixed_point x_green; | ||||
|    png_fixed_point y_green; | ||||
|    png_fixed_point x_blue; | ||||
|    png_fixed_point y_blue; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_pCAL_SUPPORTED | ||||
|    /* The pCAL chunk describes a transformation between the stored pixel
 | ||||
|     * values and original physical data values used to create the image. | ||||
|     * The integer range [0, 2^bit_depth - 1] maps to the floating-point | ||||
|     * range given by [pcal_X0, pcal_X1], and are further transformed by a | ||||
|     * (possibly non-linear) transformation function given by "pcal_type" | ||||
|     * and "pcal_params" into "pcal_units".  Please see the PNG_EQUATION_ | ||||
|     * defines below, and the PNG-Group's PNG extensions document for a | ||||
|     * complete description of the transformations and how they should be | ||||
|     * implemented, and for a description of the ASCII parameter strings. | ||||
|     * Data values are valid if (valid & PNG_INFO_pCAL) non-zero. | ||||
|     */ | ||||
|    png_charp pcal_purpose;  /* pCAL chunk description string */ | ||||
|    png_int_32 pcal_X0;      /* minimum value */ | ||||
|    png_int_32 pcal_X1;      /* maximum value */ | ||||
|    png_charp pcal_units;    /* Latin-1 string giving physical units */ | ||||
|    png_charpp pcal_params;  /* ASCII strings containing parameter values */ | ||||
|    png_byte pcal_type;      /* equation type (see PNG_EQUATION_ below) */ | ||||
|    png_byte pcal_nparams;   /* number of parameters given in pcal_params */ | ||||
| #endif | ||||
| 
 | ||||
| /* New members added in libpng-1.0.6 */ | ||||
|    png_uint_32 free_me;     /* flags items libpng is responsible for freeing */ | ||||
| 
 | ||||
| #if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \ | ||||
|  defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED) | ||||
|    /* Storage for unknown chunks that the library doesn't recognize. */ | ||||
|    png_unknown_chunkp unknown_chunks; | ||||
|    int unknown_chunks_num; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_iCCP_SUPPORTED | ||||
|    /* iCCP chunk data. */ | ||||
|    png_charp iccp_name;     /* profile name */ | ||||
|    png_bytep iccp_profile;  /* International Color Consortium profile data */ | ||||
|    png_uint_32 iccp_proflen;  /* ICC profile data length */ | ||||
|    png_byte iccp_compression; /* Always zero */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_sPLT_SUPPORTED | ||||
|    /* Data on sPLT chunks (there may be more than one). */ | ||||
|    png_sPLT_tp splt_palettes; | ||||
|    png_uint_32 splt_palettes_num; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_sCAL_SUPPORTED | ||||
|    /* The sCAL chunk describes the actual physical dimensions of the
 | ||||
|     * subject matter of the graphic.  The chunk contains a unit specification | ||||
|     * a byte value, and two ASCII strings representing floating-point | ||||
|     * values.  The values are width and height corresponsing to one pixel | ||||
|     * in the image.  Data values are valid if (valid & PNG_INFO_sCAL) is | ||||
|     * non-zero. | ||||
|     */ | ||||
|    png_byte scal_unit;         /* unit of physical scale */ | ||||
|    png_charp scal_s_width;     /* string containing height */ | ||||
|    png_charp scal_s_height;    /* string containing width */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_INFO_IMAGE_SUPPORTED | ||||
|    /* Memory has been allocated if (valid & PNG_ALLOCATED_INFO_ROWS)
 | ||||
|       non-zero */ | ||||
|    /* Data valid if (valid & PNG_INFO_IDAT) non-zero */ | ||||
|    png_bytepp row_pointers;        /* the image bits */ | ||||
| #endif | ||||
| 
 | ||||
| }; | ||||
| #endif /* PNGINFO_H */ | ||||
							
								
								
									
										276
									
								
								pngmem.c
									
									
									
									
									
								
							
							
						
						
									
										276
									
								
								pngmem.c
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngmem.c - stub functions for memory allocation
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.6 [April 8, 2011] | ||||
|  * Last changed in libpng 1.5.7 [December 15, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -17,52 +17,56 @@ | ||||
|  * identify the replacement functions. | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_PEDANTIC_WARNINGS | ||||
| #include "png.h" | ||||
| #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | ||||
| #include "pngpriv.h" | ||||
| 
 | ||||
| #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | ||||
| 
 | ||||
| /* Borland DOS special memory handler */ | ||||
| #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) | ||||
| /* If you change this, be sure to change the one in png.h also */ | ||||
| 
 | ||||
| /* Allocate memory for a png_struct.  The malloc and memset can be replaced
 | ||||
|    by a single call to calloc() if this is thought to improve performance. */ | ||||
| png_voidp /* PRIVATE */ | ||||
| png_create_struct(int type) | ||||
| PNG_FUNCTION(png_voidp /* PRIVATE */, | ||||
| png_create_struct,(int type),PNG_ALLOCATED) | ||||
| { | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    return (png_create_struct_2(type, NULL, NULL)); | ||||
| } | ||||
| 
 | ||||
| /* Alternate version of png_create_struct, for use with user-defined malloc. */ | ||||
| png_voidp /* PRIVATE */ | ||||
| png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr) | ||||
| PNG_FUNCTION(png_voidp /* PRIVATE */, | ||||
| png_create_struct_2,(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr), | ||||
|    PNG_ALLOCATED) | ||||
| { | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
|    png_size_t size; | ||||
|    png_voidp struct_ptr; | ||||
| 
 | ||||
|    if (type == PNG_STRUCT_INFO) | ||||
|       size = png_sizeof(png_info); | ||||
| 
 | ||||
|    else if (type == PNG_STRUCT_PNG) | ||||
|       size = png_sizeof(png_struct); | ||||
| 
 | ||||
|    else | ||||
|       return (png_get_copyright(NULL)); | ||||
| 
 | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    if (malloc_fn != NULL) | ||||
|    { | ||||
|       png_struct dummy_struct; | ||||
|       png_structp png_ptr = &dummy_struct; | ||||
|       png_ptr->mem_ptr=mem_ptr; | ||||
|       struct_ptr = (*(malloc_fn))(png_ptr, (png_uint_32)size); | ||||
|       memset(&dummy_struct, 0, sizeof dummy_struct); | ||||
|       dummy_struct.mem_ptr=mem_ptr; | ||||
|       struct_ptr = (*(malloc_fn))(&dummy_struct, (png_alloc_size_t)size); | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
|    struct_ptr = (png_voidp)farmalloc(size); | ||||
|    if (struct_ptr != NULL) | ||||
|       png_memset(struct_ptr, 0, size); | ||||
| 
 | ||||
|    return (struct_ptr); | ||||
| } | ||||
| 
 | ||||
| @ -70,7 +74,7 @@ png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr) | ||||
| void /* PRIVATE */ | ||||
| png_destroy_struct(png_voidp struct_ptr) | ||||
| { | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    png_destroy_struct_2(struct_ptr, NULL, NULL); | ||||
| } | ||||
| 
 | ||||
| @ -79,19 +83,20 @@ void /* PRIVATE */ | ||||
| png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn, | ||||
|     png_voidp mem_ptr) | ||||
| { | ||||
| #endif | ||||
| #  endif | ||||
|    if (struct_ptr != NULL) | ||||
|    { | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|       if (free_fn != NULL) | ||||
|       { | ||||
|          png_struct dummy_struct; | ||||
|          png_structp png_ptr = &dummy_struct; | ||||
|          png_ptr->mem_ptr=mem_ptr; | ||||
|          (*(free_fn))(png_ptr, struct_ptr); | ||||
|          memset(&dummy_struct, 0, sizeof dummy_struct); | ||||
|          dummy_struct.mem_ptr=mem_ptr; | ||||
|          (*(free_fn))(&dummy_struct, struct_ptr); | ||||
|          return; | ||||
|       } | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| 
 | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
|       farfree (struct_ptr); | ||||
|    } | ||||
| } | ||||
| @ -115,55 +120,62 @@ png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn, | ||||
|  * result, we would be truncating potentially larger memory requests | ||||
|  * (which should cause a fatal error) and introducing major problems. | ||||
|  */ | ||||
| png_voidp PNGAPI | ||||
| png_calloc(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_calloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ret; | ||||
| 
 | ||||
|    ret = (png_malloc(png_ptr, size)); | ||||
| 
 | ||||
|    if (ret != NULL) | ||||
|       png_memset(ret,0,(png_size_t)size); | ||||
| 
 | ||||
|    return (ret); | ||||
| } | ||||
| 
 | ||||
| png_voidp PNGAPI | ||||
| png_malloc(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_malloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ret; | ||||
| 
 | ||||
|    if (png_ptr == NULL || size == 0) | ||||
|       return (NULL); | ||||
| 
 | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    if (png_ptr->malloc_fn != NULL) | ||||
|       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size)); | ||||
|       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size)); | ||||
| 
 | ||||
|    else | ||||
|       ret = (png_malloc_default(png_ptr, size)); | ||||
| 
 | ||||
|    if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|        png_error(png_ptr, "Out of memory"); | ||||
| 
 | ||||
|    return (ret); | ||||
| } | ||||
| 
 | ||||
| png_voidp PNGAPI | ||||
| png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_malloc_default,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ret; | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| 
 | ||||
|    if (png_ptr == NULL || size == 0) | ||||
|       return (NULL); | ||||
| 
 | ||||
| #ifdef PNG_MAX_MALLOC_64K | ||||
| #  ifdef PNG_MAX_MALLOC_64K | ||||
|    if (size > (png_uint_32)65536L) | ||||
|    { | ||||
|       png_warning(png_ptr, "Cannot Allocate > 64K"); | ||||
|       ret = NULL; | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
| #endif | ||||
| #  endif | ||||
| 
 | ||||
|    if (size != (size_t)size) | ||||
|       ret = NULL; | ||||
| 
 | ||||
|    else if (size == (png_uint_32)65536L) | ||||
|    { | ||||
|       if (png_ptr->offset_table == NULL) | ||||
| @ -175,8 +187,9 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
|             int num_blocks; | ||||
|             png_uint_32 total_size; | ||||
|             png_bytep table; | ||||
|             int i; | ||||
|             int i, mem_level, window_bits; | ||||
|             png_byte huge * hptr; | ||||
|             int window_bits | ||||
| 
 | ||||
|             if (ret != NULL) | ||||
|             { | ||||
| @ -184,12 +197,23 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
|                ret = NULL; | ||||
|             } | ||||
| 
 | ||||
|             if (png_ptr->zlib_window_bits > 14) | ||||
|                num_blocks = (int)(1 << (png_ptr->zlib_window_bits - 14)); | ||||
|             window_bits = | ||||
|                 png_ptr->zlib_window_bits >= png_ptr->zlib_text_window_bits ? | ||||
|                 png_ptr->zlib_window_bits : png_ptr->zlib_text_window_bits; | ||||
| 
 | ||||
|             if (window_bits > 14) | ||||
|                num_blocks = (int)(1 << (window_bits - 14)); | ||||
| 
 | ||||
|             else | ||||
|                num_blocks = 1; | ||||
|             if (png_ptr->zlib_mem_level >= 7) | ||||
|                num_blocks += (int)(1 << (png_ptr->zlib_mem_level - 7)); | ||||
| 
 | ||||
|             mem_level = | ||||
|                 png_ptr->zlib_mem_level >= png_ptr->zlib_text_mem_level ? | ||||
|                 png_ptr->zlib_mem_level : png_ptr->zlib_text_mem_level; | ||||
| 
 | ||||
|             if (mem_level >= 7) | ||||
|                num_blocks += (int)(1 << (mem_level - 7)); | ||||
| 
 | ||||
|             else | ||||
|                num_blocks++; | ||||
| 
 | ||||
| @ -199,25 +223,27 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
| 
 | ||||
|             if (table == NULL) | ||||
|             { | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #  ifndef PNG_USER_MEM_SUPPORTED | ||||
|                if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|                   png_error(png_ptr, "Out Of Memory"); /* Note "O", "M" */ | ||||
| 
 | ||||
|                else | ||||
|                   png_warning(png_ptr, "Out Of Memory"); | ||||
| #endif | ||||
| #  endif | ||||
|                return (NULL); | ||||
|             } | ||||
| 
 | ||||
|             if ((png_size_t)table & 0xfff0) | ||||
|             { | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #  ifndef PNG_USER_MEM_SUPPORTED | ||||
|                if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|                   png_error(png_ptr, | ||||
|                     "Farmalloc didn't return normalized pointer"); | ||||
| 
 | ||||
|                else | ||||
|                   png_warning(png_ptr, | ||||
|                     "Farmalloc didn't return normalized pointer"); | ||||
| #endif | ||||
| #  endif | ||||
|                return (NULL); | ||||
|             } | ||||
| 
 | ||||
| @ -227,12 +253,13 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
| 
 | ||||
|             if (png_ptr->offset_table_ptr == NULL) | ||||
|             { | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #  ifndef PNG_USER_MEM_SUPPORTED | ||||
|                if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|                   png_error(png_ptr, "Out Of memory"); /* Note "O", "m" */ | ||||
| 
 | ||||
|                else | ||||
|                   png_warning(png_ptr, "Out Of memory"); | ||||
| #endif | ||||
| #  endif | ||||
|                return (NULL); | ||||
|             } | ||||
| 
 | ||||
| @ -242,6 +269,7 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
|                hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L); | ||||
|                hptr = hptr + 16L;  /* "hptr += 16L" fails on Turbo C++ 3.0 */ | ||||
|             } | ||||
| 
 | ||||
|             for (i = 0; i < num_blocks; i++) | ||||
|             { | ||||
|                png_ptr->offset_table_ptr[i] = (png_bytep)hptr; | ||||
| @ -256,29 +284,32 @@ png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
| 
 | ||||
|       if (png_ptr->offset_table_count >= png_ptr->offset_table_number) | ||||
|       { | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #  ifndef PNG_USER_MEM_SUPPORTED | ||||
|          if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|             png_error(png_ptr, "Out of Memory"); /* Note "o" and "M" */ | ||||
|             png_error(png_ptr, "Out of Memory"); /* Note "O" and "M" */ | ||||
| 
 | ||||
|          else | ||||
|             png_warning(png_ptr, "Out of Memory"); | ||||
| #endif | ||||
| #  endif | ||||
|          return (NULL); | ||||
|       } | ||||
| 
 | ||||
|       ret = png_ptr->offset_table_ptr[png_ptr->offset_table_count++]; | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|       ret = farmalloc(size); | ||||
| 
 | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #  ifndef PNG_USER_MEM_SUPPORTED | ||||
|    if (ret == NULL) | ||||
|    { | ||||
|       if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|          png_error(png_ptr, "Out of memory"); /* Note "o" and "m" */ | ||||
| 
 | ||||
|       else | ||||
|          png_warning(png_ptr, "Out of memory"); /* Note "o" and "m" */ | ||||
|    } | ||||
| #endif | ||||
| #  endif | ||||
| 
 | ||||
|    return (ret); | ||||
| } | ||||
| @ -293,12 +324,13 @@ png_free(png_structp png_ptr, png_voidp ptr) | ||||
|    if (png_ptr == NULL || ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    if (png_ptr->free_fn != NULL) | ||||
|    { | ||||
|       (*(png_ptr->free_fn))(png_ptr, ptr); | ||||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|       png_free_default(png_ptr, ptr); | ||||
| } | ||||
| @ -306,7 +338,7 @@ png_free(png_structp png_ptr, png_voidp ptr) | ||||
| void PNGAPI | ||||
| png_free_default(png_structp png_ptr, png_voidp ptr) | ||||
| { | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| 
 | ||||
|    if (png_ptr == NULL || ptr == NULL) | ||||
|       return; | ||||
| @ -334,9 +366,7 @@ png_free_default(png_structp png_ptr, png_voidp ptr) | ||||
|    } | ||||
| 
 | ||||
|    if (ptr != NULL) | ||||
|    { | ||||
|       farfree(ptr); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| #else /* Not the Borland DOS special memory handler */ | ||||
| @ -344,52 +374,58 @@ png_free_default(png_structp png_ptr, png_voidp ptr) | ||||
| /* Allocate memory for a png_struct or a png_info.  The malloc and
 | ||||
|    memset can be replaced by a single call to calloc() if this is thought | ||||
|    to improve performance noticably. */ | ||||
| png_voidp /* PRIVATE */ | ||||
| png_create_struct(int type) | ||||
| PNG_FUNCTION(png_voidp /* PRIVATE */, | ||||
| png_create_struct,(int type),PNG_ALLOCATED) | ||||
| { | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    return (png_create_struct_2(type, NULL, NULL)); | ||||
| } | ||||
| 
 | ||||
| /* Allocate memory for a png_struct or a png_info.  The malloc and
 | ||||
|    memset can be replaced by a single call to calloc() if this is thought | ||||
|    to improve performance noticably. */ | ||||
| png_voidp /* PRIVATE */ | ||||
| png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr) | ||||
| PNG_FUNCTION(png_voidp /* PRIVATE */, | ||||
| png_create_struct_2,(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr), | ||||
|    PNG_ALLOCATED) | ||||
| { | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
|    png_size_t size; | ||||
|    png_voidp struct_ptr; | ||||
| 
 | ||||
|    if (type == PNG_STRUCT_INFO) | ||||
|       size = png_sizeof(png_info); | ||||
| 
 | ||||
|    else if (type == PNG_STRUCT_PNG) | ||||
|       size = png_sizeof(png_struct); | ||||
| 
 | ||||
|    else | ||||
|       return (NULL); | ||||
| 
 | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    if (malloc_fn != NULL) | ||||
|    { | ||||
|       png_struct dummy_struct; | ||||
|       png_structp png_ptr = &dummy_struct; | ||||
|       png_ptr->mem_ptr=mem_ptr; | ||||
|       struct_ptr = (*(malloc_fn))(png_ptr, size); | ||||
| 
 | ||||
|       if (struct_ptr != NULL) | ||||
|          png_memset(struct_ptr, 0, size); | ||||
| 
 | ||||
|       return (struct_ptr); | ||||
|    } | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| 
 | ||||
| #if defined(__TURBOC__) && !defined(__FLAT__) | ||||
| #  if defined(__TURBOC__) && !defined(__FLAT__) | ||||
|    struct_ptr = (png_voidp)farmalloc(size); | ||||
| #else | ||||
| # if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
| #  else | ||||
| #    if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
|    struct_ptr = (png_voidp)halloc(size, 1); | ||||
| # else | ||||
| #    else | ||||
|    struct_ptr = (png_voidp)malloc(size); | ||||
| # endif | ||||
| #endif | ||||
| #    endif | ||||
| #  endif | ||||
| 
 | ||||
|    if (struct_ptr != NULL) | ||||
|       png_memset(struct_ptr, 0, size); | ||||
| 
 | ||||
| @ -401,7 +437,7 @@ png_create_struct_2(int type, png_malloc_ptr malloc_fn, png_voidp mem_ptr) | ||||
| void /* PRIVATE */ | ||||
| png_destroy_struct(png_voidp struct_ptr) | ||||
| { | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    png_destroy_struct_2(struct_ptr, NULL, NULL); | ||||
| } | ||||
| 
 | ||||
| @ -410,10 +446,10 @@ void /* PRIVATE */ | ||||
| png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn, | ||||
|     png_voidp mem_ptr) | ||||
| { | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
|    if (struct_ptr != NULL) | ||||
|    { | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|       if (free_fn != NULL) | ||||
|       { | ||||
|          png_struct dummy_struct; | ||||
| @ -422,16 +458,19 @@ png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn, | ||||
|          (*(free_fn))(png_ptr, struct_ptr); | ||||
|          return; | ||||
|       } | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #if defined(__TURBOC__) && !defined(__FLAT__) | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  if defined(__TURBOC__) && !defined(__FLAT__) | ||||
|       farfree(struct_ptr); | ||||
| #else | ||||
| # if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
| 
 | ||||
| #  else | ||||
| #    if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
|       hfree(struct_ptr); | ||||
| # else | ||||
| 
 | ||||
| #    else | ||||
|       free(struct_ptr); | ||||
| # endif | ||||
| #endif | ||||
| 
 | ||||
| #    endif | ||||
| #  endif | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| @ -442,80 +481,92 @@ png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn, | ||||
|  * have the ability to do that. | ||||
|  */ | ||||
| 
 | ||||
| png_voidp PNGAPI | ||||
| png_calloc(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_calloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ret; | ||||
| 
 | ||||
|    ret = (png_malloc(png_ptr, size)); | ||||
| 
 | ||||
|    if (ret != NULL) | ||||
|       png_memset(ret,0,(png_size_t)size); | ||||
| 
 | ||||
|    return (ret); | ||||
| } | ||||
| 
 | ||||
| png_voidp PNGAPI | ||||
| png_malloc(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_malloc,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ret; | ||||
| 
 | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    if (png_ptr == NULL || size == 0) | ||||
|       return (NULL); | ||||
| 
 | ||||
|    if (png_ptr->malloc_fn != NULL) | ||||
|       ret = ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, (png_size_t)size)); | ||||
| 
 | ||||
|    else | ||||
|       ret = (png_malloc_default(png_ptr, size)); | ||||
| 
 | ||||
|    if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|        png_error(png_ptr, "Out of Memory"); | ||||
| 
 | ||||
|    return (ret); | ||||
| } | ||||
| 
 | ||||
| png_voidp PNGAPI | ||||
| png_malloc_default(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_malloc_default,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ret; | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| 
 | ||||
|    if (png_ptr == NULL || size == 0) | ||||
|       return (NULL); | ||||
| 
 | ||||
| #ifdef PNG_MAX_MALLOC_64K | ||||
| #  ifdef PNG_MAX_MALLOC_64K | ||||
|    if (size > (png_uint_32)65536L) | ||||
|    { | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #    ifndef PNG_USER_MEM_SUPPORTED | ||||
|       if ((png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|          png_error(png_ptr, "Cannot Allocate > 64K"); | ||||
| 
 | ||||
|       else | ||||
| #endif | ||||
| #    endif | ||||
|          return NULL; | ||||
|    } | ||||
| #endif | ||||
| #  endif | ||||
| 
 | ||||
|    /* Check for overflow */ | ||||
| #if defined(__TURBOC__) && !defined(__FLAT__) | ||||
| #  if defined(__TURBOC__) && !defined(__FLAT__) | ||||
| 
 | ||||
|    if (size != (unsigned long)size) | ||||
|       ret = NULL; | ||||
| 
 | ||||
|    else | ||||
|       ret = farmalloc(size); | ||||
| #else | ||||
| # if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
| 
 | ||||
| #  else | ||||
| #    if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
|    if (size != (unsigned long)size) | ||||
|       ret = NULL; | ||||
| 
 | ||||
|    else | ||||
|       ret = halloc(size, 1); | ||||
| # else | ||||
| 
 | ||||
| #    else | ||||
|    if (size != (size_t)size) | ||||
|       ret = NULL; | ||||
| 
 | ||||
|    else | ||||
|       ret = malloc((size_t)size); | ||||
| # endif | ||||
| #endif | ||||
| #    endif | ||||
| #  endif | ||||
| 
 | ||||
| #ifndef PNG_USER_MEM_SUPPORTED | ||||
| #  ifndef PNG_USER_MEM_SUPPORTED | ||||
|    if (ret == NULL && (png_ptr->flags&PNG_FLAG_MALLOC_NULL_MEM_OK) == 0) | ||||
|       png_error(png_ptr, "Out of Memory"); | ||||
| #endif | ||||
| #  endif | ||||
| 
 | ||||
|    return (ret); | ||||
| } | ||||
| @ -529,34 +580,38 @@ png_free(png_structp png_ptr, png_voidp ptr) | ||||
|    if (png_ptr == NULL || ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
| #  ifdef PNG_USER_MEM_SUPPORTED | ||||
|    if (png_ptr->free_fn != NULL) | ||||
|    { | ||||
|       (*(png_ptr->free_fn))(png_ptr, ptr); | ||||
|       return; | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|       png_free_default(png_ptr, ptr); | ||||
| } | ||||
| 
 | ||||
| void PNGAPI | ||||
| png_free_default(png_structp png_ptr, png_voidp ptr) | ||||
| { | ||||
|    if (png_ptr == NULL || ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| #  endif /* PNG_USER_MEM_SUPPORTED */ | ||||
| 
 | ||||
| #if defined(__TURBOC__) && !defined(__FLAT__) | ||||
| #  if defined(__TURBOC__) && !defined(__FLAT__) | ||||
|    farfree(ptr); | ||||
| #else | ||||
| # if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
|    hfree(ptr); | ||||
| # else | ||||
|    free(ptr); | ||||
| # endif | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| #  else | ||||
| #    if defined(_MSC_VER) && defined(MAXSEG_64K) | ||||
|    hfree(ptr); | ||||
| 
 | ||||
| #    else | ||||
|    free(ptr); | ||||
| 
 | ||||
| #    endif | ||||
| #  endif | ||||
| } | ||||
| #endif /* Not Borland DOS special memory handler */ | ||||
| 
 | ||||
| /* This function was added at libpng version 1.2.3.  The png_malloc_warn()
 | ||||
| @ -564,8 +619,8 @@ png_free_default(png_structp png_ptr, png_voidp ptr) | ||||
|  * instead of issuing a png_error, if it fails to allocate the requested | ||||
|  * memory. | ||||
|  */ | ||||
| png_voidp PNGAPI | ||||
| png_malloc_warn(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNG_FUNCTION(png_voidp,PNGAPI | ||||
| png_malloc_warn,(png_structp png_ptr, png_alloc_size_t size),PNG_ALLOCATED) | ||||
| { | ||||
|    png_voidp ptr; | ||||
|    png_uint_32 save_flags; | ||||
| @ -605,6 +660,7 @@ png_get_mem_ptr(png_const_structp png_ptr) | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       return (NULL); | ||||
| 
 | ||||
|    return ((png_voidp)png_ptr->mem_ptr); | ||||
| } | ||||
| #endif /* PNG_USER_MEM_SUPPORTED */ | ||||
|  | ||||
							
								
								
									
										986
									
								
								pngpread.c
									
									
									
									
									
								
							
							
						
						
									
										986
									
								
								pngpread.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										37
									
								
								pngrio.c
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								pngrio.c
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngrio.c - functions for data input
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.6 [January 14, 2011] | ||||
|  * Last changed in libpng 1.5.0 [January 6, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -18,11 +18,10 @@ | ||||
|  * libpng use it at run time with png_set_read_fn(...). | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_PEDANTIC_WARNINGS | ||||
| #include "png.h" | ||||
| #ifdef PNG_READ_SUPPORTED | ||||
| #include "pngpriv.h" | ||||
| 
 | ||||
| #ifdef PNG_READ_SUPPORTED | ||||
| 
 | ||||
| /* Read the data from whatever input you are using.  The default routine
 | ||||
|  * reads from a file pointer.  Note that this routine sometimes gets called | ||||
|  * with very small lengths, so you should implement some kind of simple | ||||
| @ -36,6 +35,7 @@ png_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| 
 | ||||
|    if (png_ptr->read_data_fn != NULL) | ||||
|       (*(png_ptr->read_data_fn))(png_ptr, data, length); | ||||
| 
 | ||||
|    else | ||||
|       png_error(png_ptr, "Call to NULL read function"); | ||||
| } | ||||
| @ -46,14 +46,15 @@ png_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|  * read_data function and use it at run time with png_set_read_fn(), rather | ||||
|  * than changing the library. | ||||
|  */ | ||||
| #ifndef USE_FAR_KEYWORD | ||||
| void PNGAPI | ||||
| #  ifndef USE_FAR_KEYWORD | ||||
| void PNGCBAPI | ||||
| png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_size_t check; | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    /* fread() returns 0 on error, so it is OK to store this in a png_size_t
 | ||||
|     * instead of an int, which is what fread() actually returns. | ||||
|     */ | ||||
| @ -62,7 +63,7 @@ png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|    if (check != length) | ||||
|       png_error(png_ptr, "Read Error"); | ||||
| } | ||||
| #else | ||||
| #  else | ||||
| /* This is the model-independent version. Since the standard I/O library
 | ||||
|    can't handle far buffers in the medium and small models, we have to copy | ||||
|    the data. | ||||
| @ -71,7 +72,7 @@ png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| #define NEAR_BUF_SIZE 1024 | ||||
| #define MIN(a,b) (a <= b ? a : b) | ||||
| 
 | ||||
| static void PNGAPI | ||||
| static void PNGCBAPI | ||||
| png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_size_t check; | ||||
| @ -80,46 +81,57 @@ png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    /* Check if data really is near. If so, use usual code. */ | ||||
|    n_data = (png_byte *)CVT_PTR_NOCHECK(data); | ||||
|    io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr); | ||||
| 
 | ||||
|    if ((png_bytep)n_data == data) | ||||
|    { | ||||
|       check = fread(n_data, 1, length, io_ptr); | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|       png_byte buf[NEAR_BUF_SIZE]; | ||||
|       png_size_t read, remaining, err; | ||||
|       check = 0; | ||||
|       remaining = length; | ||||
| 
 | ||||
|       do | ||||
|       { | ||||
|          read = MIN(NEAR_BUF_SIZE, remaining); | ||||
|          err = fread(buf, 1, read, io_ptr); | ||||
|          png_memcpy(data, buf, read); /* copy far buffer to near buffer */ | ||||
| 
 | ||||
|          if (err != read) | ||||
|             break; | ||||
| 
 | ||||
|          else | ||||
|             check += err; | ||||
| 
 | ||||
|          data += read; | ||||
|          remaining -= read; | ||||
|       } | ||||
|       while (remaining != 0); | ||||
|    } | ||||
| 
 | ||||
|    if ((png_uint_32)check != (png_uint_32)length) | ||||
|       png_error(png_ptr, "read Error"); | ||||
| } | ||||
| #endif | ||||
| #  endif | ||||
| #endif | ||||
| 
 | ||||
| /* This function allows the application to supply a new input function
 | ||||
|  * for libpng if standard C streams aren't being used. | ||||
|  * | ||||
|  * This function takes as its arguments: | ||||
|  * | ||||
|  * png_ptr      - pointer to a png input data structure | ||||
|  * | ||||
|  * io_ptr       - pointer to user supplied structure containing info about | ||||
|  *                the input functions.  May be NULL. | ||||
|  * | ||||
|  * read_data_fn - pointer to a new input function that takes as its | ||||
|  *                arguments a pointer to a png_struct, a pointer to | ||||
|  *                a location where input data can be stored, and a 32-bit | ||||
| @ -135,11 +147,13 @@ png_set_read_fn(png_structp png_ptr, png_voidp io_ptr, | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->io_ptr = io_ptr; | ||||
| 
 | ||||
| #ifdef PNG_STDIO_SUPPORTED | ||||
|    if (read_data_fn != NULL) | ||||
|       png_ptr->read_data_fn = read_data_fn; | ||||
| 
 | ||||
|    else | ||||
|       png_ptr->read_data_fn = png_default_read_data; | ||||
| #else | ||||
| @ -151,9 +165,8 @@ png_set_read_fn(png_structp png_ptr, png_voidp io_ptr, | ||||
|    { | ||||
|       png_ptr->write_data_fn = NULL; | ||||
|       png_warning(png_ptr, | ||||
|          "It's an error to set both read_data_fn and write_data_fn in the "); | ||||
|       png_warning(png_ptr, | ||||
|          "same structure.  Resetting write_data_fn to NULL"); | ||||
|           "Can't set both read_data_fn and write_data_fn in the" | ||||
|           " same structure"); | ||||
|    } | ||||
| 
 | ||||
| #ifdef PNG_WRITE_FLUSH_SUPPORTED | ||||
|  | ||||
							
								
								
									
										3492
									
								
								pngrtran.c
									
									
									
									
									
								
							
							
						
						
									
										3492
									
								
								pngrtran.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2560
									
								
								pngrutil.c
									
									
									
									
									
								
							
							
						
						
									
										2560
									
								
								pngrutil.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										358
									
								
								pngstruct.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										358
									
								
								pngstruct.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,358 @@ | ||||
| 
 | ||||
| /* pngstruct.h - header file for PNG reference library
 | ||||
|  * | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * | ||||
|  * Last changed in libpng 1.5.9 [(PENDING RELEASE)] | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| /* The structure that holds the information to read and write PNG files.
 | ||||
|  * The only people who need to care about what is inside of this are the | ||||
|  * people who will be modifying the library for their own special needs. | ||||
|  * It should NOT be accessed directly by an application. | ||||
|  */ | ||||
| 
 | ||||
| #ifndef PNGSTRUCT_H | ||||
| #define PNGSTRUCT_H | ||||
| /* zlib.h defines the structure z_stream, an instance of which is included
 | ||||
|  * in this structure and is required for decompressing the LZ compressed | ||||
|  * data in PNG files. | ||||
|  */ | ||||
| #include "zlib.h" | ||||
| 
 | ||||
| struct png_struct_def | ||||
| { | ||||
| #ifdef PNG_SETJMP_SUPPORTED | ||||
|    jmp_buf longjmp_buffer;    /* used in png_error */ | ||||
|    png_longjmp_ptr longjmp_fn;/* setjmp non-local goto function. */ | ||||
| #endif | ||||
|    png_error_ptr error_fn;    /* function for printing errors and aborting */ | ||||
| #ifdef PNG_WARNINGS_SUPPORTED | ||||
|    png_error_ptr warning_fn;  /* function for printing warnings */ | ||||
| #endif | ||||
|    png_voidp error_ptr;       /* user supplied struct for error functions */ | ||||
|    png_rw_ptr write_data_fn;  /* function for writing output data */ | ||||
|    png_rw_ptr read_data_fn;   /* function for reading input data */ | ||||
|    png_voidp io_ptr;          /* ptr to application struct for I/O functions */ | ||||
| 
 | ||||
| #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED | ||||
|    png_user_transform_ptr read_user_transform_fn; /* user read transform */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED | ||||
|    png_user_transform_ptr write_user_transform_fn; /* user write transform */ | ||||
| #endif | ||||
| 
 | ||||
| /* These were added in libpng-1.0.2 */ | ||||
| #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED | ||||
| #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ | ||||
|     defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) | ||||
|    png_voidp user_transform_ptr; /* user supplied struct for user transform */ | ||||
|    png_byte user_transform_depth;    /* bit depth of user transformed pixels */ | ||||
|    png_byte user_transform_channels; /* channels in user transformed pixels */ | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
|    png_uint_32 mode;          /* tells us where we are in the PNG file */ | ||||
|    png_uint_32 flags;         /* flags indicating various things to libpng */ | ||||
|    png_uint_32 transformations; /* which transformations to perform */ | ||||
| 
 | ||||
|    z_stream zstream;          /* pointer to decompression structure (below) */ | ||||
|    png_bytep zbuf;            /* buffer for zlib */ | ||||
|    uInt zbuf_size;            /* size of zbuf (typically 65536) */ | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| 
 | ||||
| /* Added in 1.5.4: state to keep track of whether the zstream has been
 | ||||
|  * initialized and if so whether it is for IDAT or some other chunk. | ||||
|  */ | ||||
| #define PNG_ZLIB_UNINITIALIZED 0 | ||||
| #define PNG_ZLIB_FOR_IDAT      1 | ||||
| #define PNG_ZLIB_FOR_TEXT      2 /* anything other than IDAT */ | ||||
| #define PNG_ZLIB_USE_MASK      3 /* bottom two bits */ | ||||
| #define PNG_ZLIB_IN_USE        4 /* a flag value */ | ||||
| 
 | ||||
|    png_uint_32 zlib_state;       /* State of zlib initialization */ | ||||
| /* End of material added at libpng 1.5.4 */ | ||||
| 
 | ||||
|    int zlib_level;            /* holds zlib compression level */ | ||||
|    int zlib_method;           /* holds zlib compression method */ | ||||
|    int zlib_window_bits;      /* holds zlib compression window bits */ | ||||
|    int zlib_mem_level;        /* holds zlib compression memory level */ | ||||
|    int zlib_strategy;         /* holds zlib compression strategy */ | ||||
| #endif | ||||
| /* Added at libpng 1.5.4 */ | ||||
| #if defined(PNG_WRITE_COMPRESSED_TEXT_SUPPORTED) || \ | ||||
|     defined(PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED) | ||||
|    int zlib_text_level;            /* holds zlib compression level */ | ||||
|    int zlib_text_method;           /* holds zlib compression method */ | ||||
|    int zlib_text_window_bits;      /* holds zlib compression window bits */ | ||||
|    int zlib_text_mem_level;        /* holds zlib compression memory level */ | ||||
|    int zlib_text_strategy;         /* holds zlib compression strategy */ | ||||
| #endif | ||||
| /* End of material added at libpng 1.5.4 */ | ||||
| 
 | ||||
|    png_uint_32 width;         /* width of image in pixels */ | ||||
|    png_uint_32 height;        /* height of image in pixels */ | ||||
|    png_uint_32 num_rows;      /* number of rows in current pass */ | ||||
|    png_uint_32 usr_width;     /* width of row at start of write */ | ||||
|    png_size_t rowbytes;       /* size of row in bytes */ | ||||
|    png_uint_32 iwidth;        /* width of current interlaced row in pixels */ | ||||
|    png_uint_32 row_number;    /* current row in interlace pass */ | ||||
|    png_uint_32 chunk_name;    /* PNG_CHUNK() id of current chunk */ | ||||
|    png_bytep prev_row;        /* buffer to save previous (unfiltered) row.
 | ||||
|                                * This is a pointer into big_prev_row | ||||
|                                */ | ||||
|    png_bytep row_buf;         /* buffer to save current (unfiltered) row.
 | ||||
|                                * This is a pointer into big_row_buf | ||||
|                                */ | ||||
|    png_bytep sub_row;         /* buffer to save "sub" row when filtering */ | ||||
|    png_bytep up_row;          /* buffer to save "up" row when filtering */ | ||||
|    png_bytep avg_row;         /* buffer to save "avg" row when filtering */ | ||||
|    png_bytep paeth_row;       /* buffer to save "Paeth" row when filtering */ | ||||
|    png_size_t info_rowbytes;  /* Added in 1.5.4: cache of updated row bytes */ | ||||
| 
 | ||||
|    png_uint_32 idat_size;     /* current IDAT size for read */ | ||||
|    png_uint_32 crc;           /* current chunk CRC value */ | ||||
|    png_colorp palette;        /* palette from the input file */ | ||||
|    png_uint_16 num_palette;   /* number of color entries in palette */ | ||||
|    png_uint_16 num_trans;     /* number of transparency values */ | ||||
|    png_byte compression;      /* file compression type (always 0) */ | ||||
|    png_byte filter;           /* file filter type (always 0) */ | ||||
|    png_byte interlaced;       /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ | ||||
|    png_byte pass;             /* current interlace pass (0 - 6) */ | ||||
|    png_byte do_filter;        /* row filter flags (see PNG_FILTER_ below ) */ | ||||
|    png_byte color_type;       /* color type of file */ | ||||
|    png_byte bit_depth;        /* bit depth of file */ | ||||
|    png_byte usr_bit_depth;    /* bit depth of users row: write only */ | ||||
|    png_byte pixel_depth;      /* number of bits per pixel */ | ||||
|    png_byte channels;         /* number of channels in file */ | ||||
|    png_byte usr_channels;     /* channels at start of write: write only */ | ||||
|    png_byte sig_bytes;        /* magic bytes read/written from start of file */ | ||||
|    png_byte maximum_pixel_depth; | ||||
|                               /* pixel depth used for the row buffers */ | ||||
|    png_byte transformed_pixel_depth; | ||||
|                               /* pixel depth after read/write transforms */ | ||||
|    png_byte io_chunk_string[5]; | ||||
|                               /* string name of chunk */ | ||||
| 
 | ||||
| #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) | ||||
|    png_uint_16 filler;           /* filler bytes for pixel expansion */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_bKGD_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) ||\ | ||||
|    defined(PNG_READ_ALPHA_MODE_SUPPORTED) | ||||
|    png_byte background_gamma_type; | ||||
|    png_fixed_point background_gamma; | ||||
|    png_color_16 background;   /* background color in screen gamma space */ | ||||
| #ifdef PNG_READ_GAMMA_SUPPORTED | ||||
|    png_color_16 background_1; /* background normalized to gamma 1.0 */ | ||||
| #endif | ||||
| #endif /* PNG_bKGD_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_WRITE_FLUSH_SUPPORTED | ||||
|    png_flush_ptr output_flush_fn; /* Function for flushing output */ | ||||
|    png_uint_32 flush_dist;    /* how many rows apart to flush, 0 - no flush */ | ||||
|    png_uint_32 flush_rows;    /* number of rows written since last flush */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_READ_GAMMA_SUPPORTED | ||||
|    int gamma_shift;      /* number of "insignificant" bits in 16-bit gamma */ | ||||
|    png_fixed_point gamma;        /* file gamma value */ | ||||
|    png_fixed_point screen_gamma; /* screen gamma value (display_exponent) */ | ||||
| 
 | ||||
|    png_bytep gamma_table;     /* gamma table for 8-bit depth files */ | ||||
|    png_uint_16pp gamma_16_table; /* gamma table for 16-bit depth files */ | ||||
| #if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ | ||||
|    defined(PNG_READ_ALPHA_MODE_SUPPORTED) || \ | ||||
|    defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) | ||||
|    png_bytep gamma_from_1;    /* converts from 1.0 to screen */ | ||||
|    png_bytep gamma_to_1;      /* converts from file to 1.0 */ | ||||
|    png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */ | ||||
|    png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */ | ||||
| #endif /* READ_BACKGROUND || READ_ALPHA_MODE || RGB_TO_GRAY */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_sBIT_SUPPORTED) | ||||
|    png_color_8 sig_bit;       /* significant bits in each available channel */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) | ||||
|    png_color_8 shift;         /* shift for significant bit tranformation */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ | ||||
|  || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) | ||||
|    png_bytep trans_alpha;           /* alpha values for paletted files */ | ||||
|    png_color_16 trans_color;  /* transparent color for non-paletted files */ | ||||
| #endif | ||||
| 
 | ||||
|    png_read_status_ptr read_row_fn;   /* called after each row is decoded */ | ||||
|    png_write_status_ptr write_row_fn; /* called after each row is encoded */ | ||||
| #ifdef PNG_PROGRESSIVE_READ_SUPPORTED | ||||
|    png_progressive_info_ptr info_fn; /* called after header data fully read */ | ||||
|    png_progressive_row_ptr row_fn;   /* called after a prog. row is decoded */ | ||||
|    png_progressive_end_ptr end_fn;   /* called after image is complete */ | ||||
|    png_bytep save_buffer_ptr;        /* current location in save_buffer */ | ||||
|    png_bytep save_buffer;            /* buffer for previously read data */ | ||||
|    png_bytep current_buffer_ptr;     /* current location in current_buffer */ | ||||
|    png_bytep current_buffer;         /* buffer for recently used data */ | ||||
|    png_uint_32 push_length;          /* size of current input chunk */ | ||||
|    png_uint_32 skip_length;          /* bytes to skip in input data */ | ||||
|    png_size_t save_buffer_size;      /* amount of data now in save_buffer */ | ||||
|    png_size_t save_buffer_max;       /* total size of save_buffer */ | ||||
|    png_size_t buffer_size;           /* total amount of available input data */ | ||||
|    png_size_t current_buffer_size;   /* amount of data now in current_buffer */ | ||||
|    int process_mode;                 /* what push library is currently doing */ | ||||
|    int cur_palette;                  /* current push library palette index */ | ||||
| 
 | ||||
| #  ifdef PNG_TEXT_SUPPORTED | ||||
|      png_size_t current_text_size;   /* current size of text input data */ | ||||
|      png_size_t current_text_left;   /* how much text left to read in input */ | ||||
|      png_charp current_text;         /* current text chunk buffer */ | ||||
|      png_charp current_text_ptr;     /* current location in current_text */ | ||||
| #  endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_TEXT_SUPPORTED */ | ||||
| 
 | ||||
| #endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ | ||||
| 
 | ||||
| #if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) | ||||
| /* For the Borland special 64K segment handler */ | ||||
|    png_bytepp offset_table_ptr; | ||||
|    png_bytep offset_table; | ||||
|    png_uint_16 offset_table_number; | ||||
|    png_uint_16 offset_table_count; | ||||
|    png_uint_16 offset_table_count_free; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_READ_QUANTIZE_SUPPORTED | ||||
|    png_bytep palette_lookup; /* lookup table for quantizing */ | ||||
|    png_bytep quantize_index; /* index translation for palette files */ | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_READ_QUANTIZE_SUPPORTED) || defined(PNG_hIST_SUPPORTED) | ||||
|    png_uint_16p hist;                /* histogram */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_WEIGHTED_FILTER_SUPPORTED | ||||
|    png_byte heuristic_method;        /* heuristic for row filter selection */ | ||||
|    png_byte num_prev_filters;        /* number of weights for previous rows */ | ||||
|    png_bytep prev_filters;           /* filter type(s) of previous row(s) */ | ||||
|    png_uint_16p filter_weights;      /* weight(s) for previous line(s) */ | ||||
|    png_uint_16p inv_filter_weights;  /* 1/weight(s) for previous line(s) */ | ||||
|    png_uint_16p filter_costs;        /* relative filter calculation cost */ | ||||
|    png_uint_16p inv_filter_costs;    /* 1/relative filter calculation cost */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_TIME_RFC1123_SUPPORTED | ||||
|    char time_buffer[29]; /* String to hold RFC 1123 time text */ | ||||
| #endif | ||||
| 
 | ||||
| /* New members added in libpng-1.0.6 */ | ||||
| 
 | ||||
|    png_uint_32 free_me;    /* flags items libpng is responsible for freeing */ | ||||
| 
 | ||||
| #ifdef PNG_USER_CHUNKS_SUPPORTED | ||||
|    png_voidp user_chunk_ptr; | ||||
|    png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED | ||||
|    int num_chunk_list; | ||||
|    png_bytep chunk_list; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_READ_sRGB_SUPPORTED | ||||
|    /* Added in 1.5.5 to record an sRGB chunk in the png. */ | ||||
|    png_byte is_sRGB; | ||||
| #endif | ||||
| 
 | ||||
| /* New members added in libpng-1.0.3 */ | ||||
| #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED | ||||
|    png_byte rgb_to_gray_status; | ||||
|    /* Added in libpng 1.5.5 to record setting of coefficients: */ | ||||
|    png_byte rgb_to_gray_coefficients_set; | ||||
|    /* These were changed from png_byte in libpng-1.0.6 */ | ||||
|    png_uint_16 rgb_to_gray_red_coeff; | ||||
|    png_uint_16 rgb_to_gray_green_coeff; | ||||
|    /* deleted in 1.5.5: rgb_to_gray_blue_coeff; */ | ||||
| #endif | ||||
| 
 | ||||
| /* New member added in libpng-1.0.4 (renamed in 1.0.9) */ | ||||
| #if defined(PNG_MNG_FEATURES_SUPPORTED) | ||||
| /* Changed from png_byte to png_uint_32 at version 1.2.0 */ | ||||
|    png_uint_32 mng_features_permitted; | ||||
| #endif | ||||
| 
 | ||||
| /* New member added in libpng-1.0.9, ifdef'ed out in 1.0.12, enabled in 1.2.0 */ | ||||
| #ifdef PNG_MNG_FEATURES_SUPPORTED | ||||
|    png_byte filter_type; | ||||
| #endif | ||||
| 
 | ||||
| /* New members added in libpng-1.2.0 */ | ||||
| 
 | ||||
| /* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */ | ||||
| #ifdef PNG_USER_MEM_SUPPORTED | ||||
|    png_voidp mem_ptr;             /* user supplied struct for mem functions */ | ||||
|    png_malloc_ptr malloc_fn;      /* function for allocating memory */ | ||||
|    png_free_ptr free_fn;          /* function for freeing memory */ | ||||
| #endif | ||||
| 
 | ||||
| /* New member added in libpng-1.0.13 and 1.2.0 */ | ||||
|    png_bytep big_row_buf;         /* buffer to save current (unfiltered) row */ | ||||
| 
 | ||||
| #ifdef PNG_READ_QUANTIZE_SUPPORTED | ||||
| /* The following three members were added at version 1.0.14 and 1.2.4 */ | ||||
|    png_bytep quantize_sort;          /* working sort array */ | ||||
|    png_bytep index_to_palette;       /* where the original index currently is
 | ||||
|                                         in the palette */ | ||||
|    png_bytep palette_to_index;       /* which original index points to this
 | ||||
|                                          palette color */ | ||||
| #endif | ||||
| 
 | ||||
| /* New members added in libpng-1.0.16 and 1.2.6 */ | ||||
|    png_byte compression_type; | ||||
| 
 | ||||
| #ifdef PNG_USER_LIMITS_SUPPORTED | ||||
|    png_uint_32 user_width_max; | ||||
|    png_uint_32 user_height_max; | ||||
| 
 | ||||
|    /* Added in libpng-1.4.0: Total number of sPLT, text, and unknown
 | ||||
|     * chunks that can be stored (0 means unlimited). | ||||
|     */ | ||||
|    png_uint_32 user_chunk_cache_max; | ||||
| 
 | ||||
|    /* Total memory that a zTXt, sPLT, iTXt, iCCP, or unknown chunk
 | ||||
|     * can occupy when decompressed.  0 means unlimited. | ||||
|     */ | ||||
|    png_alloc_size_t user_chunk_malloc_max; | ||||
| #endif | ||||
| 
 | ||||
| /* New member added in libpng-1.0.25 and 1.2.17 */ | ||||
| #ifdef PNG_UNKNOWN_CHUNKS_SUPPORTED | ||||
|    /* Storage for unknown chunk that the library doesn't recognize. */ | ||||
|    png_unknown_chunk unknown_chunk; | ||||
| #endif | ||||
| 
 | ||||
| /* New member added in libpng-1.2.26 */ | ||||
|   png_size_t old_big_row_buf_size; | ||||
| 
 | ||||
| /* New member added in libpng-1.2.30 */ | ||||
|   png_charp chunkdata;  /* buffer for reading chunk data */ | ||||
| 
 | ||||
| #ifdef PNG_IO_STATE_SUPPORTED | ||||
| /* New member added in libpng-1.4.0 */ | ||||
|    png_uint_32 io_state; | ||||
| #endif | ||||
| 
 | ||||
| /* New member added in libpng-1.5.6 */ | ||||
|    png_bytep big_prev_row; | ||||
| 
 | ||||
|    void (*read_filter[PNG_FILTER_VALUE_LAST-1])(png_row_infop row_info, | ||||
|       png_bytep row, png_const_bytep prev_row); | ||||
| }; | ||||
| #endif /* PNGSTRUCT_H */ | ||||
							
								
								
									
										257
									
								
								pngtest.c
									
									
									
									
									
								
							
							
						
						
									
										257
									
								
								pngtest.c
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngtest.c - a simple test program to test libpng
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.8 [July 7, 2011] | ||||
|  * Last changed in libpng 1.5.6 [November 3, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -31,23 +31,24 @@ | ||||
|  * of files at once by typing "pngtest -m file1.png file2.png ..." | ||||
|  */ | ||||
| 
 | ||||
| #define _POSIX_SOURCE 1 | ||||
| 
 | ||||
| #include "zlib.h" | ||||
| #include "png.h" | ||||
| 
 | ||||
| /* Copied from pngpriv.h but only used in error messages below. */ | ||||
| #ifndef PNG_ZBUF_SIZE | ||||
| #  define PNG_ZBUF_SIZE 8192 | ||||
| #endif | ||||
| 
 | ||||
| #  include <stdio.h> | ||||
| #  include <stdlib.h> | ||||
| #  include <string.h> | ||||
| #  define FCLOSE(file) fclose(file) | ||||
| 
 | ||||
| #ifndef PNG_STDIO_SUPPORTED | ||||
|      typedef FILE                * png_FILE_p; | ||||
| typedef FILE                * png_FILE_p; | ||||
| #endif | ||||
| 
 | ||||
| /* Makes pngtest verbose so we can find problems (needs to be before png.h) */ | ||||
| /* Makes pngtest verbose so we can find problems. */ | ||||
| #ifndef PNG_DEBUG | ||||
| #  define PNG_DEBUG 0 | ||||
| #endif | ||||
| @ -66,6 +67,17 @@ | ||||
| #  define SINGLE_ROWBUF_ALLOC  /* Makes buffer overruns easier to nail */ | ||||
| #endif | ||||
| 
 | ||||
| /* The code uses memcmp and memcpy on large objects (typically row pointers) so
 | ||||
|  * it is necessary to do soemthing special on certain architectures, note that | ||||
|  * the actual support for this was effectively removed in 1.4, so only the | ||||
|  * memory remains in this program: | ||||
|  */ | ||||
| #define CVT_PTR(ptr)         (ptr) | ||||
| #define CVT_PTR_NOCHECK(ptr) (ptr) | ||||
| #define png_memcmp  memcmp | ||||
| #define png_memcpy  memcpy | ||||
| #define png_memset  memset | ||||
| 
 | ||||
| /* Turn on CPU timing
 | ||||
| #define PNGTEST_TIMING | ||||
| */ | ||||
| @ -86,6 +98,7 @@ static char tIME_string[PNG_tIME_STRING_LENGTH] = "tIME chunk is not present"; | ||||
| #endif | ||||
| 
 | ||||
| static int verbose = 0; | ||||
| static int strict = 0; | ||||
| 
 | ||||
| int test_one_file PNGARG((PNG_CONST char *inname, PNG_CONST char *outname)); | ||||
| 
 | ||||
| @ -97,11 +110,6 @@ int test_one_file PNGARG((PNG_CONST char *inname, PNG_CONST char *outname)); | ||||
| /*  #define STDERR stderr  */ | ||||
| #define STDERR stdout   /* For DOS */ | ||||
| 
 | ||||
| /* In case a system header (e.g., on AIX) defined jmpbuf */ | ||||
| #ifdef jmpbuf | ||||
| #  undef jmpbuf | ||||
| #endif | ||||
| 
 | ||||
| /* Define png_jmpbuf() in case we are using a pre-1.0.6 version of libpng */ | ||||
| #ifndef png_jmpbuf | ||||
| #  define png_jmpbuf(png_ptr) png_ptr->jmpbuf | ||||
| @ -112,35 +120,40 @@ static int status_pass = 1; | ||||
| static int status_dots_requested = 0; | ||||
| static int status_dots = 1; | ||||
| 
 | ||||
| void | ||||
| void PNGCBAPI | ||||
| read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass); | ||||
| void | ||||
| void PNGCBAPI | ||||
| read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) | ||||
| { | ||||
|    if (png_ptr == NULL || row_number > PNG_UINT_31_MAX) | ||||
|       return; | ||||
| 
 | ||||
|    if (status_pass != pass) | ||||
|    { | ||||
|       fprintf(stdout, "\n Pass %d: ", pass); | ||||
|       status_pass = pass; | ||||
|       status_dots = 31; | ||||
|    } | ||||
| 
 | ||||
|    status_dots--; | ||||
| 
 | ||||
|    if (status_dots == 0) | ||||
|    { | ||||
|       fprintf(stdout, "\n         "); | ||||
|       status_dots=30; | ||||
|    } | ||||
| 
 | ||||
|    fprintf(stdout, "r"); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| void PNGCBAPI | ||||
| write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass); | ||||
| void | ||||
| void PNGCBAPI | ||||
| write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) | ||||
| { | ||||
|    if (png_ptr == NULL || row_number > PNG_UINT_31_MAX || pass > 7) | ||||
|       return; | ||||
| 
 | ||||
|    fprintf(stdout, "w"); | ||||
| } | ||||
| 
 | ||||
| @ -151,9 +164,9 @@ write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) | ||||
|  * 5 in case illegal filter values are present.) | ||||
|  */ | ||||
| static png_uint_32 filters_used[256]; | ||||
| void | ||||
| void PNGCBAPI | ||||
| count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data); | ||||
| void | ||||
| void PNGCBAPI | ||||
| count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data) | ||||
| { | ||||
|    if (png_ptr != NULL && row_info != NULL) | ||||
| @ -168,13 +181,14 @@ count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data) | ||||
| 
 | ||||
| static png_uint_32 zero_samples; | ||||
| 
 | ||||
| void | ||||
| void PNGCBAPI | ||||
| count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data); | ||||
| void | ||||
| void PNGCBAPI | ||||
| count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data) | ||||
| { | ||||
|    png_bytep dp = data; | ||||
|    if (png_ptr == NULL)return; | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    /* Contents of row_info:
 | ||||
|     *  png_uint_32 width      width of row | ||||
| @ -191,41 +205,49 @@ count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data) | ||||
|     { | ||||
|        int pos = 0; | ||||
|        png_uint_32 n, nstop; | ||||
| 
 | ||||
|        for (n = 0, nstop=row_info->width; n<nstop; n++) | ||||
|        { | ||||
|           if (row_info->bit_depth == 1) | ||||
|           { | ||||
|              if (((*dp << pos++ ) & 0x80) == 0) | ||||
|                 zero_samples++; | ||||
| 
 | ||||
|              if (pos == 8) | ||||
|              { | ||||
|                 pos = 0; | ||||
|                 dp++; | ||||
|              } | ||||
|           } | ||||
| 
 | ||||
|           if (row_info->bit_depth == 2) | ||||
|           { | ||||
|              if (((*dp << (pos+=2)) & 0xc0) == 0) | ||||
|                 zero_samples++; | ||||
| 
 | ||||
|              if (pos == 8) | ||||
|              { | ||||
|                 pos = 0; | ||||
|                 dp++; | ||||
|              } | ||||
|           } | ||||
| 
 | ||||
|           if (row_info->bit_depth == 4) | ||||
|           { | ||||
|              if (((*dp << (pos+=4)) & 0xf0) == 0) | ||||
|                 zero_samples++; | ||||
| 
 | ||||
|              if (pos == 8) | ||||
|              { | ||||
|                 pos = 0; | ||||
|                 dp++; | ||||
|              } | ||||
|           } | ||||
| 
 | ||||
|           if (row_info->bit_depth == 8) | ||||
|              if (*dp++ == 0) | ||||
|                 zero_samples++; | ||||
| 
 | ||||
|           if (row_info->bit_depth == 16) | ||||
|           { | ||||
|              if ((*dp | *(dp+1)) == 0) | ||||
| @ -248,10 +270,12 @@ count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data) | ||||
|              if (row_info->bit_depth == 8) | ||||
|                 if (*dp++ == 0) | ||||
|                    zero_samples++; | ||||
| 
 | ||||
|              if (row_info->bit_depth == 16) | ||||
|              { | ||||
|                 if ((*dp | *(dp+1)) == 0) | ||||
|                    zero_samples++; | ||||
| 
 | ||||
|                 dp+=2; | ||||
|              } | ||||
|           } | ||||
| @ -321,7 +345,7 @@ pngtest_check_io_state(png_structp png_ptr, png_size_t data_length, | ||||
| #endif | ||||
| 
 | ||||
| #ifndef USE_FAR_KEYWORD | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_size_t check = 0; | ||||
| @ -354,7 +378,7 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| #define NEAR_BUF_SIZE 1024 | ||||
| #define MIN(a,b) (a <= b ? a : b) | ||||
| 
 | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_size_t check; | ||||
| @ -374,6 +398,7 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|       png_size_t read, remaining, err; | ||||
|       check = 0; | ||||
|       remaining = length; | ||||
| 
 | ||||
|       do | ||||
|       { | ||||
|          read = MIN(NEAR_BUF_SIZE, remaining); | ||||
| @ -388,6 +413,7 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|       } | ||||
|       while (remaining != 0); | ||||
|    } | ||||
| 
 | ||||
|    if (check != length) | ||||
|       png_error(png_ptr, "Read Error"); | ||||
| 
 | ||||
| @ -398,7 +424,7 @@ pngtest_read_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| #endif /* USE_FAR_KEYWORD */ | ||||
| 
 | ||||
| #ifdef PNG_WRITE_FLUSH_SUPPORTED | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_flush(png_structp png_ptr) | ||||
| { | ||||
|    /* Do nothing; fflush() is said to be just a waste of energy. */ | ||||
| @ -412,14 +438,13 @@ pngtest_flush(png_structp png_ptr) | ||||
|  * than changing the library. | ||||
|  */ | ||||
| #ifndef USE_FAR_KEYWORD | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_size_t check; | ||||
|    png_FILE_p io_ptr; | ||||
|    io_ptr = (png_FILE_p)CVT_PTR(png_get_io_ptr(png_ptr)); | ||||
| 
 | ||||
|    check = fwrite(data, 1, length, io_ptr); | ||||
|    check = fwrite(data, 1, length, (png_FILE_p)png_get_io_ptr(png_ptr)); | ||||
| 
 | ||||
|    if (check != length) | ||||
|    { | ||||
|       png_error(png_ptr, "Write Error"); | ||||
| @ -438,7 +463,7 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| #define NEAR_BUF_SIZE 1024 | ||||
| #define MIN(a,b) (a <= b ? a : b) | ||||
| 
 | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_size_t check; | ||||
| @ -447,17 +472,20 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| 
 | ||||
|    /* Check if data really is near. If so, use usual code. */ | ||||
|    near_data = (png_byte *)CVT_PTR_NOCHECK(data); | ||||
|    io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr); | ||||
|    io_ptr = (png_FILE_p)CVT_PTR(png_get_io_ptr(png_ptr)); | ||||
| 
 | ||||
|    if ((png_bytep)near_data == data) | ||||
|    { | ||||
|       check = fwrite(near_data, 1, length, io_ptr); | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|       png_byte buf[NEAR_BUF_SIZE]; | ||||
|       png_size_t written, remaining, err; | ||||
|       check = 0; | ||||
|       remaining = length; | ||||
| 
 | ||||
|       do | ||||
|       { | ||||
|          written = MIN(NEAR_BUF_SIZE, remaining); | ||||
| @ -472,6 +500,7 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|       } | ||||
|       while (remaining != 0); | ||||
|    } | ||||
| 
 | ||||
|    if (check != length) | ||||
|    { | ||||
|       png_error(png_ptr, "Write Error"); | ||||
| @ -488,14 +517,16 @@ pngtest_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|  * here if you don't want to.  In the default configuration, png_ptr is | ||||
|  * not used, but it is passed in case it may be useful. | ||||
|  */ | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_warning(png_structp png_ptr, png_const_charp message) | ||||
| { | ||||
|    PNG_CONST char *name = "UNKNOWN (ERROR!)"; | ||||
|    char *test; | ||||
|    test = png_get_error_ptr(png_ptr); | ||||
| 
 | ||||
|    if (test == NULL) | ||||
|      fprintf(STDERR, "%s: libpng warning: %s\n", name, message); | ||||
| 
 | ||||
|    else | ||||
|      fprintf(STDERR, "%s: libpng warning: %s\n", test, message); | ||||
| } | ||||
| @ -505,7 +536,7 @@ pngtest_warning(png_structp png_ptr, png_const_charp message) | ||||
|  * function is used by default, or if the program supplies NULL for the | ||||
|  * error function pointer in png_set_error_fn(). | ||||
|  */ | ||||
| static void | ||||
| static void PNGCBAPI | ||||
| pngtest_error(png_structp png_ptr, png_const_charp message) | ||||
| { | ||||
|    pngtest_warning(png_ptr, message); | ||||
| @ -542,16 +573,16 @@ static int maximum_allocation = 0; | ||||
| static int total_allocation = 0; | ||||
| static int num_allocations = 0; | ||||
| 
 | ||||
| png_voidp pngtest_debug_malloc | ||||
|    PNGARG((png_structp png_ptr, png_alloc_size_t size)); | ||||
| void pngtest_debug_free PNGARG((png_structp png_ptr, png_voidp ptr)); | ||||
| png_voidp PNGCBAPI png_debug_malloc PNGARG((png_structp png_ptr, | ||||
|     png_alloc_size_t size)); | ||||
| void PNGCBAPI png_debug_free PNGARG((png_structp png_ptr, png_voidp ptr)); | ||||
| 
 | ||||
| png_voidp | ||||
| pngtest_debug_malloc(png_structp png_ptr, png_alloc_size_t size) | ||||
| PNGCBAPI png_debug_malloc(png_structp png_ptr, png_alloc_size_t size) | ||||
| { | ||||
| 
 | ||||
|    /* png_malloc has already tested for NULL; png_create_struct calls
 | ||||
|     * pngtest_debug_malloc directly, with png_ptr == NULL which is OK | ||||
|     * png_debug_malloc directly, with png_ptr == NULL which is OK | ||||
|     */ | ||||
| 
 | ||||
|    if (size == 0) | ||||
| @ -569,36 +600,44 @@ pngtest_debug_malloc(png_structp png_ptr, png_alloc_size_t size) | ||||
|       current_allocation += size; | ||||
|       total_allocation += size; | ||||
|       num_allocations ++; | ||||
| 
 | ||||
|       if (current_allocation > maximum_allocation) | ||||
|          maximum_allocation = current_allocation; | ||||
| 
 | ||||
|       pinfo->pointer = png_malloc(png_ptr, size); | ||||
|       /* Restore malloc_fn and free_fn */ | ||||
| 
 | ||||
|       png_set_mem_fn(png_ptr, | ||||
|           NULL, pngtest_debug_malloc, pngtest_debug_free); | ||||
|           NULL, png_debug_malloc, png_debug_free); | ||||
| 
 | ||||
|       if (size != 0 && pinfo->pointer == NULL) | ||||
|       { | ||||
|          current_allocation -= size; | ||||
|          total_allocation -= size; | ||||
|          png_error(png_ptr, | ||||
|            "out of memory in pngtest->pngtest_debug_malloc"); | ||||
|            "out of memory in pngtest->png_debug_malloc"); | ||||
|       } | ||||
| 
 | ||||
|       pinfo->next = pinformation; | ||||
|       pinformation = pinfo; | ||||
|       /* Make sure the caller isn't assuming zeroed memory. */ | ||||
|       png_memset(pinfo->pointer, 0xdd, pinfo->size); | ||||
| 
 | ||||
|       if (verbose) | ||||
|          printf("png_malloc %lu bytes at %x\n", (unsigned long)size, | ||||
|          printf("png_malloc %lu bytes at %p\n", (unsigned long)size, | ||||
|             pinfo->pointer); | ||||
| 
 | ||||
|       return (png_voidp)(pinfo->pointer); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| /* Free a pointer.  It is removed from the list at the same time. */ | ||||
| void | ||||
| pngtest_debug_free(png_structp png_ptr, png_voidp ptr) | ||||
| void PNGCBAPI | ||||
| png_debug_free(png_structp png_ptr, png_voidp ptr) | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       fprintf(STDERR, "NULL pointer to pngtest_debug_free.\n"); | ||||
|       fprintf(STDERR, "NULL pointer to png_debug_free.\n"); | ||||
| 
 | ||||
|    if (ptr == 0) | ||||
|    { | ||||
| #if 0 /* This happens all the time. */
 | ||||
| @ -610,9 +649,11 @@ pngtest_debug_free(png_structp png_ptr, png_voidp ptr) | ||||
|    /* Unlink the element from the list. */ | ||||
|    { | ||||
|       memory_infop FAR *ppinfo = &pinformation; | ||||
| 
 | ||||
|       for (;;) | ||||
|       { | ||||
|          memory_infop pinfo = *ppinfo; | ||||
| 
 | ||||
|          if (pinfo->pointer == ptr) | ||||
|          { | ||||
|             *ppinfo = pinfo->next; | ||||
| @ -626,18 +667,21 @@ pngtest_debug_free(png_structp png_ptr, png_voidp ptr) | ||||
|             pinfo = NULL; | ||||
|             break; | ||||
|          } | ||||
| 
 | ||||
|          if (pinfo->next == NULL) | ||||
|          { | ||||
|             fprintf(STDERR, "Pointer %x not found\n", (unsigned int)ptr); | ||||
|             break; | ||||
|          } | ||||
| 
 | ||||
|          ppinfo = &pinfo->next; | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
|    /* Finally free the data. */ | ||||
|    if (verbose) | ||||
|       printf("Freeing %x\n", ptr); | ||||
|       printf("Freeing %p\n", ptr); | ||||
| 
 | ||||
|    png_free_default(png_ptr, ptr); | ||||
|    ptr = NULL; | ||||
| } | ||||
| @ -659,7 +703,7 @@ static png_uint_32 user_chunk_data[4]; | ||||
|      * 3: vpAg units | ||||
|      */ | ||||
| 
 | ||||
| static int read_user_chunk_callback(png_struct *png_ptr, | ||||
| static int PNGCBAPI read_user_chunk_callback(png_struct *png_ptr, | ||||
|    png_unknown_chunkp chunk) | ||||
| { | ||||
|    png_uint_32 | ||||
| @ -684,8 +728,10 @@ static int read_user_chunk_callback(png_struct *png_ptr, | ||||
|          /* Found sTER chunk */ | ||||
|          if (chunk->size != 1) | ||||
|             return (-1); /* Error return */ | ||||
| 
 | ||||
|          if (chunk->data[0] != 0 && chunk->data[0] != 1) | ||||
|             return (-1);  /* Invalid mode */ | ||||
| 
 | ||||
|          my_user_chunk_data=(png_uint_32 *) png_get_user_chunk_ptr(png_ptr); | ||||
|          my_user_chunk_data[0]=chunk->data[0]+1; | ||||
|          return (1); | ||||
| @ -736,7 +782,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|    int bit_depth, color_type; | ||||
| #ifdef PNG_SETJMP_SUPPORTED | ||||
| #ifdef USE_FAR_KEYWORD | ||||
|    jmp_buf jmpbuf; | ||||
|    jmp_buf tmp_jmpbuf; | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| @ -761,8 +807,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG | ||||
|    read_ptr = | ||||
|       png_create_read_struct_2(PNG_LIBPNG_VER_STRING, NULL, | ||||
|       NULL, NULL, NULL, | ||||
|       (png_malloc_ptr)pngtest_debug_malloc, (png_free_ptr)pngtest_debug_free); | ||||
|       NULL, NULL, NULL, png_debug_malloc, png_debug_free); | ||||
| #else | ||||
|    read_ptr = | ||||
|       png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); | ||||
| @ -785,7 +830,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG | ||||
|    write_ptr = | ||||
|       png_create_write_struct_2(PNG_LIBPNG_VER_STRING, NULL, | ||||
|       NULL, NULL, NULL, pngtest_debug_malloc, pngtest_debug_free); | ||||
|       NULL, NULL, NULL, png_debug_malloc, png_debug_free); | ||||
| #else | ||||
|    write_ptr = | ||||
|       png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); | ||||
| @ -806,7 +851,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #ifdef PNG_SETJMP_SUPPORTED | ||||
|    pngtest_debug("Setting jmpbuf for read struct"); | ||||
| #ifdef USE_FAR_KEYWORD | ||||
|    if (setjmp(jmpbuf)) | ||||
|    if (setjmp(tmp_jmpbuf)) | ||||
| #else | ||||
|    if (setjmp(png_jmpbuf(read_ptr))) | ||||
| #endif | ||||
| @ -824,13 +869,14 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       return (1); | ||||
|    } | ||||
| #ifdef USE_FAR_KEYWORD | ||||
|    png_memcpy(png_jmpbuf(read_ptr), jmpbuf, png_sizeof(jmp_buf)); | ||||
|    png_memcpy(png_jmpbuf(read_ptr), tmp_jmpbuf, png_sizeof(jmp_buf)); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
|    pngtest_debug("Setting jmpbuf for write struct"); | ||||
| #ifdef USE_FAR_KEYWORD | ||||
|    if (setjmp(jmpbuf)) | ||||
| 
 | ||||
|    if (setjmp(tmp_jmpbuf)) | ||||
| #else | ||||
|    if (setjmp(png_jmpbuf(write_ptr))) | ||||
| #endif | ||||
| @ -845,8 +891,9 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       FCLOSE(fpout); | ||||
|       return (1); | ||||
|    } | ||||
| 
 | ||||
| #ifdef USE_FAR_KEYWORD | ||||
|    png_memcpy(png_jmpbuf(write_ptr), jmpbuf, png_sizeof(jmp_buf)); | ||||
|    png_memcpy(png_jmpbuf(write_ptr), tmp_jmpbuf, png_sizeof(jmp_buf)); | ||||
| #endif | ||||
| #endif | ||||
| #endif | ||||
| @ -868,6 +915,15 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #    endif | ||||
| #  endif | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED | ||||
|    /* Normally one would use Z_DEFAULT_STRATEGY for text compression.
 | ||||
|     * This is here just to make pngtest replicate the results from libpng | ||||
|     * versions prior to 1.5.4, and to test this new API. | ||||
|     */ | ||||
|    png_set_text_compression_strategy(write_ptr, Z_FILTERED); | ||||
| #endif | ||||
| 
 | ||||
|    if (status_dots_requested == 1) | ||||
|    { | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| @ -875,6 +931,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #endif | ||||
|       png_set_read_status_fn(read_ptr, read_row_callback); | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| @ -886,8 +943,10 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #ifdef PNG_READ_USER_TRANSFORM_SUPPORTED | ||||
|    { | ||||
|       int i; | ||||
| 
 | ||||
|       for (i = 0; i<256; i++) | ||||
|          filters_used[i] = 0; | ||||
| 
 | ||||
|       png_set_read_user_transform_fn(read_ptr, count_filters); | ||||
|    } | ||||
| #endif | ||||
| @ -934,6 +993,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|    { | ||||
|       png_fixed_point white_x, white_y, red_x, red_y, green_x, green_y, blue_x, | ||||
|          blue_y; | ||||
| 
 | ||||
|       if (png_get_cHRM_fixed(read_ptr, read_info_ptr, &white_x, &white_y, | ||||
|          &red_x, &red_y, &green_x, &green_y, &blue_x, &blue_y)) | ||||
|       { | ||||
| @ -956,6 +1016,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|    { | ||||
|       double white_x, white_y, red_x, red_y, green_x, green_y, blue_x, | ||||
|          blue_y; | ||||
| 
 | ||||
|       if (png_get_cHRM(read_ptr, read_info_ptr, &white_x, &white_y, &red_x, | ||||
|          &red_y, &green_x, &green_y, &blue_x, &blue_y)) | ||||
|       { | ||||
| @ -977,7 +1038,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #ifdef PNG_iCCP_SUPPORTED | ||||
|    { | ||||
|       png_charp name; | ||||
|       png_charp profile; | ||||
|       png_bytep profile; | ||||
|       png_uint_32 proflen; | ||||
|       int compression_type; | ||||
| 
 | ||||
| @ -1102,6 +1163,10 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       if (png_get_text(read_ptr, read_info_ptr, &text_ptr, &num_text) > 0) | ||||
|       { | ||||
|          pngtest_debug1("Handling %d iTXt/tEXt/zTXt chunks", num_text); | ||||
| 
 | ||||
|          if (verbose) | ||||
|             printf("\n Text compression=%d\n", text_ptr->compression); | ||||
| 
 | ||||
|          png_set_text(write_ptr, write_info_ptr, text_ptr, num_text); | ||||
|       } | ||||
|    } | ||||
| @ -1121,6 +1186,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|          png_memcpy(tIME_string, | ||||
|                     png_convert_to_rfc1123(read_ptr, mod_time), | ||||
|                     png_sizeof(tIME_string)); | ||||
| 
 | ||||
|          tIME_string[png_sizeof(tIME_string) - 1] = '\0'; | ||||
|          tIME_chunk_present++; | ||||
| #endif /* PNG_TIME_RFC1123_SUPPORTED */ | ||||
| @ -1152,18 +1218,19 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED | ||||
|    { | ||||
|       png_unknown_chunkp unknowns; | ||||
|       int num_unknowns = (int)png_get_unknown_chunks(read_ptr, read_info_ptr, | ||||
|       int num_unknowns = png_get_unknown_chunks(read_ptr, read_info_ptr, | ||||
|          &unknowns); | ||||
| 
 | ||||
|       if (num_unknowns) | ||||
|       { | ||||
|          png_size_t i; | ||||
|          int i; | ||||
|          png_set_unknown_chunks(write_ptr, write_info_ptr, unknowns, | ||||
|            num_unknowns); | ||||
|          /* Copy the locations from the read_info_ptr.  The automatically
 | ||||
|           * generated locations in write_info_ptr are wrong because we | ||||
|           * haven't written anything yet. | ||||
|           */ | ||||
|          for (i = 0; i < (png_size_t)num_unknowns; i++) | ||||
|          for (i = 0; i < num_unknowns; i++) | ||||
|            png_set_unknown_chunk_location(write_ptr, write_info_ptr, i, | ||||
|              unknowns[i].location); | ||||
|       } | ||||
| @ -1189,9 +1256,11 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       if (verbose) | ||||
|          fprintf(STDERR, "\n stereo mode = %lu\n", | ||||
|            (unsigned long)(user_chunk_data[0] - 1)); | ||||
| 
 | ||||
|       ster_chunk_data[0]=(unsigned char)(user_chunk_data[0] - 1); | ||||
|       png_write_chunk(write_ptr, png_sTER, ster_chunk_data, 1); | ||||
|    } | ||||
| 
 | ||||
|    if (user_chunk_data[1] != 0 || user_chunk_data[2] != 0) | ||||
|    { | ||||
|       png_byte png_vpAg[5] = {118, 112,  65, 103, '\0'}; | ||||
| @ -1204,6 +1273,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|            (unsigned long)user_chunk_data[1], | ||||
|            (unsigned long)user_chunk_data[2], | ||||
|            (unsigned long)user_chunk_data[3]); | ||||
| 
 | ||||
|       png_save_uint_32(vpag_chunk_data, user_chunk_data[1]); | ||||
|       png_save_uint_32(vpag_chunk_data + 4, user_chunk_data[2]); | ||||
|       vpag_chunk_data[8] = (unsigned char)(user_chunk_data[3] & 0xff); | ||||
| @ -1217,7 +1287,8 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|    pngtest_debug("Allocating row buffer..."); | ||||
|    row_buf = (png_bytep)png_malloc(read_ptr, | ||||
|       png_get_rowbytes(read_ptr, read_info_ptr)); | ||||
|    pngtest_debug1("0x%08lx", (unsigned long)row_buf); | ||||
| 
 | ||||
|    pngtest_debug1("\t0x%08lx", (unsigned long)row_buf); | ||||
| #endif /* SINGLE_ROWBUF_ALLOC */ | ||||
|    pngtest_debug("Writing row data"); | ||||
| 
 | ||||
| @ -1242,11 +1313,13 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       for (y = 0; y < height; y++) | ||||
|       { | ||||
| #ifndef SINGLE_ROWBUF_ALLOC | ||||
|          pngtest_debug2("Allocating row buffer (pass %d, y = %ld)...", pass, y); | ||||
|          pngtest_debug2("Allocating row buffer (pass %d, y = %u)...", pass, y); | ||||
|          row_buf = (png_bytep)png_malloc(read_ptr, | ||||
|             png_get_rowbytes(read_ptr, read_info_ptr)); | ||||
|          pngtest_debug2("0x%08lx (%ld bytes)", (unsigned long)row_buf, | ||||
| 
 | ||||
|          pngtest_debug2("\t0x%08lx (%u bytes)", (unsigned long)row_buf, | ||||
|             png_get_rowbytes(read_ptr, read_info_ptr)); | ||||
| 
 | ||||
| #endif /* !SINGLE_ROWBUF_ALLOC */ | ||||
|          png_read_rows(read_ptr, (png_bytepp)&row_buf, NULL, 1); | ||||
| 
 | ||||
| @ -1265,7 +1338,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #endif /* PNG_WRITE_SUPPORTED */ | ||||
| 
 | ||||
| #ifndef SINGLE_ROWBUF_ALLOC | ||||
|          pngtest_debug2("Freeing row buffer (pass %d, y = %ld)", pass, y); | ||||
|          pngtest_debug2("Freeing row buffer (pass %d, y = %u)", pass, y); | ||||
|          png_free(read_ptr, row_buf); | ||||
|          row_buf = NULL; | ||||
| #endif /* !SINGLE_ROWBUF_ALLOC */ | ||||
| @ -1308,6 +1381,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|          png_memcpy(tIME_string, | ||||
|                     png_convert_to_rfc1123(read_ptr, mod_time), | ||||
|                     png_sizeof(tIME_string)); | ||||
| 
 | ||||
|          tIME_string[png_sizeof(tIME_string) - 1] = '\0'; | ||||
|          tIME_chunk_present++; | ||||
| #endif /* PNG_TIME_RFC1123_SUPPORTED */ | ||||
| @ -1317,19 +1391,19 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
| #ifdef PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED | ||||
|    { | ||||
|       png_unknown_chunkp unknowns; | ||||
|       int num_unknowns; | ||||
|       num_unknowns = (int)png_get_unknown_chunks(read_ptr, end_info_ptr, | ||||
|       int num_unknowns = png_get_unknown_chunks(read_ptr, end_info_ptr, | ||||
|          &unknowns); | ||||
| 
 | ||||
|       if (num_unknowns) | ||||
|       { | ||||
|          png_size_t i; | ||||
|          int i; | ||||
|          png_set_unknown_chunks(write_ptr, write_end_info_ptr, unknowns, | ||||
|            num_unknowns); | ||||
|          /* Copy the locations from the read_info_ptr.  The automatically
 | ||||
|           * generated locations in write_end_info_ptr are wrong because we | ||||
|           * haven't written the end_info yet. | ||||
|           */ | ||||
|          for (i = 0; i < (png_size_t)num_unknowns; i++) | ||||
|          for (i = 0; i < num_unknowns; i++) | ||||
|            png_set_unknown_chunk_location(write_ptr, write_end_info_ptr, i, | ||||
|              unknowns[i].location); | ||||
|       } | ||||
| @ -1394,6 +1468,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       { | ||||
|          fprintf(STDERR, "\nFiles %s and %s are of a different size\n", | ||||
|                  inname, outname); | ||||
| 
 | ||||
|          if (wrote_question == 0) | ||||
|          { | ||||
|             fprintf(STDERR, | ||||
| @ -1406,9 +1481,15 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|               ZLIB_VERSION); | ||||
|             wrote_question = 1; | ||||
|          } | ||||
| 
 | ||||
|          FCLOSE(fpin); | ||||
|          FCLOSE(fpout); | ||||
|          return (0); | ||||
| 
 | ||||
|          if (strict != 0) | ||||
|            return (1); | ||||
| 
 | ||||
|          else | ||||
|            return (0); | ||||
|       } | ||||
| 
 | ||||
|       if (!num_in) | ||||
| @ -1417,6 +1498,7 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|       if (png_memcmp(inbuf, outbuf, num_in)) | ||||
|       { | ||||
|          fprintf(STDERR, "\nFiles %s and %s are different\n", inname, outname); | ||||
| 
 | ||||
|          if (wrote_question == 0) | ||||
|          { | ||||
|             fprintf(STDERR, | ||||
| @ -1429,9 +1511,15 @@ test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) | ||||
|               ZLIB_VERSION); | ||||
|             wrote_question = 1; | ||||
|          } | ||||
| 
 | ||||
|          FCLOSE(fpin); | ||||
|          FCLOSE(fpout); | ||||
|          return (0); | ||||
| 
 | ||||
|          if (strict != 0) | ||||
|            return (1); | ||||
| 
 | ||||
|          else | ||||
|            return (0); | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
| @ -1463,11 +1551,10 @@ main(int argc, char *argv[]) | ||||
|    fprintf(STDERR, " library (%lu):%s", | ||||
|       (unsigned long)png_access_version_number(), | ||||
|       png_get_header_version(NULL)); | ||||
| 
 | ||||
|    /* Show the version of libpng used in building the application */ | ||||
|    fprintf(STDERR, " pngtest (%lu):%s", (unsigned long)PNG_LIBPNG_VER, | ||||
|       PNG_HEADER_VERSION_STRING); | ||||
|    fprintf(STDERR, " sizeof(png_struct)=%ld, sizeof(png_info)=%ld\n", | ||||
|                     (long)png_sizeof(png_struct), (long)png_sizeof(png_info)); | ||||
| 
 | ||||
|    /* Do some consistency checking on the memory allocation settings, I'm
 | ||||
|     * not sure this matters, but it is nice to know, the first of these | ||||
| @ -1498,6 +1585,7 @@ main(int argc, char *argv[]) | ||||
|          multiple = 1; | ||||
|          status_dots_requested = 0; | ||||
|       } | ||||
| 
 | ||||
|       else if (strcmp(argv[1], "-mv") == 0 || | ||||
|                strcmp(argv[1], "-vm") == 0 ) | ||||
|       { | ||||
| @ -1505,12 +1593,22 @@ main(int argc, char *argv[]) | ||||
|          verbose = 1; | ||||
|          status_dots_requested = 1; | ||||
|       } | ||||
| 
 | ||||
|       else if (strcmp(argv[1], "-v") == 0) | ||||
|       { | ||||
|          verbose = 1; | ||||
|          status_dots_requested = 1; | ||||
|          inname = argv[2]; | ||||
|       } | ||||
| 
 | ||||
|       else if (strcmp(argv[1], "--strict") == 0) | ||||
|       { | ||||
|          status_dots_requested = 0; | ||||
|          verbose = 1; | ||||
|          inname = argv[2]; | ||||
|          strict++; | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          inname = argv[1]; | ||||
| @ -1564,9 +1662,11 @@ main(int argc, char *argv[]) | ||||
| #ifdef PNG_TIME_RFC1123_SUPPORTED | ||||
|          if (tIME_chunk_present != 0) | ||||
|             fprintf(STDERR, " tIME = %s\n", tIME_string); | ||||
| 
 | ||||
|          tIME_chunk_present = 0; | ||||
| #endif /* PNG_TIME_RFC1123_SUPPORTED */ | ||||
|          } | ||||
| 
 | ||||
|          else | ||||
|          { | ||||
|             fprintf(STDERR, " FAIL\n"); | ||||
| @ -1576,17 +1676,19 @@ main(int argc, char *argv[]) | ||||
|          if (allocation_now != current_allocation) | ||||
|             fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n", | ||||
|                current_allocation - allocation_now); | ||||
| 
 | ||||
|          if (current_allocation != 0) | ||||
|          { | ||||
|             memory_infop pinfo = pinformation; | ||||
| 
 | ||||
|             fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n", | ||||
|                current_allocation); | ||||
| 
 | ||||
|             while (pinfo != NULL) | ||||
|             { | ||||
|                fprintf(STDERR, " %lu bytes at %x\n", | ||||
|                  (unsigned long)pinfo->size, | ||||
|                  (unsigned int) pinfo->pointer); | ||||
|                  (unsigned int)pinfo->pointer); | ||||
|                pinfo = pinfo->next; | ||||
|             } | ||||
|          } | ||||
| @ -1603,6 +1705,7 @@ main(int argc, char *argv[]) | ||||
|             num_allocations); | ||||
| #endif | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|       int i; | ||||
| @ -1612,11 +1715,17 @@ main(int argc, char *argv[]) | ||||
| #if defined(PNG_USER_MEM_SUPPORTED) && PNG_DEBUG | ||||
|          int allocation_now = current_allocation; | ||||
| #endif | ||||
|          if (i == 1) status_dots_requested = 1; | ||||
|          else if (verbose == 0)status_dots_requested = 0; | ||||
|          if (i == 1) | ||||
|             status_dots_requested = 1; | ||||
| 
 | ||||
|          else if (verbose == 0) | ||||
|             status_dots_requested = 0; | ||||
| 
 | ||||
|          if (i == 0 || verbose == 1 || ierror != 0) | ||||
|             fprintf(STDERR, "\n Testing %s:", inname); | ||||
| 
 | ||||
|          kerror = test_one_file(inname, outname); | ||||
| 
 | ||||
|          if (kerror == 0) | ||||
|          { | ||||
|             if (verbose == 1 || i == 2) | ||||
| @ -1642,10 +1751,12 @@ main(int argc, char *argv[]) | ||||
| #endif /* PNG_TIME_RFC1123_SUPPORTED */ | ||||
|             } | ||||
|          } | ||||
| 
 | ||||
|          else | ||||
|          { | ||||
|             if (verbose == 0 && i != 2) | ||||
|                fprintf(STDERR, "\n Testing %s:", inname); | ||||
| 
 | ||||
|             fprintf(STDERR, " FAIL\n"); | ||||
|             ierror += kerror; | ||||
|          } | ||||
| @ -1653,12 +1764,14 @@ main(int argc, char *argv[]) | ||||
|          if (allocation_now != current_allocation) | ||||
|              fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n", | ||||
|                current_allocation - allocation_now); | ||||
| 
 | ||||
|          if (current_allocation != 0) | ||||
|          { | ||||
|              memory_infop pinfo = pinformation; | ||||
| 
 | ||||
|              fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n", | ||||
|                 current_allocation); | ||||
| 
 | ||||
|              while (pinfo != NULL) | ||||
|              { | ||||
|                 fprintf(STDERR, " %lu bytes at %x\n", | ||||
| @ -1696,10 +1809,12 @@ main(int argc, char *argv[]) | ||||
| 
 | ||||
|    if (ierror == 0) | ||||
|       fprintf(STDERR, " libpng passes test\n"); | ||||
| 
 | ||||
|    else | ||||
|       fprintf(STDERR, " libpng FAILS test\n"); | ||||
| 
 | ||||
|    return (int)(ierror != 0); | ||||
| } | ||||
| 
 | ||||
| /* Generate a compiler error if there is an old png.h in the search path. */ | ||||
| typedef version_1_4_9beta01 your_png_h_is_not_version_1_4_9beta01; | ||||
| typedef png_libpng_version_1_5_10beta01 Your_png_h_is_not_version_1_5_10beta01; | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								pngtest.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								pngtest.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.5 KiB | 
							
								
								
									
										357
									
								
								pngtrans.c
									
									
									
									
									
								
							
							
						
						
									
										357
									
								
								pngtrans.c
									
									
									
									
									
								
							| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| /* pngtrans.c - transforms the data in a row (used by both readers and writers)
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.6 [ April 8, 2011] | ||||
|  * Last changed in libpng 1.5.4 [July 7, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
| @ -11,11 +11,10 @@ | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_PEDANTIC_WARNINGS | ||||
| #include "png.h" | ||||
| #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | ||||
| #include "pngpriv.h" | ||||
| 
 | ||||
| #if defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) | ||||
| 
 | ||||
| #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) | ||||
| /* Turn on BGR-to-RGB mapping */ | ||||
| void PNGAPI | ||||
| @ -25,6 +24,7 @@ png_set_bgr(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->transformations |= PNG_BGR; | ||||
| } | ||||
| #endif | ||||
| @ -38,6 +38,7 @@ png_set_swap(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    if (png_ptr->bit_depth == 16) | ||||
|       png_ptr->transformations |= PNG_SWAP_BYTES; | ||||
| } | ||||
| @ -52,6 +53,7 @@ png_set_packing(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    if (png_ptr->bit_depth < 8) | ||||
|    { | ||||
|       png_ptr->transformations |= PNG_PACK; | ||||
| @ -69,6 +71,7 @@ png_set_packswap(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    if (png_ptr->bit_depth < 8) | ||||
|       png_ptr->transformations |= PNG_PACKSWAP; | ||||
| } | ||||
| @ -76,12 +79,13 @@ png_set_packswap(png_structp png_ptr) | ||||
| 
 | ||||
| #if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) | ||||
| void PNGAPI | ||||
| png_set_shift(png_structp png_ptr, png_color_8p true_bits) | ||||
| png_set_shift(png_structp png_ptr, png_const_color_8p true_bits) | ||||
| { | ||||
|    png_debug(1, "in png_set_shift"); | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->transformations |= PNG_SHIFT; | ||||
|    png_ptr->shift = *true_bits; | ||||
| } | ||||
| @ -117,10 +121,13 @@ png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->transformations |= PNG_FILLER; | ||||
|    png_ptr->filler = (png_uint_16)filler; | ||||
| 
 | ||||
|    if (filler_loc == PNG_FILLER_AFTER) | ||||
|       png_ptr->flags |= PNG_FLAG_FILLER_AFTER; | ||||
| 
 | ||||
|    else | ||||
|       png_ptr->flags &= ~PNG_FLAG_FILLER_AFTER; | ||||
| 
 | ||||
| @ -135,7 +142,7 @@ png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc) | ||||
|    } | ||||
| 
 | ||||
|    /* Also I added this in libpng-1.0.2a (what happens when we expand
 | ||||
|     * a less-than-8-bit grayscale to GA? */ | ||||
|     * a less-than-8-bit grayscale to GA?) */ | ||||
| 
 | ||||
|    if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY && png_ptr->bit_depth >= 8) | ||||
|    { | ||||
| @ -151,6 +158,7 @@ png_set_add_alpha(png_structp png_ptr, png_uint_32 filler, int filler_loc) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_set_filler(png_ptr, filler, filler_loc); | ||||
|    png_ptr->transformations |= PNG_ADD_ALPHA; | ||||
| } | ||||
| @ -166,6 +174,7 @@ png_set_swap_alpha(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->transformations |= PNG_SWAP_ALPHA; | ||||
| } | ||||
| #endif | ||||
| @ -179,6 +188,7 @@ png_set_invert_alpha(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->transformations |= PNG_INVERT_ALPHA; | ||||
| } | ||||
| #endif | ||||
| @ -191,6 +201,7 @@ png_set_invert_mono(png_structp png_ptr) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    png_ptr->transformations |= PNG_INVERT_MONO; | ||||
| } | ||||
| 
 | ||||
| @ -206,8 +217,8 @@ png_do_invert(png_row_infop row_info, png_bytep row) | ||||
|    if (row_info->color_type == PNG_COLOR_TYPE_GRAY) | ||||
|    { | ||||
|       png_bytep rp = row; | ||||
|       png_uint_32 i; | ||||
|       png_uint_32 istop = row_info->rowbytes; | ||||
|       png_size_t i; | ||||
|       png_size_t istop = row_info->rowbytes; | ||||
| 
 | ||||
|       for (i = 0; i < istop; i++) | ||||
|       { | ||||
| @ -215,36 +226,41 @@ png_do_invert(png_row_infop row_info, png_bytep row) | ||||
|          rp++; | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
|    else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA && | ||||
|       row_info->bit_depth == 8) | ||||
|    { | ||||
|       png_bytep rp = row; | ||||
|       png_uint_32 i; | ||||
|       png_uint_32 istop = row_info->rowbytes; | ||||
|       png_size_t i; | ||||
|       png_size_t istop = row_info->rowbytes; | ||||
| 
 | ||||
|       for (i = 0; i < istop; i+=2) | ||||
|       for (i = 0; i < istop; i += 2) | ||||
|       { | ||||
|          *rp = (png_byte)(~(*rp)); | ||||
|          rp+=2; | ||||
|          rp += 2; | ||||
|       } | ||||
|    } | ||||
| 
 | ||||
| #ifdef PNG_16BIT_SUPPORTED | ||||
|    else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA && | ||||
|       row_info->bit_depth == 16) | ||||
|    { | ||||
|       png_bytep rp = row; | ||||
|       png_uint_32 i; | ||||
|       png_uint_32 istop = row_info->rowbytes; | ||||
|       png_size_t i; | ||||
|       png_size_t istop = row_info->rowbytes; | ||||
| 
 | ||||
|       for (i = 0; i < istop; i+=4) | ||||
|       for (i = 0; i < istop; i += 4) | ||||
|       { | ||||
|          *rp = (png_byte)(~(*rp)); | ||||
|          *(rp+1) = (png_byte)(~(*(rp+1))); | ||||
|          rp+=4; | ||||
|          *(rp + 1) = (png_byte)(~(*(rp + 1))); | ||||
|          rp += 4; | ||||
|       } | ||||
|    } | ||||
| #endif | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_16BIT_SUPPORTED | ||||
| #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) | ||||
| /* Swaps byte order on 16 bit depth images */ | ||||
| void /* PRIVATE */ | ||||
| @ -252,8 +268,7 @@ png_do_swap(png_row_infop row_info, png_bytep row) | ||||
| { | ||||
|    png_debug(1, "in png_do_swap"); | ||||
| 
 | ||||
|    if ( | ||||
|        row_info->bit_depth == 16) | ||||
|    if (row_info->bit_depth == 16) | ||||
|    { | ||||
|       png_bytep rp = row; | ||||
|       png_uint_32 i; | ||||
| @ -268,6 +283,7 @@ png_do_swap(png_row_infop row_info, png_bytep row) | ||||
|    } | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| #if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED) | ||||
| static PNG_CONST png_byte onebppswaptable[256] = { | ||||
| @ -381,19 +397,22 @@ png_do_packswap(png_row_infop row_info, png_bytep row) | ||||
| { | ||||
|    png_debug(1, "in png_do_packswap"); | ||||
| 
 | ||||
|    if ( | ||||
|        row_info->bit_depth < 8) | ||||
|    if (row_info->bit_depth < 8) | ||||
|    { | ||||
|       png_bytep rp, end, table; | ||||
|       png_bytep rp; | ||||
|       png_const_bytep end, table; | ||||
| 
 | ||||
|       end = row + row_info->rowbytes; | ||||
| 
 | ||||
|       if (row_info->bit_depth == 1) | ||||
|          table = (png_bytep)onebppswaptable; | ||||
|          table = onebppswaptable; | ||||
| 
 | ||||
|       else if (row_info->bit_depth == 2) | ||||
|          table = (png_bytep)twobppswaptable; | ||||
|          table = twobppswaptable; | ||||
| 
 | ||||
|       else if (row_info->bit_depth == 4) | ||||
|          table = (png_bytep)fourbppswaptable; | ||||
|          table = fourbppswaptable; | ||||
| 
 | ||||
|       else | ||||
|          return; | ||||
| 
 | ||||
| @ -405,158 +424,119 @@ png_do_packswap(png_row_infop row_info, png_bytep row) | ||||
| 
 | ||||
| #if defined(PNG_WRITE_FILLER_SUPPORTED) || \ | ||||
|     defined(PNG_READ_STRIP_ALPHA_SUPPORTED) | ||||
| /* Remove filler or alpha byte(s) */ | ||||
| /* Remove a channel - this used to be 'png_do_strip_filler' but it used a
 | ||||
|  * somewhat weird combination of flags to determine what to do.  All the calls | ||||
|  * to png_do_strip_filler are changed in 1.5.2 to call this instead with the | ||||
|  * correct arguments. | ||||
|  * | ||||
|  * The routine isn't general - the channel must be the channel at the start or | ||||
|  * end (not in the middle) of each pixel. | ||||
|  */ | ||||
| void /* PRIVATE */ | ||||
| png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags) | ||||
| png_do_strip_channel(png_row_infop row_info, png_bytep row, int at_start) | ||||
| { | ||||
|    png_debug(1, "in png_do_strip_filler"); | ||||
|    png_bytep sp = row; /* source pointer */ | ||||
|    png_bytep dp = row; /* destination pointer */ | ||||
|    png_bytep ep = row + row_info->rowbytes; /* One beyond end of row */ | ||||
| 
 | ||||
|    /* At the start sp will point to the first byte to copy and dp to where
 | ||||
|     * it is copied to.  ep always points just beyond the end of the row, so | ||||
|     * the loop simply copies (channels-1) channels until sp reaches ep. | ||||
|     * | ||||
|     * at_start:        0 -- convert AG, XG, ARGB, XRGB, AAGG, XXGG, etc. | ||||
|     *            nonzero -- convert GA, GX, RGBA, RGBX, GGAA, RRGGBBXX, etc. | ||||
|     */ | ||||
| 
 | ||||
|    /* GA, GX, XG cases */ | ||||
|    if (row_info->channels == 2) | ||||
|    { | ||||
|       png_bytep sp=row; | ||||
|       png_bytep dp=row; | ||||
|       png_uint_32 row_width=row_info->width; | ||||
|       png_uint_32 i; | ||||
| 
 | ||||
|       if ((row_info->color_type == PNG_COLOR_TYPE_RGB || | ||||
|           (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA && | ||||
|           (flags & PNG_FLAG_STRIP_ALPHA))) && | ||||
|           row_info->channels == 4) | ||||
|       if (row_info->bit_depth == 8) | ||||
|       { | ||||
|          if (row_info->bit_depth == 8) | ||||
|          { | ||||
|             /* This converts from RGBX or RGBA to RGB */ | ||||
|             if (flags & PNG_FLAG_FILLER_AFTER) | ||||
|             { | ||||
|                dp+=3; sp+=4; | ||||
|                for (i = 1; i < row_width; i++) | ||||
|                { | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   sp++; | ||||
|                } | ||||
|             } | ||||
|             /* This converts from XRGB or ARGB to RGB */ | ||||
|             else | ||||
|             { | ||||
|                for (i = 0; i < row_width; i++) | ||||
|                { | ||||
|                   sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                } | ||||
|             } | ||||
|             row_info->pixel_depth = 24; | ||||
|             row_info->rowbytes = row_width * 3; | ||||
|          } | ||||
|          else /* if (row_info->bit_depth == 16) */ | ||||
|          { | ||||
|             if (flags & PNG_FLAG_FILLER_AFTER) | ||||
|             { | ||||
|                /* This converts from RRGGBBXX or RRGGBBAA to RRGGBB */ | ||||
|                sp += 8; dp += 6; | ||||
|                for (i = 1; i < row_width; i++) | ||||
|                { | ||||
|                   /* This could be (although png_memcpy is probably slower):
 | ||||
|                   png_memcpy(dp, sp, 6); | ||||
|                   sp += 8; | ||||
|                   dp += 6; | ||||
|                   */ | ||||
|          if (at_start) /* Skip initial filler */ | ||||
|             ++sp; | ||||
|          else          /* Skip initial channel and, for sp, the filler */ | ||||
|             sp += 2, ++dp; | ||||
| 
 | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   sp += 2; | ||||
|                } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                /* This converts from XXRRGGBB or AARRGGBB to RRGGBB */ | ||||
|                for (i = 0; i < row_width; i++) | ||||
|                { | ||||
|                   /* This could be (although png_memcpy is probably slower):
 | ||||
|                   png_memcpy(dp, sp, 6); | ||||
|                   sp += 8; | ||||
|                   dp += 6; | ||||
|                   */ | ||||
|          /* For a 1 pixel wide image there is nothing to do */ | ||||
|          while (sp < ep) | ||||
|             *dp++ = *sp, sp += 2; | ||||
| 
 | ||||
|                   sp+=2; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                } | ||||
|             } | ||||
|             row_info->pixel_depth = 48; | ||||
|             row_info->rowbytes = row_width * 6; | ||||
|          } | ||||
|          row_info->channels = 3; | ||||
|          row_info->pixel_depth = 8; | ||||
|       } | ||||
|       else if ((row_info->color_type == PNG_COLOR_TYPE_GRAY || | ||||
|          (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA && | ||||
|          (flags & PNG_FLAG_STRIP_ALPHA))) && | ||||
|           row_info->channels == 2) | ||||
| 
 | ||||
|       else if (row_info->bit_depth == 16) | ||||
|       { | ||||
|          if (row_info->bit_depth == 8) | ||||
|          { | ||||
|             /* This converts from GX or GA to G */ | ||||
|             if (flags & PNG_FLAG_FILLER_AFTER) | ||||
|             { | ||||
|                for (i = 0; i < row_width; i++) | ||||
|                { | ||||
|                   *dp++ = *sp++; | ||||
|                   sp++; | ||||
|                } | ||||
|             } | ||||
|             /* This converts from XG or AG to G */ | ||||
|             else | ||||
|             { | ||||
|                for (i = 0; i < row_width; i++) | ||||
|                { | ||||
|                   sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                } | ||||
|             } | ||||
|             row_info->pixel_depth = 8; | ||||
|             row_info->rowbytes = row_width; | ||||
|          } | ||||
|          else /* if (row_info->bit_depth == 16) */ | ||||
|          { | ||||
|             if (flags & PNG_FLAG_FILLER_AFTER) | ||||
|             { | ||||
|                /* This converts from GGXX or GGAA to GG */ | ||||
|                sp += 4; dp += 2; | ||||
|                for (i = 1; i < row_width; i++) | ||||
|                { | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                   sp += 2; | ||||
|                } | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                /* This converts from XXGG or AAGG to GG */ | ||||
|                for (i = 0; i < row_width; i++) | ||||
|                { | ||||
|                   sp += 2; | ||||
|                   *dp++ = *sp++; | ||||
|                   *dp++ = *sp++; | ||||
|                } | ||||
|             } | ||||
|             row_info->pixel_depth = 16; | ||||
|             row_info->rowbytes = row_width * 2; | ||||
|          } | ||||
|          row_info->channels = 1; | ||||
|          if (at_start) /* Skip initial filler */ | ||||
|             sp += 2; | ||||
|          else          /* Skip initial channel and, for sp, the filler */ | ||||
|             sp += 4, dp += 2; | ||||
| 
 | ||||
|          while (sp < ep) | ||||
|             *dp++ = *sp++, *dp++ = *sp, sp += 3; | ||||
| 
 | ||||
|          row_info->pixel_depth = 16; | ||||
|       } | ||||
|       if (flags & PNG_FLAG_STRIP_ALPHA) | ||||
|         row_info->color_type &= ~PNG_COLOR_MASK_ALPHA; | ||||
| 
 | ||||
|       else | ||||
|          return; /* bad bit depth */ | ||||
| 
 | ||||
|       row_info->channels = 1; | ||||
| 
 | ||||
|       /* Finally fix the color type if it records an alpha channel */ | ||||
|       if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) | ||||
|          row_info->color_type = PNG_COLOR_TYPE_GRAY; | ||||
|    } | ||||
| 
 | ||||
|    /* RGBA, RGBX, XRGB cases */ | ||||
|    else if (row_info->channels == 4) | ||||
|    { | ||||
|       if (row_info->bit_depth == 8) | ||||
|       { | ||||
|          if (at_start) /* Skip initial filler */ | ||||
|             ++sp; | ||||
|          else          /* Skip initial channels and, for sp, the filler */ | ||||
|             sp += 4, dp += 3; | ||||
| 
 | ||||
|          /* Note that the loop adds 3 to dp and 4 to sp each time. */ | ||||
|          while (sp < ep) | ||||
|             *dp++ = *sp++, *dp++ = *sp++, *dp++ = *sp, sp += 2; | ||||
| 
 | ||||
|          row_info->pixel_depth = 24; | ||||
|       } | ||||
| 
 | ||||
|       else if (row_info->bit_depth == 16) | ||||
|       { | ||||
|          if (at_start) /* Skip initial filler */ | ||||
|             sp += 2; | ||||
|          else          /* Skip initial channels and, for sp, the filler */ | ||||
|             sp += 8, dp += 6; | ||||
| 
 | ||||
|          while (sp < ep) | ||||
|          { | ||||
|             /* Copy 6 bytes, skip 2 */ | ||||
|             *dp++ = *sp++, *dp++ = *sp++; | ||||
|             *dp++ = *sp++, *dp++ = *sp++; | ||||
|             *dp++ = *sp++, *dp++ = *sp, sp += 3; | ||||
|          } | ||||
| 
 | ||||
|          row_info->pixel_depth = 48; | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|          return; /* bad bit depth */ | ||||
| 
 | ||||
|       row_info->channels = 3; | ||||
| 
 | ||||
|       /* Finally fix the color type if it records an alpha channel */ | ||||
|       if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|          row_info->color_type = PNG_COLOR_TYPE_RGB; | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|       return; /* The filler channel has gone already */ | ||||
| 
 | ||||
|    /* Fix the rowbytes value. */ | ||||
|    row_info->rowbytes = dp-row; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| @ -567,8 +547,7 @@ png_do_bgr(png_row_infop row_info, png_bytep row) | ||||
| { | ||||
|    png_debug(1, "in png_do_bgr"); | ||||
| 
 | ||||
|    if ( | ||||
|        (row_info->color_type & PNG_COLOR_MASK_COLOR)) | ||||
|    if ((row_info->color_type & PNG_COLOR_MASK_COLOR)) | ||||
|    { | ||||
|       png_uint_32 row_width = row_info->width; | ||||
|       if (row_info->bit_depth == 8) | ||||
| @ -585,6 +564,7 @@ png_do_bgr(png_row_infop row_info, png_bytep row) | ||||
|                *(rp + 2) = save; | ||||
|             } | ||||
|          } | ||||
| 
 | ||||
|          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|          { | ||||
|             png_bytep rp; | ||||
| @ -598,6 +578,8 @@ png_do_bgr(png_row_infop row_info, png_bytep row) | ||||
|             } | ||||
|          } | ||||
|       } | ||||
| 
 | ||||
| #ifdef PNG_16BIT_SUPPORTED | ||||
|       else if (row_info->bit_depth == 16) | ||||
|       { | ||||
|          if (row_info->color_type == PNG_COLOR_TYPE_RGB) | ||||
| @ -615,6 +597,7 @@ png_do_bgr(png_row_infop row_info, png_bytep row) | ||||
|                *(rp + 5) = save; | ||||
|             } | ||||
|          } | ||||
| 
 | ||||
|          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|          { | ||||
|             png_bytep rp; | ||||
| @ -631,12 +614,14 @@ png_do_bgr(png_row_infop row_info, png_bytep row) | ||||
|             } | ||||
|          } | ||||
|       } | ||||
| #endif | ||||
|    } | ||||
| } | ||||
| #endif /* PNG_READ_BGR_SUPPORTED or PNG_WRITE_BGR_SUPPORTED */ | ||||
| 
 | ||||
| #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ | ||||
|     defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) | ||||
| #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED | ||||
| void PNGAPI | ||||
| png_set_user_transform_info(png_structp png_ptr, png_voidp | ||||
|    user_transform_ptr, int user_transform_depth, int user_transform_channels) | ||||
| @ -645,33 +630,49 @@ png_set_user_transform_info(png_structp png_ptr, png_voidp | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED | ||||
|    png_ptr->user_transform_ptr = user_transform_ptr; | ||||
|    png_ptr->user_transform_depth = (png_byte)user_transform_depth; | ||||
|    png_ptr->user_transform_channels = (png_byte)user_transform_channels; | ||||
| #else | ||||
|    if (user_transform_ptr || user_transform_depth || user_transform_channels) | ||||
|       png_warning(png_ptr, | ||||
|         "This version of libpng does not support user transform info"); | ||||
| #endif | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| /* This function returns a pointer to the user_transform_ptr associated with
 | ||||
|  * the user transform functions.  The application should free any memory | ||||
|  * associated with this pointer before png_write_destroy and png_read_destroy | ||||
|  * are called. | ||||
|  */ | ||||
| #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED | ||||
| png_voidp PNGAPI | ||||
| png_get_user_transform_ptr(png_const_structp png_ptr) | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       return (NULL); | ||||
| #ifdef PNG_USER_TRANSFORM_PTR_SUPPORTED | ||||
| 
 | ||||
|    return ((png_voidp)png_ptr->user_transform_ptr); | ||||
| #else | ||||
|    return (NULL); | ||||
| #endif | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_USER_TRANSFORM_INFO_SUPPORTED | ||||
| png_uint_32 PNGAPI | ||||
| png_get_current_row_number(png_const_structp png_ptr) | ||||
| { | ||||
|    /* See the comments in png.h - this is the sub-image row when reading and
 | ||||
|     * interlaced image. | ||||
|     */ | ||||
|    if (png_ptr != NULL) | ||||
|       return png_ptr->row_number; | ||||
| 
 | ||||
|    return PNG_UINT_32_MAX; /* help the app not to fail silently */ | ||||
| } | ||||
| 
 | ||||
| png_byte PNGAPI | ||||
| png_get_current_pass_number(png_const_structp png_ptr) | ||||
| { | ||||
|    if (png_ptr != NULL) | ||||
|       return png_ptr->pass; | ||||
|    return 8; /* invalid */ | ||||
| } | ||||
| #endif /* PNG_USER_TRANSFORM_INFO_SUPPORTED */ | ||||
| #endif /* PNG_READ_USER_TRANSFORM_SUPPORTED || | ||||
|           PNG_WRITE_USER_TRANSFORM_SUPPORTED */ | ||||
| #endif /* PNG_READ_SUPPORTED || PNG_WRITE_SUPPORTED */ | ||||
|  | ||||
							
								
								
									
										59
									
								
								pngwio.c
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								pngwio.c
									
									
									
									
									
								
							| @ -1,8 +1,8 @@ | ||||
| 
 | ||||
| /* pngwio.c - functions for data output
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.0 [January 3, 2010] | ||||
|  * Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
|  * Last changed in libpng 1.5.0 [January 6, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * | ||||
| @ -18,11 +18,10 @@ | ||||
|  * them at run time with png_set_write_fn(...). | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_PEDANTIC_WARNINGS | ||||
| #include "png.h" | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| #include "pngpriv.h" | ||||
| 
 | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| 
 | ||||
| /* Write the data to whatever output you are using.  The default routine
 | ||||
|  * writes to a file pointer.  Note that this routine sometimes gets called | ||||
|  * with very small lengths, so you should implement some kind of simple | ||||
| @ -31,10 +30,12 @@ | ||||
|  */ | ||||
| 
 | ||||
| void /* PRIVATE */ | ||||
| png_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| png_write_data(png_structp png_ptr, png_const_bytep data, png_size_t length) | ||||
| { | ||||
|    /* NOTE: write_data_fn must not change the buffer! */ | ||||
|    if (png_ptr->write_data_fn != NULL ) | ||||
|       (*(png_ptr->write_data_fn))(png_ptr, data, length); | ||||
|       (*(png_ptr->write_data_fn))(png_ptr, (png_bytep)data, length); | ||||
| 
 | ||||
|    else | ||||
|       png_error(png_ptr, "Call to NULL write function"); | ||||
| } | ||||
| @ -46,14 +47,16 @@ png_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|  * than changing the library. | ||||
|  */ | ||||
| #ifndef USE_FAR_KEYWORD | ||||
| void PNGAPI | ||||
| void PNGCBAPI | ||||
| png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_uint_32 check; | ||||
|    png_size_t check; | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    check = fwrite(data, 1, length, (png_FILE_p)(png_ptr->io_ptr)); | ||||
| 
 | ||||
|    if (check != length) | ||||
|       png_error(png_ptr, "Write Error"); | ||||
| } | ||||
| @ -66,7 +69,7 @@ png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| #define NEAR_BUF_SIZE 1024 | ||||
| #define MIN(a,b) (a <= b ? a : b) | ||||
| 
 | ||||
| void PNGAPI | ||||
| void PNGCBAPI | ||||
| png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| { | ||||
|    png_uint_32 check; | ||||
| @ -75,24 +78,29 @@ png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    /* Check if data really is near. If so, use usual code. */ | ||||
|    near_data = (png_byte *)CVT_PTR_NOCHECK(data); | ||||
|    io_ptr = (png_FILE_p)CVT_PTR(png_ptr->io_ptr); | ||||
| 
 | ||||
|    if ((png_bytep)near_data == data) | ||||
|    { | ||||
|       check = fwrite(near_data, 1, length, io_ptr); | ||||
|    } | ||||
| 
 | ||||
|    else | ||||
|    { | ||||
|       png_byte buf[NEAR_BUF_SIZE]; | ||||
|       png_size_t written, remaining, err; | ||||
|       check = 0; | ||||
|       remaining = length; | ||||
| 
 | ||||
|       do | ||||
|       { | ||||
|          written = MIN(NEAR_BUF_SIZE, remaining); | ||||
|          png_memcpy(buf, data, written); /* Copy far buffer to near buffer */ | ||||
|          err = fwrite(buf, 1, written, io_ptr); | ||||
| 
 | ||||
|          if (err != written) | ||||
|             break; | ||||
| 
 | ||||
| @ -104,6 +112,7 @@ png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) | ||||
|       } | ||||
|       while (remaining != 0); | ||||
|    } | ||||
| 
 | ||||
|    if (check != length) | ||||
|       png_error(png_ptr, "Write Error"); | ||||
| } | ||||
| @ -123,17 +132,19 @@ png_flush(png_structp png_ptr) | ||||
|       (*(png_ptr->output_flush_fn))(png_ptr); | ||||
| } | ||||
| 
 | ||||
| #ifdef PNG_STDIO_SUPPORTED | ||||
| void PNGAPI | ||||
| #  ifdef PNG_STDIO_SUPPORTED | ||||
| void PNGCBAPI | ||||
| png_default_flush(png_structp png_ptr) | ||||
| { | ||||
|    png_FILE_p io_ptr; | ||||
| 
 | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| 
 | ||||
|    io_ptr = (png_FILE_p)CVT_PTR((png_ptr->io_ptr)); | ||||
|    fflush(io_ptr); | ||||
| } | ||||
| #endif | ||||
| #  endif | ||||
| #endif | ||||
| 
 | ||||
| /* This function allows the application to supply new output functions for
 | ||||
| @ -167,7 +178,7 @@ png_default_flush(png_structp png_ptr) | ||||
|  */ | ||||
| void PNGAPI | ||||
| png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, | ||||
|    png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn) | ||||
|     png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn) | ||||
| { | ||||
|    if (png_ptr == NULL) | ||||
|       return; | ||||
| @ -185,30 +196,32 @@ png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_FLUSH_SUPPORTED | ||||
| #ifdef PNG_STDIO_SUPPORTED | ||||
| #  ifdef PNG_STDIO_SUPPORTED | ||||
| 
 | ||||
|    if (output_flush_fn != NULL) | ||||
|       png_ptr->output_flush_fn = output_flush_fn; | ||||
| 
 | ||||
|    else | ||||
|       png_ptr->output_flush_fn = png_default_flush; | ||||
| #else | ||||
| 
 | ||||
| #  else | ||||
|    png_ptr->output_flush_fn = output_flush_fn; | ||||
| #endif | ||||
| #  endif | ||||
| #endif /* PNG_WRITE_FLUSH_SUPPORTED */ | ||||
| 
 | ||||
|    /* It is an error to read while writing a png file */ | ||||
|    if (png_ptr->read_data_fn != NULL) | ||||
|    { | ||||
|       png_ptr->read_data_fn = NULL; | ||||
| 
 | ||||
|       png_warning(png_ptr, | ||||
|          "Attempted to set both read_data_fn and write_data_fn in"); | ||||
|       png_warning(png_ptr, | ||||
|          "the same structure.  Resetting read_data_fn to NULL"); | ||||
|           "Can't set both read_data_fn and write_data_fn in the" | ||||
|           " same structure"); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| #ifdef USE_FAR_KEYWORD | ||||
| #ifdef _MSC_VER | ||||
| #  ifdef _MSC_VER | ||||
| void *png_far_to_near(png_structp png_ptr, png_voidp ptr, int check) | ||||
| { | ||||
|    void *near_ptr; | ||||
| @ -236,6 +249,6 @@ void *png_far_to_near(png_structp png_ptr, png_voidp ptr, int check) | ||||
| 
 | ||||
|    return(near_ptr); | ||||
| } | ||||
| #   endif | ||||
| #   endif | ||||
| #  endif | ||||
| #endif | ||||
| #endif /* PNG_WRITE_SUPPORTED */ | ||||
|  | ||||
							
								
								
									
										818
									
								
								pngwrite.c
									
									
									
									
									
								
							
							
						
						
									
										818
									
								
								pngwrite.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										170
									
								
								pngwtran.c
									
									
									
									
									
								
							
							
						
						
									
										170
									
								
								pngwtran.c
									
									
									
									
									
								
							| @ -1,8 +1,8 @@ | ||||
| 
 | ||||
| /* pngwtran.c - transforms the data in a row for PNG writers
 | ||||
|  * | ||||
|  * Last changed in libpng 1.4.1 [February 25, 2010] | ||||
|  * Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
|  * Last changed in libpng 1.5.6 [November 3, 2011] | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) | ||||
|  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) | ||||
|  * | ||||
| @ -11,16 +11,16 @@ | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| #define PNG_NO_PEDANTIC_WARNINGS | ||||
| #include "png.h" | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| #include "pngpriv.h" | ||||
| 
 | ||||
| #ifdef PNG_WRITE_SUPPORTED | ||||
| 
 | ||||
| #ifdef PNG_WRITE_TRANSFORMS_SUPPORTED | ||||
| /* Transform the data according to the user's wishes.  The order of
 | ||||
|  * transformations is significant. | ||||
|  */ | ||||
| void /* PRIVATE */ | ||||
| png_do_write_transformations(png_structp png_ptr) | ||||
| png_do_write_transformations(png_structp png_ptr, png_row_infop row_info) | ||||
| { | ||||
|    png_debug(1, "in png_do_write_transformations"); | ||||
| 
 | ||||
| @ -30,56 +30,65 @@ png_do_write_transformations(png_structp png_ptr) | ||||
| #ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_USER_TRANSFORM) | ||||
|       if (png_ptr->write_user_transform_fn != NULL) | ||||
|         (*(png_ptr->write_user_transform_fn)) /* User write transform
 | ||||
|          (*(png_ptr->write_user_transform_fn)) /* User write transform
 | ||||
|                                                  function */ | ||||
|           (png_ptr,                    /* png_ptr */ | ||||
|            &(png_ptr->row_info),       /* row_info:     */ | ||||
|              /*  png_uint_32 width;          width of row */ | ||||
|              /*  png_uint_32 rowbytes;       number of bytes in row */ | ||||
|              /*  png_byte color_type;        color type of pixels */ | ||||
|              /*  png_byte bit_depth;         bit depth of samples */ | ||||
|              /*  png_byte channels;          number of channels (1-4) */ | ||||
|              /*  png_byte pixel_depth;       bits per pixel (depth*channels) */ | ||||
|            png_ptr->row_buf + 1);      /* start of pixel data for row */ | ||||
|              (png_ptr,  /* png_ptr */ | ||||
|              row_info,  /* row_info: */ | ||||
|                 /*  png_uint_32 width;       width of row */ | ||||
|                 /*  png_size_t rowbytes;     number of bytes in row */ | ||||
|                 /*  png_byte color_type;     color type of pixels */ | ||||
|                 /*  png_byte bit_depth;      bit depth of samples */ | ||||
|                 /*  png_byte channels;       number of channels (1-4) */ | ||||
|                 /*  png_byte pixel_depth;    bits per pixel (depth*channels) */ | ||||
|              png_ptr->row_buf + 1);      /* start of pixel data for row */ | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_FILLER_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_FILLER) | ||||
|       png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1, | ||||
|          png_ptr->flags); | ||||
|       png_do_strip_channel(row_info, png_ptr->row_buf + 1, | ||||
|          !(png_ptr->flags & PNG_FLAG_FILLER_AFTER)); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_PACKSWAP_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_PACKSWAP) | ||||
|       png_do_packswap(&(png_ptr->row_info), png_ptr->row_buf + 1); | ||||
|       png_do_packswap(row_info, png_ptr->row_buf + 1); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_PACK_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_PACK) | ||||
|       png_do_pack(&(png_ptr->row_info), png_ptr->row_buf + 1, | ||||
|          (png_uint_32)png_ptr->bit_depth); | ||||
|       png_do_pack(row_info, png_ptr->row_buf + 1, | ||||
|           (png_uint_32)png_ptr->bit_depth); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_SWAP_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_SWAP_BYTES) | ||||
|       png_do_swap(&(png_ptr->row_info), png_ptr->row_buf + 1); | ||||
|       png_do_swap(row_info, png_ptr->row_buf + 1); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_SHIFT_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_SHIFT) | ||||
|       png_do_shift(&(png_ptr->row_info), png_ptr->row_buf + 1, | ||||
|          &(png_ptr->shift)); | ||||
|       png_do_shift(row_info, png_ptr->row_buf + 1, | ||||
|           &(png_ptr->shift)); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_SWAP_ALPHA_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_SWAP_ALPHA) | ||||
|       png_do_write_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1); | ||||
|       png_do_write_swap_alpha(row_info, png_ptr->row_buf + 1); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_INVERT_ALPHA_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_INVERT_ALPHA) | ||||
|       png_do_write_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1); | ||||
|       png_do_write_invert_alpha(row_info, png_ptr->row_buf + 1); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_BGR_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_BGR) | ||||
|       png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1); | ||||
|       png_do_bgr(row_info, png_ptr->row_buf + 1); | ||||
| #endif | ||||
| 
 | ||||
| #ifdef PNG_WRITE_INVERT_SUPPORTED | ||||
|    if (png_ptr->transformations & PNG_INVERT_MONO) | ||||
|       png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1); | ||||
|       png_do_invert(row_info, png_ptr->row_buf + 1); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
| @ -114,9 +123,12 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|             { | ||||
|                if (*sp != 0) | ||||
|                   v |= mask; | ||||
| 
 | ||||
|                sp++; | ||||
| 
 | ||||
|                if (mask > 1) | ||||
|                   mask >>= 1; | ||||
| 
 | ||||
|                else | ||||
|                { | ||||
|                   mask = 0x80; | ||||
| @ -125,10 +137,13 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|                   v = 0; | ||||
|                } | ||||
|             } | ||||
| 
 | ||||
|             if (mask != 0x80) | ||||
|                *dp = (png_byte)v; | ||||
| 
 | ||||
|             break; | ||||
|          } | ||||
| 
 | ||||
|          case 2: | ||||
|          { | ||||
|             png_bytep sp, dp; | ||||
| @ -140,12 +155,14 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|             dp = row; | ||||
|             shift = 6; | ||||
|             v = 0; | ||||
| 
 | ||||
|             for (i = 0; i < row_width; i++) | ||||
|             { | ||||
|                png_byte value; | ||||
| 
 | ||||
|                value = (png_byte)(*sp & 0x03); | ||||
|                v |= (value << shift); | ||||
| 
 | ||||
|                if (shift == 0) | ||||
|                { | ||||
|                   shift = 6; | ||||
| @ -153,14 +170,19 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|                   dp++; | ||||
|                   v = 0; | ||||
|                } | ||||
| 
 | ||||
|                else | ||||
|                   shift -= 2; | ||||
| 
 | ||||
|                sp++; | ||||
|             } | ||||
| 
 | ||||
|             if (shift != 6) | ||||
|                *dp = (png_byte)v; | ||||
| 
 | ||||
|             break; | ||||
|          } | ||||
| 
 | ||||
|          case 4: | ||||
|          { | ||||
|             png_bytep sp, dp; | ||||
| @ -172,6 +194,7 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|             dp = row; | ||||
|             shift = 4; | ||||
|             v = 0; | ||||
| 
 | ||||
|             for (i = 0; i < row_width; i++) | ||||
|             { | ||||
|                png_byte value; | ||||
| @ -186,23 +209,27 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|                   dp++; | ||||
|                   v = 0; | ||||
|                } | ||||
| 
 | ||||
|                else | ||||
|                   shift -= 4; | ||||
| 
 | ||||
|                sp++; | ||||
|             } | ||||
| 
 | ||||
|             if (shift != 4) | ||||
|                *dp = (png_byte)v; | ||||
| 
 | ||||
|             break; | ||||
|          } | ||||
| 
 | ||||
|          default: | ||||
|             break; | ||||
|       } | ||||
| 
 | ||||
|       row_info->bit_depth = (png_byte)bit_depth; | ||||
|       row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels); | ||||
|       row_info->rowbytes = PNG_ROWBYTES(row_info->pixel_depth, | ||||
|          row_info->width); | ||||
|           row_info->width); | ||||
|    } | ||||
| } | ||||
| #endif | ||||
| @ -216,12 +243,12 @@ png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) | ||||
|  * data to 0 to 15. | ||||
|  */ | ||||
| void /* PRIVATE */ | ||||
| png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) | ||||
| png_do_shift(png_row_infop row_info, png_bytep row, | ||||
|     png_const_color_8p bit_depth) | ||||
| { | ||||
|    png_debug(1, "in png_do_shift"); | ||||
| 
 | ||||
|    if ( | ||||
|       row_info->color_type != PNG_COLOR_TYPE_PALETTE) | ||||
|    if (row_info->color_type != PNG_COLOR_TYPE_PALETTE) | ||||
|    { | ||||
|       int shift_start[4], shift_dec[4]; | ||||
|       int channels = 0; | ||||
| @ -231,19 +258,23 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) | ||||
|          shift_start[channels] = row_info->bit_depth - bit_depth->red; | ||||
|          shift_dec[channels] = bit_depth->red; | ||||
|          channels++; | ||||
| 
 | ||||
|          shift_start[channels] = row_info->bit_depth - bit_depth->green; | ||||
|          shift_dec[channels] = bit_depth->green; | ||||
|          channels++; | ||||
| 
 | ||||
|          shift_start[channels] = row_info->bit_depth - bit_depth->blue; | ||||
|          shift_dec[channels] = bit_depth->blue; | ||||
|          channels++; | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          shift_start[channels] = row_info->bit_depth - bit_depth->gray; | ||||
|          shift_dec[channels] = bit_depth->gray; | ||||
|          channels++; | ||||
|       } | ||||
| 
 | ||||
|       if (row_info->color_type & PNG_COLOR_MASK_ALPHA) | ||||
|       { | ||||
|          shift_start[channels] = row_info->bit_depth - bit_depth->alpha; | ||||
| @ -255,14 +286,16 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) | ||||
|       if (row_info->bit_depth < 8) | ||||
|       { | ||||
|          png_bytep bp = row; | ||||
|          png_uint_32 i; | ||||
|          png_size_t i; | ||||
|          png_byte mask; | ||||
|          png_uint_32 row_bytes = row_info->rowbytes; | ||||
|          png_size_t row_bytes = row_info->rowbytes; | ||||
| 
 | ||||
|          if (bit_depth->gray == 1 && row_info->bit_depth == 2) | ||||
|             mask = 0x55; | ||||
| 
 | ||||
|          else if (row_info->bit_depth == 4 && bit_depth->gray == 3) | ||||
|             mask = 0x11; | ||||
| 
 | ||||
|          else | ||||
|             mask = 0xff; | ||||
| 
 | ||||
| @ -273,15 +306,18 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) | ||||
| 
 | ||||
|             v = *bp; | ||||
|             *bp = 0; | ||||
| 
 | ||||
|             for (j = shift_start[0]; j > -shift_dec[0]; j -= shift_dec[0]) | ||||
|             { | ||||
|                if (j > 0) | ||||
|                   *bp |= (png_byte)((v << j) & 0xff); | ||||
| 
 | ||||
|                else | ||||
|                   *bp |= (png_byte)((v >> (-j)) & mask); | ||||
|             } | ||||
|          } | ||||
|       } | ||||
| 
 | ||||
|       else if (row_info->bit_depth == 8) | ||||
|       { | ||||
|          png_bytep bp = row; | ||||
| @ -297,15 +333,18 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) | ||||
| 
 | ||||
|             v = *bp; | ||||
|             *bp = 0; | ||||
| 
 | ||||
|             for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c]) | ||||
|             { | ||||
|                if (j > 0) | ||||
|                   *bp |= (png_byte)((v << j) & 0xff); | ||||
| 
 | ||||
|                else | ||||
|                   *bp |= (png_byte)((v >> (-j)) & 0xff); | ||||
|             } | ||||
|          } | ||||
|       } | ||||
| 
 | ||||
|       else | ||||
|       { | ||||
|          png_bytep bp; | ||||
| @ -320,10 +359,12 @@ png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) | ||||
| 
 | ||||
|             v = (png_uint_16)(((png_uint_16)(*bp) << 8) + *(bp + 1)); | ||||
|             value = 0; | ||||
| 
 | ||||
|             for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c]) | ||||
|             { | ||||
|                if (j > 0) | ||||
|                   value |= (png_uint_16)((v << j) & (png_uint_16)0xffff); | ||||
| 
 | ||||
|                else | ||||
|                   value |= (png_uint_16)((v >> (-j)) & (png_uint_16)0xffff); | ||||
|             } | ||||
| @ -344,12 +385,13 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) | ||||
|    { | ||||
|       if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|       { | ||||
|          /* This converts from ARGB to RGBA */ | ||||
|          if (row_info->bit_depth == 8) | ||||
|          { | ||||
|             /* This converts from ARGB to RGBA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| 
 | ||||
|             for (i = 0, sp = dp = row; i < row_width; i++) | ||||
|             { | ||||
|                png_byte save = *(sp++); | ||||
| @ -359,9 +401,11 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = save; | ||||
|             } | ||||
|          } | ||||
|          /* This converts from AARRGGBB to RRGGBBAA */ | ||||
| 
 | ||||
| #ifdef PNG_WRITE_16BIT_SUPPORTED | ||||
|          else | ||||
|          { | ||||
|             /* This converts from AARRGGBB to RRGGBBAA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| @ -381,12 +425,14 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = save[1]; | ||||
|             } | ||||
|          } | ||||
| #endif /* PNG_WRITE_16BIT_SUPPORTED */ | ||||
|       } | ||||
| 
 | ||||
|       else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) | ||||
|       { | ||||
|          /* This converts from AG to GA */ | ||||
|          if (row_info->bit_depth == 8) | ||||
|          { | ||||
|             /* This converts from AG to GA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| @ -398,9 +444,11 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = save; | ||||
|             } | ||||
|          } | ||||
|          /* This converts from AAGG to GGAA */ | ||||
| 
 | ||||
| #ifdef PNG_WRITE_16BIT_SUPPORTED | ||||
|          else | ||||
|          { | ||||
|             /* This converts from AAGG to GGAA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| @ -416,6 +464,7 @@ png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = save[1]; | ||||
|             } | ||||
|          } | ||||
| #endif /* PNG_WRITE_16BIT_SUPPORTED */ | ||||
|       } | ||||
|    } | ||||
| } | ||||
| @ -430,12 +479,13 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) | ||||
|    { | ||||
|       if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|       { | ||||
|          /* This inverts the alpha channel in RGBA */ | ||||
|          if (row_info->bit_depth == 8) | ||||
|          { | ||||
|             /* This inverts the alpha channel in RGBA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| 
 | ||||
|             for (i = 0, sp = dp = row; i < row_width; i++) | ||||
|             { | ||||
|                /* Does nothing
 | ||||
| @ -447,9 +497,11 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = (png_byte)(255 - *(sp++)); | ||||
|             } | ||||
|          } | ||||
|          /* This inverts the alpha channel in RRGGBBAA */ | ||||
| 
 | ||||
| #ifdef PNG_WRITE_16BIT_SUPPORTED | ||||
|          else | ||||
|          { | ||||
|             /* This inverts the alpha channel in RRGGBBAA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| @ -469,12 +521,14 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = (png_byte)(255 - *(sp++)); | ||||
|             } | ||||
|          } | ||||
| #endif /* PNG_WRITE_16BIT_SUPPORTED */ | ||||
|       } | ||||
| 
 | ||||
|       else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) | ||||
|       { | ||||
|          /* This inverts the alpha channel in GA */ | ||||
|          if (row_info->bit_depth == 8) | ||||
|          { | ||||
|             /* This inverts the alpha channel in GA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| @ -485,9 +539,11 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = (png_byte)(255 - *(sp++)); | ||||
|             } | ||||
|          } | ||||
|          /* This inverts the alpha channel in GGAA */ | ||||
| 
 | ||||
| #ifdef PNG_WRITE_16BIT_SUPPORTED | ||||
|          else | ||||
|          { | ||||
|             /* This inverts the alpha channel in GGAA */ | ||||
|             png_bytep sp, dp; | ||||
|             png_uint_32 i; | ||||
|             png_uint_32 row_width = row_info->width; | ||||
| @ -503,10 +559,12 @@ png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) | ||||
|                *(dp++) = (png_byte)(255 - *(sp++)); | ||||
|             } | ||||
|          } | ||||
| #endif /* PNG_WRITE_16BIT_SUPPORTED */ | ||||
|       } | ||||
|    } | ||||
| } | ||||
| #endif | ||||
| #endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ | ||||
| 
 | ||||
| #ifdef PNG_MNG_FEATURES_SUPPORTED | ||||
| /* Undoes intrapixel differencing  */ | ||||
| @ -515,8 +573,7 @@ png_do_write_intrapixel(png_row_infop row_info, png_bytep row) | ||||
| { | ||||
|    png_debug(1, "in png_do_write_intrapixel"); | ||||
| 
 | ||||
|    if ( | ||||
|        (row_info->color_type & PNG_COLOR_MASK_COLOR)) | ||||
|    if ((row_info->color_type & PNG_COLOR_MASK_COLOR)) | ||||
|    { | ||||
|       int bytes_per_pixel; | ||||
|       png_uint_32 row_width = row_info->width; | ||||
| @ -527,17 +584,21 @@ png_do_write_intrapixel(png_row_infop row_info, png_bytep row) | ||||
| 
 | ||||
|          if (row_info->color_type == PNG_COLOR_TYPE_RGB) | ||||
|             bytes_per_pixel = 3; | ||||
| 
 | ||||
|          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|             bytes_per_pixel = 4; | ||||
| 
 | ||||
|          else | ||||
|             return; | ||||
| 
 | ||||
|          for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel) | ||||
|          { | ||||
|             *(rp)   = (png_byte)((*rp     - *(rp+1))&0xff); | ||||
|             *(rp+2) = (png_byte)((*(rp+2) - *(rp+1))&0xff); | ||||
|             *(rp)     = (png_byte)((*rp       - *(rp + 1)) & 0xff); | ||||
|             *(rp + 2) = (png_byte)((*(rp + 2) - *(rp + 1)) & 0xff); | ||||
|          } | ||||
|       } | ||||
| 
 | ||||
| #ifdef PNG_WRITE_16BIT_SUPPORTED | ||||
|       else if (row_info->bit_depth == 16) | ||||
|       { | ||||
|          png_bytep rp; | ||||
| @ -545,24 +606,27 @@ png_do_write_intrapixel(png_row_infop row_info, png_bytep row) | ||||
| 
 | ||||
|          if (row_info->color_type == PNG_COLOR_TYPE_RGB) | ||||
|             bytes_per_pixel = 6; | ||||
| 
 | ||||
|          else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) | ||||
|             bytes_per_pixel = 8; | ||||
| 
 | ||||
|          else | ||||
|             return; | ||||
| 
 | ||||
|          for (i = 0, rp = row; i < row_width; i++, rp += bytes_per_pixel) | ||||
|          { | ||||
|             png_uint_32 s0   = (*(rp  ) << 8) | *(rp+1); | ||||
|             png_uint_32 s1   = (*(rp+2) << 8) | *(rp+3); | ||||
|             png_uint_32 s2   = (*(rp+4) << 8) | *(rp+5); | ||||
|             png_uint_32 s0   = (*(rp    ) << 8) | *(rp + 1); | ||||
|             png_uint_32 s1   = (*(rp + 2) << 8) | *(rp + 3); | ||||
|             png_uint_32 s2   = (*(rp + 4) << 8) | *(rp + 5); | ||||
|             png_uint_32 red  = (png_uint_32)((s0 - s1) & 0xffffL); | ||||
|             png_uint_32 blue = (png_uint_32)((s2 - s1) & 0xffffL); | ||||
|             *(rp  ) = (png_byte)((red >> 8) & 0xff); | ||||
|             *(rp+1) = (png_byte)(red & 0xff); | ||||
|             *(rp+4) = (png_byte)((blue >> 8) & 0xff); | ||||
|             *(rp+5) = (png_byte)(blue & 0xff); | ||||
|             *(rp    ) = (png_byte)((red >> 8) & 0xff); | ||||
|             *(rp + 1) = (png_byte)(red & 0xff); | ||||
|             *(rp + 4) = (png_byte)((blue >> 8) & 0xff); | ||||
|             *(rp + 5) = (png_byte)(blue & 0xff); | ||||
|          } | ||||
|       } | ||||
| #endif /* PNG_WRITE_16BIT_SUPPORTED */ | ||||
|    } | ||||
| } | ||||
| #endif /* PNG_MNG_FEATURES_SUPPORTED */ | ||||
|  | ||||
							
								
								
									
										1402
									
								
								pngwutil.c
									
									
									
									
									
								
							
							
						
						
									
										1402
									
								
								pngwutil.c
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										383
									
								
								projects/owatcom/libpng.tgt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										383
									
								
								projects/owatcom/libpng.tgt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,383 @@ | ||||
| 40 | ||||
| targetIdent | ||||
| 0 | ||||
| MProject | ||||
| 1 | ||||
| MComponent | ||||
| 0 | ||||
| 2 | ||||
| WString | ||||
| 3 | ||||
| LIB | ||||
| 3 | ||||
| WString | ||||
| 5 | ||||
| n_2sn | ||||
| 1 | ||||
| 0 | ||||
| 0 | ||||
| 4 | ||||
| MCommand | ||||
| 0 | ||||
| 5 | ||||
| MCommand | ||||
| 0 | ||||
| 6 | ||||
| MItem | ||||
| 10 | ||||
| libpng.lib | ||||
| 7 | ||||
| WString | ||||
| 3 | ||||
| LIB | ||||
| 8 | ||||
| WVList | ||||
| 0 | ||||
| 9 | ||||
| WVList | ||||
| 1 | ||||
| 10 | ||||
| ActionStates | ||||
| 11 | ||||
| WString | ||||
| 5 | ||||
| &Make | ||||
| 12 | ||||
| WVList | ||||
| 0 | ||||
| -1 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 13 | ||||
| WPickList | ||||
| 16 | ||||
| 14 | ||||
| MItem | ||||
| 3 | ||||
| *.c | ||||
| 15 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 16 | ||||
| WVList | ||||
| 2 | ||||
| 17 | ||||
| MVState | ||||
| 18 | ||||
| WString | ||||
| 3 | ||||
| WCC | ||||
| 19 | ||||
| WString | ||||
| 25 | ||||
| n????Include directories: | ||||
| 1 | ||||
| 20 | ||||
| WString | ||||
| 39 | ||||
| "$(%zlib);$(%watcom)/h;$(%watcom)/h/nt" | ||||
| 0 | ||||
| 21 | ||||
| MVState | ||||
| 22 | ||||
| WString | ||||
| 3 | ||||
| WCC | ||||
| 23 | ||||
| WString | ||||
| 25 | ||||
| n????Include directories: | ||||
| 0 | ||||
| 24 | ||||
| WString | ||||
| 39 | ||||
| "$(%zlib);$(%watcom)/h;$(%watcom)/h/nt" | ||||
| 0 | ||||
| 25 | ||||
| WVList | ||||
| 1 | ||||
| 26 | ||||
| ActionStates | ||||
| 27 | ||||
| WString | ||||
| 5 | ||||
| &Make | ||||
| 28 | ||||
| WVList | ||||
| 0 | ||||
| -1 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 29 | ||||
| MItem | ||||
| 11 | ||||
| ..\..\png.c | ||||
| 30 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 31 | ||||
| WVList | ||||
| 0 | ||||
| 32 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 33 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngerror.c | ||||
| 34 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 35 | ||||
| WVList | ||||
| 0 | ||||
| 36 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 37 | ||||
| MItem | ||||
| 14 | ||||
| ..\..\pngget.c | ||||
| 38 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 39 | ||||
| WVList | ||||
| 0 | ||||
| 40 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 41 | ||||
| MItem | ||||
| 14 | ||||
| ..\..\pngmem.c | ||||
| 42 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 43 | ||||
| WVList | ||||
| 0 | ||||
| 44 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 45 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngpread.c | ||||
| 46 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 47 | ||||
| WVList | ||||
| 0 | ||||
| 48 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 49 | ||||
| MItem | ||||
| 15 | ||||
| ..\..\pngread.c | ||||
| 50 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 51 | ||||
| WVList | ||||
| 0 | ||||
| 52 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 53 | ||||
| MItem | ||||
| 14 | ||||
| ..\..\pngrio.c | ||||
| 54 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 55 | ||||
| WVList | ||||
| 0 | ||||
| 56 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 57 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngrtran.c | ||||
| 58 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 59 | ||||
| WVList | ||||
| 0 | ||||
| 60 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 61 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngrutil.c | ||||
| 62 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 63 | ||||
| WVList | ||||
| 0 | ||||
| 64 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 65 | ||||
| MItem | ||||
| 14 | ||||
| ..\..\pngset.c | ||||
| 66 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 67 | ||||
| WVList | ||||
| 0 | ||||
| 68 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 69 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngtrans.c | ||||
| 70 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 71 | ||||
| WVList | ||||
| 0 | ||||
| 72 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 73 | ||||
| MItem | ||||
| 14 | ||||
| ..\..\pngwio.c | ||||
| 74 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 75 | ||||
| WVList | ||||
| 0 | ||||
| 76 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 77 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngwrite.c | ||||
| 78 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 79 | ||||
| WVList | ||||
| 0 | ||||
| 80 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 81 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngwtran.c | ||||
| 82 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 83 | ||||
| WVList | ||||
| 0 | ||||
| 84 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 85 | ||||
| MItem | ||||
| 16 | ||||
| ..\..\pngwutil.c | ||||
| 86 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 87 | ||||
| WVList | ||||
| 0 | ||||
| 88 | ||||
| WVList | ||||
| 0 | ||||
| 14 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
							
								
								
									
										92
									
								
								projects/owatcom/libpng.wpj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								projects/owatcom/libpng.wpj
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,92 @@ | ||||
| 40 | ||||
| projectIdent | ||||
| 0 | ||||
| VpeMain | ||||
| 1 | ||||
| WRect | ||||
| 256 | ||||
| 0 | ||||
| 8960 | ||||
| 9284 | ||||
| 2 | ||||
| MProject | ||||
| 3 | ||||
| MCommand | ||||
| 322 | ||||
| # Locations of zlib and (if required) awk (change as required:) | ||||
| set zlib=..\..\..\zlib | ||||
| set awk= | ||||
| # | ||||
| @if not exist pngconfig.dfa $(MAKE) $(__MAKEOPTS__) -f pngconfig.mak defaults | ||||
| @if exist config.inf type config.inf | ||||
| @echo Checking for the libpng configuration file pnglibconf.h | ||||
| $(MAKE) $(__MAKEOPTS__) -f pngconfig.mak | ||||
| 4 | ||||
| MCommand | ||||
| 19 | ||||
| @type pngconfig.inf | ||||
| 3 | ||||
| 5 | ||||
| WFileName | ||||
| 10 | ||||
| libpng.tgt | ||||
| 6 | ||||
| WFileName | ||||
| 11 | ||||
| pngtest.tgt | ||||
| 7 | ||||
| WFileName | ||||
| 12 | ||||
| pngvalid.tgt | ||||
| 8 | ||||
| WVList | ||||
| 3 | ||||
| 9 | ||||
| VComponent | ||||
| 10 | ||||
| WRect | ||||
| 0 | ||||
| 0 | ||||
| 5632 | ||||
| 4164 | ||||
| 0 | ||||
| 0 | ||||
| 11 | ||||
| WFileName | ||||
| 10 | ||||
| libpng.tgt | ||||
| 0 | ||||
| 0 | ||||
| 12 | ||||
| VComponent | ||||
| 13 | ||||
| WRect | ||||
| 1280 | ||||
| 1540 | ||||
| 5632 | ||||
| 4164 | ||||
| 0 | ||||
| 0 | ||||
| 14 | ||||
| WFileName | ||||
| 11 | ||||
| pngtest.tgt | ||||
| 0 | ||||
| 1 | ||||
| 15 | ||||
| VComponent | ||||
| 16 | ||||
| WRect | ||||
| 518 | ||||
| 487 | ||||
| 5632 | ||||
| 4164 | ||||
| 0 | ||||
| 0 | ||||
| 17 | ||||
| WFileName | ||||
| 12 | ||||
| pngvalid.tgt | ||||
| 0 | ||||
| 1 | ||||
| 9 | ||||
							
								
								
									
										160
									
								
								projects/owatcom/pngconfig.mak
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								projects/owatcom/pngconfig.mak
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,160 @@ | ||||
| # This is an OpenWatcom make file which builds pnglibconf.h - the libpng
 | ||||
| # configuration header.  You can ignore this file if you don't need to
 | ||||
| # configure libpng; a default configuration will be built.
 | ||||
| #
 | ||||
| # For more information build libpng.wpj under the IDE and then read the
 | ||||
| # generated files:
 | ||||
| #
 | ||||
| #    config.inf: Basic configuration information for a standard build.
 | ||||
| #    pngconfig.dfa: Advanced configuration for non-standard libpng builds.
 | ||||
| #
 | ||||
| DELETE=rm -f | ||||
| ECHO=echo | ||||
| COPY=copy | ||||
| #
 | ||||
| # If your configuration needs to test compiler flags when building
 | ||||
| # pnglibconf.h you may need to override the following on the wmake command
 | ||||
| # line:
 | ||||
| CFLAGS= | ||||
| CC=wcl386 | ||||
| CPP=$(CC) -pw0 | ||||
| #
 | ||||
| # Read awk from the environment if set, else it can be set on the command
 | ||||
| # line (the default approach is to set the %awk% environment variable in the
 | ||||
| # IDE libpng.wpj 'before' rule - this setting is local.)
 | ||||
| !ifdef %awk | ||||
| AWK=$(%awk) | ||||
| !endif | ||||
| #
 | ||||
| # pnglibconf.h must exist in the source directory, this is the final rule
 | ||||
| # which copies the local built version (and this is the default target for
 | ||||
| # this makefile.)
 | ||||
| ..\..\pnglibconf.h: pnglibconf.h | ||||
|  $(COPY) pnglibconf.h $@ | ||||
| 
 | ||||
| !ifdef AWK | ||||
| # CPPFLAGS should contain the options to control the result,
 | ||||
| # but DEFS and CFLAGS are also supported here, override
 | ||||
| # as appropriate
 | ||||
| DFNFLAGS = $(DEFS) $(CPPFLAGS) $(CFLAGS) | ||||
| 
 | ||||
| pnglibconf.h: pnglibconf.dfn | ||||
|  $(DELETE) $@ dfn.c dfn1.out dfn2.out | ||||
|  $(ECHO) $#include "pnglibconf.dfn" >dfn.c | ||||
|  $(CPP) $(DFNFLAGS) dfn.c >dfn1.out | ||||
|  $(AWK) -f << dfn1.out >dfn2.out | ||||
| /^.*PNG_DEFN_MAGIC-.*-PNG_DEFN_END.*$$/{ | ||||
|  sub(/^.*PNG_DEFN_MAGIC-/, "") | ||||
|  sub(/ *-PNG_DEFN_END.*$$/, "") | ||||
|  gsub(/ *@@@ */, "") | ||||
|  print | ||||
| } | ||||
| << | ||||
|  $(COPY) dfn2.out $@ | ||||
|  @type << >pngconfig.inf | ||||
| This is a locally configurable build of libpng.lib; for configuration | ||||
| instructions consult and edit projects/openwatcom/pngconfig.dfa | ||||
| << | ||||
|  $(DELETE) dfn.c dfn1.out dfn2.out | ||||
| 
 | ||||
| pnglibconf.dfn: ..\..\scripts\pnglibconf.dfa ..\..\scripts\options.awk pngconfig.dfa ..\..\pngconf.h | ||||
|  $(DELETE) $@ dfn1.out dfn2.out | ||||
|  $(AWK) -f ..\..\scripts\options.awk out=dfn1.out version=search ..\..\pngconf.h ..\..\scripts\pnglibconf.dfa pngconfig.dfa $(DFA_XTRA) 1>&2 | ||||
|  $(AWK) -f ..\..\scripts\options.awk out=dfn2.out dfn1.out 1>&2 | ||||
|  $(COPY) dfn2.out $@ | ||||
|  $(DELETE) dfn1.out dfn2.out | ||||
| 
 | ||||
| !else | ||||
| # The following lines are used to copy scripts\pnglibconf.h.prebuilt and make
 | ||||
| # the required change to the calling convention.
 | ||||
| #
 | ||||
| # By default libpng is built to use the __cdecl calling convention on
 | ||||
| # Windows.  This gives compatibility with MSVC and GCC.  Unfortunately it
 | ||||
| # does not work with OpenWatcom because OpenWatcom implements longjmp using
 | ||||
| # the __watcall convention (compared with both MSVC and GCC which use __cdecl
 | ||||
| # for library functions.)
 | ||||
| #
 | ||||
| # Thus the default must be changed to build on OpenWatcom and, once changed,
 | ||||
| # the result will not be compatible with applications built using other
 | ||||
| # compilers (in fact attempts to build will fail at compile time.)
 | ||||
| #
 | ||||
| pnglibconf.h: ..\..\scripts\pnglibconf.h.prebuilt .existsonly | ||||
|  @$(ECHO) . | ||||
|  @$(ECHO) . | ||||
|  @$(ECHO) $$(AWK) NOT AVAILABLE: COPYING scripts\pnglibconf.h.prebuilt | ||||
|  @$(ECHO) . | ||||
|  @$(ECHO) . | ||||
|  vi -q -k ":1,$$s/PNG_API_RULE 0$$/PNG_API_RULE 2/\n:w! $@\n:q!\n" ..\..\scripts\pnglibconf.h.prebuilt | ||||
|  @$(ECHO) . | ||||
|  @$(ECHO) . | ||||
|  @$(ECHO) YOU HAVE A DEFAULT CONFIGURATION BECAUSE YOU DO NOT HAVE AWK! | ||||
|  @$(ECHO) . | ||||
|  @$(ECHO) . | ||||
|  @type << >pngconfig.inf | ||||
| This is the default configuration of libpng.lib, if you wish to | ||||
| change the configuration please consult the instructions in | ||||
| projects/owatcom/pngconfig.dfa. | ||||
| << | ||||
| 
 | ||||
| !endif | ||||
| 
 | ||||
| # Make the default files
 | ||||
| defaults: .symbolic | ||||
|  @$(COPY) << config.inf | ||||
| $# The libpng project is incompletely configured.  To complete configuration
 | ||||
| $# please complete the following steps: | ||||
| $#
 | ||||
| $#   1) Edit the 'before' rule of libpng.wpj (from the IDE) to define the
 | ||||
| $#      locations of the zlib include file zlib.h and the built zlib library,
 | ||||
| $#      zlib.lib.
 | ||||
| $#
 | ||||
| $#   2) If you want to change libpng to a non-standard configuration also
 | ||||
| $#      change the definition of 'awk' in the before rule to the name of your
 | ||||
| $#      awk command.  For more instructions on configuration read
 | ||||
| $#      pngconfig.dfa.
 | ||||
| $#
 | ||||
| $#   3) Delete this file (config.inf).
 | ||||
| << | ||||
|  @$(COPY) << pngconfig.dfa | ||||
| $# pngconfig.dfa: this file contains configuration options for libpng. | ||||
| $# If emtpy the standard configuration will be built.  For this file to be
 | ||||
| $# used a working version of the program 'awk' is required and the program
 | ||||
| $# must be identified in the 'before' rule of the project.
 | ||||
| $#
 | ||||
| $# If you don't already have 'awk', or the version of awk you have seems not
 | ||||
| $# to work, download Brian Kernighan's awk (Brian Kernighan is the author of
 | ||||
| $# awk.)  You can find source code and a built executable (called awk95.exe)
 | ||||
| $# here: | ||||
| $#
 | ||||
| $#     http://www.cs.princeton.edu/~bwk/btl.mirror/ | ||||
| $#
 | ||||
| $# The executable works just fine.
 | ||||
| $#
 | ||||
| $# If build issues errors after a change to pngconfig.dfa you have entered
 | ||||
| $# inconsistent feature requests, or even malformed requests, in
 | ||||
| $# pngconfig.dfa.  The error messages from awk should be comprehensible, but
 | ||||
| $# if not simply go back to the start (nothing but comments in this file) and
 | ||||
| $# enter configuration lines one by one until one produces an error.  (Or, of
 | ||||
| $# course, do the standard binary chop.)
 | ||||
| $#
 | ||||
| $# You need to rebuild everything after a change to pnglibconf.dfa - i.e. you
 | ||||
| $# must do Actions/Mark All Targets for Remake.  This is because the compiler
 | ||||
| $# generated dependency information (as of OpenWatcom 1.9) does not record the
 | ||||
| $# dependency on pnglibconf.h correctly.
 | ||||
| $#
 | ||||
| $# If awk isn't set then this file is bypassed.  If you just want the standard
 | ||||
| $# configuration it is automatically produced from the distributed version
 | ||||
| $# (scripts\pnglibconf.h.prebuilt) by editting PNG_API_RULE to 2 (to force use
 | ||||
| $# of the OpenWatcom library calling convention.)
 | ||||
| $#
 | ||||
| << | ||||
| 
 | ||||
| clean:: .symbolic | ||||
|  $(DELETE) ..\..\pnglibconf.h pnglibconf.* dfn.c *.out pngconfig.inf | ||||
|  $(DELETE) *.obj *.mbr *.sym *.err *.pch libpng.mk | ||||
|  $(DELETE) libpng.lib libpng.lbr libpng.lb1 libpng.cbr libpng.mk1 | ||||
|  $(DELETE) pngtest.exe pngtest.map pngtest.lk1 pngtest.mk1 | ||||
|  $(DELETE) pngvalid.exe pngvalid.map pngvalid.lk1 pngvalid.mk1 | ||||
| 
 | ||||
| distclean:: clean .symbolic | ||||
|  $(DELETE) zlib.inf awk.inf config.inf pngconfig.dfa | ||||
							
								
								
									
										179
									
								
								projects/owatcom/pngtest.tgt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								projects/owatcom/pngtest.tgt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,179 @@ | ||||
| 40 | ||||
| targetIdent | ||||
| 0 | ||||
| MProject | ||||
| 1 | ||||
| MComponent | ||||
| 0 | ||||
| 2 | ||||
| WString | ||||
| 4 | ||||
| NEXE | ||||
| 3 | ||||
| WString | ||||
| 5 | ||||
| nc2en | ||||
| 1 | ||||
| 0 | ||||
| 0 | ||||
| 4 | ||||
| MCommand | ||||
| 0 | ||||
| 5 | ||||
| MCommand | ||||
| 34 | ||||
| cd ..\.. | ||||
| projects\owatcom\pngtest | ||||
| 6 | ||||
| MItem | ||||
| 11 | ||||
| pngtest.exe | ||||
| 7 | ||||
| WString | ||||
| 4 | ||||
| NEXE | ||||
| 8 | ||||
| WVList | ||||
| 4 | ||||
| 9 | ||||
| MVState | ||||
| 10 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 11 | ||||
| WString | ||||
| 28 | ||||
| ?????Library directories(;): | ||||
| 1 | ||||
| 12 | ||||
| WString | ||||
| 8 | ||||
| $(%zlib) | ||||
| 0 | ||||
| 13 | ||||
| MVState | ||||
| 14 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 15 | ||||
| WString | ||||
| 18 | ||||
| ?????Libraries(,): | ||||
| 1 | ||||
| 16 | ||||
| WString | ||||
| 19 | ||||
| libpng.lib zlib.lib | ||||
| 0 | ||||
| 17 | ||||
| MVState | ||||
| 18 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 19 | ||||
| WString | ||||
| 28 | ||||
| ?????Library directories(;): | ||||
| 0 | ||||
| 20 | ||||
| WString | ||||
| 8 | ||||
| $(%zlib) | ||||
| 0 | ||||
| 21 | ||||
| MVState | ||||
| 22 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 23 | ||||
| WString | ||||
| 18 | ||||
| ?????Libraries(,): | ||||
| 0 | ||||
| 24 | ||||
| WString | ||||
| 19 | ||||
| libpng.lib zlib.lib | ||||
| 0 | ||||
| 25 | ||||
| WVList | ||||
| 0 | ||||
| -1 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 26 | ||||
| WPickList | ||||
| 2 | ||||
| 27 | ||||
| MItem | ||||
| 3 | ||||
| *.c | ||||
| 28 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 29 | ||||
| WVList | ||||
| 2 | ||||
| 30 | ||||
| MVState | ||||
| 31 | ||||
| WString | ||||
| 3 | ||||
| WCC | ||||
| 32 | ||||
| WString | ||||
| 25 | ||||
| n????Include directories: | ||||
| 1 | ||||
| 33 | ||||
| WString | ||||
| 39 | ||||
| "$(%zlib);$(%watcom)/h;$(%watcom)/h/nt" | ||||
| 0 | ||||
| 34 | ||||
| MVState | ||||
| 35 | ||||
| WString | ||||
| 3 | ||||
| WCC | ||||
| 36 | ||||
| WString | ||||
| 25 | ||||
| n????Include directories: | ||||
| 0 | ||||
| 37 | ||||
| WString | ||||
| 39 | ||||
| "$(%zlib);$(%watcom)/h;$(%watcom)/h/nt" | ||||
| 0 | ||||
| 38 | ||||
| WVList | ||||
| 0 | ||||
| -1 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 39 | ||||
| MItem | ||||
| 15 | ||||
| ..\..\pngtest.c | ||||
| 40 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 41 | ||||
| WVList | ||||
| 0 | ||||
| 42 | ||||
| WVList | ||||
| 0 | ||||
| 27 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
							
								
								
									
										210
									
								
								projects/owatcom/pngvalid.tgt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								projects/owatcom/pngvalid.tgt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,210 @@ | ||||
| 40 | ||||
| targetIdent | ||||
| 0 | ||||
| MProject | ||||
| 1 | ||||
| MComponent | ||||
| 0 | ||||
| 2 | ||||
| WString | ||||
| 4 | ||||
| NEXE | ||||
| 3 | ||||
| WString | ||||
| 5 | ||||
| nc2en | ||||
| 1 | ||||
| 0 | ||||
| 0 | ||||
| 4 | ||||
| MCommand | ||||
| 0 | ||||
| 5 | ||||
| MCommand | ||||
| 8 | ||||
| pngvalid | ||||
| 6 | ||||
| MItem | ||||
| 12 | ||||
| pngvalid.exe | ||||
| 7 | ||||
| WString | ||||
| 4 | ||||
| NEXE | ||||
| 8 | ||||
| WVList | ||||
| 6 | ||||
| 9 | ||||
| MVState | ||||
| 10 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 11 | ||||
| WString | ||||
| 11 | ||||
| ?????Stack: | ||||
| 1 | ||||
| 12 | ||||
| WString | ||||
| 4 | ||||
| 768k | ||||
| 0 | ||||
| 13 | ||||
| MVState | ||||
| 14 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 15 | ||||
| WString | ||||
| 28 | ||||
| ?????Library directories(;): | ||||
| 1 | ||||
| 16 | ||||
| WString | ||||
| 8 | ||||
| $(%zlib) | ||||
| 0 | ||||
| 17 | ||||
| MVState | ||||
| 18 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 19 | ||||
| WString | ||||
| 18 | ||||
| ?????Libraries(,): | ||||
| 1 | ||||
| 20 | ||||
| WString | ||||
| 19 | ||||
| libpng.lib zlib.lib | ||||
| 0 | ||||
| 21 | ||||
| MVState | ||||
| 22 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 23 | ||||
| WString | ||||
| 11 | ||||
| ?????Stack: | ||||
| 0 | ||||
| 24 | ||||
| WString | ||||
| 4 | ||||
| 768k | ||||
| 0 | ||||
| 25 | ||||
| MVState | ||||
| 26 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 27 | ||||
| WString | ||||
| 28 | ||||
| ?????Library directories(;): | ||||
| 0 | ||||
| 28 | ||||
| WString | ||||
| 8 | ||||
| $(%zlib) | ||||
| 0 | ||||
| 29 | ||||
| MVState | ||||
| 30 | ||||
| WString | ||||
| 7 | ||||
| WINLINK | ||||
| 31 | ||||
| WString | ||||
| 18 | ||||
| ?????Libraries(,): | ||||
| 0 | ||||
| 32 | ||||
| WString | ||||
| 19 | ||||
| libpng.lib zlib.lib | ||||
| 0 | ||||
| 33 | ||||
| WVList | ||||
| 0 | ||||
| -1 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 34 | ||||
| WPickList | ||||
| 2 | ||||
| 35 | ||||
| MItem | ||||
| 3 | ||||
| *.c | ||||
| 36 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 37 | ||||
| WVList | ||||
| 2 | ||||
| 38 | ||||
| MVState | ||||
| 39 | ||||
| WString | ||||
| 3 | ||||
| WCC | ||||
| 40 | ||||
| WString | ||||
| 25 | ||||
| n????Include directories: | ||||
| 1 | ||||
| 41 | ||||
| WString | ||||
| 39 | ||||
| "$(%zlib);$(%watcom)/h;$(%watcom)/h/nt" | ||||
| 0 | ||||
| 42 | ||||
| MVState | ||||
| 43 | ||||
| WString | ||||
| 3 | ||||
| WCC | ||||
| 44 | ||||
| WString | ||||
| 25 | ||||
| n????Include directories: | ||||
| 0 | ||||
| 45 | ||||
| WString | ||||
| 39 | ||||
| "$(%zlib);$(%watcom)/h;$(%watcom)/h/nt" | ||||
| 0 | ||||
| 46 | ||||
| WVList | ||||
| 0 | ||||
| -1 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| 47 | ||||
| MItem | ||||
| 33 | ||||
| ..\..\contrib\libtests\pngvalid.c | ||||
| 48 | ||||
| WString | ||||
| 4 | ||||
| COBJ | ||||
| 49 | ||||
| WVList | ||||
| 0 | ||||
| 50 | ||||
| WVList | ||||
| 0 | ||||
| 35 | ||||
| 1 | ||||
| 1 | ||||
| 0 | ||||
| @ -1,59 +0,0 @@ | ||||
| Microsoft Developer Studio Workspace File, Format Version 6.00 | ||||
| # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! | ||||
| 
 | ||||
| ############################################################################### | ||||
| 
 | ||||
| Project: "libpng"=".\libpng.dsp" - Package Owner=<4> | ||||
| 
 | ||||
| Package=<5> | ||||
| {{{ | ||||
| }}} | ||||
| 
 | ||||
| Package=<4> | ||||
| {{{ | ||||
|     Begin Project Dependency | ||||
|     Project_Dep_Name zlib | ||||
|     End Project Dependency | ||||
| }}} | ||||
| 
 | ||||
| ############################################################################### | ||||
| 
 | ||||
| Project: "pngtest"=".\pngtest.dsp" - Package Owner=<4> | ||||
| 
 | ||||
| Package=<5> | ||||
| {{{ | ||||
| }}} | ||||
| 
 | ||||
| Package=<4> | ||||
| {{{ | ||||
|     Begin Project Dependency | ||||
|     Project_Dep_Name libpng | ||||
|     End Project Dependency | ||||
| }}} | ||||
| 
 | ||||
| ############################################################################### | ||||
| 
 | ||||
| Project: "zlib"="..\..\..\zlib\projects\visualc6\zlib.dsp" - Package Owner=<4> | ||||
| 
 | ||||
| Package=<5> | ||||
| {{{ | ||||
| }}} | ||||
| 
 | ||||
| Package=<4> | ||||
| {{{ | ||||
| }}} | ||||
| 
 | ||||
| ############################################################################### | ||||
| 
 | ||||
| Global: | ||||
| 
 | ||||
| Package=<5> | ||||
| {{{ | ||||
| }}} | ||||
| 
 | ||||
| Package=<3> | ||||
| {{{ | ||||
| }}} | ||||
| 
 | ||||
| ############################################################################### | ||||
| 
 | ||||
| @ -37,9 +37,9 @@ To use: | ||||
| 
 | ||||
| This project builds the libpng binaries as follows: | ||||
| 
 | ||||
| * Win32_DLL_Release\libpng14.dll      DLL build | ||||
| * Win32_DLL_Debug\libpng14d.dll       DLL build (debug version) | ||||
| * Win32_DLL_VB\libpng14vb.dll         DLL build for Visual Basic, using stdcall | ||||
| * Win32_DLL_Release\libpng15.dll      DLL build | ||||
| * Win32_DLL_Debug\libpng15d.dll       DLL build (debug version) | ||||
| * Win32_DLL_VB\libpng15vb.dll         DLL build for Visual Basic, using stdcall | ||||
| * Win32_LIB_Release\libpng.lib        static build | ||||
| * Win32_LIB_Debug\libpngd.lib         static build (debug version) | ||||
| 
 | ||||
|  | ||||
| @ -17,35 +17,35 @@ | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				EnableFunctionLevelLinking="TRUE" | ||||
| 				UsePrecompiledHeader="3" | ||||
| 				PrecompiledHeaderThrough="png.h" | ||||
| 				PrecompiledHeaderThrough="pngpriv.h" | ||||
| 				WarningLevel="3" | ||||
| 				CompileAs="0"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				OutputFile="$(OutDir)/libpng14.dll" | ||||
| 				LinkIncremental="1" | ||||
| 				ModuleDefinitionFile="..\..\scripts\pngwin.def"/> | ||||
| 				OutputFile="$(OutDir)/libpng15.dll" | ||||
| 				LinkIncremental="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 				CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 				PreprocessorDefinitions="NDEBUG" | ||||
| 				Culture="1033" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib;$(IntDir)"/> | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| @ -65,12 +65,12 @@ | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;PNG_BUILD_DLL;ZLIB_DLL;_CRT_SECURE_NO_WARNINGS" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="3" | ||||
| 				UsePrecompiledHeader="3" | ||||
| 				PrecompiledHeaderThrough="png.h" | ||||
| 				PrecompiledHeaderThrough="pngpriv.h" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="4" | ||||
| 				CompileAs="0"/> | ||||
| @ -78,22 +78,22 @@ | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				OutputFile="$(OutDir)/libpng14d.dll" | ||||
| 				ModuleDefinitionFile="..\..\scripts\pngwin.def" | ||||
| 				OutputFile="$(OutDir)/libpng15d.dll" | ||||
| 				GenerateDebugInformation="TRUE"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 				CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCResourceCompilerTool" | ||||
| 				PreprocessorDefinitions="_DEBUG,PNG_DEBUG=1" | ||||
| 				Culture="1033" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib;$(IntDir)"/> | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| @ -113,27 +113,28 @@ | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;PNG_BUILD_DLL;ZLIB_DLL;PNGAPI=__stdcall;PNG_NO_MODULEDEF;PNG_LIBPNG_SPECIALBUILD;PNG_USER_PRIVATEBUILD;_CRT_SECURE_NO_WARNINGS" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="2" | ||||
| 				EnableFunctionLevelLinking="TRUE" | ||||
| 				UsePrecompiledHeader="3" | ||||
| 				PrecompiledHeaderThrough="png.h" | ||||
| 				PrecompiledHeaderThrough="pngpriv.h" | ||||
| 				WarningLevel="3" | ||||
| 				CompileAs="0"/> | ||||
| 			<Tool | ||||
| 				Name="VCCustomBuildTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCLinkerTool" | ||||
| 				OutputFile="$(OutDir)/libpng14vb.dll" | ||||
| 				OutputFile="$(OutDir)/libpng15vb.dll" | ||||
| 				LinkIncremental="1"/> | ||||
| 			<Tool | ||||
| 				Name="VCMIDLTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 				CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| @ -141,7 +142,7 @@ | ||||
| 				AdditionalOptions="/d PNG_NO_PEDANTIC_WARNINGS /d PNG_LIBPNG_DLLFNAME_POSTFIX=""""VB"""" /d PNG_LIBPNG_SPECIALBUILD=""""__stdcall calling convention used for exported functions""""" | ||||
| 				PreprocessorDefinitions="NDEBUG" | ||||
| 				Culture="1033" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib;$(IntDir)"/> | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib;$(IntDir)"/> | ||||
| 			<Tool | ||||
| 				Name="VCWebServiceProxyGeneratorTool"/> | ||||
| 			<Tool | ||||
| @ -161,13 +162,13 @@ | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				InlineFunctionExpansion="1" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib" | ||||
| 				PreprocessorDefinitions="WIN32;NDEBUG;_CRT_SECURE_NO_WARNINGS" | ||||
| 				StringPooling="TRUE" | ||||
| 				RuntimeLibrary="0" | ||||
| 				EnableFunctionLevelLinking="TRUE" | ||||
| 				UsePrecompiledHeader="3" | ||||
| 				PrecompiledHeaderThrough="png.h" | ||||
| 				PrecompiledHeaderThrough="pngpriv.h" | ||||
| 				WarningLevel="3" | ||||
| 				CompileAs="0"/> | ||||
| 			<Tool | ||||
| @ -180,7 +181,8 @@ | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 				CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| @ -202,12 +204,12 @@ | ||||
| 			<Tool | ||||
| 				Name="VCCLCompilerTool" | ||||
| 				Optimization="0" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\scripts;..\..\..\zlib" | ||||
| 				AdditionalIncludeDirectories="..\..;..\..\..\zlib" | ||||
| 				PreprocessorDefinitions="WIN32;_DEBUG;DEBUG;PNG_DEBUG=1;_CRT_SECURE_NO_WARNINGS" | ||||
| 				BasicRuntimeChecks="3" | ||||
| 				RuntimeLibrary="1" | ||||
| 				UsePrecompiledHeader="3" | ||||
| 				PrecompiledHeaderThrough="png.h" | ||||
| 				PrecompiledHeaderThrough="pngpriv.h" | ||||
| 				WarningLevel="3" | ||||
| 				DebugInformationFormat="4" | ||||
| 				CompileAs="0"/> | ||||
| @ -221,7 +223,8 @@ | ||||
| 			<Tool | ||||
| 				Name="VCPostBuildEventTool"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreBuildEventTool"/> | ||||
| 				Name="VCPreBuildEventTool" | ||||
| 				CommandLine="copy ..\..\scripts\pnglibconf.h.prebuilt ..\..\pnglibconf.h"/> | ||||
| 			<Tool | ||||
| 				Name="VCPreLinkEventTool"/> | ||||
| 			<Tool | ||||
| @ -335,27 +338,6 @@ | ||||
| 			<File | ||||
| 				RelativePath="..\..\pngtrans.c"> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath="..\..\scripts\pngwin.def"> | ||||
| 				<FileConfiguration | ||||
| 					Name="DLL VB|Win32" | ||||
| 					ExcludedFromBuild="TRUE"> | ||||
| 					<Tool | ||||
| 						Name="VCCustomBuildTool"/> | ||||
| 				</FileConfiguration> | ||||
| 				<FileConfiguration | ||||
| 					Name="LIB Release|Win32" | ||||
| 					ExcludedFromBuild="TRUE"> | ||||
| 					<Tool | ||||
| 						Name="VCCustomBuildTool"/> | ||||
| 				</FileConfiguration> | ||||
| 				<FileConfiguration | ||||
| 					Name="LIB Debug|Win32" | ||||
| 					ExcludedFromBuild="TRUE"> | ||||
| 					<Tool | ||||
| 						Name="VCCustomBuildTool"/> | ||||
| 				</FileConfiguration> | ||||
| 			</File> | ||||
| 			<File | ||||
| 				RelativePath="..\..\pngwio.c"> | ||||
| 			</File> | ||||
|  | ||||
| @ -130,7 +130,7 @@ $(TargetPath) ..\..\pngtest.png $(IntDir)\pngout.png" | ||||
| 				Name="VCLinkerTool" | ||||
| 				OutputFile="$(OutDir)/pngtest.exe" | ||||
| 				LinkIncremental="1" | ||||
| 				IgnoreDefaultLibraryNames="$(IntDir)\libpng14b.lib" | ||||
| 				IgnoreDefaultLibraryNames="$(IntDir)\libpng15b.lib" | ||||
| 				SubSystem="1" | ||||
| 				TargetMachine="1"/> | ||||
| 			<Tool | ||||
|  | ||||
| @ -63,76 +63,74 @@ | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildBeforeTargets> | ||||
|     </CustomBuildBeforeTargets> | ||||
|     <TargetName>$(ProjectName)14</TargetName> | ||||
|     <TargetName>$(ProjectName)15</TargetName> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildBeforeTargets /> | ||||
|     <TargetName>$(ProjectName)14</TargetName> | ||||
|     <TargetName>$(ProjectName)15</TargetName> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildBeforeTargets> | ||||
|     </CustomBuildBeforeTargets> | ||||
|     <TargetName>$(ProjectName)14</TargetName> | ||||
|     <TargetName>$(ProjectName)15</TargetName> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildBeforeTargets /> | ||||
|     <TargetName>$(ProjectName)14</TargetName> | ||||
|     <TargetName>$(ProjectName)15</TargetName> | ||||
|   </PropertyGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <PrecompiledHeader>Use</PrecompiledHeader> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | ||||
|       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | ||||
|       <PreprocessorDefinitions>WIN32;PNG_BUILD_DLL;PNG_NO_MODULEDEF;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> | ||||
|       <PrecompiledHeaderFile>png.h</PrecompiledHeaderFile> | ||||
|       <PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <CompileAs>CompileAsC</CompileAs> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <AdditionalDependencies>zlib.lib;msvcrtd.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|       <Version>14</Version> | ||||
|       <AdditionalDependencies>zlib.lib</AdditionalDependencies> | ||||
|       <Version>15</Version> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <PrecompiledHeader>Use</PrecompiledHeader> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | ||||
|       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> | ||||
|       <PrecompiledHeaderFile>png.h</PrecompiledHeaderFile> | ||||
|       <PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <CompileAs>CompileAsC</CompileAs> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
| @ -142,53 +140,20 @@ | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <PrecompiledHeader>Use</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;PNG_BUILD_DLL;PNG_NO_MODULEDEF;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> | ||||
|       <PrecompiledHeaderFile>png.h</PrecompiledHeaderFile> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <CompileAs>CompileAsC</CompileAs> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <Optimization>Full</Optimization> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies>zdll.lib;msvcrt.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|       <Version>14</Version> | ||||
|       <AdditionalLibraryDirectories>$(ZLib1Dir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> | ||||
|       <PrecompiledHeaderFile>png.h</PrecompiledHeaderFile> | ||||
|       <PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <CompileAs>CompileAsC</CompileAs> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <Optimization>Full</Optimization> | ||||
|     </ClCompile> | ||||
| @ -197,8 +162,43 @@ | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies>zlib.lib</AdditionalDependencies> | ||||
|       <Version>15</Version> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <PrecompiledHeader>Use</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <RuntimeLibrary>MultiThreaded</RuntimeLibrary> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType> | ||||
|       <PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <CompileAs>CompileAsC</CompileAs> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|     </Link> | ||||
|     <Lib> | ||||
|       <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration> | ||||
|     </Lib> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup> | ||||
|     <ClCompile Include="..\..\..\png.c"> | ||||
|       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> | ||||
|  | ||||
							
								
								
									
										60
									
								
								projects/vstudio/pnglibconf/pnglibconf.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								projects/vstudio/pnglibconf/pnglibconf.vcxproj
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <ItemGroup Label="ProjectConfigurations"> | ||||
|     <ProjectConfiguration Include="Release|Win32"> | ||||
|       <Configuration>Release</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{EB33566E-DA7F-4D28-9077-88C0B7C77E35}</ProjectGuid> | ||||
|     <RootNamespace>pnglibconf</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>Application</ConfigurationType> | ||||
|     <UseDebugLibraries>false</UseDebugLibraries> | ||||
|     <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|     <CharacterSet>MultiByte</CharacterSet> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | ||||
|   <ImportGroup Label="ExtensionSettings"> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||||
|   </ImportGroup> | ||||
|   <PropertyGroup Label="UserMacros" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <CustomBuildBeforeTargets>Build</CustomBuildBeforeTargets> | ||||
|   </PropertyGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <Optimization>MaxSpeed</Optimization> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
|       <Command>copy ..\..\..\scripts\pnglibconf.h.prebuilt ..\..\..\pnglibconf.h</Command> | ||||
|     </CustomBuildStep> | ||||
|     <CustomBuildStep> | ||||
|       <Message>Generating pnglibconf.h</Message> | ||||
|     </CustomBuildStep> | ||||
|     <CustomBuildStep> | ||||
|       <Outputs>..\..\..\pnglibconf.h</Outputs> | ||||
|     </CustomBuildStep> | ||||
|     <CustomBuildStep> | ||||
|       <Inputs>..\..\..\scripts\pnglibconf.h.prebuilt</Inputs> | ||||
|     </CustomBuildStep> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup> | ||||
|   </ItemGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||
|   <ImportGroup Label="ExtensionTargets"> | ||||
|   </ImportGroup> | ||||
| </Project> | ||||
| @ -81,7 +81,6 @@ | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | ||||
|       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996</DisableSpecificWarnings> | ||||
| @ -91,12 +90,12 @@ | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <AdditionalDependencies>libpng14.lib;zlib.lib;msvcrtd.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|       <AdditionalDependencies>libpng15.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
| @ -114,7 +113,7 @@ | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | ||||
|       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | ||||
|       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996</DisableSpecificWarnings> | ||||
| @ -124,12 +123,12 @@ | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <AdditionalDependencies>libpng14.lib;zlib.lib;msvcrtd.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|       <AdditionalDependencies>libpng15.lib;zlib.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
| @ -145,25 +144,26 @@ | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996</DisableSpecificWarnings> | ||||
|       <CompileAsManaged>false</CompileAsManaged> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies>libpng14.lib;msvcrt.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> | ||||
|       <AdditionalDependencies>libpng15.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
| @ -179,26 +179,28 @@ | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | ||||
|       <RuntimeLibrary>MultiThreaded</RuntimeLibrary> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLib1Dir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996</DisableSpecificWarnings> | ||||
|       <CompileAsManaged>false</CompileAsManaged> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies>libpng14.lib;zlib.lib;msvcrt.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|       <AdditionalLibraryDirectories>$(OutDir);$(ZLib1Dir)</AdditionalLibraryDirectories> | ||||
|       <AdditionalDependencies>libpng15.lib;zlib.lib</AdditionalDependencies> | ||||
|       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
|       <Message>Executing PNG test program</Message> | ||||
|  | ||||
							
								
								
									
										218
									
								
								projects/vstudio/pngvalid/pngvalid.vcxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										218
									
								
								projects/vstudio/pngvalid/pngvalid.vcxproj
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,218 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <ItemGroup Label="ProjectConfigurations"> | ||||
|     <ProjectConfiguration Include="Debug Library|Win32"> | ||||
|       <Configuration>Debug Library</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|     <ProjectConfiguration Include="Debug|Win32"> | ||||
|       <Configuration>Debug</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|     <ProjectConfiguration Include="Release Library|Win32"> | ||||
|       <Configuration>Release Library</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|     <ProjectConfiguration Include="Release|Win32"> | ||||
|       <Configuration>Release</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}</ProjectGuid> | ||||
|     <Keyword>Win32Proj</Keyword> | ||||
|     <RootNamespace>pngvalid</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <Import Project="$(SolutionDir)\zlib.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>Application</ConfigurationType> | ||||
|     <CharacterSet>Unicode</CharacterSet> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>Application</ConfigurationType> | ||||
|     <CharacterSet>Unicode</CharacterSet> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>Application</ConfigurationType> | ||||
|     <CharacterSet>Unicode</CharacterSet> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>Application</ConfigurationType> | ||||
|     <CharacterSet>Unicode</CharacterSet> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | ||||
|   <ImportGroup Label="ExtensionSettings"> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> | ||||
|   </ImportGroup> | ||||
|   <PropertyGroup Label="UserMacros" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildAfterTargets /> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildAfterTargets /> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildAfterTargets /> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|     <CustomBuildAfterTargets /> | ||||
|   </PropertyGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <CompileAsManaged>false</CompileAsManaged> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <AdditionalDependencies>libpng15.lib;zlib.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
|       <Message>Executing PNG validation program</Message> | ||||
|       <Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command> | ||||
|       <Outputs>$(IntDir)pngvalid.out</Outputs> | ||||
|       <Inputs>$(OutDir)pngvalid.exe</Inputs> | ||||
|     </CustomBuildStep> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> | ||||
|       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <CompileAsManaged>false</CompileAsManaged> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <AdditionalDependencies>libpng15.lib;zlib.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
|       <Message>Executing PNG validation program</Message> | ||||
|       <Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command> | ||||
|       <Outputs>$(IntDir)pngvalid.out</Outputs> | ||||
|       <Inputs>$(OutDir)pngvalid.exe</Inputs> | ||||
|     </CustomBuildStep> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;PNG_USE_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <CompileAsManaged>false</CompileAsManaged> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies>libpng15.lib;zlib.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
|       <Message>Executing PNG validation program</Message> | ||||
|       <Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command> | ||||
|       <Outputs>$(IntDir)pngvalid.out</Outputs> | ||||
|       <Inputs>$(OutDir)pngvalid.exe</Inputs> | ||||
|     </CustomBuildStep> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level4</WarningLevel> | ||||
|       <PrecompiledHeader>NotUsing</PrecompiledHeader> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <RuntimeLibrary>MultiThreaded</RuntimeLibrary> | ||||
|       <FunctionLevelLinking>false</FunctionLevelLinking> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <AdditionalIncludeDirectories>$(ZLibSrcDir);..\..\..\scripts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> | ||||
|       <DisableSpecificWarnings>4996;4127</DisableSpecificWarnings> | ||||
|       <CompileAsManaged>false</CompileAsManaged> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <StringPooling>true</StringPooling> | ||||
|       <MinimalRebuild>false</MinimalRebuild> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|       <FloatingPointExceptions>false</FloatingPointExceptions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <SubSystem>Console</SubSystem> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <EnableCOMDATFolding>true</EnableCOMDATFolding> | ||||
|       <OptimizeReferences>true</OptimizeReferences> | ||||
|       <AdditionalDependencies>libpng15.lib;zlib.lib</AdditionalDependencies> | ||||
|       <AdditionalLibraryDirectories>$(OutDir)</AdditionalLibraryDirectories> | ||||
|       <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> | ||||
|     </Link> | ||||
|     <CustomBuildStep> | ||||
|       <Message>Executing PNG validation program</Message> | ||||
|       <Command>"$(OutDir)pngvalid.exe" --touch "$(IntDir)pngvalid.out"</Command> | ||||
|       <Outputs>$(IntDir)pngvalid.out</Outputs> | ||||
|       <Inputs>$(OutDir)pngvalid.exe</Inputs> | ||||
|     </CustomBuildStep> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemGroup> | ||||
|     <ClCompile Include="..\..\..\contrib\libtests\pngvalid.c" /> | ||||
|   </ItemGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> | ||||
|   <ImportGroup Label="ExtensionTargets"> | ||||
|   </ImportGroup> | ||||
| </Project> | ||||
| @ -1,7 +1,7 @@ | ||||
| 
 | ||||
| VisualStudio instructions | ||||
| 
 | ||||
| libpng version 1.4.9beta01 - July 8, 2011 | ||||
| libpng version 1.5.10beta01 - February 19, 2012 | ||||
| 
 | ||||
| Copyright (c) 1998-2010 Glenn Randers-Pehrson | ||||
| 
 | ||||
| @ -13,29 +13,13 @@ This directory  contains support for building libpng under MicroSoft | ||||
| VisualStudio 2010.  It may also work under later versions of VisualStudio. | ||||
| You should be familiar with VisualStudio before using this directory. | ||||
| 
 | ||||
| This is a slightly modified copy of the 'vstudio' solution from libpng | ||||
| 1.5; it is intended to provide compatibility for libpng 1.4 with later | ||||
| releases of zlib (from 1.2.4) and to provide a migration aid for 1.5. | ||||
| 
 | ||||
| A 'VB' DLL is no longer produced - use the standard 'Release' DLL. | ||||
| 
 | ||||
| Initial preparations | ||||
| ==================== | ||||
| You should install the 'official' build of zlib on your system - follow the | ||||
| instructions provided on http://www.zlib.net.  When a new release is being | ||||
| made of zlib the instructions disappear for a while until the new official | ||||
| build is available.  You will have to wait. | ||||
| 
 | ||||
| You must enter some information in zlib.props before attempting to build | ||||
| with this 'solution'.  Please read and edit zlib.props first.  You will | ||||
| probably not be familiar with the contents of zlib.props - do not worry, | ||||
| it is mostly harmless. | ||||
| 
 | ||||
| Make sure that your official build layout matches the requirements listed | ||||
| in zlib.props.  Prior to zlib-1.2.4 the official build (1.2.3) placed | ||||
| include and library files in different directories - if you find this | ||||
| has happened just put them all in the same directory. | ||||
| 
 | ||||
| This is all you need to do to build the 'release' and 'release library' | ||||
| configurations. | ||||
| 
 | ||||
| @ -46,6 +30,25 @@ information is produced (in the .pdb), but if you encounter a problem the | ||||
| optimization may make it difficult to debug.  Simply rebuild with a lower | ||||
| optimization level (e.g. /Od.) | ||||
| 
 | ||||
| Linking your application | ||||
| ======================== | ||||
| Normally you should link against the 'release' configuration.  This builds a | ||||
| DLL for libpng 1.5 with the default runtime options used by Visual Studio | ||||
| 2010.  In particular the runtime library is the "MultiThreaded DLL" version. | ||||
| If you use Visual Studio defaults to build your application you will have no | ||||
| problems. | ||||
| 
 | ||||
| If you don't use the Visual Studio defaults your application must still be built | ||||
| with the default runtime option (/MD).  If, for some reason, it is not then your | ||||
| application will crash inside libpng15.dll as soon as libpng tries to read | ||||
| from a file handle you pass in. | ||||
| 
 | ||||
| If you do not want to use the DLL, for example for a very small application, | ||||
| the 'release library' configuration may be more appropriate.  This is built | ||||
| with a non-standard runtime library - the "MultiThreaded" version.  When you | ||||
| build your application it must be compiled with this option (/MT), otherwise | ||||
| it will not build (if you are lucky) or crash (if you are not.) | ||||
| 
 | ||||
| Stop reading here | ||||
| ================= | ||||
| You have enough information to build a working application. | ||||
| @ -57,37 +60,5 @@ do not need these unless your own solution itself uses debug builds (it is | ||||
| far more effective to debug on the release builds, there is no point building | ||||
| a special debug build.) | ||||
| 
 | ||||
| If, despite the previous paragraph, you still feel you need a debug build you | ||||
| will have to download the zlib source as well (http://www.zlib.net) and include | ||||
| the directory where you unpack it in zlib.props.  This solution will then be | ||||
| able to build a minimal zlib sufficient for libpng.  This build is only | ||||
| suitable for making a debug libpng. | ||||
| 
 | ||||
| The debug build of libpng is minimally supported.  Support for debug builds of | ||||
| zlib is also minimal.  You really don't want to do this. | ||||
| 
 | ||||
| This solution only supports the Multi-Threaded DLL C Runtime | ||||
| ============================================================ | ||||
| If you examine the solution you will find that it very deliberately lists | ||||
| exactly which MicroSoft DLLs it is linking against.  It explicitly links | ||||
| against msvcrt.lib.  The debug version links against msvcrtd.lib (this is | ||||
| why it is a debug version - it's nothing to do with having any special | ||||
| debug support, it doesn't). | ||||
| 
 | ||||
| These versions of the MicroSoft C runtime correspond to the compiler flags | ||||
| /MD (release) and /MDd (debug) - the "Multi-Threaded DLL" implementation of the | ||||
| C runtime library. | ||||
| 
 | ||||
| If you need to change this then you will have to make sure that both the | ||||
| compiler flags and the ".lib" in the linker dependences match up.  Fortunately | ||||
| neither zlib nor libpng require libraries other than a C runtime and | ||||
| kernel32. | ||||
| 
 | ||||
| You cannot pass (FILE*) objects from a different runtime (including msvcrtd | ||||
| to msvcrt) to libpng.  If you do then your program will crash within libpng | ||||
| when it first makes a file read or write call. | ||||
| 
 | ||||
| It is likely if you have read this far that you have found you can't avoid | ||||
| having multiple C runtimes in your program.  This is OK, it does work, but | ||||
| you will have to implement the libpng file read/write callbacks rather than | ||||
| using the internal libpng default.  This is easy. | ||||
|  | ||||
| @ -1,16 +1,28 @@ | ||||
| Microsoft Visual Studio Solution File, Format Version 11.00 | ||||
| # Visual C++ Express 2010 | ||||
| # Visual Studio 2010 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpng", "libpng\libpng.vcxproj", "{D6973076-9317-4EF2-A0B8-B7A18AC0713E}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C} = {18040998-CC22-2BAE-FE7A-C0A3038F1D5C} | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF} | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngtest", "pngtest\pngtest.vcxproj", "{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF} | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35} | ||||
| 		{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcxproj", "{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}" | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib", "zlib\zlib.vcxproj", "{60F89955-91C6-3A36-8000-13C592FEC2DF}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pngvalid", "pngvalid\pngvalid.vcxproj", "{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}" | ||||
| 	ProjectSection(ProjectDependencies) = postProject | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF} = {60F89955-91C6-3A36-8000-13C592FEC2DF} | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35} = {EB33566E-DA7F-4D28-9077-88C0B7C77E35} | ||||
| 		{D6973076-9317-4EF2-A0B8-B7A18AC0713E} = {D6973076-9317-4EF2-A0B8-B7A18AC0713E} | ||||
| 	EndProjectSection | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pnglibconf", "pnglibconf\pnglibconf.vcxproj", "{EB33566E-DA7F-4D28-9077-88C0B7C77E35}" | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| @ -36,12 +48,38 @@ Global | ||||
| 		{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release Library|Win32.Build.0 = Release Library|Win32 | ||||
| 		{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.ActiveCfg = Release|Win32 | ||||
| 		{228BA965-50D5-42B2-8BCF-AFCC227E3C1D}.Release|Win32.Build.0 = Release|Win32 | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug Library|Win32.ActiveCfg = Debug Library|Win32 | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug Library|Win32.Build.0 = Debug Library|Win32 | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Debug|Win32.Build.0 = Debug|Win32 | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Release Library|Win32.ActiveCfg = Debug|Win32 | ||||
| 		{18040998-CC22-2BAE-FE7A-C0A3038F1D5C}.Release|Win32.ActiveCfg = Debug|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug Library|Win32.ActiveCfg = Debug Library|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug Library|Win32.Build.0 = Debug Library|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Debug|Win32.Build.0 = Debug|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release Library|Win32.ActiveCfg = Release Library|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release Library|Win32.Build.0 = Release Library|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.ActiveCfg = Release|Win32 | ||||
| 		{60F89955-91C6-3A36-8000-13C592FEC2DF}.Release|Win32.Build.0 = Release|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug Library|Win32.ActiveCfg = Debug Library|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug Library|Win32.Build.0 = Debug Library|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Debug|Win32.Build.0 = Debug|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release Library|Win32.ActiveCfg = Release Library|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release Library|Win32.Build.0 = Release Library|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release|Win32.ActiveCfg = Release|Win32 | ||||
| 		{9B36B6FE-7FC0-434F-A71F-BBEF8099F1D8}.Release|Win32.Build.0 = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug Library|Win32.ActiveCfg = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug Library|Win32.Build.0 = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug|Win32.ActiveCfg = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Debug|Win32.Build.0 = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release Library|Win32.ActiveCfg = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release Library|Win32.Build.0 = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release|Win32.ActiveCfg = Release|Win32 | ||||
| 		{EB33566E-DA7F-4D28-9077-88C0B7C77E35}.Release|Win32.Build.0 = Release|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug Library|Win32.ActiveCfg = Debug Library|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug Library|Win32.Build.0 = Debug Library|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug|Win32.ActiveCfg = Debug|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Debug|Win32.Build.0 = Debug|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release Library|Win32.ActiveCfg = Release Library|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release Library|Win32.Build.0 = Release Library|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release|Win32.ActiveCfg = Release|Win32 | ||||
| 		{277AC57F-313B-4D06-B119-A3CDB672D2FF}.Release|Win32.Build.0 = Release|Win32 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
|  | ||||
| @ -1,8 +1,8 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <!-- | ||||
|  * zlib.props - location of zlib source and build | ||||
|  * zlib.props - location of zlib source | ||||
|  * | ||||
|  * libpng version 1.4.9beta01 - July 8, 2011 | ||||
|  * libpng version 1.5.10beta01 - February 19, 2012 | ||||
|  * | ||||
|  * Copyright (c) 1998-2011 Glenn Randers-Pehrson | ||||
|  * | ||||
| @ -11,32 +11,26 @@ | ||||
|  * and license in png.h | ||||
| 
 | ||||
|  * You must edit this file to record the location of the zlib | ||||
|  * official and debug builds unless they are in the default | ||||
|  * directories: | ||||
| 
 | ||||
|  *   official: zlib1 | ||||
|  *   debug:    zlib debug | ||||
|  * source code. | ||||
|  --> | ||||
| 
 | ||||
| <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
| <Project ToolsVersion="4.0" | ||||
|    xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <!-- Place the name of the directory containing the official | ||||
|          build of zlib and the corresponding header files in this | ||||
|          property.  The directory is expected to contain at least: | ||||
|     <!-- Place the name of the directory containing the source of zlib used for | ||||
| 	 debugging in this property. | ||||
| 
 | ||||
|             zdll.lib  # The DLL import library | ||||
|             zlib.lib  # The static library | ||||
|             zlib.h    # The header file | ||||
|             zconf.h   # Another header file included by zlib.h | ||||
|      --> | ||||
|     <ZLib1Dir>..\..\..\..\zlib125-dll\zlib-1.2.5</ZLib1Dir> | ||||
|          The directory need only contain the '.c' and '.h' files from the | ||||
| 	 source. | ||||
| 
 | ||||
|     <!-- Place the name of the directory containing the source of | ||||
|          zlib used for debugging in this property. | ||||
|          The directory need only contain the '.c' and '.h' files | ||||
|          from the source.  For your own sanity make sure that the | ||||
|          '.h' files in the source match those from the 'official' | ||||
|          build above. | ||||
| 	 If you use a relative directory name (as below) then it must be | ||||
| 	 relative to the project directories; these are one level deepers than | ||||
| 	 the directories containing this file. | ||||
| 
 | ||||
| 	 If the version of zlib you use does not match that used when the | ||||
| 	 distribution was built you will get warnings from pngtest that the zlib | ||||
| 	 versions do not match.  The zlib version used in this build is recorded | ||||
| 	 below: | ||||
|      --> | ||||
|     <ZLibSrcDir>..\..\..\..\zlib-1.2.5</ZLibSrcDir> | ||||
|   </PropertyGroup> | ||||
|  | ||||
| @ -9,6 +9,14 @@ | ||||
|       <Configuration>Debug</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|     <ProjectConfiguration Include="Release Library|Win32"> | ||||
|       <Configuration>Release Library</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|     <ProjectConfiguration Include="Release|Win32"> | ||||
|       <Configuration>Release</Configuration> | ||||
|       <Platform>Win32</Platform> | ||||
|     </ProjectConfiguration> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ClCompile Include="$(ZLibSrcDir)\adler32.c" /> | ||||
| @ -28,62 +36,60 @@ | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <Import Project="$(SolutionDir)\zlib.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>DynamicLibrary</ConfigurationType> | ||||
|     <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>StaticLibrary</ConfigurationType> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>StaticLibrary</ConfigurationType> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>StaticLibrary</ConfigurationType> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>DynamicLibrary</ConfigurationType> | ||||
|     <ConfigurationType>StaticLibrary</ConfigurationType> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> | ||||
|     <ConfigurationType>StaticLibrary</ConfigurationType> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> | ||||
|   <ImportGroup Label="ExtensionSettings"> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'" Label="PropertySheets"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'" Label="PropertySheets"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" /> | ||||
|   </ImportGroup> | ||||
|   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> | ||||
|     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> | ||||
|   </ImportGroup> | ||||
|   <PropertyGroup Label="UserMacros" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <LinkIncremental>false</LinkIncremental> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'"> | ||||
|     <LinkIncremental>true</LinkIncremental> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <LinkIncremental>true</LinkIncremental> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <LinkIncremental>true</LinkIncremental> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <LinkIncremental>true</LinkIncremental> | ||||
|   </PropertyGroup> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <LinkIncremental>true</LinkIncremental> | ||||
|   </PropertyGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PreprocessorDefinitions>WIN32;ZLIB_DLL;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|       <Version>1</Version> | ||||
|       <AdditionalDependencies>msvcrtd.lib;kernel32.lib</AdditionalDependencies> | ||||
|       <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> | ||||
|       <WarningLevel>TurnOffAllWarnings</WarningLevel> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <TargetMachine>MachineX86</TargetMachine> | ||||
| @ -91,10 +97,66 @@ | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <WarningLevel>TurnOffAllWarnings</WarningLevel> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Disabled</Optimization> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <TargetMachine>MachineX86</TargetMachine> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|     </Link> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Library|Win32'"> | ||||
|     <ClCompile> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|       <BufferSecurityCheck>false</BufferSecurityCheck> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|       <RuntimeLibrary>MultiThreaded</RuntimeLibrary> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <TargetMachine>MachineX86</TargetMachine> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|     </Link> | ||||
|     <Lib> | ||||
|       <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration> | ||||
|     </Lib> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;DEBUGZLIB_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|       <Optimization>Full</Optimization> | ||||
|       <IntrinsicFunctions>true</IntrinsicFunctions> | ||||
|       <WholeProgramOptimization>true</WholeProgramOptimization> | ||||
|       <BufferSecurityCheck>false</BufferSecurityCheck> | ||||
|       <BrowseInformation>true</BrowseInformation> | ||||
|       <FunctionLevelLinking>true</FunctionLevelLinking> | ||||
|       <TreatWarningAsError>true</TreatWarningAsError> | ||||
|     </ClCompile> | ||||
|     <Link> | ||||
|       <TargetMachine>MachineX86</TargetMachine> | ||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||
|       <SubSystem>Windows</SubSystem> | ||||
|     </Link> | ||||
|     <Lib> | ||||
|       <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration> | ||||
|     </Lib> | ||||
|   </ItemDefinitionGroup> | ||||
|   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> | ||||
|     <ClCompile> | ||||
|       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||
|       <WarningLevel>Level3</WarningLevel> | ||||
|       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> | ||||
|     </ClCompile> | ||||
|  | ||||
| @ -1,8 +1,9 @@ | ||||
| 
 | ||||
| Makefiles for  libpng version 1.4.9beta01 - July 8, 2011 | ||||
| Makefiles for  libpng version 1.5.10beta01 - February 19, 2012 | ||||
| 
 | ||||
| pnglibconf.h.prebuilt       =>  Stores configuration settings | ||||
|  makefile.linux    =>  Linux/ELF makefile | ||||
|                        (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|                        (gcc, creates libpng15.so.15.1.5.10beta01) | ||||
|  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a) | ||||
|  makefile.knr      =>  Archaic UNIX Makefile that converts files with | ||||
|                        ansi2knr (Requires ansi2knr.c from | ||||
| @ -15,12 +16,11 @@ Makefiles for  libpng version 1.4.9beta01 - July 8, 2011 | ||||
|  makefile.beos     =>  beos makefile | ||||
|  makefile.bor      =>  Borland makefile (uses bcc) | ||||
|  makefile.cegcc    =>  minge32ce for Windows CE makefile | ||||
|  makefile.cygwin   =>  Cygwin/gcc makefile | ||||
|  makefile.darwin   =>  Darwin makefile, can use on MacosX | ||||
|  makefile.dec      =>  DEC Alpha UNIX makefile | ||||
|  makefile.dj2      =>  DJGPP 2 makefile | ||||
|  makefile.elf      =>  Linux/ELF makefile symbol versioning, | ||||
|                        (gcc, creates libpng14.so.14.1.4.9beta01) | ||||
|                        (gcc, creates libpng15.so.15.1.5.10beta01) | ||||
|  makefile.freebsd  =>  FreeBSD makefile | ||||
|  makefile.gcc      =>  Generic gcc makefile | ||||
|  makefile.hpgcc    =>  HPUX makefile using gcc | ||||
| @ -28,40 +28,49 @@ Makefiles for  libpng version 1.4.9beta01 - July 8, 2011 | ||||
|  makefile.hp64     =>  HPUX (10.20 and 11.00) makefile, 64-bit | ||||
|  makefile.ibmc     =>  IBM C/C++ version 3.x for Win32 and OS/2 (static) | ||||
|  makefile.intel    =>  Intel C/C++ version 4.0 and later | ||||
|  makefile.mingw    =>  Mingw makefile | ||||
|  makefile.mips     =>  MIPS makefile | ||||
|  makefile.msc      =>  Microsoft C makefile | ||||
|  makefile.netbsd   =>  NetBSD/cc makefile, makes libpng.so. | ||||
|  makefile.openbsd  =>  OpenBSD makefile | ||||
|  makefile.os2      =>  OS/2 Makefile (gcc and emx, requires pngos2.def) | ||||
|  makefile.os2      =>  OS/2 Makefile (gcc and emx, requires libpng.def) | ||||
|  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc | ||||
|  makefile.sggcc    =>  Silicon Graphics (gcc, | ||||
|                        creates libpng14.so.14.1.4.9beta01) | ||||
|                        creates libpng15.so.15.1.5.10beta01) | ||||
|  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib) | ||||
|  makefile.solaris  =>  Solaris 2.X makefile (gcc, | ||||
|                        creates libpng14.so.14.1.4.9beta01) | ||||
|                        creates libpng15.so.15.1.5.10beta01) | ||||
|  makefile.so9      =>  Solaris 9 makefile (gcc, | ||||
|                        creates libpng14.so.14.1.4.9beta01) | ||||
|                        creates libpng15.so.15.1.5.10beta01) | ||||
|  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a) | ||||
|  makefile.sunos    =>  Sun makefile | ||||
|  makefile.32sunu   =>  Sun Ultra 32-bit makefile | ||||
|  makefile.64sunu   =>  Sun Ultra 64-bit makefile | ||||
|  makefile.tc3      =>  Turbo C 3.0 makefile | ||||
|  makefile.vcwin32  =>  makefile for Microsoft Visual C++ 4.0 and later | ||||
|  makefile.watcom   =>  Watcom 10a+ Makefile, 32-bit flat memory model | ||||
|  makevms.com       =>  VMS build script | ||||
|  smakefile.ppc     =>  AMIGA smakefile for SAS C V6.58/7.00 PPC compiler | ||||
|                        (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc) | ||||
| 
 | ||||
| Other supporting scripts: | ||||
|  README.txt        =>  This file | ||||
|  descrip.mms       =>  VMS makefile for MMS or MMK | ||||
|  libpng-config-body.in => used by several makefiles to create libpng-config | ||||
|  libpng-config-head.in => used by several makefiles to create libpng-config | ||||
|  libpng.pc.in      =>  Used by several makefiles to create libpng.pc | ||||
|  pngos2.def        =>  OS/2 module definition file used by makefile.os2 | ||||
|  pngwin.def        =>  Module definitions for makefile.cygwin and mingw | ||||
|  png32ce.def       =>  Module definition file used by makefile.cegcc | ||||
|  pngwin.rc         =>  Used by the visualc6 and visualc71 projects. | ||||
|  pngwin.rc         =>  Used by the visualc71 project. | ||||
|  pngwin.def        =>  Used by makefile.os2 | ||||
|  pngwin.dfn        =>  Used to maintain pngwin.def | ||||
|  SCOPTIONS.ppc     =>  Used with smakefile.ppc | ||||
| 
 | ||||
| checksym.awk       =>  Used for maintaining pnglibconf.h | ||||
| def.dfn            =>  Used for maintaining pnglibconf.h | ||||
| options.awk        =>  Used for maintaining pnglibconf.h | ||||
| pnglibconf.dfa     =>  Used for maintaining pnglibconf.h | ||||
| pnglibconf.mak     =>  Used for maintaining pnglibconf.h | ||||
| sym.dfn            =>  Used for symbol versioning | ||||
| symbols.def        =>  Used for symbol versioning | ||||
| symbols.dfn        =>  Used for symbol versioning | ||||
| vers.dfn           =>  Used for symbol versioning | ||||
| 
 | ||||
| 
 | ||||
| Further information can be found in comments in the individual makefiles. | ||||
|  | ||||
							
								
								
									
										161
									
								
								scripts/checksym.awk
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										161
									
								
								scripts/checksym.awk
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,161 @@ | ||||
| #!/bin/awk -f | ||||
| # Check a list of symbols against the master definition | ||||
| # (official) list.  Arguments: | ||||
| # | ||||
| # awk -f checksym.awk official-def list-to-check | ||||
| # | ||||
| # Output is a file in the current directory called 'symbols.new', | ||||
| # stdout holds error messages.  Error code indicates success or | ||||
| # failure. | ||||
| # | ||||
| # NOTE: this is a pure, old fashioned, awk script.  It will | ||||
| # work with any awk | ||||
| 
 | ||||
| BEGIN{ | ||||
|    err=0 | ||||
|    master=""        # master file | ||||
|    official[1] = "" # defined symbols from master file | ||||
|    symbol[1] = ""   # defined symbols from png.h | ||||
|    removed[1] = ""  # removed symbols from png.h | ||||
|    lasto = 0        # last ordinal value from png.h | ||||
|    mastero = 0      # highest ordinal in master file | ||||
|    symbolo = 0      # highest ordinal in png.h | ||||
|    missing = "error"# log an error on missing symbols | ||||
| } | ||||
| 
 | ||||
| # Read existing definitions from the master file (the first | ||||
| # file on the command line.)  This must be a def file and it | ||||
| # has definition lines (others are ignored) of the form: | ||||
| # | ||||
| #   symbol @ordinal | ||||
| # | ||||
| master == "" { | ||||
|    master = FILENAME | ||||
| } | ||||
| FILENAME==master && NF==2 && $2~/^@/ && $1!~/^;/ { | ||||
|    o=0+substr($2,2) | ||||
|    if (o > 0) { | ||||
|       if (official[o] == "") { | ||||
|          official[o] = $1 | ||||
|          if (o > mastero) mastero = o | ||||
|          next | ||||
|       } else | ||||
|          print master ": duplicated symbol:", official[o] ":", $0 | ||||
|    } else | ||||
|       print master ": bad export line format:", $0 | ||||
|    err = 1 | ||||
| } | ||||
| FILENAME==master && $1==";missing" && NF==2{ | ||||
|    # This allows the master file to control how missing symbols | ||||
|    # are handled; symbols that aren't in either the master or | ||||
|    # the new file.  Valid values are 'ignore', 'warning' and | ||||
|    # 'error' | ||||
|    missing = $2 | ||||
| } | ||||
| FILENAME==master { | ||||
|    next | ||||
| } | ||||
| 
 | ||||
| # Read new definitions, these are free form but the lines must | ||||
| # just be symbol definitions.  Lines will be commented out for | ||||
| # 'removed' symbols, introduced in png.h using PNG_REMOVED rather | ||||
| # than PNG_EXPORT.  Use symbols.dfn or pngwin.dfn to generate the | ||||
| # input file. | ||||
| # | ||||
| #  symbol @ordinal   # two fields, exported symbol | ||||
| #  ; symbol @ordinal # three fields, removed symbol | ||||
| #  ; @ordinal        # two fields, the last ordinal | ||||
| NF==2 && $1 == ";" && $2 ~ /^@[1-9][0-9]*$/ { # last ordinal | ||||
|    o=0+substr($2,2) | ||||
|    if (lasto == 0 || lasto == o) | ||||
|       lasto=o | ||||
|    else { | ||||
|       print "png.h: duplicated last ordinal:", lasto, o | ||||
|       err = 1 | ||||
|    } | ||||
|    next | ||||
| } | ||||
| NF==3 && $1 == ";" && $3 ~ /^@[1-9][0-9]*$/ { # removed symbol | ||||
|    o=0+substr($3,2) | ||||
|    if (removed[o] == "" || removed[o] == $2) { | ||||
|       removed[o] = $2 | ||||
|       if (o > symbolo) symbolo = o | ||||
|    } else { | ||||
|       print "png.h: duplicated removed symbol", o ": '" removed[o] "' != '" $2 "'" | ||||
|       err = 1 | ||||
|    } | ||||
|    next | ||||
| } | ||||
| NF==2 && $2 ~ /^@[1-9][0-9]*$/ { # exported symbol | ||||
|    o=0+substr($2,2) | ||||
|    if (symbol[o] == "" || symbol[o] == $1) { | ||||
|       symbol[o] = $1 | ||||
|       if (o > symbolo) symbolo = o | ||||
|    } else { | ||||
|       print "png.h: duplicated symbol", o ": '" symbol[o] "' != '" $1 "'" | ||||
|       err = 1 | ||||
|    } | ||||
| } | ||||
| { | ||||
|    next # skip all other lines | ||||
| } | ||||
| 
 | ||||
| # At the end check for symbols marked as both duplicated and removed | ||||
| END{ | ||||
|    if (symbolo > lasto) { | ||||
|       print "highest symbol ordinal in png.h,", symbolo ", exceeds last ordinal from png.h", lasto | ||||
|       err = 1 | ||||
|    } | ||||
|    if (mastero > lasto) { | ||||
|       print "highest symbol ordinal in", master ",", mastero ", exceeds last ordinal from png.h", lasto | ||||
|       err = 1 | ||||
|    } | ||||
|    unexported=0 | ||||
|    for (o=1; o<=lasto; ++o) { | ||||
|       if (symbol[o] == "" && removed[o] == "") { | ||||
|          if (unexported == 0) unexported = o | ||||
|          if (official[o] == "") { | ||||
|             # missing in export list too, so ok | ||||
|             if (o < lasto) continue | ||||
|          } | ||||
|       } | ||||
|       if (unexported != 0) { | ||||
|          # Symbols in the .def but not in the new file are errors, but | ||||
|          # the 'unexported' symbols aren't in either.  By default this | ||||
|          # is an error too (see the setting of 'missing' at the start), | ||||
|          # but this can be reset on the command line or by stuff in the | ||||
|          # file - see the comments above. | ||||
|          if (missing != "ignore") { | ||||
|             if (o-1 > unexported) | ||||
|                print "png.h:", missing ": missing symbols:", unexported "-" o-1 | ||||
|             else | ||||
|                print "png.h:", missing ": missing symbol:", unexported | ||||
|             if (missing != "warning") | ||||
|                err = 1 | ||||
|          } | ||||
|          unexported = 0 | ||||
|       } | ||||
|       if (symbol[o] != "" && removed[o] != "") { | ||||
|          print "png.h: symbol", o, "both exported as '" symbol[o] "' and removed as '" removed[o] "'" | ||||
|          err = 1 | ||||
|       } else if (symbol[o] != official[o]) { | ||||
|          # either the symbol is missing somewhere or it changed | ||||
|          err = 1 | ||||
|          if (symbol[o] == "") | ||||
|             print "png.h: symbol", o, "is exported as '" official[o] "' in", master | ||||
|          else if (official[o] == "") | ||||
|             print "png.h: exported symbol", o, "'" symbol[o] "' not present in", master | ||||
|          else | ||||
|             print "png.h: exported symbol", o, "'" symbol[o] "' exists as '" official[o] "' in", master | ||||
|       } | ||||
| 
 | ||||
|       # Finally generate symbols.new | ||||
|       if (symbol[o] != "") | ||||
|          print " " symbol[o], "@" o > "symbols.new" | ||||
|    } | ||||
| 
 | ||||
|    if (err != 0) { | ||||
|       print "*** A new list is in symbols.new ***" | ||||
|       exit 1 | ||||
|    } | ||||
| } | ||||
							
								
								
									
										137
									
								
								scripts/chkfmt
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										137
									
								
								scripts/chkfmt
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,137 @@ | ||||
| #!/bin/sh | ||||
| # | ||||
| # Check the format of the source files in the current directory - checks for a | ||||
| # line length of 80 characters max and no tab characters. | ||||
| # | ||||
| # Optionally arguments are files or directories to check. | ||||
| # | ||||
| # -v: output the long lines (makes fixing them easier) | ||||
| # -e: spawn an editor for each file that needs a change ($EDITOR must be | ||||
| #     defined).  When using -e the script MUST be run from an interactive | ||||
| #     command line. | ||||
| verbose= | ||||
| edit= | ||||
| vers= | ||||
| test "$1" = "-v" && { | ||||
|    shift | ||||
|    verbose=yes | ||||
| } | ||||
| test "$1" = "-e" && { | ||||
|    shift | ||||
|    if test -n "$EDITOR" | ||||
|    then | ||||
|       edit=yes | ||||
| 
 | ||||
|       # Copy the standard streams for the editor | ||||
|       exec 3>&0 4>&1 5>&2 | ||||
|    else | ||||
|       echo "chkfmt -e: EDITOR must be defined" >&2 | ||||
|       exit 1 | ||||
|    fi | ||||
| } | ||||
| 
 | ||||
| # Function to edit a single file - if the file isn't changed ask the user | ||||
| # whether or not to continue.  This stuff only works if the script is run from | ||||
| # the command line (otherwise, don't specify -e or you will be sorry). | ||||
| doed(){ | ||||
|    cp "$file" "$file".orig | ||||
|    "$EDITOR" "$file" 0>&3 1>&4 2>&5 3>&- 4>&- 5>&- || exit 1 | ||||
|    if cmp -s "$file".orig "$file" | ||||
|    then | ||||
|       rm "$file".orig | ||||
|       echo -n "$file: file not changed, type anything to continue: " >&5 | ||||
|       read ans 0>&3 | ||||
|       test -n "$ans" || return 1 | ||||
|    fi | ||||
|    return 0 | ||||
| } | ||||
| 
 | ||||
| # In beta versions the version string which appears in files can be a little | ||||
| # long and cause spuriously overlong lines.  To avoid this subtitute the version | ||||
| # string with a 'standard' version a.b.cc before checking for long lines. | ||||
| if test -r png.h | ||||
| then | ||||
|    vers="`sed -n -e \ | ||||
|    's/^#define PNG_LIBPNG_VER_STRING .\([0-9]\.[0-9]\.[0-9][0-9a-z]*\).$/\1/p' \ | ||||
|    png.h`" | ||||
|    echo "chkfmt: checking version $vers" | ||||
| fi | ||||
| if test -z "$vers" | ||||
| then | ||||
|    echo "chkfmt: png.h not found, ignoring version number" >&2 | ||||
| fi | ||||
| 
 | ||||
| test -n "$1" || set -- . | ||||
| find "$@" \( -type d \( -name '.git' -o -name '.libs' -o -name 'projects' \) \ | ||||
|    -prune \) -o \( -type f \ | ||||
|    ! -name '*.[oa]' ! -name '*.l[oa]' !  -name '*.png' ! -name '*.out' \ | ||||
|    ! -name '*.jpg' ! -name '*.patch' ! -name '*.obj' ! -name '*.exe' \ | ||||
|    ! -name '*.com' ! -name '*.tar.*' ! -name '*.zip' ! -name '*.ico' \ | ||||
|    ! -name '*.res' ! -name '*.rc' ! -name '*.mms' ! -name '*.rej' \ | ||||
|    ! -name '*.dsp' ! -name '*.orig' ! -name '*.dfn' ! -name '*.swp' \ | ||||
|    ! -name '~*' ! -name '*.3' \ | ||||
|    ! -name 'missing' ! -name 'mkinstalldirs' ! -name 'depcomp' \ | ||||
|    ! -name 'aclocal.m4' ! -name 'install-sh' ! -name 'Makefile.in' \ | ||||
|    ! -name 'ltmain.sh' ! -name 'config*' -print \) | { | ||||
|    st=0 | ||||
|    while read file | ||||
|    do | ||||
|       case "$file" in | ||||
|       *.mak|*[Mm]akefile.*|*[Mm]akefile) | ||||
|          # Makefiles require tabs, dependency lines can be this long. | ||||
|          check_tabs= | ||||
|          line_length=100;; | ||||
|       *.awk) | ||||
|          # Includes literal tabs | ||||
|          check_tabs= | ||||
|          # The following is arbitrary | ||||
|          line_length=132;; | ||||
|       *contrib/*/*.[ch]) | ||||
|          check_tabs=yes | ||||
|          line_length=96;; | ||||
|       *) | ||||
|          check_tabs=yes | ||||
|          line_length=80;; | ||||
|       esac | ||||
| 
 | ||||
|       # Note that vers can only contain 0-9, . and a-z | ||||
|       if test -n "$vers" | ||||
|       then | ||||
|          sed -e "s/$vers/a.b.cc/g" "$file" >"$file".$$ | ||||
|       else | ||||
|          cp "$file" "$file".$$ | ||||
|       fi | ||||
|       splt="`fold -$line_length "$file".$$ | diff -c "$file".$$ -`" | ||||
|       rm "$file".$$ | ||||
| 
 | ||||
|       if test -n "$splt" | ||||
|       then | ||||
|          echo "$file: lines too long" | ||||
|          st=1 | ||||
|          if test -n "$EDITOR" -a -n "$edit" | ||||
|          then | ||||
|             doed "$file" || exit 1 | ||||
|          elif test -n "$verbose" | ||||
|          then | ||||
|             echo "$splt" | ||||
|          fi | ||||
|       fi | ||||
|       if test -n "$check_tabs" | ||||
|       then | ||||
|          tab="`tr -c -d '\t' <"$file"`" | ||||
|          if test -n "$tab" | ||||
|          then | ||||
|             echo "$file: file contains tab characters" | ||||
|             st=1 | ||||
|             if test -n "$EDITOR" -a -n "$edit" | ||||
|             then | ||||
|                doed "$file" || exit 1 | ||||
|             elif test -n "$verbose" | ||||
|             then | ||||
|                echo "$splt" | ||||
|             fi | ||||
|          fi | ||||
|       fi | ||||
|    done | ||||
|    exit $st | ||||
| } | ||||
							
								
								
									
										38
									
								
								scripts/def.dfn
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								scripts/def.dfn
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | ||||
| /* def.dfn - define format of libpng.def | ||||
|  * | ||||
|  * Last changed in libpng version 1.5.7 [December 15, 2011] | ||||
|  * Copyright (c) 2010-2011 Glenn Randers-Pehrson | ||||
|  * | ||||
|  * This code is released under the libpng license. | ||||
|  * For conditions of distribution and use, see the disclaimer | ||||
|  * and license in png.h | ||||
|  */ | ||||
| 
 | ||||
| /* These macros exist to make the header and trailer shorter below: */ | ||||
| #define S PNG_DEFN_MAGIC | ||||
| #define E PNG_DEFN_END | ||||
| 
 | ||||
| /* Write the export file header: */ | ||||
| S-;---------------------------------------------------------------E | ||||
| S-; LIBPNG module definition file for OS/2-E | ||||
| S-;---------------------------------------------------------------E | ||||
| S--E | ||||
| S-; If you give the library an explicit name one or other files-E | ||||
| S-; may need modifying to support the new name on one or more-E | ||||
| S-; systems.-E | ||||
| S-LIBRARY-E | ||||
| S-OS2 DESCRIPTION "PNG image compression library"-E | ||||
| S-OS2 CODE PRELOAD MOVEABLE DISCARDABLE-E | ||||
| S--E | ||||
| S-EXPORTS-E | ||||
| S-;Version 1.5.0beta58-E | ||||
| 
 | ||||
| /* NOTE: PNG_JOIN is interpreted by the calling script as a signal to | ||||
|  * join the two things on either side, so we can do symbol | ||||
|  * substitution within the name, regular C ## joins the pp-tokens, | ||||
|  * not their final values. | ||||
|  */ | ||||
| #define PNG_EXPORTA(ordinal, type, name, args, attributes)\ | ||||
| 	PNG_DEFN_MAGIC- SYMBOL_PREFIX PNG_JOIN name-PNG_DEFN_END | ||||
| 
 | ||||
| #include "../png.h" | ||||
| @ -33,20 +33,20 @@ clean : | ||||
| 
 | ||||
| 
 | ||||
| # Other dependencies. | ||||
| png.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngpread.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngset.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngget.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngread.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngrtran.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngrutil.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngerror.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngmem.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngrio.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngwio.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngtrans.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngwrite.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngwtran.obj : png.h, pngconf.h, pngpriv.h | ||||
| pngwutil.obj : png.h, pngconf.h, pngpriv.h | ||||
| png.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngpread.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngset.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngget.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngread.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngrtran.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngrutil.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngerror.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngmem.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngrio.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngwio.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngtrans.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngwrite.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngwtran.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| pngwutil.obj : png.h, pngconf.h, pnglibconf.h, pngpriv.h, pngstruct.h, pnginfo.h, pngdebug.h | ||||
| 
 | ||||
| pngtest.obj : png.h, pngconf.h | ||||
|  | ||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Glenn Randers-Pehrson
						Glenn Randers-Pehrson