⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 Intel的IPP库的应用例程
💻
字号:
##############################################################################
#  Makefile
#    used to build ippcompress sample
#
#  Control variables
#    CC      - Lets you to choose Microsoft or Intel compiler.
#              Default is Intel compiler, set it to "cl" to
#              build with Microsoft one
#
#    LINKAGE - lets you to choose which IPP libraries to link,
#              static or dynamic. Default is static libraries
#

## Name of the application to build

ENCODE  = ippcompress.exe
DECODE  = ippdecompress.exe
IPPZLIB = ipp_zlib.lib
FUNCLIB = ippdcfunc.lib

SrcDir = .\src
IppZlibSrcDir = .\src\ipp_zlib
ObjDir = .\_obj\$(ARCH)
IppZlibObjDir = .\_obj\ipp_zlib\$(ARCH)
BinDir = .\bin\$(ARCH)
IppZlibBinDir = .\bin\ipp_zlib\$(ARCH)

LINK32  = link.exe
LIB32   = lib.exe

!INCLUDE $(ARCH).ini

!IF "$(LINKAGE)" == ""
LINKAGE = dynamic
!ENDIF


###############################################################################

SYSLIB  = \
        kernel32.lib    \
        user32.lib      \
        gdi32.lib \
!IF "$(ARCH)" == "win64" || "$(ARCH)" == "winem64t"
        bufferoverflowu.lib
!ENDIF

IPPLIB = \
!IF "$(LINKAGE)" == "dynamic"
        ippcore$(LIB_ARCH).lib \
        ipps$(LIB_ARCH).lib \
        ippdc$(LIB_ARCH).lib
!ELSE
        ippcore$(LIB_ARCH)l.lib \
!IF "$(ARCH)" == "win64"
        ippsi7l.lib \
        ippdci7l.lib
!ELSE
        ippsmerged$(LIB_ARCH).lib  \
        ippsemerged$(LIB_ARCH).lib      \
        ippdcmerged$(LIB_ARCH).lib      \
        ippdcemerged$(LIB_ARCH).lib
!ENDIF
!ENDIF

###############################################################################

OBJSGZL = \
        $(IppZlibObjDir)\adler32.obj    $(IppZlibObjDir)\compress.obj   $(IppZlibObjDir)\crc32.obj      \
        $(IppZlibObjDir)\gzio.obj       $(IppZlibObjDir)\uncompr.obj    $(IppZlibObjDir)\deflate.obj    \
        $(IppZlibObjDir)\trees.obj      $(IppZlibObjDir)\zutil.obj      $(IppZlibObjDir)\inflate.obj    \
        $(IppZlibObjDir)\infback.obj    $(IppZlibObjDir)\inftrees.obj   $(IppZlibObjDir)\inffast.obj    \
        $(IppZlibObjDir)\ipp_static.obj

OBJSFNC = \
        $(ObjDir)\bwtscheme.obj $(ObjDir)\bwt.obj       $(ObjDir)\rle.obj       \
        $(ObjDir)\mtf.obj       $(ObjDir)\huffman.obj   $(ObjDir)\gitscheme.obj \
        $(ObjDir)\git.obj       $(ObjDir)\lzssscheme.obj

OBJSENC = \
        $(ObjDir)\ippcompress.obj

OBJSDEC = \
        $(ObjDir)\ippdecompress.obj

##############################################################################

CFLAGS = /nologo /c /W3 /MD /O2 /EHsc /GS

CINCLUDE = /I "$(SrcDir)" /I"$(IppZlibSrcDir)" /I "$(IPPROOT)\include"

CDEFINES = /D "WIN32" /D "_WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" \
           /D "_MBCS" /D "_CRT_SECURE_NO_DEPRECATE"

!IF "$(ARCH)"=="winem64t"
CDEFINES = $(CDEFINES) /D "WIN64" /D "_WIN64" /D "_AMD64_"
!ENDIF

!IF "$(ARCH)"=="win64"
CDEFINES = $(CDEFINES) /D "WIN64" /D "_WIN64"
!ENDIF

LINKFLAGS = /nologo \
            /subsystem:console \
            /machine:$(LINK_ARCH) \
            $(SYSLIB) \
            $(IPPLIB)

##############################################################################

all : clean prepare build

{$(SrcDir)}.c{$(ObjDir)}.obj::
        $(CC) $(CFLAGS) $(CINCLUDE) $(CDEFINES) /Fo$(ObjDir)\ $<

{$(IppZlibSrcDir)}.c{$(IppZlibObjDir)}.obj::
        $(CC) $(CFLAGS) -w $(CINCLUDE) $(CDEFINES) /Fo$(IppZlibObjDir)\ $<

{$(IppZlibSrcDir)}.cpp{$(IppZlibObjDir)}.obj::
        $(CC) $(CFLAGS) -w $(CINCLUDE) $(CDEFINES) /Fo$(IppZlibObjDir)\ $<

$(IppZlibBinDir)\$(IPPZLIB) : $(OBJSGZL)
        $(LIB32) @<<
        $(OBJSGZL)
        /out:$@
<<

$(BinDir)\$(FUNCLIB) : $(OBJSFNC)
        $(LIB32) @<<
        $(OBJSFNC)
        /out:$@
<<

$(BinDir)\$(ENCODE) : $(OBJSENC) $(BinDir)\$(FUNCLIB) $(IppZlibBinDir)\$(IPPZLIB)
        $(LINK32) $(LINKFLAGS) \
        $(BinDir)\$(FUNCLIB) \
        $(IppZlibBinDir)\$(IPPZLIB) \
        $(OBJSENC) \
        /out:$@

$(BinDir)\$(DECODE) : $(OBJSDEC) $(BinDir)\$(FUNCLIB) $(IppZlibBinDir)\$(IPPZLIB)
        $(LINK32) $(LINKFLAGS) \
        $(BinDir)\$(FUNCLIB) \
        $(IppZlibBinDir)\$(IPPZLIB) \
        $(OBJSDEC) \
        /out:$@

build:  $(IppZlibBinDir)\$(IPPZLIB) \
        $(BinDir)\$(FUNCLIB) \
        $(BinDir)\$(ENCODE) \
        $(BinDir)\$(DECODE)

prepare :
        @if not exist $(ObjDir)  mkdir $(ObjDir)
        @if not exist $(BinDir)  mkdir $(BinDir)
        @if not exist $(IppZlibObjDir) mkdir $(IppZlibObjDir)
        @If not exist $(IppZlibBinDir) mkdir $(IppZlibBinDir)

clean :
        @echo Cleaning ...
        @if exist $(IppZlibBinDir) rd /s /q $(IppZlibBinDir)
        @if exist $(IppZlibObjDir) rd /s /q $(IppZlibObjDir)
        @if exist $(ObjDir) rd /s /q $(ObjDir)
        @if exist $(BinDir) rd /s /q $(BinDir)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -