1 lib_LTLIBRARIES = libjpeg.la 2 libjpeg_la_LDFLAGS = -version-info ${LIBTOOL_CURRENT}:${SO_MINOR_VERSION}:${SO_AGE} -no-undefined 3 include_HEADERS = jerror.h jmorecfg.h jpeglib.h 4 5 if WITH_TURBOJPEG 6 lib_LTLIBRARIES += libturbojpeg.la 7 libturbojpeg_la_LDFLAGS = -version-info 1:0:1 -no-undefined 8 include_HEADERS += turbojpeg.h 9 endif 10 11 nodist_include_HEADERS = jconfig.h 12 13 pkgconfigdir = $(libdir)/pkgconfig 14 pkgconfig_DATA = pkgscripts/libjpeg.pc 15 if WITH_TURBOJPEG 16 pkgconfig_DATA += pkgscripts/libturbojpeg.pc 17 endif 18 19 HDRS = jchuff.h jdct.h jdhuff.h jerror.h jinclude.h jmemsys.h jmorecfg.h \ 20 jpegint.h jpeglib.h jversion.h jsimd.h jsimddct.h jpegcomp.h \ 21 jpeg_nbits_table.h 22 23 libjpeg_la_SOURCES = $(HDRS) jcapimin.c jcapistd.c jccoefct.c jccolor.c \ 24 jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c \ 25 jcomapi.c jcparam.c jcphuff.c jcprepct.c jcsample.c jctrans.c \ 26 jdapimin.c jdapistd.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c \ 27 jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c \ 28 jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c \ 29 jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c \ 30 jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c 31 32 if WITH_ARITH 33 libjpeg_la_SOURCES += jaricom.c 34 endif 35 36 if WITH_ARITH_ENC 37 libjpeg_la_SOURCES += jcarith.c 38 endif 39 40 if WITH_ARITH_DEC 41 libjpeg_la_SOURCES += jdarith.c 42 endif 43 44 45 SUBDIRS = java 46 47 48 if WITH_TURBOJPEG 49 50 libturbojpeg_la_SOURCES = $(libjpeg_la_SOURCES) turbojpeg.c turbojpeg.h \ 51 transupp.c transupp.h jdatadst-tj.c jdatasrc-tj.c 52 53 if WITH_JAVA 54 55 libturbojpeg_la_SOURCES += turbojpeg-jni.c 56 libturbojpeg_la_CFLAGS = ${JNI_CFLAGS} 57 TJMAPFILE = turbojpeg-mapfile.jni 58 59 else 60 61 TJMAPFILE = turbojpeg-mapfile 62 63 endif 64 65 libturbojpeg_la_SOURCES += $(TJMAPFILE) 66 67 if VERSION_SCRIPT 68 libturbojpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)$(srcdir)/$(TJMAPFILE) 69 endif 70 71 endif 72 73 74 if VERSION_SCRIPT 75 libjpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)libjpeg.map 76 endif 77 78 79 if WITH_SIMD 80 81 SUBDIRS += simd 82 libjpeg_la_LIBADD = simd/libsimd.la 83 libturbojpeg_la_LIBADD = simd/libsimd.la 84 85 else 86 87 libjpeg_la_SOURCES += jsimd_none.c 88 89 endif 90 91 92 bin_PROGRAMS = cjpeg djpeg jpegtran rdjpgcom wrjpgcom 93 noinst_PROGRAMS = jcstest 94 95 96 if WITH_TURBOJPEG 97 98 bin_PROGRAMS += tjbench 99 100 noinst_PROGRAMS += tjunittest 101 102 tjbench_SOURCES = tjbench.c bmp.h bmp.c tjutil.h tjutil.c rdbmp.c rdppm.c \ 103 wrbmp.c wrppm.c 104 105 tjbench_LDADD = libturbojpeg.la libjpeg.la -lm 106 107 tjbench_CFLAGS = -DBMP_SUPPORTED -DPPM_SUPPORTED 108 109 tjunittest_SOURCES = tjunittest.c tjutil.h tjutil.c 110 111 tjunittest_LDADD = libturbojpeg.la 112 113 endif 114 115 116 cjpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c cjpeg.c rdgif.c rdppm.c rdswitch.c 117 if WITH_12BIT 118 else 119 cjpeg_SOURCES += rdbmp.c rdtarga.c 120 endif 121 122 cjpeg_LDADD = libjpeg.la 123 124 cjpeg_CFLAGS = -DGIF_SUPPORTED -DPPM_SUPPORTED 125 if WITH_12BIT 126 else 127 cjpeg_CFLAGS += -DBMP_SUPPORTED -DTARGA_SUPPORTED 128 endif 129 130 djpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c djpeg.c rdcolmap.c rdswitch.c \ 131 wrgif.c wrppm.c 132 if WITH_12BIT 133 else 134 djpeg_SOURCES += wrbmp.c wrtarga.c 135 endif 136 137 djpeg_LDADD = libjpeg.la 138 139 djpeg_CFLAGS = -DGIF_SUPPORTED -DPPM_SUPPORTED 140 if WITH_12BIT 141 else 142 djpeg_CFLAGS += -DBMP_SUPPORTED -DTARGA_SUPPORTED 143 endif 144 145 jpegtran_SOURCES = jpegtran.c rdswitch.c cdjpeg.c transupp.c transupp.h 146 147 jpegtran_LDADD = libjpeg.la 148 149 rdjpgcom_SOURCES = rdjpgcom.c 150 151 rdjpgcom_LDADD = libjpeg.la 152 153 wrjpgcom_SOURCES = wrjpgcom.c 154 155 wrjpgcom_LDADD = libjpeg.la 156 157 jcstest_SOURCES = jcstest.c 158 159 jcstest_LDADD = libjpeg.la 160 161 dist_man1_MANS = cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1 162 163 DOCS= coderules.txt jconfig.txt change.log rdrle.c wrrle.c BUILDING.md \ 164 ChangeLog.md 165 166 dist_doc_DATA = README.ijg README.md libjpeg.txt structure.txt usage.txt \ 167 wizard.txt LICENSE.md 168 169 exampledir = $(docdir) 170 dist_example_DATA = example.c 171 172 173 EXTRA_DIST = win release $(DOCS) testimages CMakeLists.txt \ 174 sharedlib/CMakeLists.txt cmakescripts libjpeg.map.in doc doxygen.config \ 175 doxygen-extra.css jccolext.c jdcolext.c jdcol565.c jdmrgext.c jdmrg565.c \ 176 jstdhuff.c jdcoefct.h jdmainct.h jdmaster.h jdsample.h \ 177 md5/CMakeLists.txt 178 179 dist-hook: 180 rm -rf `find $(distdir) -name .svn` 181 182 183 SUBDIRS += md5 184 185 if WITH_12BIT 186 187 TESTORIG = testorig12.jpg 188 MD5_JPEG_RGB_ISLOW = 9620f424569594bb9242b48498ad801f 189 MD5_PPM_RGB_ISLOW = f3301d2219783b8b3d942b7239fa50c0 190 MD5_JPEG_422_IFAST_OPT = 7322e3bd2f127f7de4b40d4480ce60e4 191 MD5_PPM_422_IFAST = 79807fa552899e66a04708f533e16950 192 MD5_PPM_422M_IFAST = 07737bfe8a7c1c87aaa393a0098d16b0 193 MD5_JPEG_420_IFAST_Q100_PROG = a1da220b5604081863a504297ed59e55 194 MD5_PPM_420_Q100_IFAST = 1b3730122709f53d007255e8dfd3305e 195 MD5_PPM_420M_Q100_IFAST = 980a1a3c5bf9510022869d30b7d26566 196 MD5_JPEG_GRAY_ISLOW = 235c90707b16e2e069f37c888b2636d9 197 MD5_PPM_GRAY_ISLOW = 7213c10af507ad467da5578ca5ee1fca 198 MD5_PPM_GRAY_ISLOW_RGB = e96ee81c30a6ed422d466338bd3de65d 199 MD5_JPEG_420S_IFAST_OPT = 7af8e60be4d9c227ec63ac9b6630855e 200 MD5_JPEG_3x2_FLOAT_PROG_SSE = a8c17daf77b457725ec929e215b603f8 201 MD5_PPM_3x2_FLOAT_SSE = 42876ab9e5c2f76a87d08db5fbd57956 202 MD5_JPEG_3x2_FLOAT_PROG_32BIT = a8c17daf77b457725ec929e215b603f8 203 MD5_PPM_3x2_FLOAT_32BIT = 42876ab9e5c2f76a87d08db5fbd57956 204 MD5_PPM_3x2_FLOAT_64BIT = d6fbc71153b3d8ded484dbc17c7b9cf4 205 MD5_JPEG_3x2_FLOAT_PROG_387 = bc6dbbefac2872f6b9d6c4a0ae60c3c0 206 MD5_PPM_3x2_FLOAT_387 = bcc5723c61560463ac60f772e742d092 207 MD5_JPEG_3x2_IFAST_PROG = 1396cc2b7185cfe943d408c9d305339e 208 MD5_PPM_3x2_IFAST = 3975985ef6eeb0a2cdc58daa651ccc00 209 MD5_PPM_420M_ISLOW_2_1 = 4ca6be2a6f326ff9eaab63e70a8259c0 210 MD5_PPM_420M_ISLOW_15_8 = 12aa9f9534c1b3d7ba047322226365eb 211 MD5_PPM_420M_ISLOW_13_8 = f7e22817c7b25e1393e4ec101e9d4e96 212 MD5_PPM_420M_ISLOW_11_8 = 800a16f9f4dc9b293197bfe11be10a82 213 MD5_PPM_420M_ISLOW_9_8 = 06b7a92a9bc69f4dc36ec40f1937d55c 214 MD5_PPM_420M_ISLOW_7_8 = 3ec444a14a4ab4eab88ffc49c48eca43 215 MD5_PPM_420M_ISLOW_3_4 = 3e726b7ea872445b19437d1c1d4f0d93 216 MD5_PPM_420M_ISLOW_5_8 = a8a771abdc94301d20ffac119b2caccd 217 MD5_PPM_420M_ISLOW_1_2 = b419124dd5568b085787234866102866 218 MD5_PPM_420M_ISLOW_3_8 = 343d19015531b7bbe746124127244fa8 219 MD5_PPM_420M_ISLOW_1_4 = 35fd59d866e44659edfa3c18db2a3edb 220 MD5_PPM_420M_ISLOW_1_8 = ccaed48ac0aedefda5d4abe4013f4ad7 221 MD5_PPM_420_ISLOW_SKIP15_31 = 86664cd9dc956536409e44e244d20a97 222 MD5_PPM_420_ISLOW_PROG_CROP62x62_71_71 = 452a21656115a163029cfba5c04fa76a 223 MD5_PPM_444_ISLOW_SKIP1_6 = ef63901f71ef7a75cd78253fc0914f84 224 MD5_PPM_444_ISLOW_PROG_CROP98x98_13_13 = 15b173fb5872d9575572fbcc1b05956f 225 MD5_JPEG_CROP = cdb35ff4b4519392690ea040c56ea99c 226 227 else 228 229 TESTORIG = testorig.jpg 230 MD5_JPEG_RGB_ISLOW = 768e970dd57b340ff1b83c9d3d47c77b 231 MD5_PPM_RGB_ISLOW = 00a257f5393fef8821f2b88ac7421291 232 MD5_BMP_RGB_ISLOW_565 = f07d2e75073e4bb10f6c6f4d36e2e3be 233 MD5_BMP_RGB_ISLOW_565D = 4cfa0928ef3e6bb626d7728c924cfda4 234 MD5_JPEG_422_IFAST_OPT = 2540287b79d913f91665e660303ab2c8 235 MD5_PPM_422_IFAST = 35bd6b3f833bad23de82acea847129fa 236 MD5_PPM_422M_IFAST = 8dbc65323d62cca7c91ba02dd1cfa81d 237 MD5_BMP_422M_IFAST_565 = 3294bd4d9a1f2b3d08ea6020d0db7065 238 MD5_BMP_422M_IFAST_565D = da98c9c7b6039511be4a79a878a9abc1 239 MD5_JPEG_420_IFAST_Q100_PROG = 990cbe0329c882420a2094da7e5adade 240 MD5_PPM_420_Q100_IFAST = 5a732542015c278ff43635e473a8a294 241 MD5_PPM_420M_Q100_IFAST = ff692ee9323a3b424894862557c092f1 242 MD5_JPEG_GRAY_ISLOW = 72b51f894b8f4a10b3ee3066770aa38d 243 MD5_PPM_GRAY_ISLOW = 8d3596c56eace32f205deccc229aa5ed 244 MD5_PPM_GRAY_ISLOW_RGB = 116424ac07b79e5e801f00508eab48ec 245 MD5_BMP_GRAY_ISLOW_565 = 12f78118e56a2f48b966f792fedf23cc 246 MD5_BMP_GRAY_ISLOW_565D = bdbbd616441a24354c98553df5dc82db 247 MD5_JPEG_420S_IFAST_OPT = 388708217ac46273ca33086b22827ed8 248 # See README.md for more details on why this next bit is necessary. 249 MD5_JPEG_3x2_FLOAT_PROG_SSE = 343e3f8caf8af5986ebaf0bdc13b5c71 250 MD5_PPM_3x2_FLOAT_SSE = 1a75f36e5904d6fc3a85a43da9ad89bb 251 MD5_JPEG_3x2_FLOAT_PROG_32BIT = 9bca803d2042bd1eb03819e2bf92b3e5 252 MD5_PPM_3x2_FLOAT_32BIT = f6bfab038438ed8f5522fbd33595dcdc 253 MD5_PPM_3x2_FLOAT_64BIT = 0e917a34193ef976b679a6b069b1be26 254 MD5_JPEG_3x2_FLOAT_PROG_387 = 1657664a410e0822c924b54f6f65e6e9 255 MD5_PPM_3x2_FLOAT_387 = cb0a1f027f3d2917c902b5640214e025 256 MD5_JPEG_3x2_IFAST_PROG = 1ee5d2c1a77f2da495f993c8c7cceca5 257 MD5_PPM_3x2_IFAST = fd283664b3b49127984af0a7f118fccd 258 MD5_JPEG_420_ISLOW_ARI = e986fb0a637a8d833d96e8a6d6d84ea1 259 MD5_JPEG_444_ISLOW_PROGARI = 0a8f1c8f66e113c3cf635df0a475a617 260 MD5_PPM_420M_IFAST_ARI = 72b59a99bcf1de24c5b27d151bde2437 261 MD5_JPEG_420_ISLOW = 9a68f56bc76e466aa7e52f415d0f4a5f 262 MD5_PPM_420M_ISLOW_2_1 = 9f9de8c0612f8d06869b960b05abf9c9 263 MD5_PPM_420M_ISLOW_15_8 = b6875bc070720b899566cc06459b63b7 264 MD5_PPM_420M_ISLOW_13_8 = bc3452573c8152f6ae552939ee19f82f 265 MD5_PPM_420M_ISLOW_11_8 = d8cc73c0aaacd4556569b59437ba00a5 266 MD5_PPM_420M_ISLOW_9_8 = d25e61bc7eac0002f5b393aa223747b6 267 MD5_PPM_420M_ISLOW_7_8 = ddb564b7c74a09494016d6cd7502a946 268 MD5_PPM_420M_ISLOW_3_4 = 8ed8e68808c3fbc4ea764fc9d2968646 269 MD5_PPM_420M_ISLOW_5_8 = a3363274999da2366a024efae6d16c9b 270 MD5_PPM_420M_ISLOW_1_2 = e692a315cea26b988c8e8b29a5dbcd81 271 MD5_PPM_420M_ISLOW_3_8 = 79eca9175652ced755155c90e785a996 272 MD5_PPM_420M_ISLOW_1_4 = 79cd778f8bf1a117690052cacdd54eca 273 MD5_PPM_420M_ISLOW_1_8 = 391b3d4aca640c8567d6f8745eb2142f 274 MD5_BMP_420_ISLOW_256 = 4980185e3776e89bd931736e1cddeee6 275 MD5_BMP_420_ISLOW_565 = bf9d13e16c4923b92e1faa604d7922cb 276 MD5_BMP_420_ISLOW_565D = 6bde71526acc44bcff76f696df8638d2 277 MD5_BMP_420M_ISLOW_565 = 8dc0185245353cfa32ad97027342216f 278 MD5_BMP_420M_ISLOW_565D =d1be3a3339166255e76fa50a0d70d73e 279 MD5_PPM_420_ISLOW_SKIP15_31 = c4c65c1e43d7275cd50328a61e6534f0 280 MD5_PPM_420_ISLOW_ARI_SKIP16_139 = 087c6b123db16ac00cb88c5b590bb74a 281 MD5_PPM_420_ISLOW_PROG_CROP62x62_71_71 = 26eb36ccc7d1f0cb80cdabb0ac8b5d99 282 MD5_PPM_420_ISLOW_ARI_CROP53x53_4_4 = 886c6775af22370257122f8b16207e6d 283 MD5_PPM_444_ISLOW_SKIP1_6 = 5606f86874cf26b8fcee1117a0a436a6 284 MD5_PPM_444_ISLOW_PROG_CROP98x98_13_13 = db87dc7ce26bcdc7a6b56239ce2b9d6c 285 MD5_PPM_444_ISLOW_ARI_CROP37x37_0_0 = cb57b32bd6d03e35432362f7bf184b6d 286 MD5_JPEG_CROP = b4197f377e621c4e9b1d20471432610d 287 288 endif 289 290 .PHONY: test 291 test: tjquicktest tjbittest bittest 292 293 if CROSS_COMPILING 294 tjquicktest: testclean 295 else 296 tjquicktest: testclean all 297 endif 298 299 if WITH_TURBOJPEG 300 if WITH_JAVA 301 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest 302 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -bi 303 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv 304 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -noyuvpad 305 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi 306 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi -noyuvpad 307 endif 308 ./tjunittest 309 ./tjunittest -alloc 310 ./tjunittest -yuv 311 ./tjunittest -yuv -alloc 312 ./tjunittest -yuv -noyuvpad 313 endif 314 echo GREAT SUCCESS! 315 316 if CROSS_COMPILING 317 tjbittest: testclean 318 else 319 tjbittest: testclean all 320 endif 321 322 if WITH_TURBOJPEG 323 324 MD5_PPM_GRAY_TILE = 89d3ca21213d9d864b50b4e4e7de4ca6 325 MD5_PPM_420_8x8_TILE = 847fceab15c5b7b911cb986cf0f71de3 326 MD5_PPM_420_16x16_TILE = ca45552a93687e078f7137cc4126a7b0 327 MD5_PPM_420_32x32_TILE = d8676f1d6b68df358353bba9844f4a00 328 MD5_PPM_420_64x64_TILE = 4e4c1a3d7ea4bace4f868bcbe83b7050 329 MD5_PPM_420_128x128_TILE = f24c3429c52265832beab9df72a0ceae 330 MD5_PPM_420M_8x8_TILE = bc25320e1f4c31ce2e610e43e9fd173c 331 MD5_PPM_420M_TILE = 75ffdf14602258c5c189522af57fa605 332 MD5_PPM_422_8x8_TILE = d83dacd9fc73b0a6f10c09acad64eb1e 333 MD5_PPM_422_16x16_TILE = 35077fb610d72dd743b1eb0cbcfe10fb 334 MD5_PPM_422_32x32_TILE = e6902ed8a449ecc0f0d6f2bf945f65f7 335 MD5_PPM_422_64x64_TILE = 2b4502a8f316cedbde1da7bce3d2231e 336 MD5_PPM_422_128x128_TILE = f0b5617d578f5e13c8eee215d64d4877 337 MD5_PPM_422M_8x8_TILE = 828941d7f41cd6283abd6beffb7fd51d 338 MD5_PPM_422M_TILE = e877ae1324c4a280b95376f7f018172f 339 MD5_PPM_444_TILE = 7964e41e67cfb8d0a587c0aa4798f9c3 340 341 # Test compressing from/decompressing to an arbitrary subregion of a larger 342 # image buffer 343 cp $(srcdir)/testimages/testorig.ppm testout_tile.ppm 344 ./tjbench testout_tile.ppm 95 -rgb -quiet -tile -benchtime 0.01 -warmup 0 >/dev/null 2>&1 345 for i in 8 16 32 64 128; do \ 346 md5/md5cmp $(MD5_PPM_GRAY_TILE) testout_tile_GRAY_Q95_$$i\x$$i.ppm; \ 347 done 348 md5/md5cmp $(MD5_PPM_420_8x8_TILE) testout_tile_420_Q95_8x8.ppm 349 md5/md5cmp $(MD5_PPM_420_16x16_TILE) testout_tile_420_Q95_16x16.ppm 350 md5/md5cmp $(MD5_PPM_420_32x32_TILE) testout_tile_420_Q95_32x32.ppm 351 md5/md5cmp $(MD5_PPM_420_64x64_TILE) testout_tile_420_Q95_64x64.ppm 352 md5/md5cmp $(MD5_PPM_420_128x128_TILE) testout_tile_420_Q95_128x128.ppm 353 md5/md5cmp $(MD5_PPM_422_8x8_TILE) testout_tile_422_Q95_8x8.ppm 354 md5/md5cmp $(MD5_PPM_422_16x16_TILE) testout_tile_422_Q95_16x16.ppm 355 md5/md5cmp $(MD5_PPM_422_32x32_TILE) testout_tile_422_Q95_32x32.ppm 356 md5/md5cmp $(MD5_PPM_422_64x64_TILE) testout_tile_422_Q95_64x64.ppm 357 md5/md5cmp $(MD5_PPM_422_128x128_TILE) testout_tile_422_Q95_128x128.ppm 358 for i in 8 16 32 64 128; do \ 359 md5/md5cmp $(MD5_PPM_444_TILE) testout_tile_444_Q95_$$i\x$$i.ppm; \ 360 done 361 rm -f testout_tile_GRAY_* testout_tile_420_* testout_tile_422_* testout_tile_444_* 362 363 ./tjbench testout_tile.ppm 95 -rgb -fastupsample -quiet -tile -benchtime 0.01 -warmup 0 >/dev/null 2>&1 364 md5/md5cmp $(MD5_PPM_420M_8x8_TILE) testout_tile_420_Q95_8x8.ppm 365 for i in 16 32 64 128; do \ 366 md5/md5cmp $(MD5_PPM_420M_TILE) testout_tile_420_Q95_$$i\x$$i.ppm; \ 367 done 368 md5/md5cmp $(MD5_PPM_422M_8x8_TILE) testout_tile_422_Q95_8x8.ppm 369 for i in 16 32 64 128; do \ 370 md5/md5cmp $(MD5_PPM_422M_TILE) testout_tile_422_Q95_$$i\x$$i.ppm; \ 371 done 372 rm -f testout_tile_GRAY_* testout_tile_420_* testout_tile_422_* testout_tile_444_* testout_tile.ppm 373 echo GREAT SUCCESS! 374 375 endif 376 377 if CROSS_COMPILING 378 bittest: testclean 379 else 380 bittest: testclean all 381 endif 382 383 # These tests are carefully crafted to provide full coverage of as many of the 384 # underlying algorithms as possible (including all of the SIMD-accelerated 385 # ones.) 386 387 # CC: null SAMP: fullsize FDCT: islow ENT: huff 388 ./cjpeg -rgb -dct int -outfile testout_rgb_islow.jpg $(srcdir)/testimages/testorig.ppm 389 md5/md5cmp $(MD5_JPEG_RGB_ISLOW) testout_rgb_islow.jpg 390 # CC: null SAMP: fullsize IDCT: islow ENT: huff 391 ./djpeg -dct int -ppm -outfile testout_rgb_islow.ppm testout_rgb_islow.jpg 392 md5/md5cmp $(MD5_PPM_RGB_ISLOW) testout_rgb_islow.ppm 393 rm -f testout_rgb_islow.ppm 394 if WITH_12BIT 395 rm -f testout_rgb_islow.jpg 396 else 397 # CC: RGB->RGB565 SAMP: fullsize IDCT: islow ENT: huff 398 ./djpeg -dct int -rgb565 -dither none -bmp -outfile testout_rgb_islow_565.bmp testout_rgb_islow.jpg 399 md5/md5cmp $(MD5_BMP_RGB_ISLOW_565) testout_rgb_islow_565.bmp 400 rm -f testout_rgb_islow_565.bmp 401 # CC: RGB->RGB565 (dithered) SAMP: fullsize IDCT: islow ENT: huff 402 ./djpeg -dct int -rgb565 -bmp -outfile testout_rgb_islow_565D.bmp testout_rgb_islow.jpg 403 md5/md5cmp $(MD5_BMP_RGB_ISLOW_565D) testout_rgb_islow_565D.bmp 404 rm -f testout_rgb_islow_565D.bmp testout_rgb_islow.jpg 405 endif 406 407 # CC: RGB->YCC SAMP: fullsize/h2v1 FDCT: ifast ENT: 2-pass huff 408 ./cjpeg -sample 2x1 -dct fast -opt -outfile testout_422_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm 409 md5/md5cmp $(MD5_JPEG_422_IFAST_OPT) testout_422_ifast_opt.jpg 410 # CC: YCC->RGB SAMP: fullsize/h2v1 fancy IDCT: ifast ENT: huff 411 ./djpeg -dct fast -outfile testout_422_ifast.ppm testout_422_ifast_opt.jpg 412 md5/md5cmp $(MD5_PPM_422_IFAST) testout_422_ifast.ppm 413 rm -f testout_422_ifast.ppm 414 # CC: YCC->RGB SAMP: h2v1 merged IDCT: ifast ENT: huff 415 ./djpeg -dct fast -nosmooth -outfile testout_422m_ifast.ppm testout_422_ifast_opt.jpg 416 md5/md5cmp $(MD5_PPM_422M_IFAST) testout_422m_ifast.ppm 417 rm -f testout_422m_ifast.ppm 418 if WITH_12BIT 419 rm -f testout_422_ifast_opt.jpg 420 else 421 # CC: YCC->RGB565 SAMP: h2v1 merged IDCT: ifast ENT: huff 422 ./djpeg -dct int -nosmooth -rgb565 -dither none -bmp -outfile testout_422m_ifast_565.bmp testout_422_ifast_opt.jpg 423 md5/md5cmp $(MD5_BMP_422M_IFAST_565) testout_422m_ifast_565.bmp 424 rm -f testout_422m_ifast_565.bmp 425 # CC: YCC->RGB565 (dithered) SAMP: h2v1 merged IDCT: ifast ENT: huff 426 ./djpeg -dct int -nosmooth -rgb565 -bmp -outfile testout_422m_ifast_565D.bmp testout_422_ifast_opt.jpg 427 md5/md5cmp $(MD5_BMP_422M_IFAST_565D) testout_422m_ifast_565D.bmp 428 rm -f testout_422m_ifast_565D.bmp testout_422_ifast_opt.jpg 429 endif 430 431 # CC: RGB->YCC SAMP: fullsize/h2v2 FDCT: ifast ENT: prog huff 432 ./cjpeg -sample 2x2 -quality 100 -dct fast -prog -outfile testout_420_q100_ifast_prog.jpg $(srcdir)/testimages/testorig.ppm 433 md5/md5cmp $(MD5_JPEG_420_IFAST_Q100_PROG) testout_420_q100_ifast_prog.jpg 434 # CC: YCC->RGB SAMP: fullsize/h2v2 fancy IDCT: ifast ENT: prog huff 435 ./djpeg -dct fast -outfile testout_420_q100_ifast.ppm testout_420_q100_ifast_prog.jpg 436 md5/md5cmp $(MD5_PPM_420_Q100_IFAST) testout_420_q100_ifast.ppm 437 rm -f testout_420_q100_ifast.ppm 438 # CC: YCC->RGB SAMP: h2v2 merged IDCT: ifast ENT: prog huff 439 ./djpeg -dct fast -nosmooth -outfile testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg 440 md5/md5cmp $(MD5_PPM_420M_Q100_IFAST) testout_420m_q100_ifast.ppm 441 rm -f testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg 442 443 # CC: RGB->Gray SAMP: fullsize FDCT: islow ENT: huff 444 ./cjpeg -gray -dct int -outfile testout_gray_islow.jpg $(srcdir)/testimages/testorig.ppm 445 md5/md5cmp $(MD5_JPEG_GRAY_ISLOW) testout_gray_islow.jpg 446 # CC: Gray->Gray SAMP: fullsize IDCT: islow ENT: huff 447 ./djpeg -dct int -outfile testout_gray_islow.ppm testout_gray_islow.jpg 448 md5/md5cmp $(MD5_PPM_GRAY_ISLOW) testout_gray_islow.ppm 449 rm -f testout_gray_islow.ppm 450 # CC: Gray->RGB SAMP: fullsize IDCT: islow ENT: huff 451 ./djpeg -dct int -rgb -outfile testout_gray_islow_rgb.ppm testout_gray_islow.jpg 452 md5/md5cmp $(MD5_PPM_GRAY_ISLOW_RGB) testout_gray_islow_rgb.ppm 453 rm -f testout_gray_islow_rgb.ppm 454 if WITH_12BIT 455 rm -f testout_gray_islow.jpg 456 else 457 # CC: Gray->RGB565 SAMP: fullsize IDCT: islow ENT: huff 458 ./djpeg -dct int -rgb565 -dither none -bmp -outfile testout_gray_islow_565.bmp testout_gray_islow.jpg 459 md5/md5cmp $(MD5_BMP_GRAY_ISLOW_565) testout_gray_islow_565.bmp 460 rm -f testout_gray_islow_565.bmp 461 # CC: Gray->RGB565 (dithered) SAMP: fullsize IDCT: islow ENT: huff 462 ./djpeg -dct int -rgb565 -bmp -outfile testout_gray_islow_565D.bmp testout_gray_islow.jpg 463 md5/md5cmp $(MD5_BMP_GRAY_ISLOW_565D) testout_gray_islow_565D.bmp 464 rm -f testout_gray_islow_565D.bmp testout_gray_islow.jpg 465 endif 466 467 # CC: RGB->YCC SAMP: fullsize smooth/h2v2 smooth FDCT: islow 468 # ENT: 2-pass huff 469 ./cjpeg -sample 2x2 -smooth 1 -dct int -opt -outfile testout_420s_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm 470 md5/md5cmp $(MD5_JPEG_420S_IFAST_OPT) testout_420s_ifast_opt.jpg 471 rm -f testout_420s_ifast_opt.jpg 472 473 # The output of the floating point tests is not validated by default, because 474 # the output differs depending on the type of floating point math used, and 475 # this is only deterministic if the DCT/IDCT are implemented using SIMD 476 # instructions on a particular platform. Pass one of the following on the make 477 # command line to validate the floating point tests against one of the expected 478 # results: 479 # 480 # FLOATTEST=sse validate against the expected results from the libjpeg-turbo 481 # SSE SIMD extensions 482 # FLOATTEST=32bit validate against the expected results from the C code 483 # when running on a 32-bit FPU (or when SSE is being used for 484 # floating point math, which is generally the default with 485 # x86-64 compilers) 486 # FLOATTEST=64bit validate against the exepected results from the C code 487 # when running on a 64-bit FPU 488 # FLOATTEST=387 validate against the expected results from the C code when 489 # the 387 FPU is being used for floating point math (which is 490 # generally the default with x86 compilers) 491 492 # CC: RGB->YCC SAMP: fullsize/int FDCT: float ENT: prog huff 493 ./cjpeg -sample 3x2 -dct float -prog -outfile testout_3x2_float_prog.jpg $(srcdir)/testimages/testorig.ppm 494 if [ "${FLOATTEST}" = "sse" ]; then \ 495 md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG_SSE) testout_3x2_float_prog.jpg; \ 496 elif [ "${FLOATTEST}" = "32bit" -o "${FLOATTEST}" = "64bit" ]; then \ 497 md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG_32BIT) testout_3x2_float_prog.jpg; \ 498 elif [ "${FLOATTEST}" = "387" ]; then \ 499 md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG_387) testout_3x2_float_prog.jpg; \ 500 fi 501 # CC: YCC->RGB SAMP: fullsize/int IDCT: float ENT: prog huff 502 ./djpeg -dct float -outfile testout_3x2_float.ppm testout_3x2_float_prog.jpg 503 if [ "${FLOATTEST}" = "sse" ]; then \ 504 md5/md5cmp $(MD5_PPM_3x2_FLOAT_SSE) testout_3x2_float.ppm; \ 505 elif [ "${FLOATTEST}" = "32bit" ]; then \ 506 md5/md5cmp $(MD5_PPM_3x2_FLOAT_32BIT) testout_3x2_float.ppm; \ 507 elif [ "${FLOATTEST}" = "64bit" ]; then \ 508 md5/md5cmp $(MD5_PPM_3x2_FLOAT_64BIT) testout_3x2_float.ppm; \ 509 elif [ "${FLOATTEST}" = "387" ]; then \ 510 md5/md5cmp $(MD5_PPM_3x2_FLOAT_387) testout_3x2_float.ppm; \ 511 fi 512 rm -f testout_3x2_float.ppm testout_3x2_float_prog.jpg 513 514 # CC: RGB->YCC SAMP: fullsize/int FDCT: ifast ENT: prog huff 515 ./cjpeg -sample 3x2 -dct fast -prog -outfile testout_3x2_ifast_prog.jpg $(srcdir)/testimages/testorig.ppm 516 md5/md5cmp $(MD5_JPEG_3x2_IFAST_PROG) testout_3x2_ifast_prog.jpg 517 # CC: YCC->RGB SAMP: fullsize/int IDCT: ifast ENT: prog huff 518 ./djpeg -dct fast -outfile testout_3x2_ifast.ppm testout_3x2_ifast_prog.jpg 519 md5/md5cmp $(MD5_PPM_3x2_IFAST) testout_3x2_ifast.ppm 520 rm -f testout_3x2_ifast.ppm testout_3x2_ifast_prog.jpg 521 522 if WITH_ARITH_ENC 523 # CC: YCC->RGB SAMP: fullsize/h2v2 FDCT: islow ENT: arith 524 ./cjpeg -dct int -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testorig.ppm 525 md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg 526 rm -f testout_420_islow_ari.jpg 527 ./jpegtran -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testimgint.jpg 528 md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg 529 rm -f testout_420_islow_ari.jpg 530 # CC: YCC->RGB SAMP: fullsize FDCT: islow ENT: prog arith 531 ./cjpeg -sample 1x1 -dct int -prog -arithmetic -outfile testout_444_islow_progari.jpg $(srcdir)/testimages/testorig.ppm 532 md5/md5cmp $(MD5_JPEG_444_ISLOW_PROGARI) testout_444_islow_progari.jpg 533 rm -f testout_444_islow_progari.jpg 534 endif 535 if WITH_ARITH_DEC 536 # CC: RGB->YCC SAMP: h2v2 merged IDCT: ifast ENT: arith 537 ./djpeg -fast -ppm -outfile testout_420m_ifast_ari.ppm $(srcdir)/testimages/testimgari.jpg 538 md5/md5cmp $(MD5_PPM_420M_IFAST_ARI) testout_420m_ifast_ari.ppm 539 rm -f testout_420m_ifast_ari.ppm 540 ./jpegtran -outfile testout_420_islow.jpg $(srcdir)/testimages/testimgari.jpg 541 md5/md5cmp $(MD5_JPEG_420_ISLOW) testout_420_islow.jpg 542 rm -f testout_420_islow.jpg 543 endif 544 545 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 16x16 islow ENT: huff 546 ./djpeg -dct int -scale 2/1 -nosmooth -ppm -outfile testout_420m_islow_2_1.ppm $(srcdir)/testimages/$(TESTORIG) 547 md5/md5cmp $(MD5_PPM_420M_ISLOW_2_1) testout_420m_islow_2_1.ppm 548 rm -f testout_420m_islow_2_1.ppm 549 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 15x15 islow ENT: huff 550 ./djpeg -dct int -scale 15/8 -nosmooth -ppm -outfile testout_420m_islow_15_8.ppm $(srcdir)/testimages/$(TESTORIG) 551 md5/md5cmp $(MD5_PPM_420M_ISLOW_15_8) testout_420m_islow_15_8.ppm 552 rm -f testout_420m_islow_15_8.ppm 553 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 13x13 islow ENT: huff 554 ./djpeg -dct int -scale 13/8 -nosmooth -ppm -outfile testout_420m_islow_13_8.ppm $(srcdir)/testimages/$(TESTORIG) 555 md5/md5cmp $(MD5_PPM_420M_ISLOW_13_8) testout_420m_islow_13_8.ppm 556 rm -f testout_420m_islow_13_8.ppm 557 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 11x11 islow ENT: huff 558 ./djpeg -dct int -scale 11/8 -nosmooth -ppm -outfile testout_420m_islow_11_8.ppm $(srcdir)/testimages/$(TESTORIG) 559 md5/md5cmp $(MD5_PPM_420M_ISLOW_11_8) testout_420m_islow_11_8.ppm 560 rm -f testout_420m_islow_11_8.ppm 561 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 9x9 islow ENT: huff 562 ./djpeg -dct int -scale 9/8 -nosmooth -ppm -outfile testout_420m_islow_9_8.ppm $(srcdir)/testimages/$(TESTORIG) 563 md5/md5cmp $(MD5_PPM_420M_ISLOW_9_8) testout_420m_islow_9_8.ppm 564 rm -f testout_420m_islow_9_8.ppm 565 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 7x7 islow/14x14 islow ENT: huff 566 ./djpeg -dct int -scale 7/8 -nosmooth -ppm -outfile testout_420m_islow_7_8.ppm $(srcdir)/testimages/$(TESTORIG) 567 md5/md5cmp $(MD5_PPM_420M_ISLOW_7_8) testout_420m_islow_7_8.ppm 568 rm -f testout_420m_islow_7_8.ppm 569 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 6x6 islow/12x12 islow ENT: huff 570 ./djpeg -dct int -scale 3/4 -nosmooth -ppm -outfile testout_420m_islow_3_4.ppm $(srcdir)/testimages/$(TESTORIG) 571 md5/md5cmp $(MD5_PPM_420M_ISLOW_3_4) testout_420m_islow_3_4.ppm 572 rm -f testout_420m_islow_3_4.ppm 573 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 5x5 islow/10x10 islow ENT: huff 574 ./djpeg -dct int -scale 5/8 -nosmooth -ppm -outfile testout_420m_islow_5_8.ppm $(srcdir)/testimages/$(TESTORIG) 575 md5/md5cmp $(MD5_PPM_420M_ISLOW_5_8) testout_420m_islow_5_8.ppm 576 rm -f testout_420m_islow_5_8.ppm 577 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 4x4 islow/8x8 islow ENT: huff 578 ./djpeg -dct int -scale 1/2 -nosmooth -ppm -outfile testout_420m_islow_1_2.ppm $(srcdir)/testimages/$(TESTORIG) 579 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_2) testout_420m_islow_1_2.ppm 580 rm -f testout_420m_islow_1_2.ppm 581 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 3x3 islow/6x6 islow ENT: huff 582 ./djpeg -dct int -scale 3/8 -nosmooth -ppm -outfile testout_420m_islow_3_8.ppm $(srcdir)/testimages/$(TESTORIG) 583 md5/md5cmp $(MD5_PPM_420M_ISLOW_3_8) testout_420m_islow_3_8.ppm 584 rm -f testout_420m_islow_3_8.ppm 585 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 2x2 islow/4x4 islow ENT: huff 586 ./djpeg -dct int -scale 1/4 -nosmooth -ppm -outfile testout_420m_islow_1_4.ppm $(srcdir)/testimages/$(TESTORIG) 587 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_4) testout_420m_islow_1_4.ppm 588 rm -f testout_420m_islow_1_4.ppm 589 # CC: YCC->RGB SAMP: h2v2 merged IDCT: 1x1 islow/2x2 islow ENT: huff 590 ./djpeg -dct int -scale 1/8 -nosmooth -ppm -outfile testout_420m_islow_1_8.ppm $(srcdir)/testimages/$(TESTORIG) 591 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_8) testout_420m_islow_1_8.ppm 592 rm -f testout_420m_islow_1_8.ppm 593 if WITH_12BIT 594 else 595 # CC: YCC->RGB (dithered) SAMP: h2v2 fancy IDCT: islow ENT: huff 596 ./djpeg -dct int -colors 256 -bmp -outfile testout_420_islow_256.bmp $(srcdir)/testimages/$(TESTORIG) 597 md5/md5cmp $(MD5_BMP_420_ISLOW_256) testout_420_islow_256.bmp 598 rm -f testout_420_islow_256.bmp 599 # CC: YCC->RGB565 SAMP: h2v2 fancy IDCT: islow ENT: huff 600 ./djpeg -dct int -rgb565 -dither none -bmp -outfile testout_420_islow_565.bmp $(srcdir)/testimages/$(TESTORIG) 601 md5/md5cmp $(MD5_BMP_420_ISLOW_565) testout_420_islow_565.bmp 602 rm -f testout_420_islow_565.bmp 603 # CC: YCC->RGB565 (dithered) SAMP: h2v2 fancy IDCT: islow ENT: huff 604 ./djpeg -dct int -rgb565 -bmp -outfile testout_420_islow_565D.bmp $(srcdir)/testimages/$(TESTORIG) 605 md5/md5cmp $(MD5_BMP_420_ISLOW_565D) testout_420_islow_565D.bmp 606 rm -f testout_420_islow_565D.bmp 607 # CC: YCC->RGB565 SAMP: h2v2 merged IDCT: islow ENT: huff 608 ./djpeg -dct int -nosmooth -rgb565 -dither none -bmp -outfile testout_420m_islow_565.bmp $(srcdir)/testimages/$(TESTORIG) 609 md5/md5cmp $(MD5_BMP_420M_ISLOW_565) testout_420m_islow_565.bmp 610 rm -f testout_420m_islow_565.bmp 611 # CC: YCC->RGB565 (dithered) SAMP: h2v2 merged IDCT: islow ENT: huff 612 ./djpeg -dct int -nosmooth -rgb565 -bmp -outfile testout_420m_islow_565D.bmp $(srcdir)/testimages/$(TESTORIG) 613 md5/md5cmp $(MD5_BMP_420M_ISLOW_565D) testout_420m_islow_565D.bmp 614 rm -f testout_420m_islow_565D.bmp 615 endif 616 617 # Partial decode tests. These tests are designed to cover all of the possible 618 # code paths in jpeg_skip_scanlines(). 619 620 # Context rows: Yes Intra-iMCU row: Yes iMCU row prefetch: No ENT: huff 621 ./djpeg -dct int -skip 15,31 -ppm -outfile testout_420_islow_skip15,31.ppm $(srcdir)/testimages/$(TESTORIG) 622 md5/md5cmp $(MD5_PPM_420_ISLOW_SKIP15_31) testout_420_islow_skip15,31.ppm 623 rm -f testout_420_islow_skip15,31.ppm 624 # Context rows: Yes Intra-iMCU row: No iMCU row prefetch: Yes ENT: arith 625 if WITH_ARITH_DEC 626 ./djpeg -dct int -skip 16,139 -ppm -outfile testout_420_islow_ari_skip16,139.ppm $(srcdir)/testimages/testimgari.jpg 627 md5/md5cmp $(MD5_PPM_420_ISLOW_ARI_SKIP16_139) testout_420_islow_ari_skip16,139.ppm 628 rm -f testout_420_islow_ari_skip16,139.ppm 629 endif 630 # Context rows: Yes Intra-iMCU row: No iMCU row prefetch: No ENT: prog huff 631 ./cjpeg -dct int -prog -outfile testout_420_islow_prog.jpg $(srcdir)/testimages/testorig.ppm 632 ./djpeg -dct int -crop 62x62+71+71 -ppm -outfile testout_420_islow_prog_crop62x62,71,71.ppm testout_420_islow_prog.jpg 633 md5/md5cmp $(MD5_PPM_420_ISLOW_PROG_CROP62x62_71_71) testout_420_islow_prog_crop62x62,71,71.ppm 634 rm -f testout_420_islow_prog_crop62x62,71,71.ppm testout_420_islow_prog.jpg 635 # Context rows: Yes Intra-iMCU row: No iMCU row prefetch: No ENT: arith 636 if WITH_ARITH_DEC 637 ./djpeg -dct int -crop 53x53+4+4 -ppm -outfile testout_420_islow_ari_crop53x53,4,4.ppm $(srcdir)/testimages/testimgari.jpg 638 md5/md5cmp $(MD5_PPM_420_ISLOW_ARI_CROP53x53_4_4) testout_420_islow_ari_crop53x53,4,4.ppm 639 rm -f testout_420_islow_ari_crop53x53,4,4.ppm 640 endif 641 # Context rows: No Intra-iMCU row: Yes ENT: huff 642 ./cjpeg -dct int -sample 1x1 -outfile testout_444_islow.jpg $(srcdir)/testimages/testorig.ppm 643 ./djpeg -dct int -skip 1,6 -ppm -outfile testout_444_islow_skip1,6.ppm testout_444_islow.jpg 644 md5/md5cmp $(MD5_PPM_444_ISLOW_SKIP1_6) testout_444_islow_skip1,6.ppm 645 rm -f testout_444_islow_skip1,6.ppm testout_444_islow.jpg 646 # Context rows: No Intra-iMCU row: No ENT: prog huff 647 ./cjpeg -dct int -prog -sample 1x1 -outfile testout_444_islow_prog.jpg $(srcdir)/testimages/testorig.ppm 648 ./djpeg -dct int -crop 98x98+13+13 -ppm -outfile testout_444_islow_prog_crop98x98,13,13.ppm testout_444_islow_prog.jpg 649 md5/md5cmp $(MD5_PPM_444_ISLOW_PROG_CROP98x98_13_13) testout_444_islow_prog_crop98x98,13,13.ppm 650 rm -f testout_444_islow_prog_crop98x98,13,13.ppm testout_444_islow_prog.jpg 651 # Context rows: No Intra-iMCU row: No ENT: arith 652 if WITH_ARITH_ENC 653 ./cjpeg -dct int -arithmetic -sample 1x1 -outfile testout_444_islow_ari.jpg $(srcdir)/testimages/testorig.ppm 654 if WITH_ARITH_DEC 655 ./djpeg -dct int -crop 37x37+0+0 -ppm -outfile testout_444_islow_ari_crop37x37,0,0.ppm testout_444_islow_ari.jpg 656 md5/md5cmp $(MD5_PPM_444_ISLOW_ARI_CROP37x37_0_0) testout_444_islow_ari_crop37x37,0,0.ppm 657 rm -f testout_444_islow_ari_crop37x37,0,0.ppm 658 endif 659 rm -f testout_444_islow_ari.jpg 660 endif 661 662 ./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testout_crop.jpg $(srcdir)/testimages/$(TESTORIG) 663 md5/md5cmp $(MD5_JPEG_CROP) testout_crop.jpg 664 rm -f testout_crop.jpg 665 echo GREAT SUCCESS! 666 667 668 testclean: 669 rm -f testout* 670 rm -f *_GRAY_*.bmp 671 rm -f *_GRAY_*.png 672 rm -f *_GRAY_*.ppm 673 rm -f *_GRAY_*.jpg 674 rm -f *_GRAY.yuv 675 rm -f *_420_*.bmp 676 rm -f *_420_*.png 677 rm -f *_420_*.ppm 678 rm -f *_420_*.jpg 679 rm -f *_420.yuv 680 rm -f *_422_*.bmp 681 rm -f *_422_*.png 682 rm -f *_422_*.ppm 683 rm -f *_422_*.jpg 684 rm -f *_422.yuv 685 rm -f *_444_*.bmp 686 rm -f *_444_*.png 687 rm -f *_444_*.ppm 688 rm -f *_444_*.jpg 689 rm -f *_444.yuv 690 rm -f *_440_*.bmp 691 rm -f *_440_*.png 692 rm -f *_440_*.ppm 693 rm -f *_440_*.jpg 694 rm -f *_440.yuv 695 rm -f *_411_*.bmp 696 rm -f *_411_*.png 697 rm -f *_411_*.ppm 698 rm -f *_411_*.jpg 699 rm -f *_411.yuv 700 rm -f tjbenchtest*.log 701 rm -f tjexampletest*.log 702 703 704 tjtest: 705 sh ./tjbenchtest 706 sh ./tjbenchtest -alloc 707 sh ./tjbenchtest -yuv 708 sh ./tjbenchtest -yuv -alloc 709 if WITH_JAVA 710 sh ./tjbenchtest.java 711 sh ./tjbenchtest.java -yuv 712 endif 713 714 715 pkgscripts/libjpeg-turbo.spec: pkgscripts/libjpeg-turbo.spec.tmpl 716 cat pkgscripts/libjpeg-turbo.spec.tmpl | sed s@%{__prefix}@$(prefix)@g | \ 717 sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \ 718 sed s@%{__docdir}@$(docdir)@g | sed s@%{__includedir}@$(includedir)@g | \ 719 sed s@%{__libdir}@$(libdir)@g | sed s@%{__mandir}@$(mandir)@g \ 720 > pkgscripts/libjpeg-turbo.spec 721 722 rpm: all pkgscripts/libjpeg-turbo.spec 723 TMPDIR=`mktemp -d /tmp/${PACKAGE_NAME}-build.XXXXXX`; \ 724 mkdir -p $$TMPDIR/RPMS; \ 725 ln -fs `pwd` $$TMPDIR/BUILD; \ 726 rm -f ${PKGNAME}-${VERSION}.${RPMARCH}.rpm; \ 727 rpmbuild -bb --define "_blddir $$TMPDIR/buildroot" \ 728 --define "_topdir $$TMPDIR" \ 729 --target ${RPMARCH} pkgscripts/libjpeg-turbo.spec; \ 730 cp $$TMPDIR/RPMS/${RPMARCH}/${PKGNAME}-${VERSION}-${BUILD}.${RPMARCH}.rpm \ 731 ${PKGNAME}-${VERSION}.${RPMARCH}.rpm; \ 732 rm -rf $$TMPDIR 733 734 srpm: dist-gzip pkgscripts/libjpeg-turbo.spec 735 TMPDIR=`mktemp -d /tmp/${PACKAGE_NAME}-build.XXXXXX`; \ 736 mkdir -p $$TMPDIR/RPMS; \ 737 mkdir -p $$TMPDIR/SRPMS; \ 738 mkdir -p $$TMPDIR/BUILD; \ 739 mkdir -p $$TMPDIR/SOURCES; \ 740 mkdir -p $$TMPDIR/SPECS; \ 741 rm -f ${PKGNAME}-${VERSION}.src.rpm; \ 742 cp ${PACKAGE_NAME}-${VERSION}.tar.gz $$TMPDIR/SOURCES; \ 743 cat pkgscripts/libjpeg-turbo.spec | sed s/%{_blddir}/%{_tmppath}/g \ 744 | sed s/#--\>//g \ 745 > $$TMPDIR/SPECS/libjpeg-turbo.spec; \ 746 rpmbuild -bs --define "_topdir $$TMPDIR" $$TMPDIR/SPECS/libjpeg-turbo.spec; \ 747 cp $$TMPDIR/SRPMS/${PKGNAME}-${VERSION}-${BUILD}.src.rpm \ 748 ${PKGNAME}-${VERSION}.src.rpm; \ 749 rm -rf $$TMPDIR 750 751 pkgscripts/makedpkg: pkgscripts/makedpkg.tmpl 752 cat pkgscripts/makedpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \ 753 sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \ 754 > pkgscripts/makedpkg 755 756 deb: all pkgscripts/makedpkg 757 sh pkgscripts/makedpkg 758 759 pkgscripts/uninstall: pkgscripts/uninstall.tmpl 760 cat pkgscripts/uninstall.tmpl | sed s@%{__prefix}@$(prefix)@g | \ 761 sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \ 762 sed s@%{__includedir}@$(includedir)@g | sed s@%{__libdir}@$(libdir)@g | \ 763 sed s@%{__mandir}@$(mandir)@g > pkgscripts/uninstall 764 765 pkgscripts/makemacpkg: pkgscripts/makemacpkg.tmpl 766 cat pkgscripts/makemacpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \ 767 sed s@%{__bindir}@$(bindir)@g | sed s@%{__docdir}@$(docdir)@g | \ 768 sed s@%{__libdir}@$(libdir)@g > pkgscripts/makemacpkg 769 770 if X86_64 771 772 udmg: all pkgscripts/makemacpkg pkgscripts/uninstall 773 sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} 774 775 iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall 776 sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S} -buildarmv8 ${BUILDDIRARMV8} -lipo "${LIPO}" 777 778 else 779 780 iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall 781 sh pkgscripts/makemacpkg -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S} -buildarmv8 ${BUILDDIRARMV8} -lipo "${LIPO}" 782 783 endif 784 785 dmg: all pkgscripts/makemacpkg pkgscripts/uninstall 786 sh pkgscripts/makemacpkg 787 788 pkgscripts/makecygwinpkg: pkgscripts/makecygwinpkg.tmpl 789 cat pkgscripts/makecygwinpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \ 790 sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \ 791 > pkgscripts/makecygwinpkg 792 793 cygwinpkg: all pkgscripts/makecygwinpkg 794 sh pkgscripts/makecygwinpkg 795