📄 makefile
字号:
!elseLINKLIB = LIBCS+OS2386!endifLINKOPT = /NOD /NOE /PMTYPE:VIOWARPPACK = /EXEPACK:2!elseLINKLIB =LINKOPT = /NOE /PMTYPE:VIOWARPPACK = /EXEPACK!endif# ExecutablesARJ = arj.exeARJSFXV = arjsfxv.exeARJSFX = arjsfx.exeARJSFXJR = arjsfxjr.exeARJCRYPT = arjcrypt.dllREARJ = rearj.exeREGISTER = register.exeARJDISP = arjdisp.exePOSTPROC = postproc.exeJOIN = join.exeMSGBIND = msgbind.exeTODAY = today.exeMAKE_KEY = make_key.exePACKAGER = packager.exeMAKESTUB = makestub.exeSFXSTUB = sfxstub.exe# Linkup objectsSTD_OBJ = $(WARPPACK) /STACK:18432ARJ_OBJ = /STACK:73728STB_OBJ = $(WARPPACK)SFV_OBJ = $(WARPPACK) /STACK:16384SFX_OBJ = $(WARPPACK) /STACK:16384SFJ_OBJ = $(WARPPACK) /STACK:8192REJ_OBJ = /STACK:73728REG_OBJ = $(WARPPACK)ADI_OBJ = $(WARPPACK)CRP_OBJ = /STACK:2048# Supplemental objects# LibrariesSTD_LIB = $(LINKLIB)ARJ_LIB = $(LINKLIB)STB_LIB = $(LINKLIB)SFV_LIB = $(LINKLIB)SFX_LIB = $(LINKLIB)SFJ_LIB = $(LINKLIB)REJ_LIB = $(LINKLIB)REG_LIB = $(LINKLIB)ADI_LIB = $(LINKLIB)CRP_LIB = $(LINKLIB)# New executable definitionsSTD_DEF = CSET2\default.defARJ_DEF = CSET2\arj.defSTB_DEF = CSET2\sfxstub.defSFV_DEF = CSET2\arjsfxv.defSFX_DEF = CSET2\arjsfx.defSFJ_DEF = CSET2\arjsfxjr.defREJ_DEF = CSET2\rearj.defREG_DEF = CSET2\register.defADI_DEF = CSET2\arjdisp.defCRP_DEF = CSET2\arjcrypt.def## MetaWare High C/C++ v 3.xx#!elseif "$(COMPILER)" == "HIGHC"CC_CODE = $(COMPILER)CC = hc.exe!ifdef DEBUGHCDBG = -g -on=Emit_namesCLNKDBG = /DE /MAP:fullNP_SFX = 1MAKESYM = 1!elseHCDBG =HCOPTIM = -O7 -Hpentium -Hon=Optimize_FP -Hoff=BEHAVED!endif!ifdef LIBCHCLIBC = -I$(LIBCPATH) -D__EXTENDED__!endifCOPT = -I$(BASEDIR) -o $@ -c -I. $(HCDBG) $(HCLIBC) -Hpragma=Offwarn(553) %sNEARPOPT =LINKER = link386.exe# C optionsSTD_COPT = -DARJUTIL $(HCOPTIM) $(COPT)ARJ_COPT = -DSFL=4 $(HCOPTIM) $(COPT)SFV_COPT = -DSFL=3 $(HCOPTIM) $(COPT)SFX_COPT = -DSFL=2 $(HCOPTIM) $(COPT)SFJ_COPT = -DSFL=1 $(HCOPTIM) $(COPT)REJ_COPT = -Hon=Check_stack -DREARJ $(HCOPTIM) $(COPT)REG_COPT = -DREGISTER $(HCOPTIM) $(COPT)ADI_COPT = -DARJDISP $(HCOPTIM) $(COPT)FAR_COPT = $(NEARP_OPT) $(HCOPTIM) $(ARJ_COPT)FDS_COPT = $(HCOPTIM) $(ARJ_COPT)NEAR_COPT = $(HCOPTIM) $(ARJ_COPT)CRP_COPT = $(COPT)# LIBC hack for linking!ifdef LIBCLINKLIB = HIGHC\HCD_OMF+OS2386+LIBCSS+HCLINKOPT = /NOD /NOE /PMTYPE:VIOWARPPACK = /EXEPACK:2!elseLINKLIB = HC+HCNA+OS2386LINKOPT = /NOE /PMTYPE:VIOWARPPACK = /EXEPACK!endif## OpenWatcom C/C++#!elseif "$(COMPILER)" == "WATCOM"CC_CODE = WCC2_32CC = wcc386.exe!ifdef DEBUGWCCDBG = -d2 -enCLNKDBG = /DENP_SFX = 1MAKESYM = 1!elseWCCDBG = -5WCCSIZE = -os# This yields top speed but is pretty unsafe. See below.WCCSPD = -otx!endif!ifdef LIBCWCCLIBC = -i=$(LIBCPATH) -D__EXTENDED__ -zl -D_LNK_CONV=_System!endifCOPT = -i=$(BASEDIR) -wcd=107 -fo=$@ -s -i=. $(WCCDBG) $(WCCLIBC) -ze %sNEARPOPT =LINKER = link386.exe# C optionsSTD_COPT = -DARJUTIL $(WCCSIZE) $(COPT)ARJ_COPT = -DSFL=4 $(WCCSIZE) $(COPT)# This is a Watcom speed freak. Now we just have to set it by default.ARJ_COPTS = -DSFL=4 $(WCCSPD) $(COPT)SFV_COPT = -DSFL=3 $(WCCSIZE) $(COPT)SFX_COPT = -DSFL=2 $(WCCSIZE) $(COPT)SFJ_COPT = -DSFL=1 $(WCCSIZE) $(COPT)REJ_COPT = -DREARJ $(WCCSIZE) $(COPT)REG_COPT = -DREGISTER $(WCCSIZE) $(COPT)ADI_COPT = -DARJDISP $(WCCSIZE) $(COPT)FAR_COPT = $(NEARP_OPT) $(ARJ_COPT)FDS_COPT = $(ARJ_COPT)# One more fix for Watcom.NEAR_COPT = $(ARJ_COPTS)CRP_COPT = $(WCCSIZE) $(COPT)# LIBC hack for linking!ifdef LIBCLINKLIB = WCC2_32\OWATCOMR+OS2386+LIBCSSLINKOPT = /MAP:full /NOE /PMTYPE:VIOWARPPACK = /EXEPACK:2!else!error Not supported!LINKLIB = WCC2_32\OWATCOMC+OS2386+clib3rLINKOPT = /MAP:full /NOD /NOE /PMTYPE:VIOWARPPACK = /EXEPACK!endif!endif# Linkup objectsSTD_OBJ = $(CLNKDBG) $(WARPPACK) /STACK:18432ARJ_OBJ = $(CLNKDBG) /STACK:73728STB_OBJ = $(CLNKDBG) $(WARPPACK)SFV_OBJ = $(CLNKDBG) $(WARPPACK) /STACK:16384SFX_OBJ = $(CLNKDBG) $(WARPPACK) /STACK:16384SFJ_OBJ = $(CLNKDBG) $(WARPPACK) /STACK:8192REJ_OBJ = $(CLNKDBG) /STACK:73728REG_OBJ = $(CLNKDBG) $(WARPPACK) /STACK:8192ADI_OBJ = $(CLNKDBG) $(WARPPACK) /STACK:16384CRP_OBJ = $(CLNKDBG) /STACK:2048# Supplemental objects# LibrariesSTD_LIB = $(LINKLIB)ARJ_LIB = $(LINKLIB)STB_LIB = $(LINKLIB)SFV_LIB = $(LINKLIB)SFX_LIB = $(LINKLIB)SFJ_LIB = $(LINKLIB)REJ_LIB = $(LINKLIB)REG_LIB = $(LINKLIB)ADI_LIB = $(LINKLIB)CRP_LIB = $(LINKLIB)# New executable definitionsSTD_DEF = CSET2\default.defARJ_DEF = CSET2\arj.defSTB_DEF = CSET2\sfxstub.defSFV_DEF = CSET2\arjsfxv.defSFX_DEF = CSET2\arjsfx.defSFJ_DEF = CSET2\arjsfxjr.defREJ_DEF = CSET2\rearj.defREG_DEF = CSET2\register.defADI_DEF = CSET2\arjdisp.defCRP_DEF = CSET2\arjcrypt.def# ExecutablesARJ = arj.exeARJSFXV = arjsfxv.exeARJSFX = arjsfx.exeARJSFXJR = arjsfxjr.exeARJCRYPT = arjcrypt.dllREARJ = rearj.exeREGISTER = register.exeARJDISP = arjdisp.exePOSTPROC = postproc.exeJOIN = join.exeMSGBIND = msgbind.exeTODAY = today.exeMAKE_KEY = make_key.exePACKAGER = packager.exeMAKESTUB = makestub.exeSFXSTUB = sfxstub.exeLRF = echo > NUL!endif#### Win32 PE section##!if "$(MODE)" == "WIN32"OS_ID = WIN32!ifndef COMPILERCOMPILER = MSVC!endif# No assembler inlays anymore (use portable C snippets as in EMX)NO_ASM = 1# For the free-form COFF MS Linker:NEWLINK = 1## Visual C++ v 2.20 (9.10)#!if "$(COMPILER)" == "MSVC"CC_CODE = $(COMPILER)CC = cl.exe!ifdef DEBUGADD_COPT = /Ge /Zi /OdADD_LINKOPT = /DEBUG!elseMSVC_SIZE = /OsMSVC_SPEED = /OtADD_COPT = /G4 /OyADD_LINKOPT = /RELEASE /DEFAULTLIB:NTDLL!endif!ifdef LIBCLIBC_COPT = /MD!elseLIBC_COPT = /ML!endifCOPT = /c /I$(BASEDIR) /W2 /GX $(LIBC_COPT) $(ADD_COPT) /I. /Fo$@ %sLINKER = link.exe# C optionsSTD_COPT = $(MSVC_SIZE) $(CSETSTK) /DARJUTIL $(COPT)ARJ_COPT = $(MSVC_SPEED) $(CSETSTK) /DSFL=4 $(COPT)ARJ_RECOPT = $(MSVC_SIZE) $(CSETSTK) /DSFL=4 $(COPT)SFV_COPT = $(MSVC_SIZE) $(CSETSTK) /DSFL=3 $(COPT)SFX_COPT = $(MSVC_SIZE) $(CSETSTK) /DSFL=2 $(COPT)SFJ_COPT = $(MSVC_SIZE) $(CSETSTK) /DSFL=1 $(COPT)REJ_COPT = /Ge /DREARJ $(COPT)REG_COPT = $(MSVC_SIZE) $(CSETSTK) /DREGISTER $(COPT)ADI_COPT = $(MSVC_SIZE) $(CSETSTK) /DARJDISP $(COPT)FAR_COPT = $(NEARP_OPT) $(ARJ_COPT)FDS_COPT = $(ARJ_COPT)NEAR_COPT = $(CSETSTK) $(ARJ_COPT)CRP_COPT = /LD /DDLL $(COPT)LINKLIB = largeint.libLINKOPT = $(ADD_LINKOPT)# ExecutablesARJ = arj.exeARJSFXV = arjsfxv.exeARJSFX = arjsfx.exeARJSFXJR = arjsfxjr.exeARJCRYPT = arjcrypt.dllREARJ = rearj.exeREGISTER = register.exeARJDISP = arjdisp.exePOSTPROC = postproc.exeJOIN = join.exeMSGBIND = msgbind.exeTODAY = today.exeMAKE_KEY = make_key.exePACKAGER = packager.exeMAKESTUB = makestub.exeSFXSTUB = sfxstub.exe# Linkup objectsSTD_OBJ = /SUBSYSTEM:CONSOLE,3.10 /STACK:65536,32768ARJ_OBJ = /SUBSYSTEM:CONSOLE,3.10 /STACK:73728,16384STB_OBJ = /SUBSYSTEM:CONSOLE,3.10SFV_OBJ = /SUBSYSTEM:CONSOLE,3.10 /STACK:65536,16384SFX_OBJ = /SUBSYSTEM:CONSOLE,3.10 /STACK:65536,16384SFJ_OBJ = /SUBSYSTEM:CONSOLE,3.10 /STACK:65536,8192REJ_OBJ = /SUBSYSTEM:CONSOLE,3.10 /STACK:73728,24576REG_OBJ = /SUBSYSTEM:CONSOLE,3.10ADI_OBJ = /SUBSYSTEM:CONSOLE,3.10CRP_OBJ = /SUBSYSTEM:WINDOWS,3.10 /DLL# Supplemental objects# LibrariesSTD_LIB = $(LINKLIB)ARJ_LIB = $(LINKLIB)STB_LIB = $(LINKLIB)SFV_LIB = $(LINKLIB)SFX_LIB = $(LINKLIB)SFJ_LIB = $(LINKLIB)REJ_LIB = $(LINKLIB)REG_LIB = $(LINKLIB)ADI_LIB = $(LINKLIB)CRP_LIB = $(LINKLIB)# Only declare some exports for the DLLCRP_DEF = /DEF:WIN32\arjcrypt.def!endif!endif!ifndef NEWLINKLAST_LINKOPT = ;!elseMAP_LINKOPT = /MAP:OUT_LINKOPT = /OUT:LRF = echo!endif# Buggy optimizer treatment section:## + Options for RECOVERY.C (the VisualAge C++ optimizer fails here)!ifndef ARJ_RECOPTARJ_RECOPT = $(ARJ_COPT)!endif# + ARJ speed-optimized modules (encoding/decoding/security).!ifndef ARJ_COPTSARJ_COPTS = $(ARJ_COPT)!endif# Base directory macros (one in UNIX format, for preprocessors to be happy)BASEDIR = $(CC_CODE)\$(LOCALE)\$(DEBUG_SM)$(PACKAGE)BASEDIR_T = $(CC_CODE)\$(LOCALE)\$(DEBUG_SM)$(PACKAGE)^\BASEDIR_P = $(CC_CODE)\$(LOCALE)\$(DEBUG_SM)cBASEDIR_U = $(CC_CODE)/$(LOCALE)/$(DEBUG_SM)$(PACKAGE)/.SUFFIXES: .c .asm .obj .exe## Main dependency tree#all: init \ timestamp \ $(BASEDIR)\arj\$(ARJ) \ $(BASEDIR)\arjcrypt\$(ARJCRYPT) \ $(BASEDIR)\rearj\$(REARJ) \ $(BASEDIR)\register\$(REGISTER) \ $(BASEDIR)\arjdisp\$(ARJDISP) \ $(BASEDIR)\tools\$(PACKAGER) \!ifdef COMMERCIAL $(BASEDIR)\tools\$(MAKE_KEY) \!endif dispose## Pre-compile initialization#init: @if exist $(BASEDIR_T)stubincl.inc del $(BASEDIR_T)stubincl.inc# Create C defines file @echo /* This is an automatically generated file */ >$(C_DEFS)!ifdef COMMERCIAL @echo #define COMMERCIAL >>$(C_DEFS)!endif!ifdef LIBC @echo #define LIBC >>$(C_DEFS)!endif!ifdef MAKESYM @echo #define MAKESYM >>$(C_DEFS)!endif!ifdef NP_SFX @echo #define NP_SFX >>$(C_DEFS)!endif!ifdef DEBUG @echo #define DEBUG >>$(C_DEFS)!endif!ifdef FORCE_MSGRAPH @echo #define FORCE_MSGRAPH >>$(C_DEFS)!endif!ifdef USE_COLORS @echo #define USE_COLORS >>$(C_DEFS)!endif @echo #define LOCALE LANG_$(LOCALE) >>$(C_DEFS) @echo #define LOCALE_DESC "$(LOCALE)" >>$(C_DEFS) @echo #define HAVE_MIN >>$(C_DEFS) @echo #define HAVE_MAX >>$(C_DEFS) @echo #define HAVE_STRLWR >>$(C_DEFS) @echo #define HAVE_STRUPR >>$(C_DEFS)# Create ASM defines file @echo ; This is an automatically generated file >$(ASM_DEFS)!ifndef COMMERCIAL @echo NC_CRC EQU 1>>$(ASM_DEFS)!endif!ifdef DEBUG @echo DEBUG EQU 1>>$(ASM_DEFS)!endif!if "$(MODE)" == "OS232" @echo FLATMODE EQU 1>>$(ASM_DEFS)!endif!if "$(COMPILER)" == "MSC6"||"$(COMPILER)" == "MSC7"||"$(COMPILER)" == "MSVC10"||"$(COMPILER)" == "MSVC15"||"$(COMPILER)" == "QC25" @echo MSC EQU 1>>$(ASM_DEFS)!endif# Environment-specific preparations!if "$(MODE)" == "OS216"||"$(MODE)" == "OS232"!if "$(COMPILER)" != "HIGHC" @echo #define _OS2 >>$(C_DEFS)!endif @echo _OS2 EQU 1 >>$(ASM_DEFS)!endif!if "$(COMPILER)" == "MSC6"!if "$(MODE)" == "DOS16" @SET CL=/B1C1L /I. /c /Zp /Gs!else if "$(MODE)" == "OS216" @SET CL=/B2C2L /c /G2 /Zp /Gs /Lp /Zl!endif!endif## Update timestamp file#timestamp: $(BASEDIR)\tools\$(TODAY) $(BASEDIR)\tools\$(TODAY) $(LOCALE) $(BASEDIR)## Final cleanup#dispose: @if exist $(BASEDIR_T)stubincl.inc del $(BASEDIR_T)stubincl.inc @if exist $(C_DEFS) del $(C_DEFS) @if exist $(ASM_DEFS) del $(ASM_DEFS)!if "$(COMPILER)" == "MSC6" @SET CL=!endif## Message resource compiler (must be the FIRST program to compile)# Timestamp utility# Comment creation utility# Postprocessing utility# Join utility# Stub message section converter# Packaging tool#$(BASEDIR)\tools\$(MSGBIND): \ $(BASEDIR)\tools\msgbind.obj \ $(BASEDIR)\tools\filemode.obj \ $(BASEDIR)\tools\arjdata.obj \ $(BASEDIR)\tools\crc32.obj $(LRF) @<<$(BASEDIR_T)msgbind.lrf!ifdef NEWLINK$(LINKOPT) $(STD_OBJ) $(**: = ^)!else$(LINKOPT) $(STD_OBJ) $(**: = +^)!endif$(OUT_LINKOPT)$@$(MAP_LINKOPT)$(@R).map$(STD_LIB)<< $(LINKER) @$(BASEDIR_T)msgbind.lrf$(LAST_LINKOPT) if exist $(BASEDIR_T)msgbind.lrf del $(BASEDIR_T)msgbind.lrf$(BASEDIR)\tools\$(TODAY): \ $(BASEDIR)\tools\today.obj \ $(BASEDIR)\tools\filemode.obj $(LRF) @<<$(BASEDIR_T)today.lrf!ifdef NEWLINK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -