blob: d4b1647e9038ac4e46162dd5ccdd763ace60bb2f [file] [log] [blame]
DRC211d1e72013-01-13 11:25:20 +00001lib_LTLIBRARIES = libjpeg.la
DRC6da61db2013-01-19 01:06:46 +00002libjpeg_la_LDFLAGS = -version-info ${LIBTOOL_CURRENT}:${SO_MINOR_VERSION}:${SO_AGE} -no-undefined
DRC211d1e72013-01-13 11:25:20 +00003include_HEADERS = jerror.h jmorecfg.h jpeglib.h
4
5if WITH_TURBOJPEG
6lib_LTLIBRARIES += libturbojpeg.la
DRC24211152013-04-27 22:18:29 +00007libturbojpeg_la_LDFLAGS = -version-info 1:0:1 -no-undefined
DRC211d1e72013-01-13 11:25:20 +00008include_HEADERS += turbojpeg.h
9endif
10
DRC0a945a12010-02-15 11:04:51 +000011nodist_include_HEADERS = jconfig.h
DRC0c0f3042010-01-28 05:34:53 +000012
DRC211d1e72013-01-13 11:25:20 +000013
Adam Tkacda5a1fe2008-10-22 11:19:25 +000014HDRS = jchuff.h jdct.h jdhuff.h jerror.h jinclude.h jmemsys.h jmorecfg.h \
DRC6887f052014-04-20 09:23:01 +000015 jpegint.h jpeglib.h jversion.h jsimd.h jsimddct.h jpegcomp.h \
16 jpeg_nbits_table.h
Constantin Kaplinsky0ca44252008-09-28 05:08:48 +000017
DRCe3720042010-11-23 06:50:14 +000018libjpeg_la_SOURCES = $(HDRS) jcapimin.c jcapistd.c jccoefct.c jccolor.c \
19 jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c \
20 jcomapi.c jcparam.c jcphuff.c jcprepct.c jcsample.c jctrans.c \
21 jdapimin.c jdapistd.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c \
22 jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c \
23 jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c \
24 jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c \
25 jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c
26
27if WITH_ARITH
DRCe3720042010-11-23 06:50:14 +000028libjpeg_la_SOURCES += jaricom.c
DRCe3720042010-11-23 06:50:14 +000029endif
30
31if WITH_ARITH_ENC
DRCe3720042010-11-23 06:50:14 +000032libjpeg_la_SOURCES += jcarith.c
DRCe3720042010-11-23 06:50:14 +000033endif
34
35if WITH_ARITH_DEC
DRCe3720042010-11-23 06:50:14 +000036libjpeg_la_SOURCES += jdarith.c
DRCe3720042010-11-23 06:50:14 +000037endif
Constantin Kaplinsky0ca44252008-09-28 05:08:48 +000038
DRC211d1e72013-01-13 11:25:20 +000039
40SUBDIRS = java
41
42
43if WITH_TURBOJPEG
44
DRC418dbdf2011-05-26 10:45:06 +000045libturbojpeg_la_SOURCES = $(libjpeg_la_SOURCES) turbojpeg.c turbojpeg.h \
DRC9b28def2011-05-21 14:37:15 +000046 transupp.c transupp.h jdatadst-tj.c jdatasrc-tj.c
DRCf8e00552011-02-04 11:06:36 +000047
DRCf2602ce2011-04-01 00:20:33 +000048if WITH_JAVA
DRCf8e00552011-02-04 11:06:36 +000049
50libturbojpeg_la_SOURCES += turbojpeg-jni.c
DRCe08c05f2011-03-31 08:03:26 +000051libturbojpeg_la_CFLAGS = ${JNI_CFLAGS}
DRCf8e00552011-02-04 11:06:36 +000052TJMAPFILE = turbojpeg-mapfile.jni
53
54else
55
56TJMAPFILE = turbojpeg-mapfile
57
58endif
59
60libturbojpeg_la_SOURCES += $(TJMAPFILE)
DRC6f8c6682010-02-16 05:03:51 +000061
62if VERSION_SCRIPT
DRC9fa95592011-02-25 00:23:44 +000063libturbojpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)$(srcdir)/$(TJMAPFILE)
DRC211d1e72013-01-13 11:25:20 +000064endif
DRC6f8c6682010-02-16 05:03:51 +000065
66endif
DRC1bf1a142010-02-11 06:39:32 +000067
DRC211d1e72013-01-13 11:25:20 +000068
69if VERSION_SCRIPT
70libjpeg_la_LDFLAGS += $(VERSION_SCRIPT_FLAG)libjpeg.map
71endif
72
73
DRC60cddeb2010-02-12 05:37:07 +000074if WITH_SIMD
75
DRCf2602ce2011-04-01 00:20:33 +000076SUBDIRS += simd
Pierre Ossman3a65ef42009-03-16 13:34:18 +000077libjpeg_la_LIBADD = simd/libsimd.la
DRC1bf1a142010-02-11 06:39:32 +000078libturbojpeg_la_LIBADD = simd/libsimd.la
Pierre Ossman2ae181c2009-03-09 13:21:27 +000079
DRC60cddeb2010-02-12 05:37:07 +000080else
81
82libjpeg_la_SOURCES += jsimd_none.c
83
84endif
85
DRC211d1e72013-01-13 11:25:20 +000086
87bin_PROGRAMS = cjpeg djpeg jpegtran rdjpgcom wrjpgcom
88noinst_PROGRAMS = jcstest
89
90
91if WITH_TURBOJPEG
92
93bin_PROGRAMS += tjbench
94
95noinst_PROGRAMS += tjunittest
DRC2e7b76b2009-04-03 12:04:24 +000096
DRC3185cb92011-05-25 03:52:22 +000097tjbench_SOURCES = tjbench.c bmp.h bmp.c tjutil.h tjutil.c rdbmp.c rdppm.c \
DRC18821f82011-05-24 17:07:51 +000098 wrbmp.c wrppm.c
DRC2e7b76b2009-04-03 12:04:24 +000099
DRC3185cb92011-05-25 03:52:22 +0000100tjbench_LDADD = libturbojpeg.la libjpeg.la -lm
DRC2e7b76b2009-04-03 12:04:24 +0000101
DRC3185cb92011-05-25 03:52:22 +0000102tjbench_CFLAGS = -DBMP_SUPPORTED -DPPM_SUPPORTED
DRCbe49b8c2011-05-24 13:41:27 +0000103
DRC3185cb92011-05-25 03:52:22 +0000104tjunittest_SOURCES = tjunittest.c tjutil.h tjutil.c
DRC2e7b76b2009-04-03 12:04:24 +0000105
DRC3185cb92011-05-25 03:52:22 +0000106tjunittest_LDADD = libturbojpeg.la
DRC73de9822009-06-25 20:41:17 +0000107
DRC211d1e72013-01-13 11:25:20 +0000108endif
109
110
DRCaee4f722014-08-09 23:06:07 +0000111cjpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c cjpeg.c rdgif.c rdppm.c rdswitch.c
112if WITH_12BIT
113else
114cjpeg_SOURCES += rdbmp.c rdtarga.c
115endif
DRC73de9822009-06-25 20:41:17 +0000116
DRC971d8512010-02-13 22:55:05 +0000117cjpeg_LDADD = libjpeg.la
DRC73de9822009-06-25 20:41:17 +0000118
DRCaee4f722014-08-09 23:06:07 +0000119cjpeg_CFLAGS = -DGIF_SUPPORTED -DPPM_SUPPORTED
120if WITH_12BIT
121else
122cjpeg_CFLAGS += -DBMP_SUPPORTED -DTARGA_SUPPORTED
123endif
DRC73de9822009-06-25 20:41:17 +0000124
125djpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c djpeg.c rdcolmap.c rdswitch.c \
DRCaee4f722014-08-09 23:06:07 +0000126 wrgif.c wrppm.c
127if WITH_12BIT
128else
129djpeg_SOURCES += wrbmp.c wrtarga.c
130endif
DRC73de9822009-06-25 20:41:17 +0000131
DRC971d8512010-02-13 22:55:05 +0000132djpeg_LDADD = libjpeg.la
DRC73de9822009-06-25 20:41:17 +0000133
DRCaee4f722014-08-09 23:06:07 +0000134djpeg_CFLAGS = -DGIF_SUPPORTED -DPPM_SUPPORTED
135if WITH_12BIT
136else
137djpeg_CFLAGS += -DBMP_SUPPORTED -DTARGA_SUPPORTED
138endif
DRC60fa0602010-02-12 06:01:49 +0000139
DRC0a945a12010-02-15 11:04:51 +0000140jpegtran_SOURCES = jpegtran.c rdswitch.c cdjpeg.c transupp.c transupp.h
DRC60fa0602010-02-12 06:01:49 +0000141
DRC971d8512010-02-13 22:55:05 +0000142jpegtran_LDADD = libjpeg.la
DRC60fa0602010-02-12 06:01:49 +0000143
DRC0a945a12010-02-15 11:04:51 +0000144rdjpgcom_SOURCES = rdjpgcom.c
DRC60fa0602010-02-12 06:01:49 +0000145
DRC971d8512010-02-13 22:55:05 +0000146rdjpgcom_LDADD = libjpeg.la
DRC60fa0602010-02-12 06:01:49 +0000147
148wrjpgcom_SOURCES = wrjpgcom.c
149
DRC971d8512010-02-13 22:55:05 +0000150wrjpgcom_LDADD = libjpeg.la
DRC60fa0602010-02-12 06:01:49 +0000151
DRCb76c8402011-12-19 15:01:55 +0000152jcstest_SOURCES = jcstest.c
153
154jcstest_LDADD = libjpeg.la
DRC0a945a12010-02-15 11:04:51 +0000155
DRCcbda81a2010-06-05 01:12:35 +0000156dist_man1_MANS = cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1
DRC0a945a12010-02-15 11:04:51 +0000157
DRC2f12d7a2013-01-13 01:19:09 +0000158DOCS= coderules.txt jconfig.txt change.log rdrle.c wrrle.c BUILDING.txt \
159 ChangeLog.txt
DRCa1647c82012-02-10 00:39:05 +0000160
DRC01bf9d92012-02-10 01:52:31 +0000161dist_doc_DATA = README README-turbo.txt libjpeg.txt structure.txt usage.txt \
DRC9a341f82014-04-15 03:43:44 +0000162 wizard.txt
DRCa1647c82012-02-10 00:39:05 +0000163
DRCc69a1cd2015-02-23 19:06:44 +0000164exampledir = $(docdir)
DRC01bf9d92012-02-10 01:52:31 +0000165dist_example_DATA = example.c
DRC0a945a12010-02-15 11:04:51 +0000166
DRC750e0782011-05-10 21:05:49 +0000167
DRC0bf58f22013-02-06 23:51:08 +0000168EXTRA_DIST = win release $(DOCS) testimages CMakeLists.txt \
DRCa006fba2011-10-27 23:25:28 +0000169 sharedlib/CMakeLists.txt cmakescripts libjpeg.map.in doc doxygen.config \
DRC3f764b72014-12-14 11:47:49 +0000170 doxygen-extra.css jccolext.c jdcolext.c jdcol565.c jdmrgext.c jdmrg565.c \
DRCd8da49e2015-09-21 13:45:45 -0500171 jstdhuff.c LICENSE.txt
DRC0a945a12010-02-15 11:04:51 +0000172
173dist-hook:
174 rm -rf `find $(distdir) -name .svn`
175
176
DRC0bf58f22013-02-06 23:51:08 +0000177SUBDIRS += md5
178
DRCaee4f722014-08-09 23:06:07 +0000179if WITH_12BIT
180
181TESTORIG = testorig12.jpg
182MD5_JPEG_RGB_ISLOW = 9620f424569594bb9242b48498ad801f
183MD5_PPM_RGB_ISLOW = f3301d2219783b8b3d942b7239fa50c0
184MD5_JPEG_422_IFAST_OPT = 7322e3bd2f127f7de4b40d4480ce60e4
185MD5_PPM_422_IFAST = 79807fa552899e66a04708f533e16950
186MD5_PPM_422M_IFAST = 07737bfe8a7c1c87aaa393a0098d16b0
187MD5_JPEG_420_IFAST_Q100_PROG = a1da220b5604081863a504297ed59e55
188MD5_PPM_420_Q100_IFAST = 1b3730122709f53d007255e8dfd3305e
189MD5_PPM_420M_Q100_IFAST = 980a1a3c5bf9510022869d30b7d26566
190MD5_JPEG_GRAY_ISLOW = 235c90707b16e2e069f37c888b2636d9
191MD5_PPM_GRAY_ISLOW = 7213c10af507ad467da5578ca5ee1fca
192MD5_PPM_GRAY_ISLOW_RGB = e96ee81c30a6ed422d466338bd3de65d
193MD5_JPEG_420S_IFAST_OPT = 7af8e60be4d9c227ec63ac9b6630855e
DRC3af282d2015-01-16 06:53:36 +0000194MD5_JPEG_3x2_FLOAT_PROG_SSE = a8c17daf77b457725ec929e215b603f8
195MD5_PPM_3x2_FLOAT_SSE = 42876ab9e5c2f76a87d08db5fbd57956
196MD5_JPEG_3x2_FLOAT_PROG_32BIT = a8c17daf77b457725ec929e215b603f8
197MD5_PPM_3x2_FLOAT_32BIT = 42876ab9e5c2f76a87d08db5fbd57956
198MD5_PPM_3x2_FLOAT_64BIT = d6fbc71153b3d8ded484dbc17c7b9cf4
199MD5_JPEG_3x2_IFAST_PROG = 1396cc2b7185cfe943d408c9d305339e
200MD5_PPM_3x2_IFAST = 3975985ef6eeb0a2cdc58daa651ccc00
DRCaee4f722014-08-09 23:06:07 +0000201MD5_PPM_420M_ISLOW_2_1 = 4ca6be2a6f326ff9eaab63e70a8259c0
202MD5_PPM_420M_ISLOW_15_8 = 12aa9f9534c1b3d7ba047322226365eb
203MD5_PPM_420M_ISLOW_13_8 = f7e22817c7b25e1393e4ec101e9d4e96
204MD5_PPM_420M_ISLOW_11_8 = 800a16f9f4dc9b293197bfe11be10a82
205MD5_PPM_420M_ISLOW_9_8 = 06b7a92a9bc69f4dc36ec40f1937d55c
206MD5_PPM_420M_ISLOW_7_8 = 3ec444a14a4ab4eab88ffc49c48eca43
207MD5_PPM_420M_ISLOW_3_4 = 3e726b7ea872445b19437d1c1d4f0d93
208MD5_PPM_420M_ISLOW_5_8 = a8a771abdc94301d20ffac119b2caccd
209MD5_PPM_420M_ISLOW_1_2 = b419124dd5568b085787234866102866
210MD5_PPM_420M_ISLOW_3_8 = 343d19015531b7bbe746124127244fa8
211MD5_PPM_420M_ISLOW_1_4 = 35fd59d866e44659edfa3c18db2a3edb
212MD5_PPM_420M_ISLOW_1_8 = ccaed48ac0aedefda5d4abe4013f4ad7
213MD5_JPEG_CROP = cdb35ff4b4519392690ea040c56ea99c
214
215else
216
217TESTORIG = testorig.jpg
DRC66129dc2014-05-06 08:58:11 +0000218MD5_JPEG_RGB_ISLOW = 768e970dd57b340ff1b83c9d3d47c77b
219MD5_PPM_RGB_ISLOW = 00a257f5393fef8821f2b88ac7421291
DRC78df2e62014-05-12 09:23:57 +0000220MD5_BMP_RGB_ISLOW_565 = f07d2e75073e4bb10f6c6f4d36e2e3be
221MD5_BMP_RGB_ISLOW_565D = 4cfa0928ef3e6bb626d7728c924cfda4
DRC66129dc2014-05-06 08:58:11 +0000222MD5_JPEG_422_IFAST_OPT = 2540287b79d913f91665e660303ab2c8
223MD5_PPM_422_IFAST = 35bd6b3f833bad23de82acea847129fa
224MD5_PPM_422M_IFAST = 8dbc65323d62cca7c91ba02dd1cfa81d
DRC78df2e62014-05-12 09:23:57 +0000225MD5_BMP_422M_IFAST_565 = 3294bd4d9a1f2b3d08ea6020d0db7065
226MD5_BMP_422M_IFAST_565D = da98c9c7b6039511be4a79a878a9abc1
DRC66129dc2014-05-06 08:58:11 +0000227MD5_JPEG_420_IFAST_Q100_PROG = 990cbe0329c882420a2094da7e5adade
228MD5_PPM_420_Q100_IFAST = 5a732542015c278ff43635e473a8a294
229MD5_PPM_420M_Q100_IFAST = ff692ee9323a3b424894862557c092f1
230MD5_JPEG_GRAY_ISLOW = 72b51f894b8f4a10b3ee3066770aa38d
231MD5_PPM_GRAY_ISLOW = 8d3596c56eace32f205deccc229aa5ed
DRC78df2e62014-05-12 09:23:57 +0000232MD5_PPM_GRAY_ISLOW_RGB = 116424ac07b79e5e801f00508eab48ec
233MD5_BMP_GRAY_ISLOW_565 = 12f78118e56a2f48b966f792fedf23cc
234MD5_BMP_GRAY_ISLOW_565D = bdbbd616441a24354c98553df5dc82db
DRC66129dc2014-05-06 08:58:11 +0000235MD5_JPEG_420S_IFAST_OPT = 388708217ac46273ca33086b22827ed8
DRC715bb412014-05-11 10:09:07 +0000236# See README-turbo.txt for more details on why this next bit is necessary.
DRC3af282d2015-01-16 06:53:36 +0000237MD5_JPEG_3x2_FLOAT_PROG_SSE = 343e3f8caf8af5986ebaf0bdc13b5c71
238MD5_PPM_3x2_FLOAT_SSE = 1a75f36e5904d6fc3a85a43da9ad89bb
239MD5_JPEG_3x2_FLOAT_PROG_32BIT = 9bca803d2042bd1eb03819e2bf92b3e5
240MD5_PPM_3x2_FLOAT_32BIT = f6bfab038438ed8f5522fbd33595dcdc
241MD5_PPM_3x2_FLOAT_64BIT = 0e917a34193ef976b679a6b069b1be26
242MD5_JPEG_3x2_IFAST_PROG = 1ee5d2c1a77f2da495f993c8c7cceca5
243MD5_PPM_3x2_IFAST = fd283664b3b49127984af0a7f118fccd
DRC66129dc2014-05-06 08:58:11 +0000244MD5_JPEG_420_ISLOW_ARI = e986fb0a637a8d833d96e8a6d6d84ea1
245MD5_JPEG_444_ISLOW_PROGARI = 0a8f1c8f66e113c3cf635df0a475a617
246MD5_PPM_420M_IFAST_ARI = 72b59a99bcf1de24c5b27d151bde2437
247MD5_JPEG_420_ISLOW = 9a68f56bc76e466aa7e52f415d0f4a5f
248MD5_PPM_420M_ISLOW_2_1 = 9f9de8c0612f8d06869b960b05abf9c9
249MD5_PPM_420M_ISLOW_15_8 = b6875bc070720b899566cc06459b63b7
250MD5_PPM_420M_ISLOW_13_8 = bc3452573c8152f6ae552939ee19f82f
251MD5_PPM_420M_ISLOW_11_8 = d8cc73c0aaacd4556569b59437ba00a5
252MD5_PPM_420M_ISLOW_9_8 = d25e61bc7eac0002f5b393aa223747b6
253MD5_PPM_420M_ISLOW_7_8 = ddb564b7c74a09494016d6cd7502a946
254MD5_PPM_420M_ISLOW_3_4 = 8ed8e68808c3fbc4ea764fc9d2968646
255MD5_PPM_420M_ISLOW_5_8 = a3363274999da2366a024efae6d16c9b
256MD5_PPM_420M_ISLOW_1_2 = e692a315cea26b988c8e8b29a5dbcd81
257MD5_PPM_420M_ISLOW_3_8 = 79eca9175652ced755155c90e785a996
258MD5_PPM_420M_ISLOW_1_4 = 79cd778f8bf1a117690052cacdd54eca
259MD5_PPM_420M_ISLOW_1_8 = 391b3d4aca640c8567d6f8745eb2142f
260MD5_BMP_420_ISLOW_256 = 4980185e3776e89bd931736e1cddeee6
DRC78df2e62014-05-12 09:23:57 +0000261MD5_BMP_420_ISLOW_565 = bf9d13e16c4923b92e1faa604d7922cb
262MD5_BMP_420_ISLOW_565D = 6bde71526acc44bcff76f696df8638d2
263MD5_BMP_420M_ISLOW_565 = 8dc0185245353cfa32ad97027342216f
264MD5_BMP_420M_ISLOW_565D =d1be3a3339166255e76fa50a0d70d73e
DRC211d1e72013-01-13 11:25:20 +0000265MD5_JPEG_CROP = b4197f377e621c4e9b1d20471432610d
266
DRCaee4f722014-08-09 23:06:07 +0000267endif
268
DRCcbc4b532015-01-16 06:37:03 +0000269.PHONY: test
DRCdd7f03b2015-01-16 06:45:54 +0000270test: tjquicktest tjbittest bittest
DRCcbc4b532015-01-16 06:37:03 +0000271
272tjquicktest: testclean all
DRC66129dc2014-05-06 08:58:11 +0000273
DRC211d1e72013-01-13 11:25:20 +0000274if WITH_TURBOJPEG
DRC38cb1ec2013-08-23 04:45:43 +0000275if WITH_JAVA
276 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest
277 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -bi
278 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv
279 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -noyuvpad
280 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi
281 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi -noyuvpad
282endif
DRC3185cb92011-05-25 03:52:22 +0000283 ./tjunittest
284 ./tjunittest -alloc
285 ./tjunittest -yuv
DRC910a3572013-10-30 23:02:57 +0000286 ./tjunittest -yuv -alloc
DRCf610d612013-04-26 10:33:29 +0000287 ./tjunittest -yuv -noyuvpad
DRC211d1e72013-01-13 11:25:20 +0000288endif
DRCdd7f03b2015-01-16 06:45:54 +0000289 echo GREAT SUCCESS!
290
291tjbittest: testclean all
292
293if WITH_TURBOJPEG
294
295MD5_PPM_GRAY_TILE = 89d3ca21213d9d864b50b4e4e7de4ca6
296MD5_PPM_420_8x8_TILE = 847fceab15c5b7b911cb986cf0f71de3
297MD5_PPM_420_16x16_TILE = ca45552a93687e078f7137cc4126a7b0
298MD5_PPM_420_32x32_TILE = d8676f1d6b68df358353bba9844f4a00
299MD5_PPM_420_64x64_TILE = 4e4c1a3d7ea4bace4f868bcbe83b7050
300MD5_PPM_420_128x128_TILE = f24c3429c52265832beab9df72a0ceae
301MD5_PPM_420M_8x8_TILE = bc25320e1f4c31ce2e610e43e9fd173c
302MD5_PPM_420M_TILE = 75ffdf14602258c5c189522af57fa605
303MD5_PPM_422_8x8_TILE = d83dacd9fc73b0a6f10c09acad64eb1e
304MD5_PPM_422_16x16_TILE = 35077fb610d72dd743b1eb0cbcfe10fb
305MD5_PPM_422_32x32_TILE = e6902ed8a449ecc0f0d6f2bf945f65f7
306MD5_PPM_422_64x64_TILE = 2b4502a8f316cedbde1da7bce3d2231e
307MD5_PPM_422_128x128_TILE = f0b5617d578f5e13c8eee215d64d4877
308MD5_PPM_422M_8x8_TILE = 828941d7f41cd6283abd6beffb7fd51d
309MD5_PPM_422M_TILE = e877ae1324c4a280b95376f7f018172f
310MD5_PPM_444_TILE = 7964e41e67cfb8d0a587c0aa4798f9c3
311
312# Test compressing from/decompressing to an arbitrary subregion of a larger
313# image buffer
314 cp $(srcdir)/testimages/testorig.ppm testout_tile.ppm
315 ./tjbench testout_tile.ppm 95 -rgb -quiet -tile -benchtime 0.01 >/dev/null 2>&1
316 for i in 8 16 32 64 128; do \
317 md5/md5cmp $(MD5_PPM_GRAY_TILE) testout_tile_GRAY_Q95_$$i\x$$i.ppm; \
318 done
319 md5/md5cmp $(MD5_PPM_420_8x8_TILE) testout_tile_420_Q95_8x8.ppm
320 md5/md5cmp $(MD5_PPM_420_16x16_TILE) testout_tile_420_Q95_16x16.ppm
321 md5/md5cmp $(MD5_PPM_420_32x32_TILE) testout_tile_420_Q95_32x32.ppm
322 md5/md5cmp $(MD5_PPM_420_64x64_TILE) testout_tile_420_Q95_64x64.ppm
323 md5/md5cmp $(MD5_PPM_420_128x128_TILE) testout_tile_420_Q95_128x128.ppm
324 md5/md5cmp $(MD5_PPM_422_8x8_TILE) testout_tile_422_Q95_8x8.ppm
325 md5/md5cmp $(MD5_PPM_422_16x16_TILE) testout_tile_422_Q95_16x16.ppm
326 md5/md5cmp $(MD5_PPM_422_32x32_TILE) testout_tile_422_Q95_32x32.ppm
327 md5/md5cmp $(MD5_PPM_422_64x64_TILE) testout_tile_422_Q95_64x64.ppm
328 md5/md5cmp $(MD5_PPM_422_128x128_TILE) testout_tile_422_Q95_128x128.ppm
329 for i in 8 16 32 64 128; do \
330 md5/md5cmp $(MD5_PPM_444_TILE) testout_tile_444_Q95_$$i\x$$i.ppm; \
331 done
332 rm testout_tile_GRAY_* testout_tile_420_* testout_tile_422_* testout_tile_444_*
333
334 ./tjbench testout_tile.ppm 95 -rgb -fastupsample -quiet -tile -benchtime 0.01 >/dev/null 2>&1
335 md5/md5cmp $(MD5_PPM_420M_8x8_TILE) testout_tile_420_Q95_8x8.ppm
336 for i in 16 32 64 128; do \
337 md5/md5cmp $(MD5_PPM_420M_TILE) testout_tile_420_Q95_$$i\x$$i.ppm; \
338 done
339 md5/md5cmp $(MD5_PPM_422M_8x8_TILE) testout_tile_422_Q95_8x8.ppm
340 for i in 16 32 64 128; do \
341 md5/md5cmp $(MD5_PPM_422M_TILE) testout_tile_422_Q95_$$i\x$$i.ppm; \
342 done
343 rm testout_tile_GRAY_* testout_tile_420_* testout_tile_422_* testout_tile_444_* testout_tile.ppm
344 echo GREAT SUCCESS!
345
346endif
DRC66129dc2014-05-06 08:58:11 +0000347
DRCcbc4b532015-01-16 06:37:03 +0000348bittest: testclean all
349
DRC66129dc2014-05-06 08:58:11 +0000350# These tests are carefully crafted to provide full coverage of as many of the
351# underlying algorithms as possible (including all of the SIMD-accelerated
352# ones.)
353
354# CC: null SAMP: fullsize FDCT: islow ENT: huff
355 ./cjpeg -rgb -dct int -outfile testout_rgb_islow.jpg $(srcdir)/testimages/testorig.ppm
356 md5/md5cmp $(MD5_JPEG_RGB_ISLOW) testout_rgb_islow.jpg
357# CC: null SAMP: fullsize IDCT: islow ENT: huff
358 ./djpeg -dct int -ppm -outfile testout_rgb_islow.ppm testout_rgb_islow.jpg
359 md5/md5cmp $(MD5_PPM_RGB_ISLOW) testout_rgb_islow.ppm
DRC78df2e62014-05-12 09:23:57 +0000360 rm testout_rgb_islow.ppm
DRCaee4f722014-08-09 23:06:07 +0000361if WITH_12BIT
362 rm testout_rgb_islow.jpg
363else
DRC78df2e62014-05-12 09:23:57 +0000364# CC: RGB->RGB565 SAMP: fullsize IDCT: islow ENT: huff
365 ./djpeg -dct int -rgb565 -dither none -bmp -outfile testout_rgb_islow_565.bmp testout_rgb_islow.jpg
366 md5/md5cmp $(MD5_BMP_RGB_ISLOW_565) testout_rgb_islow_565.bmp
367 rm testout_rgb_islow_565.bmp
368# CC: RGB->RGB565 (dithered) SAMP: fullsize IDCT: islow ENT: huff
369 ./djpeg -dct int -rgb565 -bmp -outfile testout_rgb_islow_565D.bmp testout_rgb_islow.jpg
370 md5/md5cmp $(MD5_BMP_RGB_ISLOW_565D) testout_rgb_islow_565D.bmp
371 rm testout_rgb_islow_565D.bmp testout_rgb_islow.jpg
DRCaee4f722014-08-09 23:06:07 +0000372endif
DRC66129dc2014-05-06 08:58:11 +0000373
374# CC: RGB->YCC SAMP: fullsize/h2v1 FDCT: ifast ENT: 2-pass huff
375 ./cjpeg -sample 2x1 -dct fast -opt -outfile testout_422_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm
376 md5/md5cmp $(MD5_JPEG_422_IFAST_OPT) testout_422_ifast_opt.jpg
377# CC: YCC->RGB SAMP: fullsize/h2v1 fancy IDCT: ifast ENT: huff
378 ./djpeg -dct fast -outfile testout_422_ifast.ppm testout_422_ifast_opt.jpg
379 md5/md5cmp $(MD5_PPM_422_IFAST) testout_422_ifast.ppm
380 rm testout_422_ifast.ppm
381# CC: YCC->RGB SAMP: h2v1 merged IDCT: ifast ENT: huff
DRC78df2e62014-05-12 09:23:57 +0000382 ./djpeg -dct fast -nosmooth -outfile testout_422m_ifast.ppm testout_422_ifast_opt.jpg
DRC66129dc2014-05-06 08:58:11 +0000383 md5/md5cmp $(MD5_PPM_422M_IFAST) testout_422m_ifast.ppm
DRC78df2e62014-05-12 09:23:57 +0000384 rm testout_422m_ifast.ppm
DRCaee4f722014-08-09 23:06:07 +0000385if WITH_12BIT
386 rm testout_422_ifast_opt.jpg
387else
DRC78df2e62014-05-12 09:23:57 +0000388# CC: YCC->RGB565 SAMP: h2v1 merged IDCT: ifast ENT: huff
389 ./djpeg -dct int -nosmooth -rgb565 -dither none -bmp -outfile testout_422m_ifast_565.bmp testout_422_ifast_opt.jpg
390 md5/md5cmp $(MD5_BMP_422M_IFAST_565) testout_422m_ifast_565.bmp
391 rm testout_422m_ifast_565.bmp
392# CC: YCC->RGB565 (dithered) SAMP: h2v1 merged IDCT: ifast ENT: huff
393 ./djpeg -dct int -nosmooth -rgb565 -bmp -outfile testout_422m_ifast_565D.bmp testout_422_ifast_opt.jpg
394 md5/md5cmp $(MD5_BMP_422M_IFAST_565D) testout_422m_ifast_565D.bmp
395 rm testout_422m_ifast_565D.bmp testout_422_ifast_opt.jpg
DRCaee4f722014-08-09 23:06:07 +0000396endif
DRC66129dc2014-05-06 08:58:11 +0000397
398# CC: RGB->YCC SAMP: fullsize/h2v2 FDCT: ifast ENT: prog huff
DRC78df2e62014-05-12 09:23:57 +0000399 ./cjpeg -sample 2x2 -quality 100 -dct fast -prog -outfile testout_420_q100_ifast_prog.jpg $(srcdir)/testimages/testorig.ppm
DRC66129dc2014-05-06 08:58:11 +0000400 md5/md5cmp $(MD5_JPEG_420_IFAST_Q100_PROG) testout_420_q100_ifast_prog.jpg
401# CC: YCC->RGB SAMP: fullsize/h2v2 fancy IDCT: ifast ENT: prog huff
402 ./djpeg -dct fast -outfile testout_420_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
403 md5/md5cmp $(MD5_PPM_420_Q100_IFAST) testout_420_q100_ifast.ppm
404 rm testout_420_q100_ifast.ppm
405# CC: YCC->RGB SAMP: h2v2 merged IDCT: ifast ENT: prog huff
DRC78df2e62014-05-12 09:23:57 +0000406 ./djpeg -dct fast -nosmooth -outfile testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
DRC66129dc2014-05-06 08:58:11 +0000407 md5/md5cmp $(MD5_PPM_420M_Q100_IFAST) testout_420m_q100_ifast.ppm
DRC29d30cb2014-05-06 22:49:02 +0000408 rm testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
DRC66129dc2014-05-06 08:58:11 +0000409
410# CC: RGB->Gray SAMP: fullsize FDCT: islow ENT: huff
411 ./cjpeg -gray -dct int -outfile testout_gray_islow.jpg $(srcdir)/testimages/testorig.ppm
412 md5/md5cmp $(MD5_JPEG_GRAY_ISLOW) testout_gray_islow.jpg
DRC78df2e62014-05-12 09:23:57 +0000413# CC: Gray->Gray SAMP: fullsize IDCT: islow ENT: huff
DRC66129dc2014-05-06 08:58:11 +0000414 ./djpeg -dct int -outfile testout_gray_islow.ppm testout_gray_islow.jpg
415 md5/md5cmp $(MD5_PPM_GRAY_ISLOW) testout_gray_islow.ppm
416 rm testout_gray_islow.ppm
DRC78df2e62014-05-12 09:23:57 +0000417# CC: Gray->RGB SAMP: fullsize IDCT: islow ENT: huff
418 ./djpeg -dct int -rgb -outfile testout_gray_islow_rgb.ppm testout_gray_islow.jpg
419 md5/md5cmp $(MD5_PPM_GRAY_ISLOW_RGB) testout_gray_islow_rgb.ppm
420 rm testout_gray_islow_rgb.ppm
DRCaee4f722014-08-09 23:06:07 +0000421if WITH_12BIT
422 rm testout_gray_islow.jpg
423else
DRC78df2e62014-05-12 09:23:57 +0000424# CC: Gray->RGB565 SAMP: fullsize IDCT: islow ENT: huff
425 ./djpeg -dct int -rgb565 -dither none -bmp -outfile testout_gray_islow_565.bmp testout_gray_islow.jpg
426 md5/md5cmp $(MD5_BMP_GRAY_ISLOW_565) testout_gray_islow_565.bmp
427 rm testout_gray_islow_565.bmp
428# CC: Gray->RGB565 (dithered) SAMP: fullsize IDCT: islow ENT: huff
429 ./djpeg -dct int -rgb565 -bmp -outfile testout_gray_islow_565D.bmp testout_gray_islow.jpg
430 md5/md5cmp $(MD5_BMP_GRAY_ISLOW_565D) testout_gray_islow_565D.bmp
431 rm testout_gray_islow_565D.bmp testout_gray_islow.jpg
DRCaee4f722014-08-09 23:06:07 +0000432endif
DRC66129dc2014-05-06 08:58:11 +0000433
434# CC: RGB->YCC SAMP: fullsize smooth/h2v2 smooth FDCT: islow
435# ENT: 2-pass huff
436 ./cjpeg -sample 2x2 -smooth 1 -dct int -opt -outfile testout_420s_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm
437 md5/md5cmp $(MD5_JPEG_420S_IFAST_OPT) testout_420s_ifast_opt.jpg
438 rm testout_420s_ifast_opt.jpg
439
DRC3af282d2015-01-16 06:53:36 +0000440# The output of the floating point tests is not validated by default, because
441# the output differs depending on the type of floating point math used, and
DRCc60d6622015-01-16 07:16:53 +0000442# this is only deterministic if the DCT/IDCT are implemented using SIMD
443# instructions on a particular platform. Pass one of the following on the make
DRCda047e82016-02-01 11:17:41 -0600444# command line to validate the floating point tests against one of the expected
445# results:
DRC3af282d2015-01-16 06:53:36 +0000446#
447# FLOATTEST=sse validate against the expected results from the libjpeg-turbo
448# SSE SIMD extensions
DRCc60d6622015-01-16 07:16:53 +0000449# FLOATTEST=32bit validate against the expected results from the C code
450# when running on a 32-bit FPU (or when SSE is being used for
451# floating point math, which is generally the default with
452# x86-64 compilers)
453# FLOATTEST=64bit validate against the exepected results from the C code
454# when running on a 64-bit FPU
DRC3af282d2015-01-16 06:53:36 +0000455
DRC66129dc2014-05-06 08:58:11 +0000456# CC: RGB->YCC SAMP: fullsize/int FDCT: float ENT: prog huff
457 ./cjpeg -sample 3x2 -dct float -prog -outfile testout_3x2_float_prog.jpg $(srcdir)/testimages/testorig.ppm
DRC3af282d2015-01-16 06:53:36 +0000458 if [ "${FLOATTEST}" = "sse" ]; then \
459 md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG_SSE) testout_3x2_float_prog.jpg; \
460 elif [ "${FLOATTEST}" = "32bit" -o "${FLOATTEST}" = "64bit" ]; then \
461 md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG_32BIT) testout_3x2_float_prog.jpg; \
462 fi
DRC66129dc2014-05-06 08:58:11 +0000463# CC: YCC->RGB SAMP: fullsize/int IDCT: float ENT: prog huff
464 ./djpeg -dct float -outfile testout_3x2_float.ppm testout_3x2_float_prog.jpg
DRC3af282d2015-01-16 06:53:36 +0000465 if [ "${FLOATTEST}" = "sse" ]; then \
466 md5/md5cmp $(MD5_PPM_3x2_FLOAT_SSE) testout_3x2_float.ppm; \
467 elif [ "${FLOATTEST}" = "32bit" ]; then \
468 md5/md5cmp $(MD5_PPM_3x2_FLOAT_32BIT) testout_3x2_float.ppm; \
469 elif [ "${FLOATTEST}" = "64bit" ]; then \
470 md5/md5cmp $(MD5_PPM_3x2_FLOAT_64BIT) testout_3x2_float.ppm; \
471 fi
DRC29d30cb2014-05-06 22:49:02 +0000472 rm testout_3x2_float.ppm testout_3x2_float_prog.jpg
DRC66129dc2014-05-06 08:58:11 +0000473
DRC3af282d2015-01-16 06:53:36 +0000474# CC: RGB->YCC SAMP: fullsize/int FDCT: ifast ENT: prog huff
475 ./cjpeg -sample 3x2 -dct fast -prog -outfile testout_3x2_ifast_prog.jpg $(srcdir)/testimages/testorig.ppm
476 md5/md5cmp $(MD5_JPEG_3x2_IFAST_PROG) testout_3x2_ifast_prog.jpg
477# CC: YCC->RGB SAMP: fullsize/int IDCT: ifast ENT: prog huff
478 ./djpeg -dct fast -outfile testout_3x2_ifast.ppm testout_3x2_ifast_prog.jpg
479 md5/md5cmp $(MD5_PPM_3x2_IFAST) testout_3x2_ifast.ppm
480 rm testout_3x2_ifast.ppm testout_3x2_ifast_prog.jpg
481
DRCe3720042010-11-23 06:50:14 +0000482if WITH_ARITH_ENC
DRC66129dc2014-05-06 08:58:11 +0000483# CC: YCC->RGB SAMP: fullsize/h2v2 FDCT: islow ENT: arith
484 ./cjpeg -dct int -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testorig.ppm
485 md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg
486 rm testout_420_islow_ari.jpg
487 ./jpegtran -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testimgint.jpg
488 md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg
489 rm testout_420_islow_ari.jpg
490# CC: YCC->RGB SAMP: fullsize FDCT: islow ENT: prog arith
DRC78df2e62014-05-12 09:23:57 +0000491 ./cjpeg -sample 1x1 -dct int -progressive -arithmetic -outfile testout_444_islow_progari.jpg $(srcdir)/testimages/testorig.ppm
DRC66129dc2014-05-06 08:58:11 +0000492 md5/md5cmp $(MD5_JPEG_444_ISLOW_PROGARI) testout_444_islow_progari.jpg
493 rm testout_444_islow_progari.jpg
DRCe3720042010-11-23 06:50:14 +0000494endif
495if WITH_ARITH_DEC
DRC66129dc2014-05-06 08:58:11 +0000496# CC: RGB->YCC SAMP: h2v2 merged IDCT: ifast ENT: arith
497 ./djpeg -fast -ppm -outfile testout_420m_ifast_ari.ppm $(srcdir)/testimages/testimgari.jpg
498 md5/md5cmp $(MD5_PPM_420M_IFAST_ARI) testout_420m_ifast_ari.ppm
499 rm testout_420m_ifast_ari.ppm
500 ./jpegtran -outfile testout_420_islow.jpg $(srcdir)/testimages/testimgari.jpg
501 md5/md5cmp $(MD5_JPEG_420_ISLOW) testout_420_islow.jpg
502 rm testout_420_islow.jpg
DRCe3720042010-11-23 06:50:14 +0000503endif
DRC66129dc2014-05-06 08:58:11 +0000504
505# CC: YCC->RGB SAMP: h2v2 merged IDCT: 16x16 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000506 ./djpeg -dct int -scale 2/1 -nosmooth -ppm -outfile testout_420m_islow_2_1.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000507 md5/md5cmp $(MD5_PPM_420M_ISLOW_2_1) testout_420m_islow_2_1.ppm
508 rm testout_420m_islow_2_1.ppm
509# CC: YCC->RGB SAMP: h2v2 merged IDCT: 15x15 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000510 ./djpeg -dct int -scale 15/8 -nosmooth -ppm -outfile testout_420m_islow_15_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000511 md5/md5cmp $(MD5_PPM_420M_ISLOW_15_8) testout_420m_islow_15_8.ppm
512 rm testout_420m_islow_15_8.ppm
513# CC: YCC->RGB SAMP: h2v2 merged IDCT: 13x13 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000514 ./djpeg -dct int -scale 13/8 -nosmooth -ppm -outfile testout_420m_islow_13_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000515 md5/md5cmp $(MD5_PPM_420M_ISLOW_13_8) testout_420m_islow_13_8.ppm
516 rm testout_420m_islow_13_8.ppm
517# CC: YCC->RGB SAMP: h2v2 merged IDCT: 11x11 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000518 ./djpeg -dct int -scale 11/8 -nosmooth -ppm -outfile testout_420m_islow_11_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000519 md5/md5cmp $(MD5_PPM_420M_ISLOW_11_8) testout_420m_islow_11_8.ppm
520 rm testout_420m_islow_11_8.ppm
521# CC: YCC->RGB SAMP: h2v2 merged IDCT: 9x9 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000522 ./djpeg -dct int -scale 9/8 -nosmooth -ppm -outfile testout_420m_islow_9_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000523 md5/md5cmp $(MD5_PPM_420M_ISLOW_9_8) testout_420m_islow_9_8.ppm
524 rm testout_420m_islow_9_8.ppm
525# CC: YCC->RGB SAMP: h2v2 merged IDCT: 7x7 islow/14x14 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000526 ./djpeg -dct int -scale 7/8 -nosmooth -ppm -outfile testout_420m_islow_7_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000527 md5/md5cmp $(MD5_PPM_420M_ISLOW_7_8) testout_420m_islow_7_8.ppm
528 rm testout_420m_islow_7_8.ppm
529# CC: YCC->RGB SAMP: h2v2 merged IDCT: 6x6 islow/12x12 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000530 ./djpeg -dct int -scale 3/4 -nosmooth -ppm -outfile testout_420m_islow_3_4.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000531 md5/md5cmp $(MD5_PPM_420M_ISLOW_3_4) testout_420m_islow_3_4.ppm
532 rm testout_420m_islow_3_4.ppm
533# CC: YCC->RGB SAMP: h2v2 merged IDCT: 5x5 islow/10x10 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000534 ./djpeg -dct int -scale 5/8 -nosmooth -ppm -outfile testout_420m_islow_5_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000535 md5/md5cmp $(MD5_PPM_420M_ISLOW_5_8) testout_420m_islow_5_8.ppm
536 rm testout_420m_islow_5_8.ppm
537# CC: YCC->RGB SAMP: h2v2 merged IDCT: 4x4 islow/8x8 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000538 ./djpeg -dct int -scale 1/2 -nosmooth -ppm -outfile testout_420m_islow_1_2.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000539 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_2) testout_420m_islow_1_2.ppm
540 rm testout_420m_islow_1_2.ppm
541# CC: YCC->RGB SAMP: h2v2 merged IDCT: 3x3 islow/6x6 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000542 ./djpeg -dct int -scale 3/8 -nosmooth -ppm -outfile testout_420m_islow_3_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000543 md5/md5cmp $(MD5_PPM_420M_ISLOW_3_8) testout_420m_islow_3_8.ppm
544 rm testout_420m_islow_3_8.ppm
545# CC: YCC->RGB SAMP: h2v2 merged IDCT: 2x2 islow/4x4 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000546 ./djpeg -dct int -scale 1/4 -nosmooth -ppm -outfile testout_420m_islow_1_4.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000547 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_4) testout_420m_islow_1_4.ppm
548 rm testout_420m_islow_1_4.ppm
549# CC: YCC->RGB SAMP: h2v2 merged IDCT: 1x1 islow/2x2 islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000550 ./djpeg -dct int -scale 1/8 -nosmooth -ppm -outfile testout_420m_islow_1_8.ppm $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000551 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_8) testout_420m_islow_1_8.ppm
552 rm testout_420m_islow_1_8.ppm
DRCaee4f722014-08-09 23:06:07 +0000553if WITH_12BIT
554else
DRC66129dc2014-05-06 08:58:11 +0000555# CC: YCC->RGB (dithered) SAMP: h2v2 fancy IDCT: islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000556 ./djpeg -dct int -colors 256 -bmp -outfile testout_420_islow_256.bmp $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000557 md5/md5cmp $(MD5_BMP_420_ISLOW_256) testout_420_islow_256.bmp
558 rm testout_420_islow_256.bmp
DRC78df2e62014-05-12 09:23:57 +0000559# CC: YCC->RGB565 SAMP: h2v2 fancy IDCT: islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000560 ./djpeg -dct int -rgb565 -dither none -bmp -outfile testout_420_islow_565.bmp $(srcdir)/testimages/$(TESTORIG)
DRC78df2e62014-05-12 09:23:57 +0000561 md5/md5cmp $(MD5_BMP_420_ISLOW_565) testout_420_islow_565.bmp
562 rm testout_420_islow_565.bmp
563# CC: YCC->RGB565 (dithered) SAMP: h2v2 fancy IDCT: islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000564 ./djpeg -dct int -rgb565 -bmp -outfile testout_420_islow_565D.bmp $(srcdir)/testimages/$(TESTORIG)
DRC78df2e62014-05-12 09:23:57 +0000565 md5/md5cmp $(MD5_BMP_420_ISLOW_565D) testout_420_islow_565D.bmp
566 rm testout_420_islow_565D.bmp
567# CC: YCC->RGB565 SAMP: h2v2 merged IDCT: islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000568 ./djpeg -dct int -nosmooth -rgb565 -dither none -bmp -outfile testout_420m_islow_565.bmp $(srcdir)/testimages/$(TESTORIG)
DRC78df2e62014-05-12 09:23:57 +0000569 md5/md5cmp $(MD5_BMP_420M_ISLOW_565) testout_420m_islow_565.bmp
570 rm testout_420m_islow_565.bmp
571# CC: YCC->RGB565 (dithered) SAMP: h2v2 merged IDCT: islow ENT: huff
DRCaee4f722014-08-09 23:06:07 +0000572 ./djpeg -dct int -nosmooth -rgb565 -bmp -outfile testout_420m_islow_565D.bmp $(srcdir)/testimages/$(TESTORIG)
DRC78df2e62014-05-12 09:23:57 +0000573 md5/md5cmp $(MD5_BMP_420M_ISLOW_565D) testout_420m_islow_565D.bmp
574 rm testout_420m_islow_565D.bmp
DRCaee4f722014-08-09 23:06:07 +0000575endif
DRC66129dc2014-05-06 08:58:11 +0000576
DRCaee4f722014-08-09 23:06:07 +0000577 ./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testout_crop.jpg $(srcdir)/testimages/$(TESTORIG)
DRC66129dc2014-05-06 08:58:11 +0000578 md5/md5cmp $(MD5_JPEG_CROP) testout_crop.jpg
579 rm testout_crop.jpg
DRCdd7f03b2015-01-16 06:45:54 +0000580 echo GREAT SUCCESS!
DRC83f21442010-06-10 18:52:41 +0000581
DRC83f21442010-06-10 18:52:41 +0000582
DRC34d59e72010-02-12 06:27:34 +0000583testclean:
DRC7b991722010-06-10 19:44:56 +0000584 rm -f testout*
DRCf2602ce2011-04-01 00:20:33 +0000585 rm -f *_GRAY_*.bmp
586 rm -f *_GRAY_*.png
587 rm -f *_GRAY_*.ppm
588 rm -f *_GRAY_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000589 rm -f *_GRAY.yuv
DRCf2602ce2011-04-01 00:20:33 +0000590 rm -f *_420_*.bmp
591 rm -f *_420_*.png
592 rm -f *_420_*.ppm
593 rm -f *_420_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000594 rm -f *_420.yuv
DRCf2602ce2011-04-01 00:20:33 +0000595 rm -f *_422_*.bmp
596 rm -f *_422_*.png
597 rm -f *_422_*.ppm
598 rm -f *_422_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000599 rm -f *_422.yuv
DRCf2602ce2011-04-01 00:20:33 +0000600 rm -f *_444_*.bmp
601 rm -f *_444_*.png
602 rm -f *_444_*.ppm
603 rm -f *_444_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000604 rm -f *_444.yuv
DRCf2602ce2011-04-01 00:20:33 +0000605 rm -f *_440_*.bmp
606 rm -f *_440_*.png
607 rm -f *_440_*.ppm
608 rm -f *_440_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000609 rm -f *_440.yuv
DRC1f3635c2013-08-18 10:19:00 +0000610 rm -f *_411_*.bmp
611 rm -f *_411_*.png
612 rm -f *_411_*.ppm
613 rm -f *_411_*.jpg
614 rm -f *_411.yuv
DRC079b4342010-02-15 11:32:23 +0000615
DRCcb6157b2012-01-31 11:38:13 +0000616
617tjtest:
618 sh ./tjbenchtest
DRC684ace12014-08-22 03:04:06 +0000619 sh ./tjbenchtest -alloc
DRC823fbed2014-03-13 20:48:38 +0000620 sh ./tjbenchtest -yuv
DRC684ace12014-08-22 03:04:06 +0000621 sh ./tjbenchtest -yuv -alloc
DRCcb6157b2012-01-31 11:38:13 +0000622if WITH_JAVA
DRCfac3bea2012-09-24 02:27:55 +0000623 sh ./tjbenchtest.java
DRC7a6ed072014-03-17 11:14:52 +0000624 sh ./tjbenchtest.java -yuv
DRCcb6157b2012-01-31 11:38:13 +0000625endif
626
627
DRC764e1e22013-04-19 04:25:14 +0000628pkgscripts/libjpeg-turbo.spec: pkgscripts/libjpeg-turbo.spec.tmpl
629 cat pkgscripts/libjpeg-turbo.spec.tmpl | sed s@%{__prefix}@$(prefix)@g | \
630 sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \
631 sed s@%{__docdir}@$(docdir)@g | sed s@%{__includedir}@$(includedir)@g | \
632 sed s@%{__libdir}@$(libdir)@g | sed s@%{__mandir}@$(mandir)@g \
633 > pkgscripts/libjpeg-turbo.spec
DRCd1c281a2010-11-17 22:44:40 +0000634
DRC764e1e22013-04-19 04:25:14 +0000635rpm: all pkgscripts/libjpeg-turbo.spec
DRC1f80a102010-10-18 00:15:31 +0000636 TMPDIR=`mktemp -d /tmp/${PACKAGE_NAME}-build.XXXXXX`; \
637 mkdir -p $$TMPDIR/RPMS; \
638 ln -fs `pwd` $$TMPDIR/BUILD; \
DRC764e1e22013-04-19 04:25:14 +0000639 rm -f ${PKGNAME}-${VERSION}.${RPMARCH}.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000640 rpmbuild -bb --define "_blddir $$TMPDIR/buildroot" \
DRC57bd84f2012-02-10 01:40:29 +0000641 --define "_topdir $$TMPDIR" \
DRCb94f2de2011-03-22 09:31:25 +0000642 --target ${RPMARCH} pkgscripts/libjpeg-turbo.spec; \
DRC764e1e22013-04-19 04:25:14 +0000643 cp $$TMPDIR/RPMS/${RPMARCH}/${PKGNAME}-${VERSION}-${BUILD}.${RPMARCH}.rpm \
644 ${PKGNAME}-${VERSION}.${RPMARCH}.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000645 rm -rf $$TMPDIR
DRC079b4342010-02-15 11:32:23 +0000646
DRC764e1e22013-04-19 04:25:14 +0000647srpm: dist-gzip pkgscripts/libjpeg-turbo.spec
DRC1f80a102010-10-18 00:15:31 +0000648 TMPDIR=`mktemp -d /tmp/${PACKAGE_NAME}-build.XXXXXX`; \
649 mkdir -p $$TMPDIR/RPMS; \
650 mkdir -p $$TMPDIR/SRPMS; \
651 mkdir -p $$TMPDIR/BUILD; \
652 mkdir -p $$TMPDIR/SOURCES; \
653 mkdir -p $$TMPDIR/SPECS; \
DRC764e1e22013-04-19 04:25:14 +0000654 rm -f ${PKGNAME}-${VERSION}.src.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000655 cp ${PACKAGE_NAME}-${VERSION}.tar.gz $$TMPDIR/SOURCES; \
DRCb94f2de2011-03-22 09:31:25 +0000656 cat pkgscripts/libjpeg-turbo.spec | sed s/%{_blddir}/%{_tmppath}/g \
DRC57bd84f2012-02-10 01:40:29 +0000657 | sed s/#--\>//g \
DRCb94f2de2011-03-22 09:31:25 +0000658 > $$TMPDIR/SPECS/libjpeg-turbo.spec; \
DRC1f80a102010-10-18 00:15:31 +0000659 rpmbuild -bs --define "_topdir $$TMPDIR" $$TMPDIR/SPECS/libjpeg-turbo.spec; \
DRC764e1e22013-04-19 04:25:14 +0000660 cp $$TMPDIR/SRPMS/${PKGNAME}-${VERSION}-${BUILD}.src.rpm \
661 ${PKGNAME}-${VERSION}.src.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000662 rm -rf $$TMPDIR
DRC52a19f22010-02-15 12:06:27 +0000663
DRC764e1e22013-04-19 04:25:14 +0000664pkgscripts/makedpkg: pkgscripts/makedpkg.tmpl
665 cat pkgscripts/makedpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \
DRC7175e512013-04-23 22:29:00 +0000666 sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \
DRC764e1e22013-04-19 04:25:14 +0000667 > pkgscripts/makedpkg
668
669deb: all pkgscripts/makedpkg
DRCb94f2de2011-03-22 09:31:25 +0000670 sh pkgscripts/makedpkg
DRC6533b6e2010-02-15 14:57:18 +0000671
DRC7175e512013-04-23 22:29:00 +0000672pkgscripts/uninstall: pkgscripts/uninstall.tmpl
673 cat pkgscripts/uninstall.tmpl | sed s@%{__prefix}@$(prefix)@g | \
674 sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \
675 sed s@%{__includedir}@$(includedir)@g | sed s@%{__libdir}@$(libdir)@g | \
676 sed s@%{__mandir}@$(mandir)@g > pkgscripts/uninstall
677
678pkgscripts/makemacpkg: pkgscripts/makemacpkg.tmpl
679 cat pkgscripts/makemacpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \
680 sed s@%{__bindir}@$(bindir)@g | sed s@%{__docdir}@$(docdir)@g | \
681 sed s@%{__libdir}@$(libdir)@g > pkgscripts/makemacpkg
682
DRC315123f2010-02-15 16:14:26 +0000683if X86_64
684
DRC7175e512013-04-23 22:29:00 +0000685udmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRC7c6ae032012-03-23 00:51:56 +0000686 sh pkgscripts/makemacpkg -build32 ${BUILDDIR32}
DRC315123f2010-02-15 16:14:26 +0000687
DRC7175e512013-04-23 22:29:00 +0000688iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRC6e6b28c2014-12-19 17:34:30 +0000689 sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S} -buildarmv8 ${BUILDDIRARMV8} -lipo "${LIPO}"
DRC166c5ec2012-02-10 01:07:59 +0000690
691else
692
DRC7175e512013-04-23 22:29:00 +0000693iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRC6e6b28c2014-12-19 17:34:30 +0000694 sh pkgscripts/makemacpkg -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S} -buildarmv8 ${BUILDDIRARMV8} -lipo "${LIPO}"
DRC1fbae842012-02-09 09:23:30 +0000695
DRC315123f2010-02-15 16:14:26 +0000696endif
697
DRC7175e512013-04-23 22:29:00 +0000698dmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRCb94f2de2011-03-22 09:31:25 +0000699 sh pkgscripts/makemacpkg
DRCb9b1ca32010-02-17 02:24:02 +0000700
DRC7175e512013-04-23 22:29:00 +0000701pkgscripts/makecygwinpkg: pkgscripts/makecygwinpkg.tmpl
702 cat pkgscripts/makecygwinpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \
703 sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \
704 > pkgscripts/makecygwinpkg
705
DRC764e1e22013-04-19 04:25:14 +0000706cygwinpkg: all pkgscripts/makecygwinpkg
DRCb94f2de2011-03-22 09:31:25 +0000707 sh pkgscripts/makecygwinpkg