# This makefile is a simpler alternative to the autoconf-based build
# system, for simple local building of the libraries and tools.
# It will not install the libraries system-wide, but just create the 'cwebp'
# and 'dwebp' tools in the examples/ directory, along with the static
# libraries 'src/libwebp.a', 'src/libwebpdecoder.a', 'src/mux/libwebpmux.a',
# 'src/demux/libwebpdemux.a' and 'extras/libwebpextras.a'.
#
# To build the library and examples, use:
#    make -f makefile.unix
# from this top directory.

#### Customizable part ####

# These flags assume you have libpng, libjpeg, libtiff and libgif installed. If
# not, either follow the install instructions below or just comment out the next
# four lines.
EXTRA_FLAGS= -DWEBP_HAVE_PNG -DWEBP_HAVE_JPEG -DWEBP_HAVE_TIFF
DWEBP_LIBS= -lpng -lz
CWEBP_LIBS= $(DWEBP_LIBS) -ljpeg -ltiff
GIF_LIBS = -lgif

ifeq ($(strip $(shell uname)), Darwin)
  # Work around a problem linking tables marked as common symbols,
  # cf., src/enc/yuv.[hc]
  # Failure observed with: gcc 4.2.1 and 4.0.1.
  EXTRA_FLAGS += -fno-common
  EXTRA_FLAGS += -DHAVE_GLUT_GLUT_H
  EXTRA_FLAGS += -I/opt/local/include
  EXTRA_LIBS  += -L/opt/local/lib
  GL_LIBS = -framework GLUT -framework OpenGL
else
  GL_LIBS = -lglut -lGL
endif


# To install libraries on Mac OS X:
# 1. Install MacPorts (http://www.macports.org/install.php)
# 2. Run "sudo port install jpeg"
# 3. Run "sudo port install libpng"
# 4. Run "sudo port install tiff"
# 5. Run "sudo port install giflib"

# To install libraries on Linux:
# 1. Run "sudo apt-get install libjpeg62-dev"
# 2. Run "sudo apt-get install libpng12-dev"
# 3. Run "sudo apt-get install libtiff4-dev"
# 4. Run "sudo apt-get install libgif-dev"

# Uncomment for build for 32bit platform
# Alternatively, you can just use the command
# 'make -f makefile.unix EXTRA_FLAGS=-m32' to that effect.
# EXTRA_FLAGS += -m32

# Extra flags to enable experimental features and code
# EXTRA_FLAGS += -DWEBP_EXPERIMENTAL_FEATURES

# Extra flags to enable byte swap for 16 bit colorspaces.
# EXTRA_FLAGS += -DWEBP_SWAP_16BIT_CSP

# Extra flags to enable multi-threading
EXTRA_FLAGS += -DWEBP_USE_THREAD
EXTRA_LIBS += -lpthread

# Control symbol visibility. Comment out if your compiler doesn't support it.
EXTRA_FLAGS += -fvisibility=hidden

# Extra flags to emulate C89 strictness with the full ANSI
EXTRA_FLAGS += -Wextra -Wold-style-definition
EXTRA_FLAGS += -Wmissing-prototypes
EXTRA_FLAGS += -Wmissing-declarations
EXTRA_FLAGS += -Wdeclaration-after-statement
EXTRA_FLAGS += -Wshadow
EXTRA_FLAGS += -Wformat-security -Wformat-nonliteral
# EXTRA_FLAGS += -Wvla

# SSE4.1-specific flags:
ifeq ($(HAVE_SSE41), 1)
EXTRA_FLAGS += -DWEBP_HAVE_SSE41
src/dsp/%_sse41.o: EXTRA_FLAGS += -msse4.1
endif

# AVX2-specific flags:
ifeq ($(HAVE_AVX2), 1)
EXTRA_FLAGS += -DWEBP_HAVE_AVX2
src/dsp/%_avx2.o: EXTRA_FLAGS += -mavx2
endif

# NEON-specific flags:
# EXTRA_FLAGS += -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8
# -> seems to make the overall lib slower: -fno-split-wide-types

# MIPS (MSA) 32-bit build specific flags for mips32r5 (p5600):
# EXTRA_FLAGS += -mips32r5 -mabi=32 -mtune=p5600 -mmsa -mfp64
# EXTRA_FLAGS += -msched-weight -mload-store-pairs

# MIPS (MSA) 64-bit build specific flags for mips64r6 (i6400):
# EXTRA_FLAGS += -mips64r6 -mabi=64 -mtune=i6400 -mmsa -mfp64
# EXTRA_FLAGS += -msched-weight -mload-store-pairs

#### Nothing should normally be changed below this line ####

AR = ar
ARFLAGS = r
CPPFLAGS = -Isrc/ -Wall
CFLAGS = -O3 -DNDEBUG $(EXTRA_FLAGS)
CC = gcc
INSTALL = install
GROFF = /usr/bin/groff
COL = /usr/bin/col
LDFLAGS = $(EXTRA_LIBS) $(EXTRA_FLAGS) -lm

ANIM_UTIL_OBJS = \
    examples/anim_util.o \

DEC_OBJS = \
    src/dec/alpha_dec.o \
    src/dec/buffer_dec.o \
    src/dec/frame_dec.o \
    src/dec/idec_dec.o \
    src/dec/io_dec.o \
    src/dec/quant_dec.o \
    src/dec/tree_dec.o \
    src/dec/vp8_dec.o \
    src/dec/vp8l_dec.o \
    src/dec/webp_dec.o \

DEMUX_OBJS = \
    src/demux/anim_decode.o \
    src/demux/demux.o \

DSP_DEC_OBJS = \
    src/dsp/alpha_processing.o \
    src/dsp/alpha_processing_mips_dsp_r2.o \
    src/dsp/alpha_processing_neon.o \
    src/dsp/alpha_processing_sse2.o \
    src/dsp/alpha_processing_sse41.o \
    src/dsp/cpu.o \
    src/dsp/dec.o \
    src/dsp/dec_clip_tables.o \
    src/dsp/dec_mips32.o \
    src/dsp/dec_mips_dsp_r2.o \
    src/dsp/dec_msa.o \
    src/dsp/dec_neon.o \
    src/dsp/dec_sse2.o \
    src/dsp/dec_sse41.o \
    src/dsp/filters.o \
    src/dsp/filters_mips_dsp_r2.o \
    src/dsp/filters_msa.o \
    src/dsp/filters_neon.o \
    src/dsp/filters_sse2.o \
    src/dsp/lossless.o \
    src/dsp/lossless_mips_dsp_r2.o \
    src/dsp/lossless_msa.o \
    src/dsp/lossless_neon.o \
    src/dsp/lossless_sse2.o \
    src/dsp/rescaler.o \
    src/dsp/rescaler_mips32.o \
    src/dsp/rescaler_mips_dsp_r2.o \
    src/dsp/rescaler_msa.o \
    src/dsp/rescaler_neon.o \
    src/dsp/rescaler_sse2.o \
    src/dsp/upsampling.o \
    src/dsp/upsampling_mips_dsp_r2.o \
    src/dsp/upsampling_msa.o \
    src/dsp/upsampling_neon.o \
    src/dsp/upsampling_sse2.o \
    src/dsp/yuv.o \
    src/dsp/yuv_mips32.o \
    src/dsp/yuv_mips_dsp_r2.o \
    src/dsp/yuv_sse2.o \

DSP_ENC_OBJS = \
    src/dsp/argb.o \
    src/dsp/argb_mips_dsp_r2.o \
    src/dsp/argb_sse2.o \
    src/dsp/cost.o \
    src/dsp/cost_mips32.o \
    src/dsp/cost_mips_dsp_r2.o \
    src/dsp/cost_sse2.o \
    src/dsp/enc.o \
    src/dsp/enc_avx2.o \
    src/dsp/enc_mips32.o \
    src/dsp/enc_mips_dsp_r2.o \
    src/dsp/enc_msa.o \
    src/dsp/enc_neon.o \
    src/dsp/enc_sse2.o \
    src/dsp/enc_sse41.o \
    src/dsp/lossless_enc.o \
    src/dsp/lossless_enc_mips32.o \
    src/dsp/lossless_enc_mips_dsp_r2.o \
    src/dsp/lossless_enc_msa.o \
    src/dsp/lossless_enc_neon.o \
    src/dsp/lossless_enc_sse2.o \
    src/dsp/lossless_enc_sse41.o \

ENC_OBJS = \
    src/enc/alpha_enc.o \
    src/enc/analysis_enc.o \
    src/enc/backward_references_enc.o \
    src/enc/config_enc.o \
    src/enc/cost_enc.o \
    src/enc/delta_palettization_enc.o \
    src/enc/filter_enc.o \
    src/enc/frame_enc.o \
    src/enc/histogram_enc.o \
    src/enc/iterator_enc.o \
    src/enc/near_lossless_enc.o \
    src/enc/picture_enc.o \
    src/enc/picture_csp_enc.o \
    src/enc/picture_psnr_enc.o \
    src/enc/picture_rescale_enc.o \
    src/enc/picture_tools_enc.o \
    src/enc/predictor_enc.o \
    src/enc/quant_enc.o \
    src/enc/syntax_enc.o \
    src/enc/token_enc.o \
    src/enc/tree_enc.o \
    src/enc/vp8l_enc.o \
    src/enc/webp_enc.o \

EX_FORMAT_DEC_OBJS = \
    imageio/image_dec.o \
    imageio/jpegdec.o \
    imageio/metadata.o \
    imageio/pngdec.o \
    imageio/tiffdec.o \
    imageio/webpdec.o \

EX_FORMAT_ENC_OBJS = \
    imageio/image_enc.o \

EX_UTIL_OBJS = \
    examples/example_util.o \

GIFDEC_OBJS = \
    examples/gifdec.o \

IMAGE_UTIL_OBJS = \
    imageio/imageio_util.o \

MUX_OBJS = \
    src/mux/anim_encode.o \
    src/mux/muxedit.o \
    src/mux/muxinternal.o \
    src/mux/muxread.o \

UTILS_DEC_OBJS = \
    src/utils/bit_reader_utils.o \
    src/utils/color_cache_utils.o \
    src/utils/filters_utils.o \
    src/utils/huffman_utils.o \
    src/utils/quant_levels_dec_utils.o \
    src/utils/random_utils.o \
    src/utils/rescaler_utils.o \
    src/utils/thread_utils.o \
    src/utils/utils.o \

UTILS_ENC_OBJS = \
    src/utils/bit_writer_utils.o \
    src/utils/huffman_encode_utils.o \
    src/utils/quant_levels_utils.o \

EXTRA_OBJS = \
    extras/extras.o \
    extras/quality_estimate.o \

LIBWEBPDECODER_OBJS = $(DEC_OBJS) $(DSP_DEC_OBJS) $(UTILS_DEC_OBJS)
LIBWEBP_OBJS = $(LIBWEBPDECODER_OBJS) $(ENC_OBJS) $(DSP_ENC_OBJS) \
               $(UTILS_ENC_OBJS)
LIBWEBPMUX_OBJS = $(MUX_OBJS)
LIBWEBPDEMUX_OBJS = $(DEMUX_OBJS)
LIBWEBPEXTRA_OBJS = $(EXTRA_OBJS)

HDRS_INSTALLED = \
    src/webp/decode.h \
    src/webp/demux.h \
    src/webp/encode.h \
    src/webp/mux.h \
    src/webp/mux_types.h \
    src/webp/types.h \

HDRS = \
    src/dec/alphai_dec.h \
    src/dec/common_dec.h \
    src/dec/vp8_dec.h \
    src/dec/vp8i_dec.h \
    src/dec/vp8li_dec.h \
    src/dec/webpi_dec.h \
    src/dsp/common_sse2.h \
    src/dsp/dsp.h \
    src/dsp/lossless.h \
    src/dsp/lossless_common.h \
    src/dsp/mips_macro.h \
    src/dsp/msa_macro.h \
    src/dsp/neon.h \
    src/dsp/yuv.h \
    src/enc/backward_references_enc.h \
    src/enc/cost_enc.h \
    src/enc/delta_palettization_enc.h \
    src/enc/histogram_enc.h \
    src/enc/vp8i_enc.h \
    src/enc/vp8li_enc.h \
    src/mux/animi.h \
    src/mux/muxi.h \
    src/utils/bit_reader_utils.h \
    src/utils/bit_reader_inl_utils.h \
    src/utils/bit_writer_utils.h \
    src/utils/color_cache_utils.h \
    src/utils/endian_inl_utils.h \
    src/utils/filters_utils.h \
    src/utils/huffman_utils.h \
    src/utils/huffman_encode_utils.h \
    src/utils/quant_levels_utils.h \
    src/utils/quant_levels_dec_utils.h \
    src/utils/random_utils.h \
    src/utils/rescaler_utils.h \
    src/utils/thread_utils.h \
    src/utils/utils.h \
    src/webp/format_constants.h \
    $(HDRS_INSTALLED) \

