📄 clock.make.ba_
字号:
@ECHO OFF
REM ================================ Installation utility =======================
REM 1) INSTALLATION NOTES
REM - the CLOCKSDK environment variable must set the path to CLOCKSDK installation
REM _without_ trailing slash
REM ===========================================================================
SETLOCAL
IF "%1"=="__class" goto END
IF "%1"=="__typeinfo" goto USAGE
IF "%1"=="/?" GOTO HELP
ECHO * CLOCK PROJECT MAKER * by Kris Kaspersky Version 1.0 beta AT 23-07-2001
ECHO (utility for "Code Optimization: Effective Memory Usage" book)
IF "%CLOCKSDK%"=="" SET CLOCKSDK=F:\.optimize\bin\clock
REM Default path to CLOCK SDK ^^^^^^^^^^^^^^^^^^^^^^
IF "%CLOCKSDK%"=="" GOTO ERR_NO_CLOCKSDK
SET COMPIL=MSVC
SET COMPIL_NAME=Microsoft Visual C++
GOTO P1
:PARSE
REM /* Parsing command-line arguments */
REM =====================================================================
SHIFT
:P1
IF "%1"=="" GOTO USAGE
:P2
IF NOT "%1"=="-BC" GOTO P3
SET COMPIL=BC
SET COMPIL_NAME=Borland C++
GOTO PARSE
:P3
IF NOT "%1"=="-WPP" GOTO P4
SET COMPIL=WPP
SET COMPIL_NAME=WATCOM
GOTO PARSE
:P4
IF NOT "%1"=="-debug" GOTO P5
SET OPTIONS=DEBUG
GOTO PARSE
:P5
IF NOT "%1"=="-release" GOTO P6
SET OPTIONS=RELEASE
GOTO PARSE
:P6
IF NOT "%1"=="-nop" GOTO P7
GOTO PARSE
:P7
IF NOT "%1"=="-nocleartmp" GOTO P8
SET nocleartmp=YES
GOTO PARSE
:P8
REM /* Check for existence of SDK files */
REM ===========================================================================
IF NOT EXIST %CLOCKSDK%\SOURCE\DoCPU.asm GOTO ERR_NO_DoCPU_ASM
IF NOT EXIST %CLOCKSDK%\INCLUDE\DoCPU.h GOTO ERR_NO_DoCPU_H
REM /* STARTING PROJECT BUILD */
REM ===========================================================================
ECHO ===== project %~n1 =====
IF NOT EXIST %~n1.c GOTO ERR_C_NOT_EXIST
REM Displaying the list of project files
SET FILES_PRG=%~n1.c
IF EXIST %~n1.mod SET FILES_PRG=%FILES_PRG%;%~n1.mod
IF EXIST %~n1.ini SET FILES_PRG=%FILES_PRG%;%~n1.ini
SET FILES_PRG=%FILES_PRG%.
ECHO [0/3] Project files %FILES_PRG%
REM /* Preparing files for assbmling */
REM ==========================================================================
COPY %CLOCKSDK%\SOURCE\DoCPU.asm %CLOCKSDK%\TEMP\ >NUL
IF EXIST %~n1.mod COPY %~n1.mod %CLOCKSDK%\TEMP\ >NUL
IF EXIST %~n1.ini COPY %~n1.ini %CLOCKSDK%\TEMP\ >NUL
IF EXIST %~n1.mod ECHO INCLUDE %~n1.mod > %CLOCKSDK%\TEMP\code.inc
IF NOT EXIST %~n1.mod ECHO ; > %CLOCKSDK%\TEMP\code.inc
IF EXIST %~n1.ini ECHO INCLUDE %~n1.ini > %CLOCKSDK%\TEMP\code.ini
IF NOT EXIST %~n1.ini ECHO ; > %CLOCKSDK%\TEMP\code.ini
REM /* Preparing the clock.clear.bat file */
REM ===========================================================================
ECHO DEL %CLOCKSDK%\TEMP\code.inc > %CLOCKSDK%\TEMP\clock.clear.bat
ECHO DEL %CLOCKSDK%\TEMP\code.ini >> %CLOCKSDK%\TEMP\clock.clear.bat
ECHO DEL %CLOCKSDK%\TEMP\DoCPU.asm >> %CLOCKSDK%\TEMP\clock.clear.bat
IF EXIST %CLOCKSDK%\TEMP\%~n1.mod ECHO DEL %CLOCKSDK%\TEMP\%~n1.mod >> %CLOCKSDK%\TEMP\clock.clear.bat
IF EXIST %CLOCKSDK%\TEMP\%~n1.ini ECHO DEL %CLOCKSDK%\TEMP\%~n1.ini >> %CLOCKSDK%\TEMP\clock.clear.bat
ECHO IF EXIST DoCPU.obj DEL DoCPU.obj >> %CLOCKSDK%\TEMP\clock.clear.bat
ECHO IF EXIST %~n1.obj DEL %~n1.obj >> %CLOCKSDK%\TEMP\clock.clear.bat
rem ECHO IF EXIST %~n1.pdb DEL %~n1.pdb >> %CLOCKSDK%\TEMP\clock.clear.bat
rem ECHO IF EXIST vc??.pdb DEL vc??.pdb >> %CLOCKSDK%\TEMP\clock.clear.bat
REM ********************** Assembling DoCPU ********************************
REM ==========================================================================
ECHO [1/3] Assembling DoCPU.asm
SET OOPS=
IF "%OPTIONS%"=="DEBUG" SET OOPS=/Zi
ml.exe /WX %oops% /X /c /nologo %CLOCKSDK%\TEMP\DoCPU.asm > %~n1.err
IF ERRORLEVEL==1 GOTO err_link
IF NOT EXIST DoCPU.obj GOTO ERR_LINK
DEL %~n1.err
REM ************************* Compiling **********************************
REM =========================================================================
ECHO [2/3] Compiling the "%~n1" project by %compil_name% %2 %3 %4 %5 %6 %7
IF EXIST %~n1.exe DEL %~n1.exe
REM Determining the compiler to use
IF %COMPIL%==MSVC GOTO msvc
IF %COMPIL%==BC GOTO bc
IF %COMPIL%==WPP GOTO wpp
GOTO ERR_UNK_COMPIL
:MSVC
SET OOPS=
IF "%OPTIONS%"=="DEBUG" SET OOPS=/Zi
cl.exe %2 %3 %4 %5 %6 %oops% /WX /nologo /I%CLOCKSDK%\INCLUDE\ %~n1.c DoCPU.obj >%~n1.err
GOTO after_compil
:BC
call bcc32.bat %2 %3 %4 %5 %6 -w! /I%CLOCKSDK%\INCLUDE\ %~n1.c DoCPU.obj >%~n1.err
GOTO after_compil
:WPP
call wpp.bat %2 %3 %4 %5 %6 -I%CLOCKSDK%\INCLUDE; %~n1.c DoCPU.obj >%~n1.err
GOTO after_compil
:AFTER_COMPIL
REM /* Removing temporary files */
REM =====================================================================
IF NOT "%NOCLEARTMP%"=="YES" GOTO DEL_TEMP
ECHO [3/3] Temporary files were not deleted because the -nocleartmp key was used
GOTO CHK_ERR
:DEL_TEMP
ECHO [3/3] Removing temporary files
CALL %CLOCKSDK%\TEMP\clock.clear.bat
:CHK_ERR
IF ERRORLEVEL==1 GOTO err_compil
IF NOT EXIST %~n1.exe GOTO ERR_COMPIL
DEL %~n1.err
ECHO [+OK] Compile successfully completed
ECHO ::The %~n1.exe was created
IF "%oops%"=="/Zi" ECHO ::with debug information
IF "%opt%"=="/Ox" ECHO ::compiled with maximum optimization
GOTO END
:HELP
ECHO USAGE:
ECHO clock.make.bat [-debug\-release\-nop\-BC\-WPP] modname [arg1,arg2,ar3]
ECHO -debug : generate debug info
ECHO -release : maximum optimize
ECHO -nocleartmp : do not remove temporary files
GOTO END
:USAGE
ECHO CLOCK PROJECT MAKER [clock.make.bat $opt $filename $user_opt]
GOTO END
:ERR_LINK
ECHO -ERR: Assembiling error. See %~n1.err
GOTO END
:ERR_COMPIL
ECHO -ERR: Compile error. See %~n1.err
GOTO END
:ERR_C_NOT_EXIST
ECHO -ERR: Main module %1 does not exist
GOTO END
:ERR_NO_DoCPU_ASM
ECHO.
ECHO -ERR: The %CLOCKSDK%\SOURCE\DoCPU.ASM file is lacking
ECHo Copy the file to the default install directory and try again
GOTO END
:ERR_NO_DoCPU_H
ECHO.
ECHO -ERR: The %CLOCKSDK%\INCLUDE\DoCPU.h file is lacking
ECHo Copy the file to the default install directory and try again
GOTO END
:ERR_NO_CLOCKSDK
ECHO.
ECHO -ERR: The CLOCKSDK v1 environment variable not specified,
ECHO which sets the path to the CLOCKSDK installation directory
ECHO without trailing slash. Restore this variable and try again...
GOTO END
:ERR_UNK_COMPIL
ECHO -ERR: Unknown compiler %compil%
GOTO END
ENDLOCAL
:END
set errorlevel=1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -