blob: 1844672d07718d1efc44c7b932ab1fbb3d3b1463 [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
DRC73de9822009-06-25 20:41:17 +0000111cjpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c cjpeg.c rdbmp.c rdgif.c \
DRC9a341f82014-04-15 03:43:44 +0000112 rdppm.c rdswitch.c rdtarga.c
DRC73de9822009-06-25 20:41:17 +0000113
DRC971d8512010-02-13 22:55:05 +0000114cjpeg_LDADD = libjpeg.la
DRC73de9822009-06-25 20:41:17 +0000115
116cjpeg_CFLAGS = -DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED \
117 -DTARGA_SUPPORTED
118
119djpeg_SOURCES = cdjpeg.h cderror.h cdjpeg.c djpeg.c rdcolmap.c rdswitch.c \
120 wrbmp.c wrgif.c wrppm.c wrtarga.c
121
DRC971d8512010-02-13 22:55:05 +0000122djpeg_LDADD = libjpeg.la
DRC73de9822009-06-25 20:41:17 +0000123
124djpeg_CFLAGS = -DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED \
125 -DTARGA_SUPPORTED
DRC60fa0602010-02-12 06:01:49 +0000126
DRC0a945a12010-02-15 11:04:51 +0000127jpegtran_SOURCES = jpegtran.c rdswitch.c cdjpeg.c transupp.c transupp.h
DRC60fa0602010-02-12 06:01:49 +0000128
DRC971d8512010-02-13 22:55:05 +0000129jpegtran_LDADD = libjpeg.la
DRC60fa0602010-02-12 06:01:49 +0000130
DRC0a945a12010-02-15 11:04:51 +0000131rdjpgcom_SOURCES = rdjpgcom.c
DRC60fa0602010-02-12 06:01:49 +0000132
DRC971d8512010-02-13 22:55:05 +0000133rdjpgcom_LDADD = libjpeg.la
DRC60fa0602010-02-12 06:01:49 +0000134
135wrjpgcom_SOURCES = wrjpgcom.c
136
DRC971d8512010-02-13 22:55:05 +0000137wrjpgcom_LDADD = libjpeg.la
DRC60fa0602010-02-12 06:01:49 +0000138
DRCb76c8402011-12-19 15:01:55 +0000139jcstest_SOURCES = jcstest.c
140
141jcstest_LDADD = libjpeg.la
DRC0a945a12010-02-15 11:04:51 +0000142
DRCcbda81a2010-06-05 01:12:35 +0000143dist_man1_MANS = cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 wrjpgcom.1
DRC0a945a12010-02-15 11:04:51 +0000144
DRC2f12d7a2013-01-13 01:19:09 +0000145DOCS= coderules.txt jconfig.txt change.log rdrle.c wrrle.c BUILDING.txt \
146 ChangeLog.txt
DRCa1647c82012-02-10 00:39:05 +0000147
148docdir = $(datadir)/doc
DRC01bf9d92012-02-10 01:52:31 +0000149dist_doc_DATA = README README-turbo.txt libjpeg.txt structure.txt usage.txt \
DRC9a341f82014-04-15 03:43:44 +0000150 wizard.txt
DRCa1647c82012-02-10 00:39:05 +0000151
152exampledir = $(datadir)/doc
DRC01bf9d92012-02-10 01:52:31 +0000153dist_example_DATA = example.c
DRC0a945a12010-02-15 11:04:51 +0000154
DRC750e0782011-05-10 21:05:49 +0000155
DRC0bf58f22013-02-06 23:51:08 +0000156EXTRA_DIST = win release $(DOCS) testimages CMakeLists.txt \
DRCa006fba2011-10-27 23:25:28 +0000157 sharedlib/CMakeLists.txt cmakescripts libjpeg.map.in doc doxygen.config \
DRC79df67d2014-03-22 20:22:52 +0000158 jccolext.c jdcolext.c jdmrgext.c jstdhuff.c
DRC0a945a12010-02-15 11:04:51 +0000159
160dist-hook:
161 rm -rf `find $(distdir) -name .svn`
162
163
DRC0bf58f22013-02-06 23:51:08 +0000164SUBDIRS += md5
165
DRC66129dc2014-05-06 08:58:11 +0000166MD5_JPEG_RGB_ISLOW = 768e970dd57b340ff1b83c9d3d47c77b
167MD5_PPM_RGB_ISLOW = 00a257f5393fef8821f2b88ac7421291
168MD5_JPEG_422_IFAST_OPT = 2540287b79d913f91665e660303ab2c8
169MD5_PPM_422_IFAST = 35bd6b3f833bad23de82acea847129fa
170MD5_PPM_422M_IFAST = 8dbc65323d62cca7c91ba02dd1cfa81d
171MD5_JPEG_420_IFAST_Q100_PROG = 990cbe0329c882420a2094da7e5adade
172MD5_PPM_420_Q100_IFAST = 5a732542015c278ff43635e473a8a294
173MD5_PPM_420M_Q100_IFAST = ff692ee9323a3b424894862557c092f1
174MD5_JPEG_GRAY_ISLOW = 72b51f894b8f4a10b3ee3066770aa38d
175MD5_PPM_GRAY_ISLOW = 8d3596c56eace32f205deccc229aa5ed
176MD5_PPM_GRAY_RGB_ISLOW = 116424ac07b79e5e801f00508eab48ec
177MD5_JPEG_420S_IFAST_OPT = 388708217ac46273ca33086b22827ed8
DRC715bb412014-05-11 10:09:07 +0000178# See README-turbo.txt for more details on why this next bit is necessary.
DRCa32b3ec2014-05-07 06:02:57 +0000179if WITH_SSE_FLOAT_DCT
DRC66129dc2014-05-06 08:58:11 +0000180MD5_JPEG_3x2_FLOAT_PROG = 343e3f8caf8af5986ebaf0bdc13b5c71
181MD5_PPM_3x2_FLOAT = 1a75f36e5904d6fc3a85a43da9ad89bb
182else
183MD5_JPEG_3x2_FLOAT_PROG = 9bca803d2042bd1eb03819e2bf92b3e5
DRC715bb412014-05-11 10:09:07 +0000184MD5_PPM_3x2_FLOAT = f6bfab038438ed8f5522fbd33595dcdc
DRC66129dc2014-05-06 08:58:11 +0000185endif
186MD5_JPEG_420_ISLOW_ARI = e986fb0a637a8d833d96e8a6d6d84ea1
187MD5_JPEG_444_ISLOW_PROGARI = 0a8f1c8f66e113c3cf635df0a475a617
188MD5_PPM_420M_IFAST_ARI = 72b59a99bcf1de24c5b27d151bde2437
189MD5_JPEG_420_ISLOW = 9a68f56bc76e466aa7e52f415d0f4a5f
190MD5_PPM_420M_ISLOW_2_1 = 9f9de8c0612f8d06869b960b05abf9c9
191MD5_PPM_420M_ISLOW_15_8 = b6875bc070720b899566cc06459b63b7
192MD5_PPM_420M_ISLOW_13_8 = bc3452573c8152f6ae552939ee19f82f
193MD5_PPM_420M_ISLOW_11_8 = d8cc73c0aaacd4556569b59437ba00a5
194MD5_PPM_420M_ISLOW_9_8 = d25e61bc7eac0002f5b393aa223747b6
195MD5_PPM_420M_ISLOW_7_8 = ddb564b7c74a09494016d6cd7502a946
196MD5_PPM_420M_ISLOW_3_4 = 8ed8e68808c3fbc4ea764fc9d2968646
197MD5_PPM_420M_ISLOW_5_8 = a3363274999da2366a024efae6d16c9b
198MD5_PPM_420M_ISLOW_1_2 = e692a315cea26b988c8e8b29a5dbcd81
199MD5_PPM_420M_ISLOW_3_8 = 79eca9175652ced755155c90e785a996
200MD5_PPM_420M_ISLOW_1_4 = 79cd778f8bf1a117690052cacdd54eca
201MD5_PPM_420M_ISLOW_1_8 = 391b3d4aca640c8567d6f8745eb2142f
202MD5_BMP_420_ISLOW_256 = 4980185e3776e89bd931736e1cddeee6
DRC211d1e72013-01-13 11:25:20 +0000203MD5_JPEG_CROP = b4197f377e621c4e9b1d20471432610d
204
DRC66f97e62010-11-23 05:49:54 +0000205test: testclean all
DRC66129dc2014-05-06 08:58:11 +0000206
DRC211d1e72013-01-13 11:25:20 +0000207if WITH_TURBOJPEG
DRC38cb1ec2013-08-23 04:45:43 +0000208if WITH_JAVA
209 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest
210 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -bi
211 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv
212 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -noyuvpad
213 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi
214 $(JAVA) -cp java/turbojpeg.jar -Djava.library.path=.libs TJUnitTest -yuv -bi -noyuvpad
215endif
DRC3185cb92011-05-25 03:52:22 +0000216 ./tjunittest
217 ./tjunittest -alloc
218 ./tjunittest -yuv
DRC910a3572013-10-30 23:02:57 +0000219 ./tjunittest -yuv -alloc
DRCf610d612013-04-26 10:33:29 +0000220 ./tjunittest -yuv -noyuvpad
DRC211d1e72013-01-13 11:25:20 +0000221endif
DRC66129dc2014-05-06 08:58:11 +0000222
223# These tests are carefully crafted to provide full coverage of as many of the
224# underlying algorithms as possible (including all of the SIMD-accelerated
225# ones.)
226
227# CC: null SAMP: fullsize FDCT: islow ENT: huff
228 ./cjpeg -rgb -dct int -outfile testout_rgb_islow.jpg $(srcdir)/testimages/testorig.ppm
229 md5/md5cmp $(MD5_JPEG_RGB_ISLOW) testout_rgb_islow.jpg
230# CC: null SAMP: fullsize IDCT: islow ENT: huff
231 ./djpeg -dct int -ppm -outfile testout_rgb_islow.ppm testout_rgb_islow.jpg
232 md5/md5cmp $(MD5_PPM_RGB_ISLOW) testout_rgb_islow.ppm
DRC29d30cb2014-05-06 22:49:02 +0000233 rm testout_rgb_islow.ppm testout_rgb_islow.jpg
DRC66129dc2014-05-06 08:58:11 +0000234
235# CC: RGB->YCC SAMP: fullsize/h2v1 FDCT: ifast ENT: 2-pass huff
236 ./cjpeg -sample 2x1 -dct fast -opt -outfile testout_422_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm
237 md5/md5cmp $(MD5_JPEG_422_IFAST_OPT) testout_422_ifast_opt.jpg
238# CC: YCC->RGB SAMP: fullsize/h2v1 fancy IDCT: ifast ENT: huff
239 ./djpeg -dct fast -outfile testout_422_ifast.ppm testout_422_ifast_opt.jpg
240 md5/md5cmp $(MD5_PPM_422_IFAST) testout_422_ifast.ppm
241 rm testout_422_ifast.ppm
242# CC: YCC->RGB SAMP: h2v1 merged IDCT: ifast ENT: huff
243 ./djpeg -nosmooth -dct fast -outfile testout_422m_ifast.ppm testout_422_ifast_opt.jpg
244 md5/md5cmp $(MD5_PPM_422M_IFAST) testout_422m_ifast.ppm
DRC29d30cb2014-05-06 22:49:02 +0000245 rm testout_422m_ifast.ppm testout_422_ifast_opt.jpg
DRC66129dc2014-05-06 08:58:11 +0000246
247# CC: RGB->YCC SAMP: fullsize/h2v2 FDCT: ifast ENT: prog huff
248 ./cjpeg -sample 2x2 -dct fast -quality 100 -prog -outfile testout_420_q100_ifast_prog.jpg $(srcdir)/testimages/testorig.ppm
249 md5/md5cmp $(MD5_JPEG_420_IFAST_Q100_PROG) testout_420_q100_ifast_prog.jpg
250# CC: YCC->RGB SAMP: fullsize/h2v2 fancy IDCT: ifast ENT: prog huff
251 ./djpeg -dct fast -outfile testout_420_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
252 md5/md5cmp $(MD5_PPM_420_Q100_IFAST) testout_420_q100_ifast.ppm
253 rm testout_420_q100_ifast.ppm
254# CC: YCC->RGB SAMP: h2v2 merged IDCT: ifast ENT: prog huff
255 ./djpeg -nosmooth -dct fast -outfile testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
256 md5/md5cmp $(MD5_PPM_420M_Q100_IFAST) testout_420m_q100_ifast.ppm
DRC29d30cb2014-05-06 22:49:02 +0000257 rm testout_420m_q100_ifast.ppm testout_420_q100_ifast_prog.jpg
DRC66129dc2014-05-06 08:58:11 +0000258
259# CC: RGB->Gray SAMP: fullsize FDCT: islow ENT: huff
260 ./cjpeg -gray -dct int -outfile testout_gray_islow.jpg $(srcdir)/testimages/testorig.ppm
261 md5/md5cmp $(MD5_JPEG_GRAY_ISLOW) testout_gray_islow.jpg
262# CC: Gray->Gray SAMP: fullsize FDCT: islow ENT: huff
263 ./djpeg -dct int -outfile testout_gray_islow.ppm testout_gray_islow.jpg
264 md5/md5cmp $(MD5_PPM_GRAY_ISLOW) testout_gray_islow.ppm
265 rm testout_gray_islow.ppm
266# CC: Gray->RGB SAMP: fullsize FDCT: islow ENT: huff
267 ./djpeg -rgb -dct int -outfile testout_gray_rgb_islow.ppm testout_gray_islow.jpg
268 md5/md5cmp $(MD5_PPM_GRAY_RGB_ISLOW) testout_gray_rgb_islow.ppm
DRC29d30cb2014-05-06 22:49:02 +0000269 rm testout_gray_rgb_islow.ppm testout_gray_islow.jpg
DRC66129dc2014-05-06 08:58:11 +0000270
271# CC: RGB->YCC SAMP: fullsize smooth/h2v2 smooth FDCT: islow
272# ENT: 2-pass huff
273 ./cjpeg -sample 2x2 -smooth 1 -dct int -opt -outfile testout_420s_ifast_opt.jpg $(srcdir)/testimages/testorig.ppm
274 md5/md5cmp $(MD5_JPEG_420S_IFAST_OPT) testout_420s_ifast_opt.jpg
275 rm testout_420s_ifast_opt.jpg
276
277# CC: RGB->YCC SAMP: fullsize/int FDCT: float ENT: prog huff
278 ./cjpeg -sample 3x2 -dct float -prog -outfile testout_3x2_float_prog.jpg $(srcdir)/testimages/testorig.ppm
279 md5/md5cmp $(MD5_JPEG_3x2_FLOAT_PROG) testout_3x2_float_prog.jpg
280# CC: YCC->RGB SAMP: fullsize/int IDCT: float ENT: prog huff
281 ./djpeg -dct float -outfile testout_3x2_float.ppm testout_3x2_float_prog.jpg
282 md5/md5cmp $(MD5_PPM_3x2_FLOAT) testout_3x2_float.ppm
DRC29d30cb2014-05-06 22:49:02 +0000283 rm testout_3x2_float.ppm testout_3x2_float_prog.jpg
DRC66129dc2014-05-06 08:58:11 +0000284
DRCe3720042010-11-23 06:50:14 +0000285if WITH_ARITH_ENC
DRC66129dc2014-05-06 08:58:11 +0000286# CC: YCC->RGB SAMP: fullsize/h2v2 FDCT: islow ENT: arith
287 ./cjpeg -dct int -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testorig.ppm
288 md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg
289 rm testout_420_islow_ari.jpg
290 ./jpegtran -arithmetic -outfile testout_420_islow_ari.jpg $(srcdir)/testimages/testimgint.jpg
291 md5/md5cmp $(MD5_JPEG_420_ISLOW_ARI) testout_420_islow_ari.jpg
292 rm testout_420_islow_ari.jpg
293# CC: YCC->RGB SAMP: fullsize FDCT: islow ENT: prog arith
294 ./cjpeg -dct int -progressive -arithmetic -sample 1x1 -outfile testout_444_islow_progari.jpg $(srcdir)/testimages/testorig.ppm
295 md5/md5cmp $(MD5_JPEG_444_ISLOW_PROGARI) testout_444_islow_progari.jpg
296 rm testout_444_islow_progari.jpg
DRCe3720042010-11-23 06:50:14 +0000297endif
298if WITH_ARITH_DEC
DRC66129dc2014-05-06 08:58:11 +0000299# CC: RGB->YCC SAMP: h2v2 merged IDCT: ifast ENT: arith
300 ./djpeg -fast -ppm -outfile testout_420m_ifast_ari.ppm $(srcdir)/testimages/testimgari.jpg
301 md5/md5cmp $(MD5_PPM_420M_IFAST_ARI) testout_420m_ifast_ari.ppm
302 rm testout_420m_ifast_ari.ppm
303 ./jpegtran -outfile testout_420_islow.jpg $(srcdir)/testimages/testimgari.jpg
304 md5/md5cmp $(MD5_JPEG_420_ISLOW) testout_420_islow.jpg
305 rm testout_420_islow.jpg
DRCe3720042010-11-23 06:50:14 +0000306endif
DRC66129dc2014-05-06 08:58:11 +0000307
308# CC: YCC->RGB SAMP: h2v2 merged IDCT: 16x16 islow ENT: huff
309 ./djpeg -dct int -nosmooth -scale 2/1 -ppm -outfile testout_420m_islow_2_1.ppm $(srcdir)/testimages/testorig.jpg
310 md5/md5cmp $(MD5_PPM_420M_ISLOW_2_1) testout_420m_islow_2_1.ppm
311 rm testout_420m_islow_2_1.ppm
312# CC: YCC->RGB SAMP: h2v2 merged IDCT: 15x15 islow ENT: huff
313 ./djpeg -dct int -nosmooth -scale 15/8 -ppm -outfile testout_420m_islow_15_8.ppm $(srcdir)/testimages/testorig.jpg
314 md5/md5cmp $(MD5_PPM_420M_ISLOW_15_8) testout_420m_islow_15_8.ppm
315 rm testout_420m_islow_15_8.ppm
316# CC: YCC->RGB SAMP: h2v2 merged IDCT: 13x13 islow ENT: huff
317 ./djpeg -dct int -nosmooth -scale 13/8 -ppm -outfile testout_420m_islow_13_8.ppm $(srcdir)/testimages/testorig.jpg
318 md5/md5cmp $(MD5_PPM_420M_ISLOW_13_8) testout_420m_islow_13_8.ppm
319 rm testout_420m_islow_13_8.ppm
320# CC: YCC->RGB SAMP: h2v2 merged IDCT: 11x11 islow ENT: huff
321 ./djpeg -dct int -nosmooth -scale 11/8 -ppm -outfile testout_420m_islow_11_8.ppm $(srcdir)/testimages/testorig.jpg
322 md5/md5cmp $(MD5_PPM_420M_ISLOW_11_8) testout_420m_islow_11_8.ppm
323 rm testout_420m_islow_11_8.ppm
324# CC: YCC->RGB SAMP: h2v2 merged IDCT: 9x9 islow ENT: huff
325 ./djpeg -dct int -nosmooth -scale 9/8 -ppm -outfile testout_420m_islow_9_8.ppm $(srcdir)/testimages/testorig.jpg
326 md5/md5cmp $(MD5_PPM_420M_ISLOW_9_8) testout_420m_islow_9_8.ppm
327 rm testout_420m_islow_9_8.ppm
328# CC: YCC->RGB SAMP: h2v2 merged IDCT: 7x7 islow/14x14 islow ENT: huff
329 ./djpeg -dct int -nosmooth -scale 7/8 -ppm -outfile testout_420m_islow_7_8.ppm $(srcdir)/testimages/testorig.jpg
330 md5/md5cmp $(MD5_PPM_420M_ISLOW_7_8) testout_420m_islow_7_8.ppm
331 rm testout_420m_islow_7_8.ppm
332# CC: YCC->RGB SAMP: h2v2 merged IDCT: 6x6 islow/12x12 islow ENT: huff
333 ./djpeg -dct int -nosmooth -scale 3/4 -ppm -outfile testout_420m_islow_3_4.ppm $(srcdir)/testimages/testorig.jpg
334 md5/md5cmp $(MD5_PPM_420M_ISLOW_3_4) testout_420m_islow_3_4.ppm
335 rm testout_420m_islow_3_4.ppm
336# CC: YCC->RGB SAMP: h2v2 merged IDCT: 5x5 islow/10x10 islow ENT: huff
337 ./djpeg -dct int -nosmooth -scale 5/8 -ppm -outfile testout_420m_islow_5_8.ppm $(srcdir)/testimages/testorig.jpg
338 md5/md5cmp $(MD5_PPM_420M_ISLOW_5_8) testout_420m_islow_5_8.ppm
339 rm testout_420m_islow_5_8.ppm
340# CC: YCC->RGB SAMP: h2v2 merged IDCT: 4x4 islow/8x8 islow ENT: huff
341 ./djpeg -dct int -nosmooth -scale 1/2 -ppm -outfile testout_420m_islow_1_2.ppm $(srcdir)/testimages/testorig.jpg
342 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_2) testout_420m_islow_1_2.ppm
343 rm testout_420m_islow_1_2.ppm
344# CC: YCC->RGB SAMP: h2v2 merged IDCT: 3x3 islow/6x6 islow ENT: huff
345 ./djpeg -dct int -nosmooth -scale 3/8 -ppm -outfile testout_420m_islow_3_8.ppm $(srcdir)/testimages/testorig.jpg
346 md5/md5cmp $(MD5_PPM_420M_ISLOW_3_8) testout_420m_islow_3_8.ppm
347 rm testout_420m_islow_3_8.ppm
348# CC: YCC->RGB SAMP: h2v2 merged IDCT: 2x2 islow/4x4 islow ENT: huff
349 ./djpeg -dct int -nosmooth -scale 1/4 -ppm -outfile testout_420m_islow_1_4.ppm $(srcdir)/testimages/testorig.jpg
350 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_4) testout_420m_islow_1_4.ppm
351 rm testout_420m_islow_1_4.ppm
352# CC: YCC->RGB SAMP: h2v2 merged IDCT: 1x1 islow/2x2 islow ENT: huff
353 ./djpeg -dct int -nosmooth -scale 1/8 -ppm -outfile testout_420m_islow_1_8.ppm $(srcdir)/testimages/testorig.jpg
354 md5/md5cmp $(MD5_PPM_420M_ISLOW_1_8) testout_420m_islow_1_8.ppm
355 rm testout_420m_islow_1_8.ppm
356# CC: YCC->RGB (dithered) SAMP: h2v2 fancy IDCT: islow ENT: huff
357 ./djpeg -dct int -bmp -colors 256 -outfile testout_420_islow_256.bmp $(srcdir)/testimages/testorig.jpg
358 md5/md5cmp $(MD5_BMP_420_ISLOW_256) testout_420_islow_256.bmp
359 rm testout_420_islow_256.bmp
360
361 ./jpegtran -crop 120x90+20+50 -transpose -perfect -outfile testout_crop.jpg $(srcdir)/testimages/testorig.jpg
362 md5/md5cmp $(MD5_JPEG_CROP) testout_crop.jpg
363 rm testout_crop.jpg
DRC83f21442010-06-10 18:52:41 +0000364
DRC83f21442010-06-10 18:52:41 +0000365
DRC34d59e72010-02-12 06:27:34 +0000366testclean:
DRC7b991722010-06-10 19:44:56 +0000367 rm -f testout*
DRCf2602ce2011-04-01 00:20:33 +0000368 rm -f *_GRAY_*.bmp
369 rm -f *_GRAY_*.png
370 rm -f *_GRAY_*.ppm
371 rm -f *_GRAY_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000372 rm -f *_GRAY.yuv
DRCf2602ce2011-04-01 00:20:33 +0000373 rm -f *_420_*.bmp
374 rm -f *_420_*.png
375 rm -f *_420_*.ppm
376 rm -f *_420_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000377 rm -f *_420.yuv
DRCf2602ce2011-04-01 00:20:33 +0000378 rm -f *_422_*.bmp
379 rm -f *_422_*.png
380 rm -f *_422_*.ppm
381 rm -f *_422_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000382 rm -f *_422.yuv
DRCf2602ce2011-04-01 00:20:33 +0000383 rm -f *_444_*.bmp
384 rm -f *_444_*.png
385 rm -f *_444_*.ppm
386 rm -f *_444_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000387 rm -f *_444.yuv
DRCf2602ce2011-04-01 00:20:33 +0000388 rm -f *_440_*.bmp
389 rm -f *_440_*.png
390 rm -f *_440_*.ppm
391 rm -f *_440_*.jpg
DRCba6f4572011-03-31 09:41:53 +0000392 rm -f *_440.yuv
DRC1f3635c2013-08-18 10:19:00 +0000393 rm -f *_411_*.bmp
394 rm -f *_411_*.png
395 rm -f *_411_*.ppm
396 rm -f *_411_*.jpg
397 rm -f *_411.yuv
DRC079b4342010-02-15 11:32:23 +0000398
DRCcb6157b2012-01-31 11:38:13 +0000399
400tjtest:
401 sh ./tjbenchtest
DRC823fbed2014-03-13 20:48:38 +0000402 sh ./tjbenchtest -yuv
DRCcb6157b2012-01-31 11:38:13 +0000403if WITH_JAVA
DRCfac3bea2012-09-24 02:27:55 +0000404 sh ./tjbenchtest.java
DRC7a6ed072014-03-17 11:14:52 +0000405 sh ./tjbenchtest.java -yuv
DRCcb6157b2012-01-31 11:38:13 +0000406endif
407
408
DRC764e1e22013-04-19 04:25:14 +0000409pkgscripts/libjpeg-turbo.spec: pkgscripts/libjpeg-turbo.spec.tmpl
410 cat pkgscripts/libjpeg-turbo.spec.tmpl | sed s@%{__prefix}@$(prefix)@g | \
411 sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \
412 sed s@%{__docdir}@$(docdir)@g | sed s@%{__includedir}@$(includedir)@g | \
413 sed s@%{__libdir}@$(libdir)@g | sed s@%{__mandir}@$(mandir)@g \
414 > pkgscripts/libjpeg-turbo.spec
DRCd1c281a2010-11-17 22:44:40 +0000415
DRC764e1e22013-04-19 04:25:14 +0000416rpm: all pkgscripts/libjpeg-turbo.spec
DRC1f80a102010-10-18 00:15:31 +0000417 TMPDIR=`mktemp -d /tmp/${PACKAGE_NAME}-build.XXXXXX`; \
418 mkdir -p $$TMPDIR/RPMS; \
419 ln -fs `pwd` $$TMPDIR/BUILD; \
DRC764e1e22013-04-19 04:25:14 +0000420 rm -f ${PKGNAME}-${VERSION}.${RPMARCH}.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000421 rpmbuild -bb --define "_blddir $$TMPDIR/buildroot" \
DRC57bd84f2012-02-10 01:40:29 +0000422 --define "_topdir $$TMPDIR" \
DRCb94f2de2011-03-22 09:31:25 +0000423 --target ${RPMARCH} pkgscripts/libjpeg-turbo.spec; \
DRC764e1e22013-04-19 04:25:14 +0000424 cp $$TMPDIR/RPMS/${RPMARCH}/${PKGNAME}-${VERSION}-${BUILD}.${RPMARCH}.rpm \
425 ${PKGNAME}-${VERSION}.${RPMARCH}.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000426 rm -rf $$TMPDIR
DRC079b4342010-02-15 11:32:23 +0000427
DRC764e1e22013-04-19 04:25:14 +0000428srpm: dist-gzip pkgscripts/libjpeg-turbo.spec
DRC1f80a102010-10-18 00:15:31 +0000429 TMPDIR=`mktemp -d /tmp/${PACKAGE_NAME}-build.XXXXXX`; \
430 mkdir -p $$TMPDIR/RPMS; \
431 mkdir -p $$TMPDIR/SRPMS; \
432 mkdir -p $$TMPDIR/BUILD; \
433 mkdir -p $$TMPDIR/SOURCES; \
434 mkdir -p $$TMPDIR/SPECS; \
DRC764e1e22013-04-19 04:25:14 +0000435 rm -f ${PKGNAME}-${VERSION}.src.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000436 cp ${PACKAGE_NAME}-${VERSION}.tar.gz $$TMPDIR/SOURCES; \
DRCb94f2de2011-03-22 09:31:25 +0000437 cat pkgscripts/libjpeg-turbo.spec | sed s/%{_blddir}/%{_tmppath}/g \
DRC57bd84f2012-02-10 01:40:29 +0000438 | sed s/#--\>//g \
DRCb94f2de2011-03-22 09:31:25 +0000439 > $$TMPDIR/SPECS/libjpeg-turbo.spec; \
DRC1f80a102010-10-18 00:15:31 +0000440 rpmbuild -bs --define "_topdir $$TMPDIR" $$TMPDIR/SPECS/libjpeg-turbo.spec; \
DRC764e1e22013-04-19 04:25:14 +0000441 cp $$TMPDIR/SRPMS/${PKGNAME}-${VERSION}-${BUILD}.src.rpm \
442 ${PKGNAME}-${VERSION}.src.rpm; \
DRC1f80a102010-10-18 00:15:31 +0000443 rm -rf $$TMPDIR
DRC52a19f22010-02-15 12:06:27 +0000444
DRC764e1e22013-04-19 04:25:14 +0000445pkgscripts/makedpkg: pkgscripts/makedpkg.tmpl
446 cat pkgscripts/makedpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \
DRC7175e512013-04-23 22:29:00 +0000447 sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \
DRC764e1e22013-04-19 04:25:14 +0000448 > pkgscripts/makedpkg
449
450deb: all pkgscripts/makedpkg
DRCb94f2de2011-03-22 09:31:25 +0000451 sh pkgscripts/makedpkg
DRC6533b6e2010-02-15 14:57:18 +0000452
DRC7175e512013-04-23 22:29:00 +0000453pkgscripts/uninstall: pkgscripts/uninstall.tmpl
454 cat pkgscripts/uninstall.tmpl | sed s@%{__prefix}@$(prefix)@g | \
455 sed s@%{__bindir}@$(bindir)@g | sed s@%{__datadir}@$(datadir)@g | \
456 sed s@%{__includedir}@$(includedir)@g | sed s@%{__libdir}@$(libdir)@g | \
457 sed s@%{__mandir}@$(mandir)@g > pkgscripts/uninstall
458
459pkgscripts/makemacpkg: pkgscripts/makemacpkg.tmpl
460 cat pkgscripts/makemacpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \
461 sed s@%{__bindir}@$(bindir)@g | sed s@%{__docdir}@$(docdir)@g | \
462 sed s@%{__libdir}@$(libdir)@g > pkgscripts/makemacpkg
463
DRC315123f2010-02-15 16:14:26 +0000464if X86_64
465
DRC7175e512013-04-23 22:29:00 +0000466udmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRC7c6ae032012-03-23 00:51:56 +0000467 sh pkgscripts/makemacpkg -build32 ${BUILDDIR32}
DRC315123f2010-02-15 16:14:26 +0000468
DRC7175e512013-04-23 22:29:00 +0000469iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRCa2a2cd62013-02-04 22:29:57 +0000470 sh pkgscripts/makemacpkg -build32 ${BUILDDIR32} -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S}
DRC166c5ec2012-02-10 01:07:59 +0000471
472else
473
DRC7175e512013-04-23 22:29:00 +0000474iosdmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRCa2a2cd62013-02-04 22:29:57 +0000475 sh pkgscripts/makemacpkg -buildarmv6 ${BUILDDIRARMV6} -buildarmv7 ${BUILDDIRARMV7} -buildarmv7s ${BUILDDIRARMV7S}
DRC1fbae842012-02-09 09:23:30 +0000476
DRC315123f2010-02-15 16:14:26 +0000477endif
478
DRC7175e512013-04-23 22:29:00 +0000479dmg: all pkgscripts/makemacpkg pkgscripts/uninstall
DRCb94f2de2011-03-22 09:31:25 +0000480 sh pkgscripts/makemacpkg
DRCb9b1ca32010-02-17 02:24:02 +0000481
DRC7175e512013-04-23 22:29:00 +0000482pkgscripts/makecygwinpkg: pkgscripts/makecygwinpkg.tmpl
483 cat pkgscripts/makecygwinpkg.tmpl | sed s@%{__prefix}@$(prefix)@g | \
484 sed s@%{__docdir}@$(docdir)@g | sed s@%{__libdir}@$(libdir)@g \
485 > pkgscripts/makecygwinpkg
486
DRC764e1e22013-04-19 04:25:14 +0000487cygwinpkg: all pkgscripts/makecygwinpkg
DRCb94f2de2011-03-22 09:31:25 +0000488 sh pkgscripts/makecygwinpkg