📄 makefile
字号:
##############################################################################
# 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 + -