diff options
author | dcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db> | 2010-02-18 13:03:41 +0000 |
---|---|---|
committer | dcommander <dcommander@632fc199-4ca6-4c93-a231-07263d6284db> | 2010-02-18 13:03:41 +0000 |
commit | ca038fc3a088874dfa5e980971c54a15c6ba1616 (patch) | |
tree | 7df53327114891e914429d349e86ab91071e00d8 /win | |
parent | a7bf6449decedf00ef98e6b52e45160a4d29e29b (diff) |
First attempt at Win64 support
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@124 632fc199-4ca6-4c93-a231-07263d6284db
Diffstat (limited to 'win')
-rwxr-xr-x | win/Makefile | 338 | ||||
-rwxr-xr-x | win/Makerules | 30 |
2 files changed, 213 insertions, 155 deletions
diff --git a/win/Makefile b/win/Makefile index 6456c46..d33a934 100755 --- a/win/Makefile +++ b/win/Makefile @@ -3,133 +3,152 @@ vpath %.asm simd include win/Makerules -TARGETS = jpeg62.dll \ - jpeg.lib \ - jpeg-static.lib \ - cjpeg.exe \ - djpeg.exe \ - jpegtran.exe \ - rdjpgcom.exe \ - wrjpgcom.exe \ - turbojpeg.dll \ - turbojpeg.lib \ - turbojpeg-static.lib \ - jpgtest.exe \ - jpegut.exe - -LOBJS = jcapimin.obj \ - jcapistd.obj \ - jccoefct.obj \ - jccolor.obj \ - jcdctmgr.obj \ - jchuff.obj \ - jcinit.obj \ - jcmainct.obj \ - jcmarker.obj \ - jcmaster.obj \ - jcomapi.obj \ - jcparam.obj \ - jcphuff.obj \ - jcprepct.obj \ - jcsample.obj \ - jctrans.obj \ - jdapimin.obj \ - jdapistd.obj \ - jdatadst.obj \ - jdatasrc.obj \ - jdcoefct.obj \ - jdcolor.obj \ - jddctmgr.obj \ - jdhuff.obj \ - jdinput.obj \ - jdmainct.obj \ - jdmarker.obj \ - jdmaster.obj \ - jdmerge.obj \ - jdphuff.obj \ - jdpostct.obj \ - jdsample.obj \ - jdtrans.obj \ - jerror.obj \ - jfdctflt.obj \ - jfdctfst.obj \ - jfdctint.obj \ - jidctflt.obj \ - jidctfst.obj \ - jidctint.obj \ - jidctred.obj \ - jquant1.obj \ - jquant2.obj \ - jutils.obj \ - jmemmgr.obj \ - jmemnobs.obj +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) - SIMD_OBJS = jsimd_i386.obj \ - jsimdcpu.obj \ - jccolmmx.obj \ - jdcolmmx.obj \ - jcsammmx.obj \ - jdsammmx.obj \ - jdmermmx.obj \ - jcqntmmx.obj \ - jfmmxfst.obj \ - jfmmxint.obj \ - jimmxred.obj \ - jimmxint.obj \ - jimmxfst.obj \ - jcqnt3dn.obj \ - jf3dnflt.obj \ - ji3dnflt.obj \ - jcqntsse.obj \ - jfsseflt.obj \ - jisseflt.obj \ - jccolss2.obj \ - jdcolss2.obj \ - jcsamss2.obj \ - jdsamss2.obj \ - jdmerss2.obj \ - jcqnts2i.obj \ - jfss2fst.obj \ - jfss2int.obj \ - jiss2red.obj \ - jiss2int.obj \ - jiss2fst.obj \ - jcqnts2f.obj \ - jiss2flt.obj + ifeq ($(WIN64), yes) + SIMD_OBJS = $(ODIR)/jsimd_x86_64.obj \ + $(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 + else + SIMD_OBJS = $(ODIR)/jsimd_i386.obj \ + $(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 + endif LOBJS := $(LOBJS) $(SIMD_OBJS) else - LOBJS := $(LOBJS) jsimd_none.obj + LOBJS := $(LOBJS) $(ODIR)/jsimd_none.obj endif OBJS := $(LOBJS) \ - cdjpeg.obj \ - cjpeg.obj \ - djpeg.obj \ - jpegtran.obj \ - rdbmp.obj \ - rdcolmap.obj \ - rdgif.obj \ - rdjpgcom.obj \ - rdppm.obj \ - rdtarga.obj \ - rdswitch.obj \ - rdtarga.obj \ - transupp.obj \ - wrbmp.obj \ - wrgif.obj \ - wrppm.obj \ - wrtarga.obj \ - wrjpgcom.obj \ - turbojpegl.obj \ - jpgtest.obj \ - jpegut.obj \ - bmp.obj + $(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.obj \ + $(ODIR)/turbojpegl-dll.obj \ + $(ODIR)/jpgtest.obj \ + $(ODIR)/jpegut.obj \ + $(ODIR)/bmp.obj all: $(TARGETS) @@ -140,61 +159,80 @@ HDRS := $(wildcard *.h) $(OBJS): $(HDRS) ifeq ($(WITH_SIMD), yes) - SIMD_HDRS := $(wildcard simd/*.inc) - $(SIMD_OBJS): $(SIMD_HDRS) -endif +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 -jpeg-static.lib: $(LOBJS) +$(ODIR)/jpeg-static.lib: $(LOBJS) $(AR) -out:$@ $^ -jpeg62.dll jpeg.lib: $(LOBJS) win/jpeg.def - $(LINK) $(LDFLAGS) -dll -out:jpeg62.dll -implib:jpeg.lib -def:win/jpeg.def \ - $(LOBJS) +$(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) -cjpeg.exe: cdjpeg.obj cjpeg.obj rdbmp.obj rdgif.obj rdppm.obj rdswitch.obj \ - rdtarga.obj jpeg.lib +$(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:$@ $^ -djpeg.exe: cdjpeg.obj djpeg.obj rdcolmap.obj rdswitch.obj wrbmp.obj wrgif.obj \ - wrppm.obj wrtarga.obj jpeg.lib + +$(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:$@ $^ -jpegtran.exe: cdjpeg.obj jpegtran.obj rdswitch.obj transupp.obj jpeg.lib + +$(ODIR)/jpegtran.exe: $(ODIR)/cdjpeg.obj $(ODIR)/jpegtran.obj \ + $(ODIR)/rdswitch.obj $(ODIR)/transupp.obj $(ODIR)/jpeg.lib $(LINK) $(LDFLAGS) -out:$@ $^ -rdjpgcom.exe: rdjpgcom.obj jpeg.lib +$(ODIR)/rdjpgcom.exe: $(ODIR)/rdjpgcom.obj $(ODIR)/jpeg.lib $(LINK) $(LDFLAGS) -out:$@ $^ -wrjpgcom.exe: wrjpgcom.obj jpeg.lib +$(ODIR)/wrjpgcom.exe: $(ODIR)/wrjpgcom.obj $(ODIR)/jpeg.lib $(LINK) $(LDFLAGS) -out:$@ $^ -turbojpeg-static.lib: turbojpegl.obj $(LOBJS) +$(ODIR)/turbojpeg-static.lib: $(ODIR)/turbojpegl.obj $(LOBJS) $(AR) -out:$@ $^ -turbojpeg-dll.obj: turbojpegl.c +$(ODIR)/turbojpeg-dll.obj: turbojpegl.c $(CC) $(CFLAGS) -DDLLDEFINE -c $< -Fo$@ -turbojpeg.dll turbojpeg.lib: turbojpeg-dll.obj $(LOBJS) - $(LINK) $(LDFLAGS) -dll -out:turbojpeg.dll -implib:turbojpeg.lib $^ +$(ODIR)/turbojpeg.dll $(ODIR)/turbojpeg.lib: $(ODIR)/turbojpeg-dll.obj $(LOBJS) + $(LINK) $(LDFLAGS) -dll -out:$(ODIR)/turbojpeg.dll \ + -implib:$(ODIR)/turbojpeg.lib $^ -jpgtest.exe: jpgtest.obj bmp.obj turbojpeg.lib +$(ODIR)/jpgtest.exe: $(ODIR)/jpgtest.obj $(ODIR)/bmp.obj $(ODIR)/turbojpeg.lib $(LINK) $(LDFLAGS) -out:$@ $^ -jpegut.exe: jpegut.obj turbojpeg.lib +$(ODIR)/jpegut.exe: $(ODIR)/jpegut.obj $(ODIR)/turbojpeg.lib $(LINK) $(LDFLAGS) -out:$@ $^ dist: all - $(RM) libjpeg-turbo.exe + $(RM) $(ODIR)/libjpeg-turbo.exe makensis /nocd //DVERSION=$(VERSION) release/libjpeg-turbo.nsi || \ makensis /nocd /DVERSION=$(VERSION) release/libjpeg-turbo.nsi # Cygwin doesn't like the // -test: testclean cjpeg.exe djpeg.exe jpegtran.exe +test: testclean $(ODIR)/cjpeg.exe $(ODIR)/djpeg.exe $(ODIR)/jpegtran.exe + cd $(ODIR) jpegut djpeg -dct int -ppm -outfile testout.ppm testorig.jpg djpeg -dct int -bmp -colors 256 -outfile testout.bmp testorig.jpg @@ -210,16 +248,16 @@ test: testclean cjpeg.exe djpeg.exe jpegtran.exe cmp testorig.jpg testoutt.jpg testclean: - $(RM) testout* - $(RM) *_GRAYQ[0-9]*.bmp - $(RM) *_GRAYQ[0-9]*.ppm - $(RM) *_GRAYQ[0-9]*.jpg - $(RM) *_420Q[0-9]*.bmp - $(RM) *_420Q[0-9]*.ppm - $(RM) *_420Q[0-9]*.jpg - $(RM) *_422Q[0-9]*.bmp - $(RM) *_422Q[0-9]*.ppm - $(RM) *_422Q[0-9]*.jpg - $(RM) *_444Q[0-9]*.bmp - $(RM) *_444Q[0-9]*.ppm - $(RM) *_444Q[0-9]*.jpg + $(RM) $(ODIR)/testout* + $(RM) $(ODIR)/*_GRAYQ[0-9]*.bmp + $(RM) $(ODIR)/*_GRAYQ[0-9]*.ppm + $(RM) $(ODIR)/*_GRAYQ[0-9]*.jpg + $(RM) $(ODIR)/*_420Q[0-9]*.bmp + $(RM) $(ODIR)/*_420Q[0-9]*.ppm + $(RM) $(ODIR)/*_420Q[0-9]*.jpg + $(RM) $(ODIR)/*_422Q[0-9]*.bmp + $(RM) $(ODIR)/*_422Q[0-9]*.ppm + $(RM) $(ODIR)/*_422Q[0-9]*.jpg + $(RM) $(ODIR)/*_444Q[0-9]*.bmp + $(RM) $(ODIR)/*_444Q[0-9]*.ppm + $(RM) $(ODIR)/*_444Q[0-9]*.jpg diff --git a/win/Makerules b/win/Makerules index d47e690..12e96fe 100755 --- a/win/Makerules +++ b/win/Makerules @@ -1,3 +1,19 @@ +ODIR = windows +WIN64 = no +# Win64 doesn't work yet, for unknown reasons +#ifeq ($(PROCESSOR_ARCHITECTURE), AMD64) +# WIN64 = yes +#else +# ifeq ($(PROCESSOR_ARCHITEW6432), AMD64) +# WIN64 = yes +# endif +#endif +ifeq ($(WIN64), yes) +ODIR = windows64 +endif + +_DUMMY := $(shell mkdir -p $(ODIR)) + VERSION = 0.0.90 CC = "cl" -nologo @@ -5,7 +21,7 @@ CXX = "cl" -EHsc -nologo AR = "link" -lib -nologo LINK = "link" -nologo ifeq ($(DEBUG), yes) - LINK = "link" -nologo -debug + LINK = "link" -nologo -debug -nodefaultlib:libcmt endif ifeq ($(NASM),) NASM = nasm @@ -13,7 +29,11 @@ endif CFLAGS = -W3 -wd4996 -Iwin -I. CDEFINES = -DWIN32 -D_CRT_SECURE_NO_DEPRECATE +ifeq ($(WIN64), yes) +NAFLAGS = -fwin64 -DWIN64 -D__x86_64__ -Iwin/ +else NAFLAGS = -fwin32 -DWIN32 -Iwin/ +endif ifeq ($(DEBUG), yes) CFLAGS := $(CFLAGS) -Od -MTd -Zi NAFLAGS := $(NAFLAGS) -g @@ -28,14 +48,14 @@ ifeq ($(WITH_SIMD), yes) endif -%.obj: %.c +$(ODIR)/%.obj: %.c $(CC) $(CFLAGS) -c $< -Fo$@ -%.obj: %.cxx +$(ODIR)/%.obj: %.cxx $(CXX) $(CXXFLAGS) -c $< -Fo$@ -%.obj: %.asm +$(ODIR)/%.obj: %.asm $(NASM) $(NAFLAGS) -Isimd/ -o $@ $< -%.lib: %.obj +$(ODIR)/%.lib: $(ODIR)/%.obj $(AR) -out:$@ $< |