зеркало из https://github.com/mozilla/mozjpeg.git
282 строки
8.7 KiB
Makefile
Executable File
282 строки
8.7 KiB
Makefile
Executable File
vpath %.c simd
|
|
vpath %.asm simd
|
|
|
|
include win/Makerules
|
|
|
|
TARGETS = $(ODIR)/jpeg62.dll \
|
|
$(ODIR)/jpeg.lib \
|
|
$(ODIR)/jpeg-static.lib \
|
|
$(ODIR)/cjpeg.exe \
|
|
$(ODIR)/djpeg.exe \
|
|
$(ODIR)/jpegtran.exe \
|
|
$(ODIR)/rdjpgcom.exe \
|
|
$(ODIR)/wrjpgcom.exe \
|
|
$(ODIR)/turbojpeg.dll \
|
|
$(ODIR)/turbojpeg.lib \
|
|
$(ODIR)/turbojpeg-static.lib \
|
|
$(ODIR)/jpgtest.exe \
|
|
$(ODIR)/jpegut.exe
|
|
|
|
LOBJS = $(ODIR)/jcapimin.obj \
|
|
$(ODIR)/jcapistd.obj \
|
|
$(ODIR)/jccoefct.obj \
|
|
$(ODIR)/jccolor.obj \
|
|
$(ODIR)/jcdctmgr.obj \
|
|
$(ODIR)/jchuff.obj \
|
|
$(ODIR)/jcinit.obj \
|
|
$(ODIR)/jcmainct.obj \
|
|
$(ODIR)/jcmarker.obj \
|
|
$(ODIR)/jcmaster.obj \
|
|
$(ODIR)/jcomapi.obj \
|
|
$(ODIR)/jcparam.obj \
|
|
$(ODIR)/jcphuff.obj \
|
|
$(ODIR)/jcprepct.obj \
|
|
$(ODIR)/jcsample.obj \
|
|
$(ODIR)/jctrans.obj \
|
|
$(ODIR)/jdapimin.obj \
|
|
$(ODIR)/jdapistd.obj \
|
|
$(ODIR)/jdatadst.obj \
|
|
$(ODIR)/jdatasrc.obj \
|
|
$(ODIR)/jdcoefct.obj \
|
|
$(ODIR)/jdcolor.obj \
|
|
$(ODIR)/jddctmgr.obj \
|
|
$(ODIR)/jdhuff.obj \
|
|
$(ODIR)/jdinput.obj \
|
|
$(ODIR)/jdmainct.obj \
|
|
$(ODIR)/jdmarker.obj \
|
|
$(ODIR)/jdmaster.obj \
|
|
$(ODIR)/jdmerge.obj \
|
|
$(ODIR)/jdphuff.obj \
|
|
$(ODIR)/jdpostct.obj \
|
|
$(ODIR)/jdsample.obj \
|
|
$(ODIR)/jdtrans.obj \
|
|
$(ODIR)/jerror.obj \
|
|
$(ODIR)/jfdctflt.obj \
|
|
$(ODIR)/jfdctfst.obj \
|
|
$(ODIR)/jfdctint.obj \
|
|
$(ODIR)/jidctflt.obj \
|
|
$(ODIR)/jidctfst.obj \
|
|
$(ODIR)/jidctint.obj \
|
|
$(ODIR)/jidctred.obj \
|
|
$(ODIR)/jquant1.obj \
|
|
$(ODIR)/jquant2.obj \
|
|
$(ODIR)/jutils.obj \
|
|
$(ODIR)/jmemmgr.obj \
|
|
$(ODIR)/jmemnobs.obj
|
|
|
|
ifeq ($(WITH_SIMD), yes)
|
|
|
|
ifeq ($(WIN64), yes)
|
|
SIMD_OBJS = $(ODIR)/jfsseflt-64.obj \
|
|
$(ODIR)/jccolss2-64.obj \
|
|
$(ODIR)/jdcolss2-64.obj \
|
|
$(ODIR)/jcsamss2-64.obj \
|
|
$(ODIR)/jdsamss2-64.obj \
|
|
$(ODIR)/jdmerss2-64.obj \
|
|
$(ODIR)/jcqnts2i-64.obj \
|
|
$(ODIR)/jfss2fst-64.obj \
|
|
$(ODIR)/jfss2int-64.obj \
|
|
$(ODIR)/jiss2red-64.obj \
|
|
$(ODIR)/jiss2int-64.obj \
|
|
$(ODIR)/jiss2fst-64.obj \
|
|
$(ODIR)/jcqnts2f-64.obj \
|
|
$(ODIR)/jiss2flt-64.obj
|
|
LOBJS := $(LOBJS) $(ODIR)/jsimd_x86_64.obj
|
|
else
|
|
SIMD_OBJS = $(ODIR)/jsimdcpu.obj \
|
|
$(ODIR)/jccolmmx.obj \
|
|
$(ODIR)/jdcolmmx.obj \
|
|
$(ODIR)/jcsammmx.obj \
|
|
$(ODIR)/jdsammmx.obj \
|
|
$(ODIR)/jdmermmx.obj \
|
|
$(ODIR)/jcqntmmx.obj \
|
|
$(ODIR)/jfmmxfst.obj \
|
|
$(ODIR)/jfmmxint.obj \
|
|
$(ODIR)/jimmxred.obj \
|
|
$(ODIR)/jimmxint.obj \
|
|
$(ODIR)/jimmxfst.obj \
|
|
$(ODIR)/jcqnt3dn.obj \
|
|
$(ODIR)/jf3dnflt.obj \
|
|
$(ODIR)/ji3dnflt.obj \
|
|
$(ODIR)/jcqntsse.obj \
|
|
$(ODIR)/jfsseflt.obj \
|
|
$(ODIR)/jisseflt.obj \
|
|
$(ODIR)/jccolss2.obj \
|
|
$(ODIR)/jdcolss2.obj \
|
|
$(ODIR)/jcsamss2.obj \
|
|
$(ODIR)/jdsamss2.obj \
|
|
$(ODIR)/jdmerss2.obj \
|
|
$(ODIR)/jcqnts2i.obj \
|
|
$(ODIR)/jfss2fst.obj \
|
|
$(ODIR)/jfss2int.obj \
|
|
$(ODIR)/jiss2red.obj \
|
|
$(ODIR)/jiss2int.obj \
|
|
$(ODIR)/jiss2fst.obj \
|
|
$(ODIR)/jcqnts2f.obj \
|
|
$(ODIR)/jiss2flt.obj
|
|
LOBJS := $(LOBJS) $(ODIR)/jsimd_i386.obj
|
|
endif
|
|
|
|
else
|
|
|
|
LOBJS := $(LOBJS) $(ODIR)/jsimd_none.obj
|
|
|
|
endif
|
|
|
|
LOBJSSTATIC := $(subst .obj,-static.obj,$(LOBJS))
|
|
LOBJS := $(LOBJS) $(SIMD_OBJS)
|
|
LOBJSSTATIC := $(LOBJSSTATIC) $(SIMD_OBJS)
|
|
|
|
OBJS := $(LOBJS) $(LOBJSSTATIC) \
|
|
$(ODIR)/cdjpeg.obj \
|
|
$(ODIR)/cjpeg.obj \
|
|
$(ODIR)/djpeg.obj \
|
|
$(ODIR)/jpegtran.obj \
|
|
$(ODIR)/rdbmp.obj \
|
|
$(ODIR)/rdcolmap.obj \
|
|
$(ODIR)/rdgif.obj \
|
|
$(ODIR)/rdjpgcom.obj \
|
|
$(ODIR)/rdppm.obj \
|
|
$(ODIR)/rdtarga.obj \
|
|
$(ODIR)/rdswitch.obj \
|
|
$(ODIR)/rdtarga.obj \
|
|
$(ODIR)/transupp.obj \
|
|
$(ODIR)/wrbmp.obj \
|
|
$(ODIR)/wrgif.obj \
|
|
$(ODIR)/wrppm.obj \
|
|
$(ODIR)/wrtarga.obj \
|
|
$(ODIR)/wrjpgcom.obj \
|
|
$(ODIR)/turbojpegl-static.obj \
|
|
$(ODIR)/turbojpegl-dll.obj \
|
|
$(ODIR)/jpgtest.obj \
|
|
$(ODIR)/jpegut.obj \
|
|
$(ODIR)/bmp-static.obj
|
|
|
|
all: $(TARGETS)
|
|
|
|
clean: testclean
|
|
-$(RM) $(TARGETS) $(OBJS)
|
|
|
|
HDRS := $(wildcard *.h)
|
|
$(OBJS): $(HDRS)
|
|
|
|
ifeq ($(WITH_SIMD), yes)
|
|
SIMD_HDRS := $(wildcard simd/*.inc)
|
|
$(SIMD_OBJS): $(SIMD_HDRS)
|
|
|
|
ifeq ($(WIN64), yes)
|
|
$(ODIR)/jccolss2-64.obj: simd/jcclrss2-64.asm
|
|
$(ODIR)/jdcolss2-64.obj: simd/jdclrss2-64.asm
|
|
$(ODIR)/jdmerss2-64.obj: simd/jdmrgss2-64.asm
|
|
else
|
|
$(ODIR)/jccolmmx.obj: simd/jcclrmmx.asm
|
|
$(ODIR)/jccolss2.obj: simd/jcclrss2.asm
|
|
$(ODIR)/jdcolmmx.obj: simd/jdclrmmx.asm
|
|
$(ODIR)/jdcolss2.obj: simd/jdclrss2.asm
|
|
$(ODIR)/jdmermmx.obj: simd/jdmrgmmx.asm
|
|
$(ODIR)/jdmerss2.obj: simd/jdmrgss2.asm
|
|
endif
|
|
|
|
endif
|
|
|
|
$(ODIR)/jpeg-static.lib: $(LOBJSSTATIC)
|
|
$(AR) -out:$@ $^
|
|
|
|
$(ODIR)/jpeg62.dll $(ODIR)/jpeg.lib: $(LOBJS) win/jpeg.def
|
|
$(LINK) $(LDFLAGS) -dll -out:$(ODIR)/jpeg62.dll -implib:$(ODIR)/jpeg.lib \
|
|
-def:win/jpeg.def $(LOBJS)
|
|
|
|
$(ODIR)/cjpeg.exe: $(ODIR)/cdjpeg.obj $(ODIR)/cjpeg.obj $(ODIR)/rdbmp.obj \
|
|
$(ODIR)/rdgif.obj $(ODIR)/rdppm.obj $(ODIR)/rdswitch.obj \
|
|
$(ODIR)/rdtarga.obj $(ODIR)/jpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
|
|
$(ODIR)/djpeg.exe: $(ODIR)/cdjpeg.obj $(ODIR)/djpeg.obj $(ODIR)/rdcolmap.obj \
|
|
$(ODIR)/rdswitch.obj $(ODIR)/wrbmp.obj $(ODIR)/wrgif.obj $(ODIR)/wrppm.obj \
|
|
$(ODIR)/wrtarga.obj $(ODIR)/jpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
|
|
$(ODIR)/jpegtran.exe: $(ODIR)/cdjpeg.obj $(ODIR)/jpegtran.obj \
|
|
$(ODIR)/rdswitch.obj $(ODIR)/transupp.obj $(ODIR)/jpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
$(ODIR)/rdjpgcom.exe: $(ODIR)/rdjpgcom.obj $(ODIR)/jpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
$(ODIR)/wrjpgcom.exe: $(ODIR)/wrjpgcom.obj $(ODIR)/jpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
|
|
$(ODIR)/turbojpeg-static.lib: $(ODIR)/turbojpegl-static.obj $(LOBJSSTATIC)
|
|
$(AR) -out:$@ $^
|
|
|
|
$(ODIR)/turbojpegl-dll.obj: turbojpegl.c
|
|
$(CC) $(CFLAGS) $(LIBCSTATIC) -DDLLDEFINE -c $< -Fo$@
|
|
|
|
$(ODIR)/turbojpeg.dll $(ODIR)/turbojpeg.lib: $(ODIR)/turbojpegl-dll.obj \
|
|
$(LOBJSSTATIC)
|
|
$(LINK) $(LDFLAGS) -dll -out:$(ODIR)/turbojpeg.dll \
|
|
-implib:$(ODIR)/turbojpeg.lib $^
|
|
|
|
|
|
$(ODIR)/jpgtest.exe: $(ODIR)/jpgtest.obj $(ODIR)/bmp-static.obj \
|
|
$(ODIR)/turbojpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
$(ODIR)/jpegut.exe: $(ODIR)/jpegut.obj $(ODIR)/turbojpeg.lib
|
|
$(LINK) $(LDFLAGS) -out:$@ $^
|
|
|
|
|
|
ifeq ($(WIN64), yes)
|
|
nsi: all
|
|
$(RM) $(ODIR)/libjpeg-turbo64.exe
|
|
makensis -nocd -DVERSION=$(VERSION) -DAPPNAME=libjpeg-turbo64 \
|
|
-DWLIBDIR=windows64 -DWSRCDIR=. -DWBLDDIR=windows64 -DWHDRDIR=win \
|
|
-DPLATFORM="Visual C++ 64-bit" -DWIN64 release/libjpeg-turbo.nsi
|
|
else
|
|
nsi: all
|
|
$(RM) $(ODIR)/libjpeg-turbo.exe
|
|
makensis -nocd -DVERSION=$(VERSION) -DAPPNAME=libjpeg-turbo \
|
|
-DWLIBDIR=windows -DWSRCDIR=. -DWBLDDIR=windows -DWHDRDIR=win \
|
|
-DPLATFORM="Visual C++" release/libjpeg-turbo.nsi
|
|
endif
|
|
|
|
test: testclean $(ODIR)/cjpeg.exe $(ODIR)/djpeg.exe $(ODIR)/jpegtran.exe \
|
|
$(ODIR)/jpegut.exe
|
|
cd $(ODIR); ./jpegut
|
|
$(ODIR)/cjpeg -dct int -outfile $(ODIR)/testoutint.jpg testorig.ppm
|
|
$(ODIR)/cjpeg -dct fast -opt -outfile $(ODIR)/testoutfst.jpg testorig.ppm
|
|
$(ODIR)/cjpeg -dct float -outfile $(ODIR)/testoutflt.jpg testorig.ppm
|
|
cmp testimgint.jpg $(ODIR)/testoutint.jpg
|
|
cmp testimgfst.jpg $(ODIR)/testoutfst.jpg
|
|
cmp testimgflt.jpg $(ODIR)/testoutflt.jpg
|
|
$(ODIR)/djpeg -dct int -fast -ppm -outfile $(ODIR)/testoutint.ppm testorig.jpg
|
|
$(ODIR)/djpeg -dct fast -ppm -outfile $(ODIR)/testoutfst.ppm testorig.jpg
|
|
$(ODIR)/djpeg -dct float -ppm -outfile $(ODIR)/testoutflt.ppm testorig.jpg
|
|
cmp testimgint.ppm $(ODIR)/testoutint.ppm
|
|
cmp testimgfst.ppm $(ODIR)/testoutfst.ppm
|
|
cmp testimgflt.ppm $(ODIR)/testoutflt.ppm
|
|
$(ODIR)/djpeg -dct int -bmp -colors 256 -outfile $(ODIR)/testout.bmp testorig.jpg
|
|
cmp testimg.bmp $(ODIR)/testout.bmp
|
|
$(ODIR)/cjpeg -dct int -progressive -outfile $(ODIR)/testoutp.jpg testorig.ppm
|
|
cmp testimgp.jpg $(ODIR)/testoutp.jpg
|
|
$(ODIR)/jpegtran -outfile $(ODIR)/testoutt.jpg $(ODIR)/testoutp.jpg
|
|
cmp testimgint.jpg $(ODIR)/testoutt.jpg
|
|
|
|
testclean:
|
|
$(RM) $(ODIR)/testout* \
|
|
$(ODIR)/*_GRAYQ[0-9]*.bmp \
|
|
$(ODIR)/*_GRAYQ[0-9]*.ppm \
|
|
$(ODIR)/*_GRAYQ[0-9]*.jpg \
|
|
$(ODIR)/*_420Q[0-9]*.bmp \
|
|
$(ODIR)/*_420Q[0-9]*.ppm \
|
|
$(ODIR)/*_420Q[0-9]*.jpg \
|
|
$(ODIR)/*_422Q[0-9]*.bmp \
|
|
$(ODIR)/*_422Q[0-9]*.ppm \
|
|
$(ODIR)/*_422Q[0-9]*.jpg \
|
|
$(ODIR)/*_444Q[0-9]*.bmp \
|
|
$(ODIR)/*_444Q[0-9]*.ppm \
|
|
$(ODIR)/*_444Q[0-9]*.jpg
|