diff --git a/makefile.vs b/makefile.vs index 7588522..54546e2 100644 --- a/makefile.vs +++ b/makefile.vs @@ -1,32 +1,32 @@ -# nmake "NCODEC1=1" "NCODEC2=1" /f makefile.msc +# nmake "NCODEC1=1" "NCODEC2=1" /f makefile.vs # or -# nmake "AVX2=1" /f makefile.msc +# nmake "AVX2=1" /f makefile.vs .SUFFIXES: .c .obj .dllobj CC = cl /nologo LD = link /nologo AR = lib /nologo -CFLAGS = /MD /O2 -I. +CFLAGS = /MD /O2 -I. LDFLAGS = LIB_LIB = libic.lib LIB_DLL = ic.dll LIB_IMP = ic.lib -OBJS = bitpack.obj bitutil.obj fp.obj transpose.obj vp4c.obj vp4d.obj vsimple.obj bitunpack.obj vint.obj +OBJS = bitpack.obj bitunpack.obj vp4c.obj vp4d.obj transpose.obj bitutil.obj fp.obj vsimple.obj vint.obj -!IF "$(AVX2)" == "1" -OBJS = $(OBJS) transpose_avx2.obj +!if "$(AVX2)" == "1" +OBJS = $(OBJS) bitpack_avx2.obj bitunpack_avx2.obj transpose_avx2.obj vp4c_avx2.obj vp4d_avx2.obj DEFS = $(DEFS) /D__AVX2__ !endif !if "$(NSIMD)" == "1" -OBJS = $(OBJS) transpose_sse.obj DEFS = $(DEFS) /DNSIMD NCODEC1=1 NCODEC2=1 !else +OBJS = $(OBJS) transpose_sse.obj bitpack_sse.obj bitunpack_sse.obj vp4c_sse.obj vp4d_sse.obj DEFS = $(DEFS) /D__SSE2__ /D__SSSE3__ CFLAGS = $(CFLAGS) /DUSE_SSE !endif @@ -49,6 +49,44 @@ all: $(LIB_LIB) icbench.exe #$(LIB_DLL) $(LIB_IMP) +#------------ +vp4c.obj: vp4c.c + $(CC) /O2 $(CFLAGS) -c vp4c.c /Fovp4c.obj + +vp4c_sse.obj: vp4c.c + $(CC) /O2 $(CFLAGS) /DSSE2_ON /D__SSSE3__ /arch:SSSE3 /D__SSE2__ /arch:SSE2 /c vp4c.c /Fovp4c_sse.obj + +vp4c_avx2.obj: vp4c.c + $(CC) /O2 $(CFLAGS) /DAVX2_ON /D__AVX2__ /arch:avx2 /c vp4c.c /Fovp4c_avx2.obj +#------------ +vp4d.obj: vp4d.c + $(CC) /O2 $(CFLAGS) -c vp4d.c /Fovp4d.obj + +vp4d_sse.obj: vp4d.c + $(CC) /O2 $(CFLAGS) /DSSE2_ON /D__SSSE3__ /arch:SSSE3 /D__SSE2__ /arch:SSE2 /c vp4d.c /Fovp4d_sse.obj + +vp4d_avx2.obj: vp4d.c + $(CC) /O2 $(CFLAGS) /DAVX2_ON /D__AVX2__ /arch:avx2 /c vp4d.c /Fovp4d_avx2.obj +#------------ +bitpack.obj: bitpack.c + $(CC) $(CFLAGS) -c bitpack.c /Fobitpack.obj + +bitpack_sse.obj: bitpack.c + $(CC) /O2 $(CFLAGS) /DSSE2_ON /D__SSE2__ /arch:SSE2 /c bitpack.c /Fobitpack_sse.obj + +bitpack_avx2.obj: bitpack.c + $(CC) /O2 $(CFLAGS) /DAVX2_ON /D__AVX2__ /arch:avx2 /c bitpack.c /Fobitpack_avx2.obj + +#------------ +bitunpack.obj: bitunpack.c + $(CC) /O2 $(CFLAGS) -c bitunpack.c /Fobitunpack.obj + +bitunpack_sse.obj: bitunpack.c + $(CC) /O2 $(CFLAGS) /DSSE2_ON /D__SSSE3__ /arch:SSSE3 /D__SSE2__ /arch:SSE2 /c bitunpack.c /Fobitunpack_sse.obj + +bitunpack_avx2.obj: bitunpack.c + $(CC) /O2 $(CFLAGS) /DAVX2_ON /D__AVX2__ /arch:avx2 /c bitunpack.c /Fobitunpack_avx2.obj + transpose.obj: transpose.c $(CC) /O2 $(CFLAGS) -c transpose.c /Fotranspose.obj @@ -59,10 +97,10 @@ transpose_avx2.obj: transpose.c $(CC) /O2 $(CFLAGS) /DAVX2_ON /D__AVX2__ /arch:avx2 /c transpose.c /Fotranspose_avx2.obj .c.obj: - $(CC) -c /Fo$@ /O2 $(CFLAGS) $(DEFS) $** + $(CC) -c /Fo$@ /O2 $(CFLAGS) /arch:SSSE3 /D__SSSE3__ $(DEFS) $** .cc.obj: - $(CC) -c /Fo$@ /O2 $(CFLAGS) $(DEFS) $** + $(CC) -c /Fo$@ /O2 $(CFLAGS) /arch:SSSE3 /D__SSSE3__ $(DEFS) $** .c.dllobj: $(CC) -c /Fo$@ /O2 $(CFLAGS) $(DEFS) /DLIB_DLL $** @@ -75,7 +113,7 @@ $(LIB_DLL): $(DLL_OBJS) $(LIB_IMP): $(LIB_DLL) -icbench.exe: icbench.obj vs/getopt.obj plugins.obj eliasfano.obj vsimple.obj transpose.obj transpose_sse.obj $(LIB_LIB) +icbench.exe: icbench.obj vs/getopt.obj plugins.obj eliasfano.obj vsimple.obj $(LIB_LIB) $(LD) $(LDFLAGS) -out:$@ $** clean: