📄 makefile.msvc
字号:
# Makefile.MSVC: MSVC Makefile for LAME ## 2000-11-21 Robert Hegemann# dedicated to the LAME project http://www.mp3dev.org################################################################################__ readme ____________________________________________________________________# nmake -f Makefile.MSVC# -> build lame and dll, but not mp3x# -> use Robert's code modifications# -> assume INTEL compiler available # -> assume NASM available# -> assemble MMX code with NASM# -> optimize for PIII# -> single file optimizations# -> no compiler warnings## passing arguments, one can modify the default behaviour:# COMP=<not INTEL or BCC> -> use MS compiler# WARN=<anything but OFF> -> give verbose compiler warnings# ASM=<anything but YES> -> no NASM nor MMX# MMX=<anything but YES> -> do not assemble MMX code# CFG=<anything but RH> -> disable Robert's modifications# CPU=P1 -> optimize for Pentium instead of P II/III# CPU=P2 -> optimize for Pentium II/III, you need a PII or better# CPU=P3 -> optimize for Pentium III, you need a PIII or better# GTK=YES -> have GTK, adds mp3x to default targets# PREC=SLOPPY -> use single float instead of double## Example:# nmake -f Makefile.MSVC CPU=P1 GTK=YES#____________________________________________________________________ readme __# targets <-> DOS filenamesT_LAME = lame.exeT_LDLL = lame_enc.dllT_MP3X = mp3x.exe# default targetsPGM = $(T_LDLL) $(T_LAME)# some default settings! IF "$(MSVCVER)" != ""COMP = MS! IF "$(MSVCVER)" == "Win64"! IF "$(ASM)" == ""ASM = NO # or it could be ML64 if we want to use it...GTK = NO! ENDIF! ENDIF! ELSE! IF "$(COMP)" == ""COMP = INTEL! ENDIF! ENDIF! IF "$(ASM)" == ""ASM = YES! ENDIF! IF "$(MMX)" == ""MMX = YES! ENDIF! IF "$(CFG)" == "NO-ALTERNATE-CODE-AVAILABLE"CFG = RH! ENDIF! IF "$(CPU)" == ""CPU = P2auto! ENDIF! IF "$(WARN)" == ""WARN = OFF! ENDIF! IF "$(PREC)" == ""PREC = DOUBLE! ENDIFOFF = win32! MESSAGE ----------------------------------------------------------------------! IF "$(CFG)" == ""! MESSAGE building LAME! ELSE! MESSAGE building LAME featuring $(CFG)! ENDIF! IF "$(ASM)" == "YES"! MESSAGE + ASM! IF "$(MMX)" == "YES"! MESSAGE + MMX! ENDIF ! ENDIF ! IF "$(GTK)" == "YES"! MESSAGE + GTK! ENDIF ! IF "$(COMP)" == "INTEL"! MESSAGE using INTEL COMPILER! IF "$(CPU)" == "P1"! MESSAGE + optimizing for Pentium (MMX)! ELSE! IF "$(CPU)" == "P2"! MESSAGE + you need a Pentium II or better! ELSE! IF "$(CPU)" == "P3"! MESSAGE + you need a Pentium III or better! ELSE! MESSAGE + optimizing for Pentium II/III! ENDIF! ENDIF! ENDIF! ELSE! IF "$(MSVCVER)" == "6.0"! MESSAGE + using MSVC 6.0 32-Bit Compiler! IF "$(CPU)" == "P1"! MESSAGE + optimizing for Pentium (MMX) (may slow down PIII a few percent)! ELSE! MESSAGE + optimizing for Pentium II/III! ENDIF! ELSEIF "$(MSVCVER)" == "8.0"! MESSAGE + using MSVC 8.0 32-Bit Compiler! IF "$(CPU)" == "P1"! MESSAGE + optimizing for Pentium (MMX) (may slow down PIII a few percent)! ELSE! MESSAGE + optimizing for Pentium II/III! ENDIF! ELSE! IF "$(MSVCVER)" == "Win64"! MESSAGE + using MS 64-Bit Compiler! ELSE! MESSAGE using MS COMPILER! IF "$(CPU)" == "P1"! MESSAGE + optimizing for Pentium (MMX) (may slow down PIII a few percent)! ELSE! MESSAGE + optimizing for Pentium II/III! ENDIF! ENDIF! ENDIF! ENDIF! IF "$(PREC)" == "SINGLE"! MESSAGE + using Single precision! ENDIF! MESSAGE ----------------------------------------------------------------------! IF "$(COMP)" != "INTEL"! IF "$(COMP)" != "BCC"#__ Microsoft C options _______________________________________________________## /O2 maximize speed# /Ob<n> inline expansion# /Og enable global optimizations# /Oi enable intrinsic functions# /Ot favor code speed# /Oy enable frame pointer omission# /G5 Pentium optimization# /G6 Pentium II/III optimization# /GA optimize for Windows Application# /GF enable read-only string pooling# /Gf enable string spooling# /Gs disable stack checking calls# /Gy separate functions for linker# /QIfdiv generate code for Pentium FDIV fix# /QI0f generate code for Pentium 0x0f erratum fix## remarks: # - aliasing options seem to break code# - try to get the Intel compiler demonstration code!# ICL produces faster code.# debugging options# CC_OPTS = /nologo /Zi /Ge /GZ# LN_OPTS = /nologo /debug:full /debugtype:cv /fixed:no# profiling options# CC_OPTS = /nologo /Zi /O2b2gity /G6As /DNDEBUG # LN_OPTS = /nologo /debug:full /debugtype:cv /fixed:no /profile# release options! IF "$(MSVCVER)" == "Win64"CC_OPTS = /nologo /DWin64 /O2b2ity /GAy /Gs1024 /Zp8 /GL /GS- /Zi! ELSEIF "$(MSVCVER)" == "8.0"CC_OPTS = /nologo /DNDEBUG /O2 /Ob2 /GAy /Gs1024 /Zp8 /GL /Zi! ELSECC_OPTS = /nologo /DNDEBUG /O2 /Ob2 /GAy /Gs1024 /QIfdiv /QI0f /YX! ENDIF! IF "$(NODEBUG)" == "1"CC_OPTS = $(CC_OPTS) /DNDEBUG! ENDIF! IF "$(MSVCVER)" == "6.0"! IF "$(CPU)" == "P1"CC_OPTS = $(CC_OPTS) /G5! ELSECC_OPTS = $(CC_OPTS) /G6! ENDIF! ENDIF! IF "$(WARN)" == "OFF"CC_OPTS = $(CC_OPTS) /w! ELSECC_OPTS = $(CC_OPTS) /W$(WARN)! ENDIF! IF "$(PREC)" == "SINGLE"CC_OPTS = $(CC_OPTS) /DFLOAT8=float /DREAL_IS_FLOAT=1! ENDIFCC_OUT = /Fo! IF "$(MSVCVER)" == "Win64"! IF "$(NODEBUG)" == "1"LN_OPTS = /nologo /map:lame.mapLN_DLL = /DLLLN_OUT = /OUT:! ELSELN_OPTS = /nologo /DEBUG /pdb:lame.pdb /map:lame.map LN_DLL = /DLL /DEBUGLN_OUT = /OUT:! ENDIF! ELSEIF "$(MSVCVER)" == "8.0"! IF "$(NODEBUG)" == "1"LN_OPTS = /nologo /map:lame.map LN_DLL = /DLLLN_OUT = /OUT:! ELSELN_OPTS = /nologo /DEBUG /pdb:lame.pdb /map:lame.map LN_DLL = /DLL /DEBUGLN_OUT = /OUT:! ENDIF! ELSE! IF "$(NODEBUG)" == "1"LN_OPTS = /nologo /map:lame.mapLN_DLL = /DLLLN_OUT = /OUT:! ELSELN_OPTS = /nologoLN_DLL = /DLL /DEBUG /pdb:lame.pdb /map:lame.map LN_OUT = /OUT:! ENDIF! ENDIF! IF "$(MSVCVER)" == "Win64"CC = clLN = link! ELSECC = clLN = link! ENDIF#_______________________________________________________ Microsoft C options __! ELSE#__ Borland BCC options _______________________________________________________## first draft, DLL not working, generates very slow code!BCCINST = C:/Borland/BCC55CC_OPTS = -pc -q -ff -fp -jb -j1 -tWC -tWM -O2 -OS -I$(BCCINST)/include -DNDEBUG -DWIN32# dll >> -tWDLN_OPTS = -lGn -lGi -lap -lx -L$(BCCINST)/lib# dll >> -Tpd! IF "$(CPU)" == "P1"CC_OPTS = $(CC_OPTS) -5! ELSECC_OPTS = $(CC_OPTS) -6! ENDIF! IF "$(WARN)" == "OFF"CC_OPTS = $(CC_OPTS) -w-! ELSECC_OPTS = $(CC_OPTS) ! ENDIFLN_DLL = #$(CCINST)/lib/cw32R.libLN_OUT = -eCC_OUT = -oCC = bcc32LN = bcc32OFF = objPGM = $(T_LAME)! ENDIF#_______________________________________________________ Borland BCC options __! ELSE#__ Intel 4.5 options _________________________________________________________## /YX enable automatic precompiled header file creation/usage# /Ox maximum optimization same as /O2 without /Gfy# /O2 same as /Gfsy /Ob1gyti# /Gd 1) make cdecl the default calling convention# /G5 2) optimized for Pentium# /G6 3) optimized for Pentium II/III# /GA assume single threaded# /Gs[n] disable stack checks for functions with <n bytes of locals# /GF read-only string pooling optimization# /Gy separate functions for the linker # /Qunroll unroll loops with default heuristic# /QIfist enable fast float to int conversion# /QIfdiv enable patch for Pentium with FDIV erratum# /QI0f enable patch for Pentium with 0f erratum# /Qip 2) enable single-file IP optimizations (within files)# /Qipo enable multi-file IP optimizations (between files)# /Qipo_wp 4) enable entire program multi-file IP optimizations# /QaxiMK automatic use of specialized code for PII/III, MMX, SIMD## remarks: # 1) slows speed down, not using# 2) faster compared to 3) or 4) on Pentium MMX at 200 MHz
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -