[go: up one dir, main page]

blob: 70f97ff20757c9707580efc726a4438cb1a6575e [file] [log] [blame]
Pascal Massiminof7a95492011-02-20 19:11:551# This makefile is a simpler alternative to the autoconf-based build
2# system, for simple local building of the libraries and tools.
3# It will not install the libraries system-wide, but just create the 'cwebp'
4# and 'dwebp' tools in the examples/ directory, along with the static
Pascal Massiminoaf74c142015-04-15 09:14:085# libraries 'src/libwebp.a', 'src/libwebpdecoder.a', 'src/mux/libwebpmux.a',
Maryla9d7ff742022-08-04 15:56:596# 'src/demux/libwebpdemux.a', 'extras/libwebpextras.a' and
7# 'sharpyuv/libsharpyuv.a'.
Pascal Massiminof7a95492011-02-20 19:11:558#
9# To build the library and examples, use:
10# make -f makefile.unix
11# from this top directory.
12
13#### Customizable part ####
14
Urvang Joshi2e7f6e82012-11-21 20:12:2915# These flags assume you have libpng, libjpeg, libtiff and libgif installed. If
16# not, either follow the install instructions below or just comment out the next
17# four lines.
James Zern6f76d242012-07-02 00:55:2118EXTRA_FLAGS= -DWEBP_HAVE_PNG -DWEBP_HAVE_JPEG -DWEBP_HAVE_TIFF
Urvang Joshi2e7f6e82012-11-21 20:12:2919DWEBP_LIBS= -lpng -lz
20CWEBP_LIBS= $(DWEBP_LIBS) -ljpeg -ltiff
21GIF_LIBS = -lgif
22
James Zern14d57312011-06-24 20:47:5923ifeq ($(strip $(shell uname)), Darwin)
James Zernfcec0592012-06-27 01:09:5524 # Work around a problem linking tables marked as common symbols,
25 # cf., src/enc/yuv.[hc]
26 # Failure observed with: gcc 4.2.1 and 4.0.1.
27 EXTRA_FLAGS += -fno-common
James Zern0e513f72013-05-01 21:47:5628 EXTRA_FLAGS += -DHAVE_GLUT_GLUT_H
Pascal Massimino217443c2018-03-31 07:30:0029 EXTRA_FLAGS += -Wno-deprecated-declarations
Pascal Massimino6463e6a2011-03-17 21:45:2330 EXTRA_FLAGS += -I/opt/local/include
31 EXTRA_LIBS += -L/opt/local/lib
James Zern41050612012-05-09 19:42:3632 GL_LIBS = -framework GLUT -framework OpenGL
33else
Pascal Massiminoec5036e2017-03-08 08:10:1434 EXTRA_FLAGS += -I/usr/local/include
35 EXTRA_LIBS += -L/usr/local/lib
James Zern41050612012-05-09 19:42:3636 GL_LIBS = -lglut -lGL
Pascal Massimino6463e6a2011-03-17 21:45:2337endif
Urvang Joshi11b27212012-11-06 01:35:3638
Pascal Massimino86359732017-09-04 04:25:3139# SDL flags: use sdl-config if it exists
Vincent Rabaud24d7f9c2023-09-28 08:18:2340SDL_CONFIG = $(shell sdl2-config --version 2> /dev/null)
Pascal Massimino86359732017-09-04 04:25:3141ifneq ($(SDL_CONFIG),)
Vincent Rabaud24d7f9c2023-09-28 08:18:2342 SDL_LIBS = $(shell sdl2-config --libs)
43 SDL_FLAGS = $(shell sdl2-config --cflags)
Pascal Massimino86359732017-09-04 04:25:3144else
45 # use best-guess
Vincent Rabaud24d7f9c2023-09-28 08:18:2346 SDL_LIBS = -lSDL2
Pascal Massimino86359732017-09-04 04:25:3147 SDL_FLAGS =
48endif
Pascal Massimino6463e6a2011-03-17 21:45:2349
50# To install libraries on Mac OS X:
James Zernb6f756e2021-11-17 19:16:5851# 1. Install MacPorts (https://www.macports.org/install.php)
Pascal Massimino6463e6a2011-03-17 21:45:2352# 2. Run "sudo port install jpeg"
53# 3. Run "sudo port install libpng"
James Zern6f76d242012-07-02 00:55:2154# 4. Run "sudo port install tiff"
Urvang Joshi11b27212012-11-06 01:35:3655# 5. Run "sudo port install giflib"
Pascal Massimino6463e6a2011-03-17 21:45:2356
57# To install libraries on Linux:
58# 1. Run "sudo apt-get install libjpeg62-dev"
59# 2. Run "sudo apt-get install libpng12-dev"
James Zern6f76d242012-07-02 00:55:2160# 3. Run "sudo apt-get install libtiff4-dev"
Urvang Joshi11b27212012-11-06 01:35:3661# 4. Run "sudo apt-get install libgif-dev"
Pascal Massiminof7a95492011-02-20 19:11:5562
63# Uncomment for build for 32bit platform
64# Alternatively, you can just use the command
65# 'make -f makefile.unix EXTRA_FLAGS=-m32' to that effect.
Pascal Massiminof8db5d52011-03-25 22:04:1166# EXTRA_FLAGS += -m32
67
Vikas Arora94a48b42013-01-19 00:23:0968# Extra flags to enable byte swap for 16 bit colorspaces.
skal663a6d92017-08-01 01:53:2969# EXTRA_FLAGS += -DWEBP_SWAP_16BIT_CSP=1
Vikas Arora94a48b42013-01-19 00:23:0970
Pascal Massiminofc7815d2011-07-22 20:09:1071# Extra flags to enable multi-threading
72EXTRA_FLAGS += -DWEBP_USE_THREAD
73EXTRA_LIBS += -lpthread
74
James Zern1a819f02015-12-15 07:45:1275# Control symbol visibility. Comment out if your compiler doesn't support it.
76EXTRA_FLAGS += -fvisibility=hidden
77
Pascal Massiminof8db5d52011-03-25 22:04:1178# Extra flags to emulate C89 strictness with the full ANSI
Pascal Massimino96201e52015-11-06 06:47:0379EXTRA_FLAGS += -Wextra -Wold-style-definition
80EXTRA_FLAGS += -Wmissing-prototypes
81EXTRA_FLAGS += -Wmissing-declarations
82EXTRA_FLAGS += -Wdeclaration-after-statement
83EXTRA_FLAGS += -Wshadow
84EXTRA_FLAGS += -Wformat-security -Wformat-nonliteral
85# EXTRA_FLAGS += -Wvla
Pascal Massiminof7a95492011-02-20 19:11:5586
Pascal Massiminobf09cf12015-03-20 14:54:3387# SSE4.1-specific flags:
88ifeq ($(HAVE_SSE41), 1)
89EXTRA_FLAGS += -DWEBP_HAVE_SSE41
90src/dsp/%_sse41.o: EXTRA_FLAGS += -msse4.1
91endif
92
skal97e5fac2014-03-31 14:36:3393# NEON-specific flags:
94# EXTRA_FLAGS += -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8
95# -> seems to make the overall lib slower: -fno-split-wide-types
96
Parag Salasakare11da082016-05-27 10:09:2797# MIPS (MSA) 32-bit build specific flags for mips32r5 (p5600):
98# EXTRA_FLAGS += -mips32r5 -mabi=32 -mtune=p5600 -mmsa -mfp64
99# EXTRA_FLAGS += -msched-weight -mload-store-pairs
100
101# MIPS (MSA) 64-bit build specific flags for mips64r6 (i6400):
102# EXTRA_FLAGS += -mips64r6 -mabi=64 -mtune=i6400 -mmsa -mfp64
103# EXTRA_FLAGS += -msched-weight -mload-store-pairs
104
Pascal Massiminof7a95492011-02-20 19:11:55105#### Nothing should normally be changed below this line ####
106
James Zern87d58ce2011-08-26 00:25:11107AR = ar
108ARFLAGS = r
James Zerna4399722017-10-07 21:15:11109CPPFLAGS = -I. -Isrc/ -Wall
Pascal Massiminoe577feb2018-04-11 11:45:53110ifeq ($(DEBUG), 1)
111 CFLAGS = -g
112else
113 CFLAGS = -O3 -DNDEBUG
114endif
115CFLAGS += $(EXTRA_FLAGS)
Urvang Joshiacd7b5a2015-05-01 23:11:49116CC = gcc
James Zernc9e037a2011-08-26 01:33:28117INSTALL = install
Vikas Arorae1947a92011-11-30 12:16:45118GROFF = /usr/bin/groff
119COL = /usr/bin/col
skal5cf77922013-02-14 06:21:41120LDFLAGS = $(EXTRA_LIBS) $(EXTRA_FLAGS) -lm
Pascal Massiminof7a95492011-02-20 19:11:55121
Pascal Massiminofcfd9c72019-03-12 08:48:37122ifdef BITTRACE
123CFLAGS += -DBITTRACE=$(BITTRACE)
124endif
125
Urvang Joshiacd7b5a2015-05-01 23:11:49126ANIM_UTIL_OBJS = \
127 examples/anim_util.o \
128
Marylad55d4472022-03-01 11:04:52129SHARPYUV_OBJS = \
130 sharpyuv/sharpyuv.o \
James Zern979c0eb2022-10-22 02:04:53131 sharpyuv/sharpyuv_cpu.o \
Maryla01a05de2022-04-06 13:38:21132 sharpyuv/sharpyuv_csp.o \
Marylad55d4472022-03-01 11:04:52133 sharpyuv/sharpyuv_dsp.o \
Maryla2d607ee2022-06-01 13:38:44134 sharpyuv/sharpyuv_gamma.o \
Marylad55d4472022-03-01 11:04:52135 sharpyuv/sharpyuv_neon.o \
136 sharpyuv/sharpyuv_sse2.o \
137
James Zern3f8ec1c2012-04-12 19:00:43138DEC_OBJS = \
James Zern668e1dd2017-01-19 08:21:40139 src/dec/alpha_dec.o \
140 src/dec/buffer_dec.o \
141 src/dec/frame_dec.o \
142 src/dec/idec_dec.o \
143 src/dec/io_dec.o \
144 src/dec/quant_dec.o \
145 src/dec/tree_dec.o \
146 src/dec/vp8_dec.o \
147 src/dec/vp8l_dec.o \
148 src/dec/webp_dec.o \
Pascal Massiminoe06ac082011-09-02 21:30:08149
Urvang Joshi23782f92012-11-19 19:21:37150DEMUX_OBJS = \
Urvang Joshid39dc8f2015-09-02 23:20:24151 src/demux/anim_decode.o \
Urvang Joshi23782f92012-11-19 19:21:37152 src/demux/demux.o \
153
skal5cf77922013-02-14 06:21:41154DSP_DEC_OBJS = \
skal399b9162014-05-26 16:05:03155 src/dsp/alpha_processing.o \
Djordje Pesut0b21c302014-08-21 17:26:18156 src/dsp/alpha_processing_mips_dsp_r2.o \
Pascal Massimino49d02802017-01-11 16:39:29157 src/dsp/alpha_processing_neon.o \
skalfc98edd2014-08-26 03:55:28158 src/dsp/alpha_processing_sse2.o \
Pascal Massiminobfc300c2015-06-19 12:23:38159 src/dsp/alpha_processing_sse41.o \
James Zern3f8ec1c2012-04-12 19:00:43160 src/dsp/cpu.o \
161 src/dsp/dec.o \
skal8992ddb2014-02-14 03:32:21162 src/dsp/dec_clip_tables.o \
Djordje Pesut04336fc2013-12-25 11:16:01163 src/dsp/dec_mips32.o \
Djordje Pesut24e10722014-09-02 12:03:13164 src/dsp/dec_mips_dsp_r2.o \
Parag Salasakar5e60c422016-06-09 13:47:09165 src/dsp/dec_msa.o \
James Zern3f8ec1c2012-04-12 19:00:43166 src/dsp/dec_neon.o \
167 src/dsp/dec_sse2.o \
Pascal Massiminoe9570dd2015-03-19 20:18:59168 src/dsp/dec_sse41.o \
Pascal Massimino7afdaf82015-01-28 07:02:41169 src/dsp/filters.o \
Djordje Pesutb4dc4062014-08-04 14:22:10170 src/dsp/filters_mips_dsp_r2.o \
Parag Salasakardce64bf2016-07-01 13:56:00171 src/dsp/filters_msa.o \
Pascal Massimino1de931c2017-01-16 15:11:41172 src/dsp/filters_neon.o \
Pascal Massimino022d2f82015-01-29 07:06:29173 src/dsp/filters_sse2.o \
James Zern3f8ec1c2012-04-12 19:00:43174 src/dsp/lossless.o \
Djordje Pesutf0103592014-09-02 14:34:52175 src/dsp/lossless_mips_dsp_r2.o \
Parag Salasakar701c7722016-06-27 09:06:28176 src/dsp/lossless_msa.o \
skal97e5fac2014-03-31 14:36:33177 src/dsp/lossless_neon.o \
skal0f4f7212014-03-27 20:43:21178 src/dsp/lossless_sse2.o \
Ilya Kurdyukova09a6472021-02-18 11:36:31179 src/dsp/lossless_sse41.o \
Djordje Pesutcbcbedd2015-01-09 11:05:53180 src/dsp/rescaler.o \
181 src/dsp/rescaler_mips32.o \
182 src/dsp/rescaler_mips_dsp_r2.o \
Parag Salasakar9ac74f92016-07-19 14:47:54183 src/dsp/rescaler_msa.o \
skalb4e731c2015-10-05 09:26:52184 src/dsp/rescaler_neon.o \
Pascal Massimino76a7dc32015-09-25 12:34:02185 src/dsp/rescaler_sse2.o \
James Zern3f8ec1c2012-04-12 19:00:43186 src/dsp/upsampling.o \
Djordje Pesut56977152014-08-15 09:00:32187 src/dsp/upsampling_mips_dsp_r2.o \
Parag Salasakard3ddacb2016-07-21 14:30:44188 src/dsp/upsampling_msa.o \
Mans Rullgard090b7082013-01-18 02:06:26189 src/dsp/upsampling_neon.o \
James Zern3f8ec1c2012-04-12 19:00:43190 src/dsp/upsampling_sse2.o \
Pascal Massimino1c590202017-12-11 08:00:19191 src/dsp/upsampling_sse41.o \
James Zern3f8ec1c2012-04-12 19:00:43192 src/dsp/yuv.o \
James Zernb9d2efc2014-06-07 19:35:47193 src/dsp/yuv_mips32.o \
Djordje Pesutb61c9ce2014-08-12 09:47:36194 src/dsp/yuv_mips_dsp_r2.o \
Pascal Massimino52245422017-04-18 16:22:30195 src/dsp/yuv_neon.o \
James Zernbdfeeba2014-06-06 06:49:59196 src/dsp/yuv_sse2.o \
Pascal Massimino1c590202017-12-11 08:00:19197 src/dsp/yuv_sse41.o \
Pascal Massiminob112e832011-09-07 09:26:35198
skal5cf77922013-02-14 06:21:41199DSP_ENC_OBJS = \
Pascal Massiminoa987fae2015-02-07 10:13:26200 src/dsp/cost.o \
201 src/dsp/cost_mips32.o \
202 src/dsp/cost_mips_dsp_r2.o \
Johann0fd75142018-11-12 23:48:51203 src/dsp/cost_neon.o \
Pascal Massimino2a407092015-02-18 08:40:30204 src/dsp/cost_sse2.o \
skal5cf77922013-02-14 06:21:41205 src/dsp/enc.o \
Djordje Pesut0ca29142014-02-19 14:33:50206 src/dsp/enc_mips32.o \
Djordje Pesut829a8c12014-10-10 10:31:00207 src/dsp/enc_mips_dsp_r2.o \
Parag Salasakar435308e2016-07-05 14:30:43208 src/dsp/enc_msa.o \
skal5cf77922013-02-14 06:21:41209 src/dsp/enc_neon.o \
210 src/dsp/enc_sse2.o \
Pascal Massimino94055502015-03-25 11:12:44211 src/dsp/enc_sse41.o \
James Zern553051f2015-03-21 02:09:49212 src/dsp/lossless_enc.o \
213 src/dsp/lossless_enc_mips32.o \
214 src/dsp/lossless_enc_mips_dsp_r2.o \
Parag Salasakarcb19dbc2016-07-18 11:02:36215 src/dsp/lossless_enc_msa.o \
James Zern553051f2015-03-21 02:09:49216 src/dsp/lossless_enc_neon.o \
217 src/dsp/lossless_enc_sse2.o \
Pascal Massiminof3d687e2015-06-23 06:46:57218 src/dsp/lossless_enc_sse41.o \
Pascal Massimino693bf742017-02-20 16:27:15219 src/dsp/ssim.o \
220 src/dsp/ssim_sse2.o \
skal5cf77922013-02-14 06:21:41221
James Zern3f8ec1c2012-04-12 19:00:43222ENC_OBJS = \
James Zern668e1dd2017-01-19 08:21:40223 src/enc/alpha_enc.o \
224 src/enc/analysis_enc.o \
Vincent Rabaudb903b802017-06-01 13:07:28225 src/enc/backward_references_cost_enc.o \
James Zern668e1dd2017-01-19 08:21:40226 src/enc/backward_references_enc.o \
227 src/enc/config_enc.o \
228 src/enc/cost_enc.o \
James Zern668e1dd2017-01-19 08:21:40229 src/enc/filter_enc.o \
230 src/enc/frame_enc.o \
231 src/enc/histogram_enc.o \
232 src/enc/iterator_enc.o \
233 src/enc/near_lossless_enc.o \
234 src/enc/picture_enc.o \
235 src/enc/picture_csp_enc.o \
236 src/enc/picture_psnr_enc.o \
237 src/enc/picture_rescale_enc.o \
238 src/enc/picture_tools_enc.o \
239 src/enc/predictor_enc.o \
240 src/enc/quant_enc.o \
241 src/enc/syntax_enc.o \
242 src/enc/token_enc.o \
243 src/enc/tree_enc.o \
244 src/enc/vp8l_enc.o \
245 src/enc/webp_enc.o \
Urvang Joshia4f32ca2011-09-30 05:37:01246
James Zern2ee228f2012-12-06 21:06:37247EX_FORMAT_DEC_OBJS = \
James Zernc379b552016-07-19 23:02:55248 imageio/image_dec.o \
249 imageio/jpegdec.o \
250 imageio/metadata.o \
251 imageio/pngdec.o \
Pascal Massiminodcf9d822017-01-30 09:52:19252 imageio/pnmdec.o \
James Zernc379b552016-07-19 23:02:55253 imageio/tiffdec.o \
254 imageio/webpdec.o \
James Zern2ee228f2012-12-06 21:06:37255
Pascal Massiminoaf1ad3e2016-09-07 05:46:31256EX_FORMAT_ENC_OBJS = \
257 imageio/image_enc.o \
258
James Zern061263a2012-05-11 23:00:57259EX_UTIL_OBJS = \
James Zernebee57f2016-07-21 23:10:05260 examples/example_util.o \
James Zern061263a2012-05-11 23:00:57261
Urvang Joshid1c4ffa2015-01-13 23:43:31262GIFDEC_OBJS = \
263 examples/gifdec.o \
264
James Zernbdda5bd2016-07-21 01:25:00265IMAGE_UTIL_OBJS = \
266 imageio/imageio_util.o \
267
James Zern3f8ec1c2012-04-12 19:00:43268MUX_OBJS = \
Urvang Joshi4b997ae2015-01-07 00:12:48269 src/mux/anim_encode.o \
James Zern3f8ec1c2012-04-12 19:00:43270 src/mux/muxedit.o \
271 src/mux/muxinternal.o \
272 src/mux/muxread.o \
273
skal5cf77922013-02-14 06:21:41274UTILS_DEC_OBJS = \
James Zern668e1dd2017-01-19 08:21:40275 src/utils/bit_reader_utils.o \
276 src/utils/color_cache_utils.o \
277 src/utils/filters_utils.o \
278 src/utils/huffman_utils.o \
Vincent Rabaudeac3bd52023-07-04 16:09:13279 src/utils/palette.o \
James Zern668e1dd2017-01-19 08:21:40280 src/utils/quant_levels_dec_utils.o \
281 src/utils/random_utils.o \
282 src/utils/rescaler_utils.o \
283 src/utils/thread_utils.o \
Pascal Massimino80cc7302012-07-31 23:56:39284 src/utils/utils.o \
James Zern3f8ec1c2012-04-12 19:00:43285
skal5cf77922013-02-14 06:21:41286UTILS_ENC_OBJS = \
James Zern668e1dd2017-01-19 08:21:40287 src/utils/bit_writer_utils.o \
288 src/utils/huffman_encode_utils.o \
289 src/utils/quant_levels_utils.o \
skal5cf77922013-02-14 06:21:41290
Pascal Massiminoaf74c142015-04-15 09:14:08291EXTRA_OBJS = \
James Zernad497fb2016-07-19 22:23:08292 extras/extras.o \
skale8ab6a82016-07-20 19:55:05293 extras/quality_estimate.o \
James Zern5efd6302024-01-12 02:02:16294 extras/sharpyuv_risk_table.o \
Pascal Massiminoaf74c142015-04-15 09:14:08295
skal5cf77922013-02-14 06:21:41296LIBWEBPDECODER_OBJS = $(DEC_OBJS) $(DSP_DEC_OBJS) $(UTILS_DEC_OBJS)
Maryla9d7ff742022-08-04 15:56:59297LIBWEBP_OBJS = $(LIBWEBPDECODER_OBJS) $(ENC_OBJS) \
Marylad55d4472022-03-01 11:04:52298 $(DSP_ENC_OBJS) $(UTILS_ENC_OBJS)
James Zern3f8ec1c2012-04-12 19:00:43299LIBWEBPMUX_OBJS = $(MUX_OBJS)
Urvang Joshi23782f92012-11-19 19:21:37300LIBWEBPDEMUX_OBJS = $(DEMUX_OBJS)
Pascal Massiminoaf74c142015-04-15 09:14:08301LIBWEBPEXTRA_OBJS = $(EXTRA_OBJS)
Maryla9d7ff742022-08-04 15:56:59302LIBSHARPYUV_OBJS = $(SHARPYUV_OBJS)
James Zern3f8ec1c2012-04-12 19:00:43303
James Zern8c1cc6b2012-07-16 22:45:30304HDRS_INSTALLED = \
305 src/webp/decode.h \
James Zern701b9e22013-03-18 00:14:40306 src/webp/demux.h \
James Zern8c1cc6b2012-07-16 22:45:30307 src/webp/encode.h \
James Zern701b9e22013-03-18 00:14:40308 src/webp/mux.h \
James Zern289bc472013-03-19 21:47:00309 src/webp/mux_types.h \
James Zern8c1cc6b2012-07-16 22:45:30310 src/webp/types.h \
311
Maryla9d7ff742022-08-04 15:56:59312SHARPYUV_HDRS_INSTALLED = \
313 sharpyuv/sharpyuv.h \
James Zern979c0eb2022-10-22 02:04:53314 sharpyuv/sharpyuv_cpu.h \
315 sharpyuv/sharpyuv_csp.h \
Maryla9d7ff742022-08-04 15:56:59316
James Zern3f8ec1c2012-04-12 19:00:43317HDRS = \
James Zern668e1dd2017-01-19 08:21:40318 src/dec/alphai_dec.h \
319 src/dec/common_dec.h \
320 src/dec/vp8_dec.h \
321 src/dec/vp8i_dec.h \
322 src/dec/vp8li_dec.h \
323 src/dec/webpi_dec.h \
Vincent Rabaude60853e2016-02-17 08:46:55324 src/dsp/common_sse2.h \
Maryla29cc95c2022-02-18 10:19:18325 src/dsp/cpu.h \
James Zern3f8ec1c2012-04-12 19:00:43326 src/dsp/dsp.h \
327 src/dsp/lossless.h \
Vincent Rabaudc9b45862016-09-12 15:23:15328 src/dsp/lossless_common.h \
Djordje Pesut829a8c12014-10-10 10:31:00329 src/dsp/mips_macro.h \
Parag Salasakar5e60c422016-06-09 13:47:09330 src/dsp/msa_macro.h \
James Zern5e1a17e2014-04-26 19:11:00331 src/dsp/neon.h \
James Zern3f8ec1c2012-04-12 19:00:43332 src/dsp/yuv.h \
James Zern668e1dd2017-01-19 08:21:40333 src/enc/backward_references_enc.h \
334 src/enc/cost_enc.h \
James Zern668e1dd2017-01-19 08:21:40335 src/enc/histogram_enc.h \
336 src/enc/vp8i_enc.h \
337 src/enc/vp8li_enc.h \
hui su68ae5b62016-10-03 21:40:51338 src/mux/animi.h \
James Zern5e1a17e2014-04-26 19:11:00339 src/mux/muxi.h \
James Zern668e1dd2017-01-19 08:21:40340 src/utils/bit_reader_utils.h \
341 src/utils/bit_reader_inl_utils.h \
342 src/utils/bit_writer_utils.h \
343 src/utils/color_cache_utils.h \
344 src/utils/endian_inl_utils.h \
345 src/utils/filters_utils.h \
346 src/utils/huffman_utils.h \
347 src/utils/huffman_encode_utils.h \
Vincent Rabaudeac3bd52023-07-04 16:09:13348 src/utils/palette.h \
James Zern668e1dd2017-01-19 08:21:40349 src/utils/quant_levels_utils.h \
350 src/utils/quant_levels_dec_utils.h \
351 src/utils/random_utils.h \
352 src/utils/rescaler_utils.h \
353 src/utils/thread_utils.h \
James Zern5e1a17e2014-04-26 19:11:00354 src/utils/utils.h \
Urvang Joshic13f6632012-05-24 09:21:37355 src/webp/format_constants.h \
James Zern8c1cc6b2012-07-16 22:45:30356 $(HDRS_INSTALLED) \
Maryla9d7ff742022-08-04 15:56:59357 $(SHARPYUV_HDRS_INSTALLED) \
Pascal Massiminob112e832011-09-07 09:26:35358
Pascal Massiminoaf1ad3e2016-09-07 05:46:31359OUT_LIBS = examples/libexample_util.a
360OUT_LIBS += imageio/libimageio_util.a
361OUT_LIBS += imageio/libimagedec.a
362OUT_LIBS += imageio/libimageenc.a
363OUT_LIBS += src/libwebpdecoder.a
skal1e7d4402016-07-20 15:43:48364OUT_LIBS += src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59365OUT_LIBS += sharpyuv/libsharpyuv.a
James Zernad497fb2016-07-19 22:23:08366EXTRA_LIB = extras/libwebpextras.a
James Zerne41a7592012-04-24 01:46:12367OUT_EXAMPLES = examples/cwebp examples/dwebp
Pascal Massimino96201e52015-11-06 06:47:03368EXTRA_EXAMPLES = examples/gif2webp examples/vwebp examples/webpmux \
Pascal Massiminof66f94e2017-08-28 14:03:40369 examples/anim_diff examples/anim_dump \
370 examples/img2webp examples/webpinfo
Pascal Massimino6524fcd2017-01-30 12:33:35371OTHER_EXAMPLES = extras/get_disto extras/webp_quality extras/vwebp_sdl
Vikas Arorae1947a92011-11-30 12:16:45372
James Zerne41a7592012-04-24 01:46:12373OUTPUT = $(OUT_LIBS) $(OUT_EXAMPLES)
374ifeq ($(MAKECMDGOALS),clean)
skale8ab6a82016-07-20 19:55:05375 OUTPUT += $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES)
James Zerncefc9c02015-05-02 18:13:03376 OUTPUT += src/demux/libwebpdemux.a src/mux/libwebpmux.a $(EXTRA_LIB)
Urvang Joshiacd7b5a2015-05-01 23:11:49377 OUTPUT += examples/libgifdec.a examples/libanim_util.a
James Zerne41a7592012-04-24 01:46:12378endif
Pascal Massiminof7a95492011-02-20 19:11:55379
James Zern701b9e22013-03-18 00:14:40380ex: $(OUT_EXAMPLES)
skale8ab6a82016-07-20 19:55:05381all: ex $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES)
Pascal Massiminoaf74c142015-04-15 09:14:08382extras: $(EXTRA_LIB)
Pascal Massiminof7a95492011-02-20 19:11:55383
James Zern2ee228f2012-12-06 21:06:37384$(EX_FORMAT_DEC_OBJS): %.o: %.h
385
James Zernd5104b12014-07-03 17:41:37386# special dependencies:
James Zern668e1dd2017-01-19 08:21:40387# tree_dec.c/vp8_dec.c/bit_reader_utils.c <->
388# bit_reader_inl_utils.h, endian_inl_utils.h
389# bit_writer_utils.c <-> endian_inl_utils.h
390src/dec/tree_dec.o: src/utils/bit_reader_inl_utils.h
391src/dec/tree_dec.o: src/utils/endian_inl_utils.h
392src/dec/vp8_dec.o: src/utils/bit_reader_inl_utils.h src/utils/endian_inl_utils.h
393src/utils/bit_reader_utils.o: src/utils/bit_reader_inl_utils.h
394src/utils/bit_reader_utils.o: src/utils/endian_inl_utils.h
395src/utils/bit_writer_utils.o: src/utils/endian_inl_utils.h
Pascal Massimino09545ee2014-06-02 06:19:34396
James Zern87d58ce2011-08-26 00:25:11397%.o: %.c $(HDRS)
Pascal Massiminoe9459382017-09-04 04:13:33398 $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
Pascal Massiminof7a95492011-02-20 19:11:55399
Urvang Joshiacd7b5a2015-05-01 23:11:49400examples/libanim_util.a: $(ANIM_UTIL_OBJS)
James Zernebee57f2016-07-21 23:10:05401examples/libexample_util.a: $(EX_UTIL_OBJS)
Urvang Joshid1c4ffa2015-01-13 23:43:31402examples/libgifdec.a: $(GIFDEC_OBJS)
James Zernad497fb2016-07-19 22:23:08403extras/libwebpextras.a: $(LIBWEBPEXTRA_OBJS)
skal1e7d4402016-07-20 15:43:48404imageio/libimagedec.a: $(EX_FORMAT_DEC_OBJS)
Pascal Massiminoaf1ad3e2016-09-07 05:46:31405imageio/libimageenc.a: $(EX_FORMAT_ENC_OBJS)
James Zernbdda5bd2016-07-21 01:25:00406imageio/libimageio_util.a: $(IMAGE_UTIL_OBJS)
skal5cf77922013-02-14 06:21:41407src/libwebpdecoder.a: $(LIBWEBPDECODER_OBJS)
James Zern3f8ec1c2012-04-12 19:00:43408src/libwebp.a: $(LIBWEBP_OBJS)
James Zern3f8ec1c2012-04-12 19:00:43409src/mux/libwebpmux.a: $(LIBWEBPMUX_OBJS)
Urvang Joshi23782f92012-11-19 19:21:37410src/demux/libwebpdemux.a: $(LIBWEBPDEMUX_OBJS)
Maryla9d7ff742022-08-04 15:56:59411sharpyuv/libsharpyuv.a: $(LIBSHARPYUV_OBJS)
James Zern061263a2012-05-11 23:00:57412
413%.a:
Vikas Arora23157852011-09-22 10:55:23414 $(AR) $(ARFLAGS) $@ $^
415
Urvang Joshiacd7b5a2015-05-01 23:11:49416examples/anim_diff: examples/anim_diff.o $(ANIM_UTIL_OBJS) $(GIFDEC_OBJS)
Yannis Guyonb911fbc2018-10-09 15:10:31417examples/anim_dump: examples/anim_dump.o $(ANIM_UTIL_OBJS) $(GIFDEC_OBJS)
Pascal Massiminoae2a7222016-05-31 04:45:38418examples/cwebp: examples/cwebp.o
James Zern061263a2012-05-11 23:00:57419examples/dwebp: examples/dwebp.o
Urvang Joshid1c4ffa2015-01-13 23:43:31420examples/gif2webp: examples/gif2webp.o $(GIFDEC_OBJS)
James Zern061263a2012-05-11 23:00:57421examples/vwebp: examples/vwebp.o
422examples/webpmux: examples/webpmux.o
Pascal Massimino03f40952016-12-02 10:44:17423examples/img2webp: examples/img2webp.o
Pascal Massimino274daf52017-03-14 09:00:43424examples/webpinfo: examples/webpinfo.o
James Zern061263a2012-05-11 23:00:57425
Urvang Joshiacd7b5a2015-05-01 23:11:49426examples/anim_diff: examples/libanim_util.a examples/libgifdec.a
James Zernebee57f2016-07-21 23:10:05427examples/anim_diff: src/demux/libwebpdemux.a examples/libexample_util.a
James Zernbdda5bd2016-07-21 01:25:00428examples/anim_diff: imageio/libimageio_util.a src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59429examples/anim_diff: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18430examples/anim_diff: override EXTRA_LIBS += $(GIF_LIBS)
Urvang Joshiacd7b5a2015-05-01 23:11:49431examples/anim_diff: EXTRA_FLAGS += -DWEBP_HAVE_GIF
Yannis Guyonb911fbc2018-10-09 15:10:31432examples/anim_dump: examples/libanim_util.a examples/libgifdec.a
Pascal Massiminof66f94e2017-08-28 14:03:40433examples/anim_dump: src/demux/libwebpdemux.a
434examples/anim_dump: examples/libexample_util.a
435examples/anim_dump: imageio/libimageio_util.a
436examples/anim_dump: imageio/libimageenc.a
437examples/anim_dump: src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59438examples/anim_dump: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18439examples/anim_dump: override EXTRA_LIBS += $(GIF_LIBS) $(DWEBP_LIBS)
Pascal Massimino485cac12016-08-17 19:37:53440examples/cwebp: examples/libexample_util.a
441examples/cwebp: imageio/libimagedec.a
Pascal Massimino641cedc2017-03-02 16:45:42442examples/cwebp: src/demux/libwebpdemux.a
Pascal Massimino485cac12016-08-17 19:37:53443examples/cwebp: imageio/libimageio_util.a
444examples/cwebp: src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59445examples/cwebp: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18446examples/cwebp: override EXTRA_LIBS += $(CWEBP_LIBS)
Pascal Massimino485cac12016-08-17 19:37:53447examples/dwebp: examples/libexample_util.a
448examples/dwebp: imageio/libimagedec.a
Pascal Massimino641cedc2017-03-02 16:45:42449examples/dwebp: src/demux/libwebpdemux.a
Pascal Massiminoaf1ad3e2016-09-07 05:46:31450examples/dwebp: imageio/libimageenc.a
Pascal Massimino485cac12016-08-17 19:37:53451examples/dwebp: imageio/libimageio_util.a
452examples/dwebp: src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59453examples/dwebp: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18454examples/dwebp: override EXTRA_LIBS += $(DWEBP_LIBS)
James Zernebee57f2016-07-21 23:10:05455examples/gif2webp: examples/libexample_util.a imageio/libimageio_util.a
James Zernbdda5bd2016-07-21 01:25:00456examples/gif2webp: examples/libgifdec.a src/mux/libwebpmux.a src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59457examples/gif2webp: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18458examples/gif2webp: override EXTRA_LIBS += $(GIF_LIBS)
Pascal Massimino79ff0342013-09-12 11:03:51459examples/gif2webp: EXTRA_FLAGS += -DWEBP_HAVE_GIF
James Zernebee57f2016-07-21 23:10:05460examples/vwebp: examples/libexample_util.a src/demux/libwebpdemux.a
James Zernbdda5bd2016-07-21 01:25:00461examples/vwebp: imageio/libimageio_util.a src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59462examples/vwebp: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18463examples/vwebp: override EXTRA_LIBS += $(GL_LIBS)
Pascal Massimino79ff0342013-09-12 11:03:51464examples/vwebp: EXTRA_FLAGS += -DWEBP_HAVE_GL
James Zernebee57f2016-07-21 23:10:05465examples/webpmux: examples/libexample_util.a imageio/libimageio_util.a
James Zernbdda5bd2016-07-21 01:25:00466examples/webpmux: src/mux/libwebpmux.a src/libwebpdecoder.a
Pascal Massimino03f40952016-12-02 10:44:17467examples/img2webp: examples/libexample_util.a imageio/libimageio_util.a
468examples/img2webp: imageio/libimagedec.a
Pascal Massimino641cedc2017-03-02 16:45:42469examples/img2webp: src/demux/libwebpdemux.a
Maryla9d7ff742022-08-04 15:56:59470examples/img2webp: src/mux/libwebpmux.a
471examples/img2webp: src/libwebp.a
472examples/img2webp: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18473examples/img2webp: override EXTRA_LIBS += $(CWEBP_LIBS)
Pascal Massimino274daf52017-03-14 09:00:43474examples/webpinfo: examples/libexample_util.a imageio/libimageio_util.a
475examples/webpinfo: src/libwebpdecoder.a
Vikas Arorae1947a92011-11-30 12:16:45476
skal1e7d4402016-07-20 15:43:48477extras/get_disto: extras/get_disto.o
Pascal Massimino641cedc2017-03-02 16:45:42478extras/get_disto: imageio/libimagedec.a
479extras/get_disto: src/demux/libwebpdemux.a
480extras/get_disto: imageio/libimageio_util.a
481extras/get_disto: src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59482extras/get_disto: sharpyuv/libsharpyuv.a
James Zern312f74d2019-07-02 02:49:18483extras/get_disto: override EXTRA_LIBS += $(CWEBP_LIBS)
skal1e7d4402016-07-20 15:43:48484
skale8ab6a82016-07-20 19:55:05485extras/webp_quality: extras/webp_quality.o
James Zernbdda5bd2016-07-21 01:25:00486extras/webp_quality: imageio/libimageio_util.a
Pascal Massiminoeb98d8d2016-07-22 07:02:17487extras/webp_quality: $(EXTRA_LIB) src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59488extras/webp_quality: sharpyuv/libsharpyuv.a
skale8ab6a82016-07-20 19:55:05489
Pascal Massimino6524fcd2017-01-30 12:33:35490extras/vwebp_sdl: extras/vwebp_sdl.o
491extras/vwebp_sdl: extras/webp_to_sdl.o
492extras/vwebp_sdl: imageio/libimageio_util.a
493extras/vwebp_sdl: src/libwebp.a
Maryla9d7ff742022-08-04 15:56:59494extras/vwebp_sdl: sharpyuv/libsharpyuv.a
Pascal Massimino86359732017-09-04 04:25:31495extras/vwebp_sdl: EXTRA_FLAGS += -DWEBP_HAVE_SDL $(SDL_FLAGS)
James Zern312f74d2019-07-02 02:49:18496extras/vwebp_sdl: override EXTRA_LIBS += $(SDL_LIBS)
Pascal Massimino6524fcd2017-01-30 12:33:35497
skale8ab6a82016-07-20 19:55:05498$(OUT_EXAMPLES) $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES):
James Zern87d58ce2011-08-26 00:25:11499 $(CC) -o $@ $^ $(LDFLAGS)
Pascal Massiminof7a95492011-02-20 19:11:55500
James Zernc9e037a2011-08-26 01:33:28501dist: DESTDIR := dist
James Zern701b9e22013-03-18 00:14:40502dist: OUT_EXAMPLES += $(EXTRA_EXAMPLES)
James Zernc9e037a2011-08-26 01:33:28503dist: all
James Zern05bd8e62011-08-30 20:44:03504 $(INSTALL) -m755 -d $(DESTDIR)/include/webp \
Maryla9d7ff742022-08-04 15:56:59505 $(DESTDIR)/include/webp/sharpyuv \
506 $(DESTDIR)/bin $(DESTDIR)/doc $(DESTDIR)/lib
James Zern5009b222013-12-07 04:40:12507 $(INSTALL) -m755 -s $(OUT_EXAMPLES) $(DESTDIR)/bin
James Zern8c1cc6b2012-07-16 22:45:30508 $(INSTALL) -m644 $(HDRS_INSTALLED) $(DESTDIR)/include/webp
Maryla9d7ff742022-08-04 15:56:59509 $(INSTALL) -m644 $(SHARPYUV_HDRS_INSTALLED) $(DESTDIR)/include/webp/sharpyuv
James Zernc9e037a2011-08-26 01:33:28510 $(INSTALL) -m644 src/libwebp.a $(DESTDIR)/lib
James Zern701b9e22013-03-18 00:14:40511 $(INSTALL) -m644 src/demux/libwebpdemux.a $(DESTDIR)/lib
512 $(INSTALL) -m644 src/mux/libwebpmux.a $(DESTDIR)/lib
Maryla9d7ff742022-08-04 15:56:59513 $(INSTALL) -m644 sharpyuv/libsharpyuv.a $(DESTDIR)/lib
James Zern05bd8e62011-08-30 20:44:03514 umask 022; \
Pascal Massimino03f40952016-12-02 10:44:17515 for m in man/[cdv]webp.1 man/gif2webp.1 man/webpmux.1 \
hui sud63e6f42017-05-09 23:12:34516 man/img2webp.1 man/webpinfo.1; do \
James Zern05bd8e62011-08-30 20:44:03517 basenam=$$(basename $$m .1); \
James Zernb892b8b2018-04-03 19:55:01518 $(GROFF) -t -e -man -T ascii $$m \
Vikas Arorae1947a92011-11-30 12:16:45519 | $(COL) -bx >$(DESTDIR)/doc/$${basenam}.txt; \
520 $(GROFF) -t -e -man -T html $$m \
521 | $(COL) -bx >$(DESTDIR)/doc/$${basenam}.html; \
James Zern05bd8e62011-08-30 20:44:03522 done
James Zernc9e037a2011-08-26 01:33:28523
Pascal Massiminof7a95492011-02-20 19:11:55524clean:
James Zernc274dc92012-01-25 01:54:49525 $(RM) $(OUTPUT) *~ \
526 examples/*.o examples/*~ \
James Zernad497fb2016-07-19 22:23:08527 extras/*.o extras/*~ \
James Zernc379b552016-07-19 23:02:55528 imageio/*.o imageio/*~ \
James Zern82788252022-07-05 17:41:14529 sharpyuv/*.o sharpyuv/*~ \
Pascal Massiminof7a95492011-02-20 19:11:55530 src/dec/*.o src/dec/*~ \
Urvang Joshi23782f92012-11-19 19:21:37531 src/demux/*.o src/demux/*~ \
Pascal Massiminoe06ac082011-09-02 21:30:08532 src/dsp/*.o src/dsp/*~ \
James Zernc274dc92012-01-25 01:54:49533 src/enc/*.o src/enc/*~ \
Vikas Arora23157852011-09-22 10:55:23534 src/mux/*.o src/mux/*~ \
James Zernc274dc92012-01-25 01:54:49535 src/utils/*.o src/utils/*~ \
Pascal Massiminob8375ab2012-01-06 06:38:05536 src/webp/*~ man/*~ doc/*~ swig/*~ \
Pascal Massimino261abb82011-03-29 17:46:36537
James Zern9e00a492015-05-02 18:15:34538.PHONY: all clean dist ex
James Zern87d58ce2011-08-26 00:25:11539.SUFFIXES: