2011-02-19 08:33:46 +01:00
|
|
|
#
|
|
|
|
# Stem for static libs and DLLs
|
|
|
|
#
|
2013-03-15 20:15:59 +01:00
|
|
|
LIBWEBPDECODER_BASENAME = libwebpdecoder
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP_BASENAME = libwebp
|
|
|
|
LIBWEBPMUX_BASENAME = libwebpmux
|
2012-11-19 20:21:37 +01:00
|
|
|
LIBWEBPDEMUX_BASENAME = libwebpdemux
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBSHARPYUV_BASENAME = libsharpyuv
|
2011-02-19 08:33:46 +01:00
|
|
|
|
|
|
|
!IFNDEF ARCH
|
2011-06-01 03:58:01 +02:00
|
|
|
!IF ! [ cl 2>&1 | find "x86" > NUL ]
|
|
|
|
ARCH = x86
|
|
|
|
!ELSE IF ! [ cl 2>&1 | find "x64" > NUL ]
|
|
|
|
ARCH = x64
|
2024-01-31 23:10:35 +01:00
|
|
|
!ELSE IF ! [ cl 2>&1 | find "ARM64" > NUL ]
|
|
|
|
ARCH = ARM64
|
2015-01-10 04:09:14 +01:00
|
|
|
!ELSE IF ! [ cl 2>&1 | find "ARM" > NUL ]
|
|
|
|
ARCH = ARM
|
2011-05-26 16:50:46 +02:00
|
|
|
!ELSE
|
2011-06-01 03:58:01 +02:00
|
|
|
!ERROR Unable to auto-detect toolchain architecture! \
|
|
|
|
If cl.exe is in your PATH rerun nmake with ARCH=<arch>.
|
2011-02-19 08:33:46 +01:00
|
|
|
!ENDIF
|
2011-05-26 16:50:46 +02:00
|
|
|
!ENDIF
|
|
|
|
|
2011-06-01 03:58:01 +02:00
|
|
|
!IF "$(ARCH)" == "x86"
|
2011-05-26 16:50:46 +02:00
|
|
|
PLATFORM_LDFLAGS = /SAFESEH
|
|
|
|
!ENDIF
|
2011-02-19 08:33:46 +01:00
|
|
|
|
|
|
|
#############################################################
|
|
|
|
## Nothing more to do below this line!
|
|
|
|
|
2013-04-06 03:45:53 +02:00
|
|
|
NOLOGO = /nologo
|
|
|
|
CCNODBG = cl.exe $(NOLOGO) /O2 /DNDEBUG
|
2020-10-14 22:22:23 +02:00
|
|
|
CCDEBUG = cl.exe $(NOLOGO) /Od /Zi /D_DEBUG /RTC1
|
2017-10-07 23:15:11 +02:00
|
|
|
CFLAGS = /I. /Isrc $(NOLOGO) /W3 /EHsc /c
|
2011-08-05 03:40:03 +02:00
|
|
|
CFLAGS = $(CFLAGS) /DWIN32 /D_CRT_SECURE_NO_WARNINGS /DWIN32_LEAN_AND_MEAN
|
2022-02-20 02:00:04 +01:00
|
|
|
LDFLAGS = /LARGEADDRESSAWARE /MANIFEST:EMBED /NXCOMPAT /DYNAMICBASE
|
2011-10-04 22:46:09 +02:00
|
|
|
LDFLAGS = $(LDFLAGS) $(PLATFORM_LDFLAGS)
|
2013-04-06 03:45:53 +02:00
|
|
|
LNKDLL = link.exe /DLL $(NOLOGO)
|
|
|
|
LNKEXE = link.exe $(NOLOGO)
|
|
|
|
LNKLIB = lib.exe $(NOLOGO)
|
2017-01-20 09:07:48 +01:00
|
|
|
RCNODBG = rc.exe $(NOLOGO) /l"0x0409" # 0x409 = U.S. English
|
|
|
|
RCDEBUG = $(RCNODBG) /D_DEBUG
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2015-01-10 04:09:14 +01:00
|
|
|
!IF "$(ARCH)" == "ARM"
|
2015-11-24 05:42:25 +01:00
|
|
|
CFLAGS = $(CFLAGS) /DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP /DWEBP_USE_THREAD
|
2015-01-10 04:09:14 +01:00
|
|
|
!ELSE
|
|
|
|
CFLAGS = $(CFLAGS) /DHAVE_WINCODEC_H /DWEBP_USE_THREAD
|
|
|
|
!ENDIF
|
|
|
|
|
2011-02-19 08:33:46 +01:00
|
|
|
CFGSET = FALSE
|
|
|
|
!IF "$(OBJDIR)" == ""
|
|
|
|
OUTDIR = ..\obj\
|
|
|
|
!ELSE
|
|
|
|
OUTDIR = $(OBJDIR)
|
|
|
|
!ENDIF
|
|
|
|
|
|
|
|
##############################################################
|
|
|
|
# Runtime library configuration
|
|
|
|
!IF "$(RTLIBCFG)" == "static"
|
|
|
|
RTLIB = /MT
|
|
|
|
RTLIBD = /MTd
|
2014-10-23 16:57:34 +02:00
|
|
|
!ELSE IF "$(RTLIBCFG)" == "legacy"
|
|
|
|
RTLIBCFG = static
|
|
|
|
RTLIB = /MT
|
|
|
|
RTLIBD = /MTd
|
|
|
|
CFLAGS = $(CFLAGS) /GS- /arch:IA32
|
2011-02-19 08:33:46 +01:00
|
|
|
!ELSE
|
|
|
|
RTLIB = /MD
|
|
|
|
RTLIBD = /MDd
|
|
|
|
!ENDIF
|
|
|
|
DIRBASE = $(OUTDIR)\$(CFG)\$(ARCH)
|
|
|
|
DIROBJ = $(DIRBASE)\obj
|
|
|
|
DIRLIB = $(DIRBASE)\lib
|
|
|
|
DIRINC = $(DIRBASE)\include
|
|
|
|
DIRBIN = $(DIRBASE)\bin
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP_PDBNAME = $(DIROBJ)\$(LIBWEBP_BASENAME).pdb
|
2011-10-04 22:39:39 +02:00
|
|
|
OUTPUT_DIRS = $(DIRBIN) $(DIRINC) $(DIRLIB) \
|
|
|
|
$(DIROBJ)\dec \
|
2012-11-19 20:21:37 +01:00
|
|
|
$(DIROBJ)\demux \
|
2011-10-04 22:39:39 +02:00
|
|
|
$(DIROBJ)\dsp \
|
|
|
|
$(DIROBJ)\enc \
|
|
|
|
$(DIROBJ)\examples \
|
2017-01-19 02:57:17 +01:00
|
|
|
$(DIROBJ)\extras \
|
2016-07-20 01:02:55 +02:00
|
|
|
$(DIROBJ)\imageio \
|
2011-10-04 22:39:39 +02:00
|
|
|
$(DIROBJ)\mux \
|
2022-03-01 12:04:52 +01:00
|
|
|
$(DIROBJ)\sharpyuv \
|
2011-10-04 22:39:39 +02:00
|
|
|
$(DIROBJ)\utils \
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2011-07-15 23:53:03 +02:00
|
|
|
# Target configuration
|
2011-02-19 08:33:46 +01:00
|
|
|
!IF "$(CFG)" == "release-static"
|
2011-07-15 23:53:03 +02:00
|
|
|
CC = $(CCNODBG)
|
|
|
|
STATICLIBBUILD = TRUE
|
|
|
|
!ELSE IF "$(CFG)" == "debug-static"
|
|
|
|
CC = $(CCDEBUG)
|
2012-02-21 22:44:39 +01:00
|
|
|
RTLIB = $(RTLIBD)
|
2011-07-15 23:53:03 +02:00
|
|
|
STATICLIBBUILD = TRUE
|
2013-03-15 20:15:59 +01:00
|
|
|
LIBWEBPDECODER_BASENAME = $(LIBWEBPDECODER_BASENAME)_debug
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP_BASENAME = $(LIBWEBP_BASENAME)_debug
|
|
|
|
LIBWEBPMUX_BASENAME = $(LIBWEBPMUX_BASENAME)_debug
|
2012-11-19 20:21:37 +01:00
|
|
|
LIBWEBPDEMUX_BASENAME = $(LIBWEBPDEMUX_BASENAME)_debug
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBSHARPYUV_BASENAME = $(LIBSHARPYUV_BASENAME)_debug
|
2011-07-15 23:53:03 +02:00
|
|
|
!ELSE IF "$(CFG)" == "release-dynamic"
|
|
|
|
CC = $(CCNODBG)
|
2017-01-20 09:07:48 +01:00
|
|
|
RC = $(RCNODBG)
|
2011-07-15 23:53:03 +02:00
|
|
|
DLLBUILD = TRUE
|
|
|
|
!ELSE IF "$(CFG)" == "debug-dynamic"
|
|
|
|
CC = $(CCDEBUG)
|
2017-01-20 09:07:48 +01:00
|
|
|
RC = $(RCDEBUG)
|
2012-02-21 22:44:39 +01:00
|
|
|
RTLIB = $(RTLIBD)
|
2011-07-15 23:53:03 +02:00
|
|
|
DLLBUILD = TRUE
|
2013-03-15 20:15:59 +01:00
|
|
|
LIBWEBPDECODER_BASENAME = $(LIBWEBPDECODER_BASENAME)_debug
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP_BASENAME = $(LIBWEBP_BASENAME)_debug
|
|
|
|
LIBWEBPMUX_BASENAME = $(LIBWEBPMUX_BASENAME)_debug
|
2012-11-19 20:21:37 +01:00
|
|
|
LIBWEBPDEMUX_BASENAME = $(LIBWEBPDEMUX_BASENAME)_debug
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBSHARPYUV_BASENAME = $(LIBSHARPYUV_BASENAME)_debug
|
2011-02-19 08:33:46 +01:00
|
|
|
!ENDIF
|
|
|
|
|
2011-07-15 23:53:03 +02:00
|
|
|
!IF "$(STATICLIBBUILD)" == "TRUE"
|
|
|
|
CC = $(CC) $(RTLIB)
|
|
|
|
CFGSET = TRUE
|
2013-03-15 20:15:59 +01:00
|
|
|
LIBWEBPDECODER = $(DIRLIB)\$(LIBWEBPDECODER_BASENAME).lib
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP = $(DIRLIB)\$(LIBWEBP_BASENAME).lib
|
|
|
|
LIBWEBPMUX = $(DIRLIB)\$(LIBWEBPMUX_BASENAME).lib
|
2012-11-19 20:21:37 +01:00
|
|
|
LIBWEBPDEMUX = $(DIRLIB)\$(LIBWEBPDEMUX_BASENAME).lib
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBSHARPYUV = $(DIRLIB)\$(LIBSHARPYUV_BASENAME).lib
|
2011-07-15 23:53:03 +02:00
|
|
|
!ELSE IF "$(DLLBUILD)" == "TRUE"
|
2022-08-12 04:33:37 +02:00
|
|
|
CC = $(CC) /I$(DIROBJ) $(RTLIB) /DWEBP_DLL
|
2013-03-22 03:30:34 +01:00
|
|
|
LIBWEBPDECODER = $(DIRLIB)\$(LIBWEBPDECODER_BASENAME)_dll.lib
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP = $(DIRLIB)\$(LIBWEBP_BASENAME)_dll.lib
|
|
|
|
LIBWEBPMUX = $(DIRLIB)\$(LIBWEBPMUX_BASENAME)_dll.lib
|
2013-05-10 08:47:30 +02:00
|
|
|
LIBWEBPDEMUX = $(DIRLIB)\$(LIBWEBPDEMUX_BASENAME)_dll.lib
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBSHARPYUV = $(DIRLIB)\$(LIBSHARPYUV_BASENAME)_dll.lib
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBP_PDBNAME = $(DIROBJ)\$(LIBWEBP_BASENAME)_dll.pdb
|
2011-02-19 08:33:46 +01:00
|
|
|
CFGSET = TRUE
|
|
|
|
!ENDIF
|
|
|
|
|
libwebp: Unicode command tools on Windows
Define macros in examples/unicode.h to use Unicode argv
on Windows. Keep char everywhere on Unix since it handles
UTF-8 without any change.
Impact:
- All fopen () and SHCreateStreamOnFile(),
- All fprintf() printing file paths,
- All strcmp() used with "-",
- File path parsing,
- Gif reading.
Concerned executables from examples/ and extras/:
anim_diff, anim_dump, vwebp, vwebp_sdl,
cwebp, dwebp, gif2webp, img2webp,
webpmux, webpinfo, webp_quality, get_disto
When compiled on Windows with Unicode enabled, webpmux and
img2webp will not work when used with an argument file and
will print "Reading arguments from a file is a feature
unavailable with Unicode binaries."
BUG=webp:398
Change-Id: Ic55d222a3ce1a715f9c4cce57ecbe2705d5ce317
2018-10-16 11:03:18 +02:00
|
|
|
!IF "$(UNICODE)" == "1"
|
|
|
|
CFLAGS = $(CFLAGS) /D_UNICODE /DUNICODE
|
|
|
|
!ENDIF
|
|
|
|
|
2011-02-19 08:33:46 +01:00
|
|
|
#######################
|
|
|
|
# Usage
|
|
|
|
#
|
|
|
|
!IF "$(CFGSET)" == "FALSE"
|
2011-10-04 22:46:09 +02:00
|
|
|
!MESSAGE Usage: nmake /f Makefile.vc [CFG=<config>]
|
libwebp: Unicode command tools on Windows
Define macros in examples/unicode.h to use Unicode argv
on Windows. Keep char everywhere on Unix since it handles
UTF-8 without any change.
Impact:
- All fopen () and SHCreateStreamOnFile(),
- All fprintf() printing file paths,
- All strcmp() used with "-",
- File path parsing,
- Gif reading.
Concerned executables from examples/ and extras/:
anim_diff, anim_dump, vwebp, vwebp_sdl,
cwebp, dwebp, gif2webp, img2webp,
webpmux, webpinfo, webp_quality, get_disto
When compiled on Windows with Unicode enabled, webpmux and
img2webp will not work when used with an argument file and
will print "Reading arguments from a file is a feature
unavailable with Unicode binaries."
BUG=webp:398
Change-Id: Ic55d222a3ce1a715f9c4cce57ecbe2705d5ce317
2018-10-16 11:03:18 +02:00
|
|
|
!MESSAGE . [OBJDIR=<path>] [RTLIBCFG=<rtlib>] [UNICODE=1] [<target>]
|
2011-10-04 22:46:09 +02:00
|
|
|
!MESSAGE
|
2011-02-19 08:33:46 +01:00
|
|
|
!MESSAGE where <config> is one of:
|
|
|
|
!MESSAGE - release-static - release static library
|
|
|
|
!MESSAGE - debug-static - debug static library
|
2011-07-15 23:53:03 +02:00
|
|
|
!MESSAGE - release-dynamic - release dynamic link library (DLL)
|
|
|
|
!MESSAGE - debug-dynamic - debug dynamic link library (DLL)
|
2011-10-04 22:46:09 +02:00
|
|
|
!MESSAGE
|
2011-06-02 00:55:22 +02:00
|
|
|
!MESSAGE <target> may be:
|
|
|
|
!MESSAGE - clean - perform a clean for CFG
|
2011-06-17 20:50:21 +02:00
|
|
|
!MESSAGE - experimental - build CFG with experimental
|
2012-04-21 01:20:32 +02:00
|
|
|
!MESSAGE . features enabled.
|
2013-04-06 04:21:01 +02:00
|
|
|
!MESSAGE - (empty) - build libwebp-based targets for CFG
|
|
|
|
!MESSAGE - all - build (de)mux-based targets for CFG
|
2015-01-10 05:26:46 +01:00
|
|
|
!MESSAGE - gif2webp - requires libgif & >= VS2013
|
2015-05-07 21:00:47 +02:00
|
|
|
!MESSAGE - anim_diff - requires libgif & >= VS2013
|
2017-08-28 16:03:40 +02:00
|
|
|
!MESSAGE - anim_dump
|
2011-02-19 08:33:46 +01:00
|
|
|
!MESSAGE
|
2011-10-04 22:46:09 +02:00
|
|
|
!MESSAGE RTLIBCFG controls the runtime library linkage - 'static' or 'dynamic'.
|
2014-10-23 16:57:34 +02:00
|
|
|
!MESSAGE 'legacy' will produce a Windows 2000 compatible library.
|
2011-10-04 22:46:09 +02:00
|
|
|
!MESSAGE OBJDIR is the path where you like to build (obj, bins, etc.),
|
|
|
|
!MESSAGE defaults to ..\obj
|
2011-02-19 08:33:46 +01:00
|
|
|
|
|
|
|
!IF "$(CFG)" != ""
|
|
|
|
!MESSAGE
|
|
|
|
!ERROR please choose a valid configuration instead of "$(CFG)"
|
|
|
|
!ENDIF
|
|
|
|
!ENDIF
|
|
|
|
|
|
|
|
#######################
|
2011-06-02 00:55:22 +02:00
|
|
|
# Rules
|
2011-02-19 08:33:46 +01:00
|
|
|
#
|
2011-06-02 00:55:22 +02:00
|
|
|
!IF "$(CFGSET)" == "TRUE"
|
2011-02-19 08:33:46 +01:00
|
|
|
# A config was provided, so the library can be built.
|
|
|
|
#
|
|
|
|
|
2022-03-01 12:04:52 +01:00
|
|
|
SHARPYUV_OBJS = \
|
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv.obj \
|
2022-10-22 04:04:53 +02:00
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv_cpu.obj \
|
2022-04-09 20:06:17 +02:00
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv_csp.obj \
|
2022-03-01 12:04:52 +01:00
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv_dsp.obj \
|
2022-06-01 15:38:44 +02:00
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv_gamma.obj \
|
2022-03-01 12:04:52 +01:00
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv_neon.obj \
|
|
|
|
$(DIROBJ)\sharpyuv\sharpyuv_sse2.obj \
|
|
|
|
|
2012-04-20 02:14:23 +02:00
|
|
|
DEC_OBJS = \
|
2017-01-19 09:21:40 +01:00
|
|
|
$(DIROBJ)\dec\alpha_dec.obj \
|
|
|
|
$(DIROBJ)\dec\buffer_dec.obj \
|
|
|
|
$(DIROBJ)\dec\frame_dec.obj \
|
|
|
|
$(DIROBJ)\dec\idec_dec.obj \
|
|
|
|
$(DIROBJ)\dec\io_dec.obj \
|
|
|
|
$(DIROBJ)\dec\quant_dec.obj \
|
|
|
|
$(DIROBJ)\dec\tree_dec.obj \
|
|
|
|
$(DIROBJ)\dec\vp8_dec.obj \
|
|
|
|
$(DIROBJ)\dec\vp8l_dec.obj \
|
|
|
|
$(DIROBJ)\dec\webp_dec.obj \
|
2012-04-20 02:14:23 +02:00
|
|
|
|
2012-11-19 20:21:37 +01:00
|
|
|
DEMUX_OBJS = \
|
2015-09-03 01:20:24 +02:00
|
|
|
$(DIROBJ)\demux\anim_decode.obj \
|
2012-11-19 20:21:37 +01:00
|
|
|
$(DIROBJ)\demux\demux.obj \
|
|
|
|
|
2013-03-15 20:15:59 +01:00
|
|
|
DSP_DEC_OBJS = \
|
2014-05-26 18:05:03 +02:00
|
|
|
$(DIROBJ)\dsp\alpha_processing.obj \
|
2014-08-21 19:26:18 +02:00
|
|
|
$(DIROBJ)\dsp\alpha_processing_mips_dsp_r2.obj \
|
2017-01-11 17:39:29 +01:00
|
|
|
$(DIROBJ)\dsp\alpha_processing_neon.obj \
|
2014-08-26 05:55:28 +02:00
|
|
|
$(DIROBJ)\dsp\alpha_processing_sse2.obj \
|
2015-06-19 14:23:38 +02:00
|
|
|
$(DIROBJ)\dsp\alpha_processing_sse41.obj \
|
2011-10-04 22:46:09 +02:00
|
|
|
$(DIROBJ)\dsp\cpu.obj \
|
|
|
|
$(DIROBJ)\dsp\dec.obj \
|
2014-02-14 04:32:21 +01:00
|
|
|
$(DIROBJ)\dsp\dec_clip_tables.obj \
|
2013-12-25 12:16:01 +01:00
|
|
|
$(DIROBJ)\dsp\dec_mips32.obj \
|
2014-09-02 14:03:13 +02:00
|
|
|
$(DIROBJ)\dsp\dec_mips_dsp_r2.obj \
|
2016-06-09 15:47:09 +02:00
|
|
|
$(DIROBJ)\dsp\dec_msa.obj \
|
2013-03-15 20:15:59 +01:00
|
|
|
$(DIROBJ)\dsp\dec_neon.obj \
|
2011-10-04 22:46:09 +02:00
|
|
|
$(DIROBJ)\dsp\dec_sse2.obj \
|
2015-03-19 21:18:59 +01:00
|
|
|
$(DIROBJ)\dsp\dec_sse41.obj \
|
2015-01-28 08:02:41 +01:00
|
|
|
$(DIROBJ)\dsp\filters.obj \
|
2014-08-04 16:22:10 +02:00
|
|
|
$(DIROBJ)\dsp\filters_mips_dsp_r2.obj \
|
2016-07-01 15:56:00 +02:00
|
|
|
$(DIROBJ)\dsp\filters_msa.obj \
|
2017-01-16 16:11:41 +01:00
|
|
|
$(DIROBJ)\dsp\filters_neon.obj \
|
2015-01-29 08:06:29 +01:00
|
|
|
$(DIROBJ)\dsp\filters_sse2.obj \
|
2012-04-11 23:55:11 +02:00
|
|
|
$(DIROBJ)\dsp\lossless.obj \
|
2014-09-02 16:34:52 +02:00
|
|
|
$(DIROBJ)\dsp\lossless_mips_dsp_r2.obj \
|
2016-07-01 15:56:00 +02:00
|
|
|
$(DIROBJ)\dsp\lossless_msa.obj \
|
2014-03-31 16:36:33 +02:00
|
|
|
$(DIROBJ)\dsp\lossless_neon.obj \
|
2014-03-27 21:43:21 +01:00
|
|
|
$(DIROBJ)\dsp\lossless_sse2.obj \
|
2021-02-18 12:36:31 +01:00
|
|
|
$(DIROBJ)\dsp\lossless_sse41.obj \
|
2015-01-09 12:05:53 +01:00
|
|
|
$(DIROBJ)\dsp\rescaler.obj \
|
|
|
|
$(DIROBJ)\dsp\rescaler_mips32.obj \
|
|
|
|
$(DIROBJ)\dsp\rescaler_mips_dsp_r2.obj \
|
2016-07-19 16:47:54 +02:00
|
|
|
$(DIROBJ)\dsp\rescaler_msa.obj \
|
2015-10-05 11:26:52 +02:00
|
|
|
$(DIROBJ)\dsp\rescaler_neon.obj \
|
2015-09-25 14:34:02 +02:00
|
|
|
$(DIROBJ)\dsp\rescaler_sse2.obj \
|
2011-10-04 22:46:09 +02:00
|
|
|
$(DIROBJ)\dsp\upsampling.obj \
|
2014-08-15 11:00:32 +02:00
|
|
|
$(DIROBJ)\dsp\upsampling_mips_dsp_r2.obj \
|
2016-07-21 16:30:44 +02:00
|
|
|
$(DIROBJ)\dsp\upsampling_msa.obj \
|
2013-03-15 20:15:59 +01:00
|
|
|
$(DIROBJ)\dsp\upsampling_neon.obj \
|
2011-10-04 22:46:09 +02:00
|
|
|
$(DIROBJ)\dsp\upsampling_sse2.obj \
|
2017-12-06 08:27:16 +01:00
|
|
|
$(DIROBJ)\dsp\upsampling_sse41.obj \
|
2011-10-04 22:46:09 +02:00
|
|
|
$(DIROBJ)\dsp\yuv.obj \
|
2014-06-07 21:35:47 +02:00
|
|
|
$(DIROBJ)\dsp\yuv_mips32.obj \
|
2014-08-12 11:47:36 +02:00
|
|
|
$(DIROBJ)\dsp\yuv_mips_dsp_r2.obj \
|
2017-04-18 18:22:30 +02:00
|
|
|
$(DIROBJ)\dsp\yuv_neon.obj \
|
2014-06-06 08:49:59 +02:00
|
|
|
$(DIROBJ)\dsp\yuv_sse2.obj \
|
2017-12-06 08:27:16 +01:00
|
|
|
$(DIROBJ)\dsp\yuv_sse41.obj \
|
2012-04-20 02:14:23 +02:00
|
|
|
|
2013-03-15 20:15:59 +01:00
|
|
|
DSP_ENC_OBJS = \
|
2015-02-07 11:13:26 +01:00
|
|
|
$(DIROBJ)\dsp\cost.obj \
|
|
|
|
$(DIROBJ)\dsp\cost_mips32.obj \
|
|
|
|
$(DIROBJ)\dsp\cost_mips_dsp_r2.obj \
|
2018-11-13 00:48:51 +01:00
|
|
|
$(DIROBJ)\dsp\cost_neon.obj \
|
2015-02-18 09:40:30 +01:00
|
|
|
$(DIROBJ)\dsp\cost_sse2.obj \
|
2013-03-15 20:15:59 +01:00
|
|
|
$(DIROBJ)\dsp\enc.obj \
|
2014-02-19 15:33:50 +01:00
|
|
|
$(DIROBJ)\dsp\enc_mips32.obj \
|
2014-10-10 12:31:00 +02:00
|
|
|
$(DIROBJ)\dsp\enc_mips_dsp_r2.obj \
|
2016-07-05 16:30:43 +02:00
|
|
|
$(DIROBJ)\dsp\enc_msa.obj \
|
2013-03-15 20:15:59 +01:00
|
|
|
$(DIROBJ)\dsp\enc_neon.obj \
|
|
|
|
$(DIROBJ)\dsp\enc_sse2.obj \
|
2015-03-25 12:12:44 +01:00
|
|
|
$(DIROBJ)\dsp\enc_sse41.obj \
|
2015-03-21 03:09:49 +01:00
|
|
|
$(DIROBJ)\dsp\lossless_enc.obj \
|
|
|
|
$(DIROBJ)\dsp\lossless_enc_mips32.obj \
|
|
|
|
$(DIROBJ)\dsp\lossless_enc_mips_dsp_r2.obj \
|
2016-07-18 13:02:36 +02:00
|
|
|
$(DIROBJ)\dsp\lossless_enc_msa.obj \
|
2015-03-21 03:09:49 +01:00
|
|
|
$(DIROBJ)\dsp\lossless_enc_neon.obj \
|
|
|
|
$(DIROBJ)\dsp\lossless_enc_sse2.obj \
|
2015-06-23 08:46:57 +02:00
|
|
|
$(DIROBJ)\dsp\lossless_enc_sse41.obj \
|
2017-02-20 17:27:15 +01:00
|
|
|
$(DIROBJ)\dsp\ssim.obj \
|
|
|
|
$(DIROBJ)\dsp\ssim_sse2.obj \
|
2013-03-15 20:15:59 +01:00
|
|
|
|
2015-05-07 21:00:47 +02:00
|
|
|
EX_ANIM_UTIL_OBJS = \
|
|
|
|
$(DIROBJ)\examples\anim_util.obj \
|
|
|
|
|
2016-09-07 07:46:31 +02:00
|
|
|
IMAGEIO_DEC_OBJS = \
|
2016-07-20 01:02:55 +02:00
|
|
|
$(DIROBJ)\imageio\image_dec.obj \
|
|
|
|
$(DIROBJ)\imageio\jpegdec.obj \
|
|
|
|
$(DIROBJ)\imageio\metadata.obj \
|
|
|
|
$(DIROBJ)\imageio\pngdec.obj \
|
2017-01-30 10:52:19 +01:00
|
|
|
$(DIROBJ)\imageio\pnmdec.obj \
|
2016-07-20 01:02:55 +02:00
|
|
|
$(DIROBJ)\imageio\tiffdec.obj \
|
|
|
|
$(DIROBJ)\imageio\webpdec.obj \
|
|
|
|
$(DIROBJ)\imageio\wicdec.obj \
|
2012-12-06 22:06:37 +01:00
|
|
|
|
2016-09-07 07:46:31 +02:00
|
|
|
IMAGEIO_ENC_OBJS = \
|
|
|
|
$(DIROBJ)\imageio\image_enc.obj \
|
|
|
|
|
2015-01-14 00:43:31 +01:00
|
|
|
EX_GIF_DEC_OBJS = \
|
|
|
|
$(DIROBJ)\examples\gifdec.obj \
|
|
|
|
|
2012-05-12 01:00:57 +02:00
|
|
|
EX_UTIL_OBJS = \
|
2016-07-22 01:10:05 +02:00
|
|
|
$(DIROBJ)\examples\example_util.obj \
|
2012-05-12 01:00:57 +02:00
|
|
|
|
2012-04-20 02:14:23 +02:00
|
|
|
ENC_OBJS = \
|
2017-01-19 09:21:40 +01:00
|
|
|
$(DIROBJ)\enc\alpha_enc.obj \
|
|
|
|
$(DIROBJ)\enc\analysis_enc.obj \
|
2017-06-01 15:07:28 +02:00
|
|
|
$(DIROBJ)\enc\backward_references_cost_enc.obj \
|
2017-01-19 09:21:40 +01:00
|
|
|
$(DIROBJ)\enc\backward_references_enc.obj \
|
|
|
|
$(DIROBJ)\enc\config_enc.obj \
|
|
|
|
$(DIROBJ)\enc\cost_enc.obj \
|
|
|
|
$(DIROBJ)\enc\filter_enc.obj \
|
|
|
|
$(DIROBJ)\enc\frame_enc.obj \
|
|
|
|
$(DIROBJ)\enc\histogram_enc.obj \
|
|
|
|
$(DIROBJ)\enc\iterator_enc.obj \
|
|
|
|
$(DIROBJ)\enc\near_lossless_enc.obj \
|
|
|
|
$(DIROBJ)\enc\picture_enc.obj \
|
|
|
|
$(DIROBJ)\enc\picture_csp_enc.obj \
|
|
|
|
$(DIROBJ)\enc\picture_psnr_enc.obj \
|
|
|
|
$(DIROBJ)\enc\picture_rescale_enc.obj \
|
|
|
|
$(DIROBJ)\enc\picture_tools_enc.obj \
|
|
|
|
$(DIROBJ)\enc\predictor_enc.obj \
|
|
|
|
$(DIROBJ)\enc\quant_enc.obj \
|
|
|
|
$(DIROBJ)\enc\syntax_enc.obj \
|
|
|
|
$(DIROBJ)\enc\token_enc.obj \
|
|
|
|
$(DIROBJ)\enc\tree_enc.obj \
|
|
|
|
$(DIROBJ)\enc\vp8l_enc.obj \
|
|
|
|
$(DIROBJ)\enc\webp_enc.obj \
|
2012-04-20 02:14:23 +02:00
|
|
|
|
2017-01-19 02:57:17 +01:00
|
|
|
EXTRAS_OBJS = \
|
|
|
|
$(DIROBJ)\extras\extras.obj \
|
|
|
|
$(DIROBJ)\extras\quality_estimate.obj \
|
2024-01-12 03:02:16 +01:00
|
|
|
$(DIROBJ)\extras\sharpyuv_risk_table.obj \
|
2017-01-19 02:57:17 +01:00
|
|
|
|
2016-07-21 03:25:00 +02:00
|
|
|
IMAGEIO_UTIL_OBJS = \
|
|
|
|
$(DIROBJ)\imageio\imageio_util.obj \
|
|
|
|
|
2012-04-20 02:14:23 +02:00
|
|
|
MUX_OBJS = \
|
2015-01-07 01:12:48 +01:00
|
|
|
$(DIROBJ)\mux\anim_encode.obj \
|
2012-01-05 07:50:37 +01:00
|
|
|
$(DIROBJ)\mux\muxedit.obj \
|
|
|
|
$(DIROBJ)\mux\muxinternal.obj \
|
|
|
|
$(DIROBJ)\mux\muxread.obj \
|
2012-04-20 02:14:23 +02:00
|
|
|
|
2013-03-15 20:15:59 +01:00
|
|
|
UTILS_DEC_OBJS = \
|
2017-01-19 09:21:40 +01:00
|
|
|
$(DIROBJ)\utils\bit_reader_utils.obj \
|
|
|
|
$(DIROBJ)\utils\color_cache_utils.obj \
|
|
|
|
$(DIROBJ)\utils\filters_utils.obj \
|
|
|
|
$(DIROBJ)\utils\huffman_utils.obj \
|
2023-07-04 18:09:13 +02:00
|
|
|
$(DIROBJ)\utils\palette.obj \
|
2017-01-19 09:21:40 +01:00
|
|
|
$(DIROBJ)\utils\quant_levels_dec_utils.obj \
|
|
|
|
$(DIROBJ)\utils\rescaler_utils.obj \
|
|
|
|
$(DIROBJ)\utils\random_utils.obj \
|
|
|
|
$(DIROBJ)\utils\thread_utils.obj \
|
2012-08-01 01:56:39 +02:00
|
|
|
$(DIROBJ)\utils\utils.obj \
|
2012-04-20 02:14:23 +02:00
|
|
|
|
2013-03-15 20:15:59 +01:00
|
|
|
UTILS_ENC_OBJS = \
|
2017-01-19 09:21:40 +01:00
|
|
|
$(DIROBJ)\utils\bit_writer_utils.obj \
|
|
|
|
$(DIROBJ)\utils\huffman_encode_utils.obj \
|
|
|
|
$(DIROBJ)\utils\quant_levels_utils.obj \
|
2013-03-15 20:15:59 +01:00
|
|
|
|
|
|
|
LIBWEBPDECODER_OBJS = $(DEC_OBJS) $(DSP_DEC_OBJS) $(UTILS_DEC_OBJS)
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBWEBP_OBJS = $(LIBWEBPDECODER_OBJS) $(ENC_OBJS) \
|
2022-03-01 12:04:52 +01:00
|
|
|
$(DSP_ENC_OBJS) $(UTILS_ENC_OBJS) $(DLL_OBJS)
|
2012-04-21 01:20:32 +02:00
|
|
|
LIBWEBPMUX_OBJS = $(MUX_OBJS) $(LIBWEBPMUX_OBJS)
|
2012-11-19 20:21:37 +01:00
|
|
|
LIBWEBPDEMUX_OBJS = $(DEMUX_OBJS) $(LIBWEBPDEMUX_OBJS)
|
2022-10-05 14:21:35 +02:00
|
|
|
LIBSHARPYUV_OBJS = $(SHARPYUV_OBJS)
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2022-10-05 14:21:35 +02:00
|
|
|
OUT_LIBS = $(LIBWEBPDECODER) $(LIBWEBP) $(LIBSHARPYUV)
|
2015-01-10 04:09:14 +01:00
|
|
|
!IF "$(ARCH)" == "ARM"
|
|
|
|
ex: $(OUT_LIBS)
|
|
|
|
all: ex
|
|
|
|
!ELSE
|
2012-04-24 03:46:12 +02:00
|
|
|
OUT_EXAMPLES = $(DIRBIN)\cwebp.exe $(DIRBIN)\dwebp.exe
|
2016-12-02 11:44:17 +01:00
|
|
|
EXTRA_EXAMPLES = $(DIRBIN)\vwebp.exe $(DIRBIN)\webpmux.exe \
|
2017-01-19 02:57:17 +01:00
|
|
|
$(DIRBIN)\img2webp.exe $(DIRBIN)\get_disto.exe \
|
2017-01-30 13:33:35 +01:00
|
|
|
$(DIRBIN)\webp_quality.exe $(DIRBIN)\vwebp_sdl.exe \
|
2017-03-14 10:00:43 +01:00
|
|
|
$(DIRBIN)\webpinfo.exe
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2013-04-06 04:21:01 +02:00
|
|
|
ex: $(OUT_LIBS) $(OUT_EXAMPLES)
|
|
|
|
all: ex $(EXTRA_EXAMPLES)
|
2015-05-07 21:00:47 +02:00
|
|
|
# NB: gif2webp.exe and anim_diff.exe are excluded from 'all' as libgif requires
|
|
|
|
# C99 support which is only available from VS2013 onward.
|
2015-01-10 05:26:46 +01:00
|
|
|
gif2webp: $(DIRBIN)\gif2webp.exe
|
2015-05-07 21:00:47 +02:00
|
|
|
anim_diff: $(DIRBIN)\anim_diff.exe
|
2017-08-28 16:03:40 +02:00
|
|
|
anim_dump: $(DIRBIN)\anim_dump.exe
|
2015-01-10 05:26:46 +01:00
|
|
|
|
2015-05-07 21:00:47 +02:00
|
|
|
$(DIRBIN)\anim_diff.exe: $(DIROBJ)\examples\anim_diff.obj $(EX_ANIM_UTIL_OBJS)
|
2016-07-21 03:25:00 +02:00
|
|
|
$(DIRBIN)\anim_diff.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS)
|
2015-05-07 21:00:47 +02:00
|
|
|
$(DIRBIN)\anim_diff.exe: $(EX_GIF_DEC_OBJS) $(LIBWEBPDEMUX) $(LIBWEBP)
|
2017-08-28 16:03:40 +02:00
|
|
|
$(DIRBIN)\anim_dump.exe: $(DIROBJ)\examples\anim_dump.obj $(EX_ANIM_UTIL_OBJS)
|
|
|
|
$(DIRBIN)\anim_dump.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS)
|
|
|
|
$(DIRBIN)\anim_dump.exe: $(EX_GIF_DEC_OBJS) $(LIBWEBPDEMUX) $(LIBWEBP)
|
|
|
|
$(DIRBIN)\anim_dump.exe: $(IMAGEIO_ENC_OBJS)
|
2016-09-07 07:46:31 +02:00
|
|
|
$(DIRBIN)\cwebp.exe: $(DIROBJ)\examples\cwebp.obj $(IMAGEIO_DEC_OBJS)
|
2016-07-21 03:25:00 +02:00
|
|
|
$(DIRBIN)\cwebp.exe: $(IMAGEIO_UTIL_OBJS)
|
2022-10-25 04:24:44 +02:00
|
|
|
$(DIRBIN)\cwebp.exe: $(LIBWEBPDEMUX) $(LIBSHARPYUV)
|
2016-09-07 07:46:31 +02:00
|
|
|
$(DIRBIN)\dwebp.exe: $(DIROBJ)\examples\dwebp.obj $(IMAGEIO_DEC_OBJS)
|
|
|
|
$(DIRBIN)\dwebp.exe: $(IMAGEIO_ENC_OBJS)
|
2016-07-21 03:25:00 +02:00
|
|
|
$(DIRBIN)\dwebp.exe: $(IMAGEIO_UTIL_OBJS)
|
2017-03-02 17:45:42 +01:00
|
|
|
$(DIRBIN)\dwebp.exe: $(LIBWEBPDEMUX)
|
2015-01-14 00:43:31 +01:00
|
|
|
$(DIRBIN)\gif2webp.exe: $(DIROBJ)\examples\gif2webp.obj $(EX_GIF_DEC_OBJS)
|
2016-07-21 03:25:00 +02:00
|
|
|
$(DIRBIN)\gif2webp.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) $(LIBWEBPMUX)
|
2024-11-06 19:14:05 +01:00
|
|
|
$(DIRBIN)\gif2webp.exe: $(LIBWEBP) $(LIBSHARPYUV)
|
2016-07-21 03:25:00 +02:00
|
|
|
$(DIRBIN)\vwebp.exe: $(DIROBJ)\examples\vwebp.obj $(EX_UTIL_OBJS)
|
|
|
|
$(DIRBIN)\vwebp.exe: $(IMAGEIO_UTIL_OBJS) $(LIBWEBPDEMUX) $(LIBWEBP)
|
2017-02-04 09:01:23 +01:00
|
|
|
$(DIRBIN)\vwebp_sdl.exe: $(DIROBJ)\extras\vwebp_sdl.obj
|
|
|
|
$(DIRBIN)\vwebp_sdl.exe: $(DIROBJ)\extras\webp_to_sdl.obj
|
2017-01-30 13:33:35 +01:00
|
|
|
$(DIRBIN)\vwebp_sdl.exe: $(IMAGEIO_UTIL_OBJS) $(LIBWEBP)
|
2012-04-21 01:20:32 +02:00
|
|
|
$(DIRBIN)\webpmux.exe: $(DIROBJ)\examples\webpmux.obj $(LIBWEBPMUX)
|
2016-07-21 03:25:00 +02:00
|
|
|
$(DIRBIN)\webpmux.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS) $(LIBWEBP)
|
2016-12-02 11:44:17 +01:00
|
|
|
$(DIRBIN)\img2webp.exe: $(DIROBJ)\examples\img2webp.obj $(LIBWEBPMUX)
|
|
|
|
$(DIRBIN)\img2webp.exe: $(IMAGEIO_DEC_OBJS)
|
2017-03-02 17:45:42 +01:00
|
|
|
$(DIRBIN)\img2webp.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS)
|
2023-03-18 21:58:21 +01:00
|
|
|
$(DIRBIN)\img2webp.exe: $(LIBWEBPDEMUX) $(LIBWEBP) $(LIBSHARPYUV)
|
2017-01-19 02:57:17 +01:00
|
|
|
$(DIRBIN)\get_disto.exe: $(DIROBJ)\extras\get_disto.obj
|
2017-03-02 17:45:42 +01:00
|
|
|
$(DIRBIN)\get_disto.exe: $(IMAGEIO_DEC_OBJS) $(IMAGEIO_UTIL_OBJS)
|
|
|
|
$(DIRBIN)\get_disto.exe: $(LIBWEBPDEMUX) $(LIBWEBP)
|
2017-01-19 02:57:17 +01:00
|
|
|
$(DIRBIN)\webp_quality.exe: $(DIROBJ)\extras\webp_quality.obj
|
|
|
|
$(DIRBIN)\webp_quality.exe: $(IMAGEIO_UTIL_OBJS)
|
2019-12-20 17:50:48 +01:00
|
|
|
$(DIRBIN)\webp_quality.exe: $(EXTRAS_OBJS)
|
|
|
|
# EXTRA_OBJS requires private symbols from dsp. Explicitly add those when
|
|
|
|
# building libwebp as a dll.
|
|
|
|
!IF "$(DLLBUILD)" == "TRUE"
|
|
|
|
$(DIRBIN)\webp_quality.exe: $(DSP_DEC_OBJS)
|
|
|
|
!ENDIF
|
|
|
|
$(DIRBIN)\webp_quality.exe: $(LIBWEBP)
|
2017-03-14 10:00:43 +01:00
|
|
|
$(DIRBIN)\webpinfo.exe: $(DIROBJ)\examples\webpinfo.obj
|
|
|
|
$(DIRBIN)\webpinfo.exe: $(IMAGEIO_DEC_OBJS)
|
2017-03-02 17:45:42 +01:00
|
|
|
$(DIRBIN)\webpinfo.exe: $(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS)
|
|
|
|
$(DIRBIN)\webpinfo.exe: $(LIBWEBPDEMUX) $(LIBWEBP)
|
2016-12-02 11:44:17 +01:00
|
|
|
|
2012-04-21 01:20:32 +02:00
|
|
|
$(OUT_EXAMPLES): $(EX_UTIL_OBJS) $(LIBWEBP)
|
2016-09-07 07:46:31 +02:00
|
|
|
$(EX_UTIL_OBJS) $(IMAGEIO_UTIL_OBJS): $(OUTPUT_DIRS)
|
2017-01-19 02:57:17 +01:00
|
|
|
$(IMAGEIO_DEC_OBJS) $(IMAGEIO_ENC_OBJS) $(EXTRAS_OBJS): $(OUTPUT_DIRS)
|
2015-01-10 04:09:14 +01:00
|
|
|
!ENDIF # ARCH == ARM
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2022-10-05 14:21:35 +02:00
|
|
|
$(LIBSHARPYUV): $(LIBSHARPYUV_OBJS)
|
2013-03-15 20:15:59 +01:00
|
|
|
$(LIBWEBPDECODER): $(LIBWEBPDECODER_OBJS)
|
2022-10-05 14:21:35 +02:00
|
|
|
$(LIBWEBP): $(LIBWEBP_OBJS) $(LIBSHARPYUV)
|
2012-04-21 01:20:32 +02:00
|
|
|
$(LIBWEBPMUX): $(LIBWEBPMUX_OBJS)
|
2012-11-19 20:21:37 +01:00
|
|
|
$(LIBWEBPDEMUX): $(LIBWEBPDEMUX_OBJS)
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2022-10-05 14:21:35 +02:00
|
|
|
$(LIBWEBP_OBJS) $(LIBWEBPMUX_OBJS) $(LIBWEBPDEMUX_OBJS) $(LIBSHARPYUV_OBJS): \
|
|
|
|
$(OUTPUT_DIRS)
|
2011-10-01 22:07:58 +02:00
|
|
|
|
2011-07-15 23:53:03 +02:00
|
|
|
!IF "$(DLLBUILD)" == "TRUE"
|
2012-02-21 22:44:39 +01:00
|
|
|
{$(DIROBJ)}.c{$(DIROBJ)}.obj:
|
2012-04-21 01:20:32 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$@ $<
|
|
|
|
|
2017-01-20 09:07:48 +01:00
|
|
|
{src}.rc{$(DIROBJ)}.res:
|
|
|
|
$(RC) /fo$@ $<
|
|
|
|
{src\demux}.rc{$(DIROBJ)\demux}.res:
|
|
|
|
$(RC) /fo$@ $<
|
|
|
|
{src\mux}.rc{$(DIROBJ)\mux}.res:
|
|
|
|
$(RC) /fo$@ $<
|
2022-10-05 14:21:35 +02:00
|
|
|
{sharpyuv}.rc{$(DIROBJ)\sharpyuv}.res:
|
|
|
|
$(RC) /fo$@ $<
|
2017-01-20 09:07:48 +01:00
|
|
|
|
2022-10-05 14:21:35 +02:00
|
|
|
$(LIBSHARPYUV): $(DIROBJ)\sharpyuv\$(LIBSHARPYUV_BASENAME:_debug=).res
|
|
|
|
$(LIBWEBP): $(LIBSHARPYUV) $(DIROBJ)\$(LIBWEBP_BASENAME:_debug=).res
|
2017-01-21 02:03:51 +01:00
|
|
|
$(LIBWEBPDECODER): $(DIROBJ)\$(LIBWEBPDECODER_BASENAME:_debug=).res
|
|
|
|
$(LIBWEBPMUX): $(LIBWEBP) $(DIROBJ)\mux\$(LIBWEBPMUX_BASENAME:_debug=).res
|
|
|
|
$(LIBWEBPDEMUX): $(LIBWEBP) $(DIROBJ)\demux\$(LIBWEBPDEMUX_BASENAME:_debug=).res
|
2012-04-21 01:20:32 +02:00
|
|
|
|
2022-10-05 14:21:35 +02:00
|
|
|
$(LIBWEBPDECODER) $(LIBWEBP) $(LIBWEBPMUX) $(LIBWEBPDEMUX) $(LIBSHARPYUV):
|
2012-04-21 01:20:32 +02:00
|
|
|
$(LNKDLL) /out:$(DIRBIN)\$(@B:_dll=.dll) /implib:$@ $(LFLAGS) $**
|
|
|
|
-xcopy $(DIROBJ)\*.pdb $(DIRLIB) /y
|
|
|
|
!ELSE
|
2022-10-05 14:21:35 +02:00
|
|
|
$(LIBWEBPDECODER) $(LIBWEBP) $(LIBWEBPMUX) $(LIBWEBPDEMUX) $(LIBSHARPYUV):
|
2013-04-06 03:45:53 +02:00
|
|
|
$(LNKLIB) /out:$@ $**
|
2012-04-21 01:20:32 +02:00
|
|
|
-xcopy $(DIROBJ)\*.pdb $(DIRLIB) /y
|
2011-07-15 23:53:03 +02:00
|
|
|
!ENDIF
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2011-10-04 22:39:39 +02:00
|
|
|
$(OUTPUT_DIRS):
|
|
|
|
@if not exist "$(@)" mkdir "$(@)"
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2015-11-06 07:47:03 +01:00
|
|
|
.SUFFIXES: .c .obj .res .exe
|
2014-05-24 05:13:01 +02:00
|
|
|
# File-specific flag builds. Note batch rules take precedence over wildcards,
|
|
|
|
# so for now name each file individually.
|
2015-11-06 07:47:03 +01:00
|
|
|
$(DIROBJ)\examples\anim_diff.obj: examples\anim_diff.c
|
2015-05-07 21:00:47 +02:00
|
|
|
$(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \
|
2015-11-06 07:47:03 +01:00
|
|
|
/Fo$(DIROBJ)\examples\ examples\$(@B).c
|
2017-08-28 16:03:40 +02:00
|
|
|
$(DIROBJ)\examples\anim_dump.obj: examples\anim_dump.c
|
|
|
|
$(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \
|
|
|
|
/Fo$(DIROBJ)\examples\ examples\$(@B).c
|
2015-11-06 07:47:03 +01:00
|
|
|
$(DIROBJ)\examples\anim_util.obj: examples\anim_util.c
|
2015-05-07 21:00:47 +02:00
|
|
|
$(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \
|
2015-11-06 07:47:03 +01:00
|
|
|
/Fo$(DIROBJ)\examples\ examples\$(@B).c
|
2015-01-10 05:26:46 +01:00
|
|
|
$(DIROBJ)\examples\gif2webp.obj: examples\gif2webp.c
|
|
|
|
$(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \
|
|
|
|
/Fo$(DIROBJ)\examples\ examples\$(@B).c
|
2015-12-12 05:14:44 +01:00
|
|
|
$(DIROBJ)\examples\gifdec.obj: examples\gifdec.c
|
|
|
|
$(CC) $(CFLAGS) /DWEBP_HAVE_GIF /Fd$(LIBWEBP_PDBNAME) \
|
|
|
|
/Fo$(DIROBJ)\examples\ examples\$(@B).c
|
2014-05-24 05:13:01 +02:00
|
|
|
# Batch rules
|
2012-02-22 02:06:44 +01:00
|
|
|
{examples}.c{$(DIROBJ)\examples}.obj::
|
2014-05-24 05:13:01 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(DIROBJ)\examples\ /Fo$(DIROBJ)\examples\ $<
|
2017-01-19 02:57:17 +01:00
|
|
|
{extras}.c{$(DIROBJ)\extras}.obj::
|
|
|
|
$(CC) $(CFLAGS) /Fd$(DIROBJ)\extras\ /Fo$(DIROBJ)\extras\ $<
|
2016-07-21 08:12:57 +02:00
|
|
|
{imageio}.c{$(DIROBJ)\imageio}.obj::
|
|
|
|
$(CC) $(CFLAGS) /Fd$(DIROBJ)\imageio\ /Fo$(DIROBJ)\imageio\ $<
|
2022-03-01 12:04:52 +01:00
|
|
|
{sharpyuv}.c{$(DIROBJ)\sharpyuv}.obj::
|
|
|
|
$(CC) $(CFLAGS) /Fd$(DIROBJ)\sharpyuv\ /Fo$(DIROBJ)\sharpyuv\ $<
|
2012-02-22 02:06:44 +01:00
|
|
|
{src\dec}.c{$(DIROBJ)\dec}.obj::
|
2012-04-21 01:20:32 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\dec\ $<
|
2012-11-19 20:21:37 +01:00
|
|
|
{src\demux}.c{$(DIROBJ)\demux}.obj::
|
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\demux\ $<
|
2012-02-22 02:06:44 +01:00
|
|
|
{src\dsp}.c{$(DIROBJ)\dsp}.obj::
|
2012-04-21 01:20:32 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\dsp\ $<
|
2012-02-22 02:06:44 +01:00
|
|
|
{src\enc}.c{$(DIROBJ)\enc}.obj::
|
2012-04-21 01:20:32 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\enc\ $<
|
2012-02-22 02:06:44 +01:00
|
|
|
{src\mux}.c{$(DIROBJ)\mux}.obj::
|
2012-04-21 01:20:32 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\mux\ $<
|
2012-02-22 02:06:44 +01:00
|
|
|
{src\utils}.c{$(DIROBJ)\utils}.obj::
|
2012-04-21 01:20:32 +02:00
|
|
|
$(CC) $(CFLAGS) /Fd$(LIBWEBP_PDBNAME) /Fo$(DIROBJ)\utils\ $<
|
2011-02-19 08:33:46 +01:00
|
|
|
|
libwebp: Unicode command tools on Windows
Define macros in examples/unicode.h to use Unicode argv
on Windows. Keep char everywhere on Unix since it handles
UTF-8 without any change.
Impact:
- All fopen () and SHCreateStreamOnFile(),
- All fprintf() printing file paths,
- All strcmp() used with "-",
- File path parsing,
- Gif reading.
Concerned executables from examples/ and extras/:
anim_diff, anim_dump, vwebp, vwebp_sdl,
cwebp, dwebp, gif2webp, img2webp,
webpmux, webpinfo, webp_quality, get_disto
When compiled on Windows with Unicode enabled, webpmux and
img2webp will not work when used with an argument file and
will print "Reading arguments from a file is a feature
unavailable with Unicode binaries."
BUG=webp:398
Change-Id: Ic55d222a3ce1a715f9c4cce57ecbe2705d5ce317
2018-10-16 11:03:18 +02:00
|
|
|
LNKLIBS = ole32.lib windowscodecs.lib shlwapi.lib
|
|
|
|
!IF "$(UNICODE)" == "1"
|
|
|
|
LNKLIBS = $(LNKLIBS) Shell32.lib
|
|
|
|
!ENDIF
|
|
|
|
|
2011-02-19 08:33:46 +01:00
|
|
|
{$(DIROBJ)\examples}.obj{$(DIRBIN)}.exe:
|
libwebp: Unicode command tools on Windows
Define macros in examples/unicode.h to use Unicode argv
on Windows. Keep char everywhere on Unix since it handles
UTF-8 without any change.
Impact:
- All fopen () and SHCreateStreamOnFile(),
- All fprintf() printing file paths,
- All strcmp() used with "-",
- File path parsing,
- Gif reading.
Concerned executables from examples/ and extras/:
anim_diff, anim_dump, vwebp, vwebp_sdl,
cwebp, dwebp, gif2webp, img2webp,
webpmux, webpinfo, webp_quality, get_disto
When compiled on Windows with Unicode enabled, webpmux and
img2webp will not work when used with an argument file and
will print "Reading arguments from a file is a feature
unavailable with Unicode binaries."
BUG=webp:398
Change-Id: Ic55d222a3ce1a715f9c4cce57ecbe2705d5ce317
2018-10-16 11:03:18 +02:00
|
|
|
$(LNKEXE) $(LDFLAGS) /OUT:$@ $** $(LNKLIBS)
|
2011-02-19 08:33:46 +01:00
|
|
|
|
2017-01-19 02:57:17 +01:00
|
|
|
{$(DIROBJ)\extras}.obj{$(DIRBIN)}.exe:
|
libwebp: Unicode command tools on Windows
Define macros in examples/unicode.h to use Unicode argv
on Windows. Keep char everywhere on Unix since it handles
UTF-8 without any change.
Impact:
- All fopen () and SHCreateStreamOnFile(),
- All fprintf() printing file paths,
- All strcmp() used with "-",
- File path parsing,
- Gif reading.
Concerned executables from examples/ and extras/:
anim_diff, anim_dump, vwebp, vwebp_sdl,
cwebp, dwebp, gif2webp, img2webp,
webpmux, webpinfo, webp_quality, get_disto
When compiled on Windows with Unicode enabled, webpmux and
img2webp will not work when used with an argument file and
will print "Reading arguments from a file is a feature
unavailable with Unicode binaries."
BUG=webp:398
Change-Id: Ic55d222a3ce1a715f9c4cce57ecbe2705d5ce317
2018-10-16 11:03:18 +02:00
|
|
|
$(LNKEXE) $(LDFLAGS) /OUT:$@ $** $(LNKLIBS)
|
2017-01-19 02:57:17 +01:00
|
|
|
|
2011-07-23 03:40:35 +02:00
|
|
|
clean::
|
2011-06-02 00:55:22 +02:00
|
|
|
@-erase /s $(DIROBJ)\*.dll 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.exp 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.idb 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.lib 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.obj 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.pch 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.pdb 2> NUL
|
|
|
|
@-erase /s $(DIROBJ)\*.res 2> NUL
|
|
|
|
|
2011-02-19 08:33:46 +01:00
|
|
|
!ENDIF # End of case where a config was provided.
|