OUT_LIBS = examples/libexample_util.a
OUT_LIBS += imageio/libimageio_util.a
OUT_LIBS += imageio/libimagedec.a
OUT_LIBS += imageio/libimageenc.a
OUT_LIBS += src/libwebpdecoder.a
OUT_LIBS += src/libwebp.a
EXTRA_LIB = extras/libwebpextras.a
OUT_EXAMPLES = examples/cwebp examples/dwebp
EXTRA_EXAMPLES = examples/gif2webp examples/vwebp examples/webpmux \
                 examples/anim_diff examples/img2webp
OTHER_EXAMPLES = extras/get_disto extras/webp_quality

OUTPUT = $(OUT_LIBS) $(OUT_EXAMPLES)
ifeq ($(MAKECMDGOALS),clean)
  OUTPUT += $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES)
  OUTPUT += src/demux/libwebpdemux.a src/mux/libwebpmux.a $(EXTRA_LIB)
  OUTPUT += examples/libgifdec.a examples/libanim_util.a
endif

ex: $(OUT_EXAMPLES)
all: ex $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES)
extras: $(EXTRA_LIB)

$(EX_FORMAT_DEC_OBJS): %.o: %.h

# special dependencies:
#   tree_dec.c/vp8_dec.c/bit_reader_utils.c <->
#     bit_reader_inl_utils.h, endian_inl_utils.h
#   bit_writer_utils.c <-> endian_inl_utils.h
src/dec/tree_dec.o: src/utils/bit_reader_inl_utils.h
src/dec/tree_dec.o: src/utils/endian_inl_utils.h
src/dec/vp8_dec.o: src/utils/bit_reader_inl_utils.h src/utils/endian_inl_utils.h
src/utils/bit_reader_utils.o: src/utils/bit_reader_inl_utils.h
src/utils/bit_reader_utils.o: src/utils/endian_inl_utils.h
src/utils/bit_writer_utils.o: src/utils/endian_inl_utils.h

%.o: %.c $(HDRS)
	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@

examples/libanim_util.a: $(ANIM_UTIL_OBJS)
examples/libexample_util.a: $(EX_UTIL_OBJS)
examples/libgifdec.a: $(GIFDEC_OBJS)
extras/libwebpextras.a: $(LIBWEBPEXTRA_OBJS)
imageio/libimagedec.a: $(EX_FORMAT_DEC_OBJS)
imageio/libimageenc.a: $(EX_FORMAT_ENC_OBJS)
imageio/libimageio_util.a: $(IMAGE_UTIL_OBJS)
src/libwebpdecoder.a: $(LIBWEBPDECODER_OBJS)
src/libwebp.a: $(LIBWEBP_OBJS)
src/mux/libwebpmux.a: $(LIBWEBPMUX_OBJS)
src/demux/libwebpdemux.a: $(LIBWEBPDEMUX_OBJS)

%.a:
	$(AR) $(ARFLAGS) $@ $^

examples/anim_diff: examples/anim_diff.o $(ANIM_UTIL_OBJS) $(GIFDEC_OBJS)
examples/cwebp: examples/cwebp.o
examples/dwebp: examples/dwebp.o
examples/gif2webp: examples/gif2webp.o $(GIFDEC_OBJS)
examples/vwebp: examples/vwebp.o
examples/webpmux: examples/webpmux.o
examples/img2webp: examples/img2webp.o

examples/anim_diff: examples/libanim_util.a examples/libgifdec.a
examples/anim_diff: src/demux/libwebpdemux.a examples/libexample_util.a
examples/anim_diff: imageio/libimageio_util.a src/libwebp.a
examples/anim_diff: EXTRA_LIBS += $(GIF_LIBS)
examples/anim_diff: EXTRA_FLAGS += -DWEBP_HAVE_GIF
examples/cwebp: examples/libexample_util.a
examples/cwebp: imageio/libimagedec.a
examples/cwebp: imageio/libimageio_util.a
examples/cwebp: src/libwebp.a
examples/cwebp: EXTRA_LIBS += $(CWEBP_LIBS)
examples/dwebp: examples/libexample_util.a
examples/dwebp: imageio/libimagedec.a
examples/dwebp: imageio/libimageenc.a
examples/dwebp: imageio/libimageio_util.a
examples/dwebp: src/libwebp.a
examples/dwebp: EXTRA_LIBS += $(DWEBP_LIBS)
examples/gif2webp: examples/libexample_util.a imageio/libimageio_util.a
examples/gif2webp: examples/libgifdec.a src/mux/libwebpmux.a src/libwebp.a
examples/gif2webp: EXTRA_LIBS += $(GIF_LIBS)
examples/gif2webp: EXTRA_FLAGS += -DWEBP_HAVE_GIF
examples/vwebp: examples/libexample_util.a src/demux/libwebpdemux.a
examples/vwebp: imageio/libimageio_util.a src/libwebp.a
examples/vwebp: EXTRA_LIBS += $(GL_LIBS)
examples/vwebp: EXTRA_FLAGS += -DWEBP_HAVE_GL
examples/webpmux: examples/libexample_util.a imageio/libimageio_util.a
examples/webpmux: src/mux/libwebpmux.a src/libwebpdecoder.a
examples/img2webp: examples/libexample_util.a imageio/libimageio_util.a
examples/img2webp: imageio/libimagedec.a
examples/img2webp: src/mux/libwebpmux.a src/libwebp.a
examples/img2webp: EXTRA_LIBS += $(CWEBP_LIBS)

extras/get_disto: extras/get_disto.o
extras/get_disto: imageio/libimagedec.a imageio/libimageio_util.a src/libwebp.a
extras/get_disto: EXTRA_LIBS += $(CWEBP_LIBS)

extras/webp_quality: extras/webp_quality.o
extras/webp_quality: imageio/libimageio_util.a
extras/webp_quality: $(EXTRA_LIB) src/libwebp.a

$(OUT_EXAMPLES) $(EXTRA_EXAMPLES) $(OTHER_EXAMPLES):
	$(CC) -o $@ $^ $(LDFLAGS)

dist: DESTDIR := dist
dist: OUT_EXAMPLES += $(EXTRA_EXAMPLES)
dist: all
	$(INSTALL) -m755 -d $(DESTDIR)/include/webp \
	           $(DESTDIR)/bin $(DESTDIR)/doc $(DESTDIR)/lib
	$(INSTALL) -m755 -s $(OUT_EXAMPLES) $(DESTDIR)/bin
	$(INSTALL) -m644 $(HDRS_INSTALLED) $(DESTDIR)/include/webp
	$(INSTALL) -m644 src/libwebp.a $(DESTDIR)/lib
	$(INSTALL) -m644 src/demux/libwebpdemux.a $(DESTDIR)/lib
	$(INSTALL) -m644 src/mux/libwebpmux.a $(DESTDIR)/lib
	umask 022; \
	for m in man/[cdv]webp.1 man/gif2webp.1 man/webpmux.1 \
                 man/img2webp.1; do \
	  basenam=$$(basename $$m .1); \
	  $(GROFF) -t -e -man -T utf8 $$m \
	    | $(COL) -bx >$(DESTDIR)/doc/$${basenam}.txt; \
	  $(GROFF) -t -e -man -T html $$m \
	    | $(COL) -bx >$(DESTDIR)/doc/$${basenam}.html; \
	done

clean:
	$(RM) $(OUTPUT) *~ \
              examples/*.o examples/*~ \
              extras/*.o extras/*~ \
              imageio/*.o imageio/*~ \
              src/dec/*.o src/dec/*~ \
              src/demux/*.o src/demux/*~ \
              src/dsp/*.o src/dsp/*~ \
              src/enc/*.o src/enc/*~ \
              src/mux/*.o src/mux/*~ \
              src/utils/*.o src/utils/*~ \
              src/webp/*~ man/*~ doc/*~ swig/*~ \

.PHONY: all clean dist ex
.SUFFIXES:
