makefile

来自「signal-processing.rar信号处理demo原码」· 代码 · 共 131 行

TXT
131
字号
##############################################################################
#  Makefile
#    used to build Viterbi decoder 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 test application to build
BinName = test.exe


.SUFFIXES:: .rc2

SrcAppDir = .\test
SrcVitDir = .\src

## Directory name for obj-files
ObjDir = .\_obj\$(ARCH)_$(COMP)

## Directory name for exe-files
BinDir = .\bin\$(ARCH)_$(COMP)

ResDir = .\test


# When Intel C++ compiler is used, CC variable should be set to CC=icl.exe
CC     = cl.exe
LINK32 = link.exe
RC     = rc.exe


!INCLUDE $(ARCH).ini

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


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

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

OMPLIB = libguide40.lib

SYSLIB  = \
  kernel32.lib user32.lib gdi32.lib


VITOBJS = \
   $(ObjDir)\viterbi.obj

APPOBJS = \
  $(ObjDir)\main.obj \
  $(ObjDir)\timer.obj


CFLAGS = /nologo /c /GX /O2 /W4 /MD

!IF "$(CC)" == "icl.exe" || "$(CC)" == "ecl.exe"
CFLAGS = $(CFLAGS)  /Qwd9,171,181,593,810,981,1418
!ENDIF

CINCLUDE = /I "$(SrcAppDir)" /I "$(SrcVitDir)"

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


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

all : prepare build

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

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

#{$(ResDir)}.rc{$(ObjDir)}.res:
#   $(RC) /l 0x409 $(CINCLUDE) $(CDEFINES) /fo$@ $?


$(BinDir)\$(BinName) : $(VITOBJS) $(APPOBJS)
   $(LINK32) /nologo \
             /map \
             /subsystem:console \
             /machine:$(LINK_ARCH) \
             $(SYSLIB) \
!IF "$(CC)" == "icl.exe"
             $(OMPLIB) \
!ENDIF
             $(IPPLIB) \
             $(VITOBJS) $(APPOBJS) \
             /out:$@


build : $(BinDir)\$(BinName)

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

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

help:
   @echo Usage of this Makefile:
   @echo "nmake         ARCH = [ win32 | win64 | winem64t ]" - prepare and build phases
   @echo "nmake prepare ARCH = [ win32 | win64 | winem64t ]" - creates directories
   @echo "nmake clean   ARCH = [ win32 | win64 | winem64t ]" - removes directories created
   @echo "nmake build   ARCH = [ win32 | win64 | winem64t ]" - builds
   @echo "nmake help    ARCH = [ win32 | win64 | winem64t ]" - help

⌨️ 快捷键说明

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