blob: 9101c7905416b07113058d1d4a35860fe6c20a5d [file] [log] [blame]
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