Use the C library DLL only with jpeg62.dll where it is needed. Build turbojpeg.dll with the static C library to maintain backward compatibility with TurboJPEG/IPP

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@135 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2010-02-22 04:51:09 +00:00
parent aa91179eac
commit 748fda3834
2 changed files with 32 additions and 21 deletions

View File

@@ -67,8 +67,7 @@ LOBJS = $(ODIR)/jcapimin.obj \
ifeq ($(WITH_SIMD), yes) ifeq ($(WITH_SIMD), yes)
ifeq ($(WIN64), yes) ifeq ($(WIN64), yes)
SIMD_OBJS = $(ODIR)/jsimd_x86_64.obj \ SIMD_OBJS = $(ODIR)/jfsseflt-64.obj \
$(ODIR)/jfsseflt-64.obj \
$(ODIR)/jccolss2-64.obj \ $(ODIR)/jccolss2-64.obj \
$(ODIR)/jdcolss2-64.obj \ $(ODIR)/jdcolss2-64.obj \
$(ODIR)/jcsamss2-64.obj \ $(ODIR)/jcsamss2-64.obj \
@@ -82,9 +81,9 @@ ifeq ($(WITH_SIMD), yes)
$(ODIR)/jiss2fst-64.obj \ $(ODIR)/jiss2fst-64.obj \
$(ODIR)/jcqnts2f-64.obj \ $(ODIR)/jcqnts2f-64.obj \
$(ODIR)/jiss2flt-64.obj $(ODIR)/jiss2flt-64.obj
LOBJS := $(LOBJS) $(ODIR)/jsimd_x86_64.obj
else else
SIMD_OBJS = $(ODIR)/jsimd_i386.obj \ SIMD_OBJS = $(ODIR)/jsimdcpu.obj \
$(ODIR)/jsimdcpu.obj \
$(ODIR)/jccolmmx.obj \ $(ODIR)/jccolmmx.obj \
$(ODIR)/jdcolmmx.obj \ $(ODIR)/jdcolmmx.obj \
$(ODIR)/jcsammmx.obj \ $(ODIR)/jcsammmx.obj \
@@ -115,17 +114,20 @@ ifeq ($(WITH_SIMD), yes)
$(ODIR)/jiss2fst.obj \ $(ODIR)/jiss2fst.obj \
$(ODIR)/jcqnts2f.obj \ $(ODIR)/jcqnts2f.obj \
$(ODIR)/jiss2flt.obj $(ODIR)/jiss2flt.obj
LOBJS := $(LOBJS) $(ODIR)/jsimd_i386.obj
endif endif
LOBJS := $(LOBJS) $(SIMD_OBJS)
else else
LOBJS := $(LOBJS) $(ODIR)/jsimd_none.obj LOBJS := $(LOBJS) $(ODIR)/jsimd_none.obj
endif endif
OBJS := $(LOBJS) \ LOBJSSTATIC := $(subst .obj,-static.obj,$(LOBJS))
LOBJS := $(LOBJS) $(SIMD_OBJS)
LOBJSSTATIC := $(LOBJSSTATIC) $(SIMD_OBJS)
OBJS := $(LOBJS) $(LOBJSSTATIC) \
$(ODIR)/cdjpeg.obj \ $(ODIR)/cdjpeg.obj \
$(ODIR)/cjpeg.obj \ $(ODIR)/cjpeg.obj \
$(ODIR)/djpeg.obj \ $(ODIR)/djpeg.obj \
@@ -144,15 +146,15 @@ OBJS := $(LOBJS) \
$(ODIR)/wrppm.obj \ $(ODIR)/wrppm.obj \
$(ODIR)/wrtarga.obj \ $(ODIR)/wrtarga.obj \
$(ODIR)/wrjpgcom.obj \ $(ODIR)/wrjpgcom.obj \
$(ODIR)/turbojpegl.obj \ $(ODIR)/turbojpegl-static.obj \
$(ODIR)/turbojpegl-dll.obj \ $(ODIR)/turbojpegl-dll.obj \
$(ODIR)/jpgtest.obj \ $(ODIR)/jpgtest.obj \
$(ODIR)/jpegut.obj \ $(ODIR)/jpegut.obj \
$(ODIR)/bmp.obj $(ODIR)/bmp-static.obj
all: $(TARGETS) all: $(TARGETS)
clean: clean: testclean
-$(RM) $(TARGETS) $(OBJS) -$(RM) $(TARGETS) $(OBJS)
HDRS := $(wildcard *.h) HDRS := $(wildcard *.h)
@@ -177,7 +179,7 @@ endif
endif endif
$(ODIR)/jpeg-static.lib: $(LOBJS) $(ODIR)/jpeg-static.lib: $(LOBJSSTATIC)
$(AR) -out:$@ $^ $(AR) -out:$@ $^
$(ODIR)/jpeg62.dll $(ODIR)/jpeg.lib: $(LOBJS) win/jpeg.def $(ODIR)/jpeg62.dll $(ODIR)/jpeg.lib: $(LOBJS) win/jpeg.def
@@ -207,18 +209,20 @@ $(ODIR)/wrjpgcom.exe: $(ODIR)/wrjpgcom.obj $(ODIR)/jpeg.lib
$(LINK) $(LDFLAGS) -out:$@ $^ $(LINK) $(LDFLAGS) -out:$@ $^
$(ODIR)/turbojpeg-static.lib: $(ODIR)/turbojpegl.obj $(LOBJS) $(ODIR)/turbojpeg-static.lib: $(ODIR)/turbojpegl-static.obj $(LOBJSSTATIC)
$(AR) -out:$@ $^ $(AR) -out:$@ $^
$(ODIR)/turbojpegl-dll.obj: turbojpegl.c $(ODIR)/turbojpegl-dll.obj: turbojpegl.c
$(CC) $(CFLAGS) -DDLLDEFINE -c $< -Fo$@ $(CC) $(CFLAGS) $(LIBCSTATIC) -DDLLDEFINE -c $< -Fo$@
$(ODIR)/turbojpeg.dll $(ODIR)/turbojpeg.lib: $(ODIR)/turbojpegl-dll.obj $(LOBJS) $(ODIR)/turbojpeg.dll $(ODIR)/turbojpeg.lib: $(ODIR)/turbojpegl-dll.obj \
$(LOBJSSTATIC)
$(LINK) $(LDFLAGS) -dll -out:$(ODIR)/turbojpeg.dll \ $(LINK) $(LDFLAGS) -dll -out:$(ODIR)/turbojpeg.dll \
-implib:$(ODIR)/turbojpeg.lib $^ -implib:$(ODIR)/turbojpeg.lib $^
$(ODIR)/jpgtest.exe: $(ODIR)/jpgtest.obj $(ODIR)/bmp.obj $(ODIR)/turbojpeg.lib $(ODIR)/jpgtest.exe: $(ODIR)/jpgtest.obj $(ODIR)/bmp-static.obj \
$(ODIR)/turbojpeg.lib
$(LINK) $(LDFLAGS) -out:$@ $^ $(LINK) $(LDFLAGS) -out:$@ $^
$(ODIR)/jpegut.exe: $(ODIR)/jpegut.obj $(ODIR)/turbojpeg.lib $(ODIR)/jpegut.exe: $(ODIR)/jpegut.obj $(ODIR)/turbojpeg.lib

View File

@@ -19,9 +19,9 @@ VERSION = 0.0.90
CC = "cl" -nologo CC = "cl" -nologo
CXX = "cl" -EHsc -nologo CXX = "cl" -EHsc -nologo
AR = "link" -lib -nologo AR = "link" -lib -nologo
LINK = "link" -nologo -nodefaultlib:libcmt LINK = "link" -nologo
ifeq ($(DEBUG), yes) ifeq ($(DEBUG), yes)
LINK = "link" -nologo -debug -nodefaultlib:libcmt LINK = "link" -nologo -debug
endif endif
ifeq ($(NASM),) ifeq ($(NASM),)
NASM = nasm NASM = nasm
@@ -35,10 +35,14 @@ else
NAFLAGS = -fwin32 -DWIN32 -DMSVC -Iwin/ NAFLAGS = -fwin32 -DWIN32 -DMSVC -Iwin/
endif endif
ifeq ($(DEBUG), yes) ifeq ($(DEBUG), yes)
CFLAGS := $(CFLAGS) -Od -MDd -Zi CFLAGS := $(CFLAGS) -Od -Zi
NAFLAGS := $(NAFLAGS) -g NAFLAGS := $(NAFLAGS) -g
LIBCDLL = -MDd
LIBCSTATIC = -MTd
else else
CFLAGS := $(CFLAGS) -O2 -MD CFLAGS := $(CFLAGS) -O2
LIBCDLL = -MD
LIBCSTATIC = -MT
endif endif
WITH_SIMD = yes WITH_SIMD = yes
@@ -49,10 +53,13 @@ endif
$(ODIR)/%.obj: %.c $(ODIR)/%.obj: %.c
$(CC) $(CFLAGS) -c $< -Fo$@ $(CC) $(CFLAGS) $(LIBCDLL) -c $< -Fo$@
$(ODIR)/%-static.obj: %.c
$(CC) $(CFLAGS) $(LIBCSTATIC) -c $< -Fo$@
$(ODIR)/%.obj: %.cxx $(ODIR)/%.obj: %.cxx
$(CXX) $(CXXFLAGS) -c $< -Fo$@ $(CXX) $(CXXFLAGS) $(LIBCSTATIC) -c $< -Fo$@
$(ODIR)/%.obj: %.asm $(ODIR)/%.obj: %.asm
$(NASM) $(NAFLAGS) -Isimd/ -o $@ $< $(NASM) $(NAFLAGS) -Isimd/ -o $@ $<