1019 lines
27 KiB
Batchfile
1019 lines
27 KiB
Batchfile
@ECHO OFF
|
|
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
|
|
:: oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
|
:: LIBUSB-WIN32 WINDDK MAKE UTILITY
|
|
:: Travis Robinson [libusbdotnet@gmail.com]
|
|
::
|
|
:: NOTE: param/values passed into make.cmd will override make.cfg
|
|
:: NOTE: destination directories are automatically created
|
|
:: oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
|
|
|
|
CALL :ToAbsoluteDirs DIR_LIBUSB_DDK "%~0" DIR_LIBUSB_WORKING "!CD!"
|
|
IF /I "!DIR_LIBUSB_DDK!" NEQ "!DIR_LIBUSB_WORKING!" (
|
|
PUSHD !CD!
|
|
CD /D "!DIR_LIBUSB_DDK!"
|
|
)
|
|
|
|
IF /I "%~1" EQU "" GOTO ShowHelp
|
|
IF /I "%~1" EQU "?" GOTO ShowHelp
|
|
IF /I "%~1" EQU "/?" GOTO ShowHelp
|
|
IF /I "%~1" EQU "--help" GOTO ShowHelp
|
|
IF /I "%~1" EQU "help" GOTO ShowHelp
|
|
|
|
:BEGIN
|
|
CALL :ClearError
|
|
|
|
CALL :ToAbsoluteDirs CMDVAR_LIBUSB_DIR "!DIR_LIBUSB_DDK!..\"
|
|
|
|
ECHO Libusb-Win32 directory = !CMDVAR_LIBUSB_DIR!
|
|
|
|
SET MAKE_CFG=!DIR_LIBUSB_DDK!make.cfg
|
|
IF NOT EXIST "!MAKE_CFG!" (
|
|
ECHO !MAKE_CFG! configuration file not found.
|
|
GOTO CMDERROR
|
|
)
|
|
|
|
CALL :LoadConfig
|
|
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
SET _PACKAGE_TYPE_=%~1
|
|
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
:: Package build section [if any]
|
|
::
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "clean" (
|
|
CALL :Super_Clean %*
|
|
GOTO CMDEXIT
|
|
)
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "cleanpackage" (
|
|
CALL :Package_Clean %*
|
|
GOTO CMDEXIT
|
|
)
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "all" (
|
|
CALL :Build_Binaries %*
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "bin" (
|
|
CALL :Build_Binaries %*
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "dist" (
|
|
SET LIBUSB_DIST_BUILD=true
|
|
CALL :TokenizeLibusbVersionH %*
|
|
CALL :Package_Distributables %*
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "snapshot" (
|
|
CALL :Package_Distributables %*
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "makever" (
|
|
CALL :TokenizeLibusbVersionH %*
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "%~1" EQU "packagebin" (
|
|
CALL :PrepForPackaging %*
|
|
CALL :CheckOrBuildBinaries
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Package_Bin
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "%~1" EQU "packagesrc" (
|
|
CALL :PrepForPackaging %*
|
|
CALL :CheckOrBuildBinaries
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Package_Src
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "%~1" EQU "packagesetup" (
|
|
CALL :PrepForPackaging %*
|
|
CALL :CheckOrBuildBinaries
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Package_Setup
|
|
IF "!BUILD_ERRORLEVEL!" NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "%~1" EQU "signfile" (
|
|
CALL :SignFile %2
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF /I "%~1" EQU "launchdevenv" (
|
|
CALL :ToShortName DIR_VS_IDE_10 "%VS100COMNTOOLS%..\IDE\"
|
|
CALL :ToShortName DIR_VS_IDE_9 "%VS90COMNTOOLS%..\IDE\"
|
|
IF EXIST "!DIR_VS_IDE_10!" (
|
|
SET DIR_VS=!DIR_VS_IDE_10!
|
|
) ELSE IF EXIST "!DIR_VS_IDE_9!" (
|
|
SET DIR_VS=!DIR_VS_IDE_9!
|
|
) ELSE (
|
|
Echo failed locating visual studio ide directory
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
IF EXIST "!DIR_VS!devenv.exe" (
|
|
"!DIR_VS!devenv.exe" %2
|
|
) ELSE IF EXIST "!DIR_VS!VCExpress.exe" (
|
|
"!DIR_VS!VCExpress.exe" %2
|
|
) ELSE (
|
|
Echo failed locating visual studio ide
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
GOTO CMDEXIT
|
|
)
|
|
|
|
::
|
|
:: End of Package build section
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
:: WinDDK build section (not a package)
|
|
::
|
|
SET _PACKAGE_TYPE_=
|
|
CALL :LoadArguments 0 %*
|
|
|
|
IF NOT DEFINED CMDVAR_ARCH (
|
|
ECHO The architecture must be specified. Example: CMD /C make.cmd "arch=x86"
|
|
GOTO CMDERROR
|
|
)
|
|
|
|
CALL :CheckWinDDK pre
|
|
IF "!BUILD_ERRORLEVEL!" NEQ "0" GOTO CMDERROR
|
|
|
|
SET _FRE_OR_CHECK_=fre
|
|
IF /I "!CMDVAR_DEBUGMODE!" equ "true" SET _FRE_OR_CHECK_=chk
|
|
|
|
IF /I "!CMDVAR_ARCH!" EQU "notused" (
|
|
CALL :SetDDK "!CMDVAR_WINDDK_DIR!" normal !_FRE_OR_CHECK_! WXP
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
) ELSE IF /I "!CMDVAR_ARCH!" EQU "x64" (
|
|
CALL :SetDDK "!CMDVAR_WINDDK_DIR!" normal !_FRE_OR_CHECK_! x64 WNET
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
) ELSE IF /I "!CMDVAR_ARCH!" EQU "i64" (
|
|
CALL :SetDDK "!CMDVAR_WINDDK_DIR!" normal !_FRE_OR_CHECK_! 64 WNET
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
) ELSE IF /I "!CMDVAR_ARCH!" EQU "x86" (
|
|
CALL :SetDDK "!CMDVAR_WINDDK_W2K_DIR!" forceoacr !_FRE_OR_CHECK_! W2K
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
) ELSE (
|
|
ECHO Invalid argument. arch=!CMDVAR_ARCH!
|
|
GOTO CMDERROR
|
|
)
|
|
CALL :CheckWinDDK post
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
call make_clean.bat
|
|
CALL :ClearError
|
|
|
|
SET _LIBUSB_APP=!CMDVAR_APP!
|
|
IF EXIST "build!BUILD_ALT_DIR!.err" DEL /Q "build!BUILD_ALT_DIR!.err"
|
|
CALL :Build
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
IF EXIST "build!BUILD_ALT_DIR!.err" (
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO CMDERROR
|
|
)
|
|
|
|
::
|
|
:: Copy binaries to the output directory
|
|
::
|
|
CALL :SafeCreateDir "!CMDVAR_OUTDIR!"
|
|
IF !ERRORLEVEL! NEQ 0 (
|
|
Unable to re-create output directory !CNDVAR_OUTPUT!
|
|
GOTO CMDERROR
|
|
)
|
|
|
|
IF EXIST *.sys MOVE /Y *.sys "!CMDVAR_OUTDIR!" >NUL
|
|
IF EXIST *.dll MOVE /Y *.dll "!CMDVAR_OUTDIR!" >NUL
|
|
IF EXIST *.exe MOVE /Y *.exe "!CMDVAR_OUTDIR!" >NUL
|
|
IF EXIST libusb.lib COPY /Y libusb.lib "!CMDVAR_OUTDIR!" >NUL
|
|
|
|
CALL :DestroyErrorMarker
|
|
|
|
GOTO CMDEXIT
|
|
|
|
::
|
|
:: End of WinDDK build section
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
:: building functions
|
|
::
|
|
:Build
|
|
CALL :TokenizeLibusbVersionH true
|
|
SET _title=Building libusb-win32 !_LIBUSB_APP! (!BUILD_ALT_DIR!)
|
|
title !_title!
|
|
CALL make_clean.bat
|
|
|
|
SET CMDVAR_BUILDARCH=!_BUILDARCH!
|
|
SET _ADD_C_DEFINES=/DLIBUSB0_DIR=\"!LIBUSB0_DIR!\"
|
|
IF DEFINED CMDVAR_LOG_OUTPUT (
|
|
SET _LOG_OUTPUT_=LOG_OUTPUT_TYPE_!CMDVAR_LOG_OUTPUT:+=+LOG_OUTPUT_TYPE_!
|
|
SET _ADD_C_DEFINES=!_ADD_C_DEFINES! /DLOG_OUTPUT_TYPE=!_LOG_OUTPUT_!
|
|
)
|
|
|
|
CALL make_!_LIBUSB_APP!.bat !_ADD_C_DEFINES!
|
|
IF !ERRORLEVEL! NEQ 0 SET BUILD_ERRORLEVEL=1
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 (
|
|
GOTO CMDERROR
|
|
)
|
|
|
|
IF /I "!CMDVAR_DIR_INTERMEDIATE!" NEQ "" (
|
|
CALL :SafeCopyDir "!DIR_LIBUSB_DDK!obj!BUILD_ALT_DIR!\" "!CMDVAR_DIR_INTERMEDIATE!"
|
|
)
|
|
|
|
IF /I "!CMDVAR_NOCLEAN" NEQ "true" CALL make_clean.bat %1
|
|
|
|
IF /I "!CMDVAR_TESTSIGNING!" EQU "on" (
|
|
IF EXIST libusb0.sys CALL :SignFile libusb0.sys
|
|
IF EXIST libusb0.dll CALL :SignFile libusb0.dll
|
|
)
|
|
|
|
CALL :ClearError
|
|
IF EXIST libusb0.lib move libusb0.lib libusb.lib %~1
|
|
GOTO :EOF
|
|
|
|
:Build_Binaries
|
|
CALL :PrepForPackaging %*
|
|
CALL :CheckPackaging
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :SafeCleanDir "!PACKAGE_BIN_DIR!"
|
|
IF !ERRORLEVEL! NEQ 0 GOTO :EOF
|
|
|
|
REM CALL :Build_PackageBinaries w2k msvc w2k
|
|
REM IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Build_PackageBinaries x86 msvc x86
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
PUSHD !CD!
|
|
CD /D !_OUTDIR_!
|
|
|
|
::
|
|
:: build gcc lib
|
|
::
|
|
CALL :BuildLib_GCC libusb_gcc.a libusb0.dll "!DIR_LIBUSB!libusb0.def"
|
|
CALL :SafeMove libusb_gcc.a "!PACKAGE_LIB_DIR!gcc\libusb.a"
|
|
|
|
::
|
|
:: build bcc lib
|
|
::
|
|
CALL :BuildLib_BCC libusb_bcc.lib libusb0.dll
|
|
CALL :SafeMove libusb_bcc.lib "!PACKAGE_LIB_DIR!bcc\libusb.lib"
|
|
|
|
POPD
|
|
|
|
CALL :Build_PackageBinaries x64 msvc_x64 amd64
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Build_PackageBinaries i64 msvc_i64 ia64
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :SafeCopy "..\src\libusb_dyn.c" "!PACKAGE_LIB_DIR!dynamic\"
|
|
|
|
CALL :SafeCopy "!PACKAGE_ROOT_DIR!gcc\libusb.a" "!PACKAGE_LIB_DIR!gcc\libusb.a" false
|
|
CALL :SafeCopy "!PACKAGE_ROOT_DIR!bcc\libusb.lib" "!PACKAGE_LIB_DIR!bcc\libusb.lib" false
|
|
CALL :SafeMove "!PACKAGE_BIN_DIR!x86\libusb0.dll" "!PACKAGE_BIN_DIR!x86\libusb0_x86.dll"
|
|
|
|
|
|
CALL :SafeCopy "!DIR_LIBUSB_DDK!..\installer_license.txt" "!PACKAGE_ROOT_DIR!installer_license.txt"
|
|
CALL :TagEnv "!DIR_LIBUSB_DDK!..\!PACKAGE_BIN_NAME!-README.txt.in" "!PACKAGE_BIN_DIR!!PACKAGE_BIN_NAME!-README.txt"
|
|
|
|
ECHO.
|
|
ECHO libusb-win32 v!VERSION! binaries built at '!PACKAGE_BIN_DIR!'
|
|
IF /I "!LIBUSB_DIST_BUILD!" EQU "true" (
|
|
SET /P __DUMMY=[Sign these files now and/or press 'Enter' to continue]
|
|
)
|
|
ECHO.
|
|
|
|
SET _OUTDIR_=!PACKAGE_BIN_DIR!
|
|
CALL :CmdExe make.cmd !_ARG_LINE! "arch=x86" "app=inf_wizard" "outdir=!_OUTDIR_!"
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :SafeDelete "!_OUTDIR_!*.lib"
|
|
|
|
GOTO :EOF
|
|
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
:: Packaging functions
|
|
::
|
|
:Build_PackageBinaries
|
|
SET _OUTDIR_=!PACKAGE_BIN_DIR!%3\
|
|
CALL :SafeCreateDir "!_OUTDIR_!"
|
|
CALL :CmdExe make.cmd !_ARG_LINE! "arch=%1" "app=all" "outdir=!_OUTDIR_!"
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO :EOF
|
|
|
|
CALL :SafeCreateDir "!PACKAGE_LIB_DIR!%2\"
|
|
CALL :SafeMove "!_OUTDIR_!\libusb.lib" "!PACKAGE_LIB_DIR!%2\"
|
|
GOTO :EOF
|
|
|
|
|
|
:PackageText
|
|
CALL :TagEnv "..\README.in" "%~2\README.txt"
|
|
COPY /Y "..\*.txt" "%~2"
|
|
IF EXIST "!PACKAGE_ROOT_DIR!libusb-win32-changelog-!CMDVAR_VERSION!.txt" (
|
|
COPY /Y "!PACKAGE_ROOT_DIR!libusb-win32-changelog-!CMDVAR_VERSION!.txt" "%~2\"
|
|
) ELSE (
|
|
ECHO No change log.>"%~2\libusb-win32-changelog-!CMDVAR_VERSION!.txt"
|
|
)
|
|
|
|
GOTO :EOF
|
|
|
|
:PrepForPackaging
|
|
CALL :LoadArguments 1 %*
|
|
CALL :TryCopyGccBinaries
|
|
CALL make_super_clean.bat
|
|
GOTO :EOF
|
|
|
|
:SetPackage
|
|
IF /I "!_PACKAGE_TYPE_!" EQU "snapshot" (
|
|
SET CMDVAR_PCKGNAME=%~1-!CMDVAR_SNAPSHOT_ID!
|
|
) ELSE (
|
|
SET CMDVAR_PCKGNAME=%~1-!CMDVAR_VERSION!
|
|
)
|
|
GOTO :EOF
|
|
|
|
:Package_Distributables
|
|
(
|
|
CALL :PrepForPackaging %*
|
|
CALL :CheckPackaging
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :CheckOrBuildBinaries
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Package_Bin
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Package_Src
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :Package_Setup
|
|
IF !BUILD_ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
:Package_Bin
|
|
CALL :SetPackage "!PACKAGE_BIN_NAME!"
|
|
SET _WORKING_DIR=!PACKAGE_WORKING!!CMDVAR_PCKGNAME!\
|
|
|
|
CALL :SafeReCreateDir "!_WORKING_DIR!"
|
|
|
|
CALL :SafeCopyDir "!PACKAGE_BIN_DIR!" "!_WORKING_DIR!bin\"
|
|
CALL :SafeCopyDir "!PACKAGE_LIB_DIR!" "!_WORKING_DIR!lib\"
|
|
|
|
CALL :SafeCopyDir "..\examples\" "!_WORKING_DIR!examples\"
|
|
|
|
CALL :SafeCopy "..\src\usb.h" "!_WORKING_DIR!include\"
|
|
|
|
CALL :SafeCopy "!PACKAGE_ROOT_DIR!gcc\*" "!_WORKING_DIR!lib\gcc\"
|
|
CALL :SafeCopy "!PACKAGE_ROOT_DIR!bcc\*" "!_WORKING_DIR!lib\bcc\"
|
|
|
|
CALL :PackageText bin "!_WORKING_DIR!"
|
|
|
|
PUSHD "!CD!"
|
|
CD /D "!PACKAGE_WORKING!"
|
|
|
|
CALL :DeleteAllDirectories ".svn"
|
|
|
|
"!ZIP!" -tzip a -r "!PACKAGE_SAVE_DIR!!CMDVAR_PCKGNAME!.zip" ".\!CMDVAR_PCKGNAME!"
|
|
CALL :SafeDeleteDir ".\!CMDVAR_PCKGNAME!"
|
|
POPD
|
|
|
|
GOTO :EOF
|
|
|
|
:Package_Src
|
|
CALL make_super_clean.bat
|
|
CALL :SetPackage "!PACKAGE_SRC_NAME!"
|
|
SET _WORKING_DIR=!PACKAGE_WORKING!!CMDVAR_PCKGNAME!\
|
|
CALL :SafeReCreateDir "!_WORKING_DIR!"
|
|
|
|
CALL :SafeCopyDir "..\" "!_WORKING_DIR!"
|
|
|
|
CALL :PackageText src "!_WORKING_DIR!"
|
|
|
|
PUSHD "!CD!"
|
|
CD /D "!PACKAGE_WORKING!"
|
|
|
|
CALL :DeleteAllDirectories ".svn"
|
|
"!ZIP!" -tzip a -r "!PACKAGE_SAVE_DIR!!CMDVAR_PCKGNAME!.zip" ".\!CMDVAR_PCKGNAME!"
|
|
CALL :SafeDeleteDir ".\!CMDVAR_PCKGNAME!\"
|
|
POPD
|
|
GOTO :EOF
|
|
|
|
:Package_Setup
|
|
CALL :SetPackage "!PACKAGE_SETUP_NAME!"
|
|
SET _WORKING_DIR=!PACKAGE_WORKING!!PACKAGE_SETUP_NAME!\
|
|
CALL :SafeReCreateDir "!_WORKING_DIR!"
|
|
|
|
CALL :PackageText setup "!_WORKING_DIR!"
|
|
|
|
IF /I "!CMDVAR_TESTSIGNING!" EQU "on" (
|
|
CALL :SafeCopy "!PACKAGE_ROOT_DIR!cert\!CERT_FILE!" "!_WORKING_DIR!"
|
|
)
|
|
|
|
CALL :TagEnv "filter-bin-setup.iss.in" "!_WORKING_DIR!filter-bin-setup.iss"
|
|
|
|
PUSHD "!CD!"
|
|
CD /D "!_WORKING_DIR!"
|
|
CALL :DeleteAllDirectories ".svn"
|
|
"!ISCC!" "filter-bin-setup.iss"
|
|
IF !ERRORLEVEL! NEQ 0 GOTO CMDERROR
|
|
|
|
CALL :SafeMove "!CMDVAR_PCKGNAME!.exe" "!PACKAGE_SAVE_DIR!"
|
|
DEL /Q "!_WORKING_DIR!*"
|
|
POPD
|
|
GOTO :EOF
|
|
|
|
:Super_Clean
|
|
CALL :LoadArguments 1 %*
|
|
CALL make_super_clean.bat
|
|
GOTO :EOF
|
|
|
|
:Package_Clean
|
|
CALL :LoadArguments 1 %*
|
|
CALL :SafeCleanDir "!PACKAGE_BIN_DIR!"
|
|
CALL :SafeCleanDir "!PACKAGE_LIB_DIR!"
|
|
CALL :SafeCleanDir "!PACKAGE_WORKING!"
|
|
CALL :SafeCleanDir "!PACKAGE_SAVE_DIR!"
|
|
CALL make_super_clean.bat
|
|
GOTO :EOF
|
|
|
|
:: oooooooooooooooooooooooooooooooooooo
|
|
:: Internal functions
|
|
::
|
|
:SafeCleanDir
|
|
IF EXIST "%~1" (
|
|
ECHO [SafeCleanDir] %~1
|
|
RMDIR /S /Q "%~1"
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
:SafeCopyDir
|
|
SET __SafeCopyDir_Src=%~dp1
|
|
SET __SafeCopyDir_Dst=%~dp2
|
|
IF NOT EXIST "!__SafeCopyDir_Src!" (
|
|
ECHO [SafeCopyDir] %~1 does not exists.
|
|
GOTO :EOF
|
|
)
|
|
|
|
IF "!__SafeCopyDir_Dst:~-1!" EQU "\" SET __SafeCopyDir_Dst=!__SafeCopyDir_Dst:~0,-1!
|
|
FOR /F "usebackq eol=; tokens=* delims=" %%A IN (`DIR /S /B /A-H-S-R-D "!__SafeCopyDir_Src!\*.*"`) DO (
|
|
CALL :StrRemove "%%~A" "!__SafeCopyDir_Src!"
|
|
SET __SafeCopyDir_File=!__SafeCopyDir_Dst!\!StrRemove!
|
|
CALL :ToAbsoluteDirs __SafeCopyDir_Dir "!__SafeCopyDir_File!"
|
|
IF NOT EXIST "!__SafeCopyDir_Dir!" MKDIR "!__SafeCopyDir_Dir!"
|
|
ECHO [SafeCopyDir] File = !__SafeCopyDir_Dir!%%~nxA
|
|
COPY /Y "%%~A" "!__SafeCopyDir_Dir!" >NUL
|
|
|
|
)
|
|
GOTO :EOF
|
|
|
|
:StrRemove
|
|
SET StrRemove=%~1
|
|
SET StrRemove=!StrRemove:%~2=!
|
|
GOTO :EOF
|
|
|
|
:SafeReCreateDir
|
|
CALL :SafeCleanDir "%~1"
|
|
CALL :SafeCreateDir "%~1"
|
|
GOTO :EOF
|
|
|
|
:SafeCreateDir
|
|
IF NOT EXIST "%~1" (
|
|
ECHO [SafeCreateDir] %~1
|
|
MKDIR "%~1"
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
:SafeDeleteDir
|
|
IF EXIST "%~1" (
|
|
ECHO [SafeDeleteDir] %~1
|
|
RMDIR /S /Q "%~1"
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
|
|
:SafeDelete
|
|
IF EXIST "%~1" (
|
|
ECHO [SafeDelete] %~1
|
|
DEL /Q "%~1"
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
:SafeCopy
|
|
IF /I "%3" EQU "false" (
|
|
ECHO [SafeCopy] %~2 already exists. skipping..
|
|
IF EXIST "%~2" GOTO :EOF
|
|
)
|
|
IF EXIST "%~1" (
|
|
ECHO [SafeCopy] %~1 %~2
|
|
CALL :SafeCreateDir "%~dp2"
|
|
COPY /Y "%~1" "%~2" 2>NUL>NUL
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
:SafeMove
|
|
IF EXIST "%~1" (
|
|
ECHO [SafeMove] %~1 %~2
|
|
CALL :SafeCreateDir "%~dp2"
|
|
MOVE /Y "%~1" "%~2"
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
:DeleteAllDirectories
|
|
CALL :CreateTempFile CLEAN_SVN_TMP
|
|
|
|
DIR /B /S "%~1">!CLEAN_SVN_TMP!
|
|
FOR /F "eol=; tokens=1* usebackq delims=" %%I IN (!CLEAN_SVN_TMP!) DO (
|
|
CALL :SafeDeleteDir "%%I"
|
|
)
|
|
|
|
CALL :DestroyTempFile CLEAN_SVN_TMP
|
|
|
|
GOTO :EOF
|
|
|
|
::
|
|
:: params = outlibfile indllfile indeffile
|
|
::
|
|
:BuildLib_GCC
|
|
IF NOT EXIST "!CMDVAR_DLLTOOL!" (
|
|
ECHO [WARNING] gcc dlltool not found. Skipping gcc lib build..
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO :EOF
|
|
)
|
|
|
|
"!CMDVAR_DLLTOOL!" --output-lib "%~1" --dllname "%~2" --input-def "%~3"
|
|
IF !ERRORLEVEL! NEQ 0 ECHO [WARNING] gcc dlltool tool failed.
|
|
GOTO :EOF
|
|
|
|
::
|
|
:: params = outlibfile indllfile
|
|
::
|
|
:BuildLib_BCC
|
|
IF NOT EXIST "!CMDVAR_IMPLIB!" (
|
|
ECHO [WARNING] bcc implib tool not found. Skipping bcc lib build..
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO :EOF
|
|
)
|
|
|
|
"!CMDVAR_IMPLIB!" -a %~1 %~2
|
|
IF !ERRORLEVEL! NEQ 0 ECHO [WARNING] bcc implib tool failed.
|
|
GOTO :EOF
|
|
|
|
:TryCopyGccBinaries
|
|
CALL :SafeCopy ..\libusb.a "!PACKAGE_ROOT_DIR!gcc\"
|
|
GOTO :EOF
|
|
|
|
:SetDDK
|
|
PUSHD !CD!
|
|
SET SELECTED_DDK=%~1
|
|
SHIFT /1
|
|
IF /I "%~1" EQU "forceoacr" SET WINDDK_AUTOCODEREVIEW=
|
|
SHIFT /1
|
|
IF NOT EXIST "!SELECTED_DDK!\bin\setenv.bat" (
|
|
ECHO Failed locating WinDDK setenv.bat at '!SELECTED_DDK!\bin\setenv.bat'
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO :EOF
|
|
)
|
|
CALL "!SELECTED_DDK!\bin\setenv.bat" !SELECTED_DDK! %1 %2 %3 %4 !WINDDK_AUTOCODEREVIEW!
|
|
SET BUILD_ERRORLEVEL=!ERRORLEVEL!
|
|
POPD
|
|
IF NOT !BUILD_ERRORLEVEL!==0 (
|
|
ECHO Failed setting DDK environment
|
|
)
|
|
GOTO :EOF
|
|
|
|
:CheckOrBuildBinaries
|
|
IF NOT EXIST "!PACKAGE_BIN_DIR!x86\*.dll" GOTO BinariesNotBuilt
|
|
IF NOT EXIST "!PACKAGE_BIN_DIR!x86\*.sys" GOTO BinariesNotBuilt
|
|
IF NOT EXIST "!PACKAGE_BIN_DIR!x86\*.exe" GOTO BinariesNotBuilt
|
|
IF NOT EXIST "!PACKAGE_BIN_DIR!amd64\*.dll" GOTO BinariesNotBuilt
|
|
IF NOT EXIST "!PACKAGE_BIN_DIR!amd64\*.sys" GOTO BinariesNotBuilt
|
|
IF NOT EXIST "!PACKAGE_BIN_DIR!amd64\*.exe" GOTO BinariesNotBuilt
|
|
GOTO :EOF
|
|
|
|
:BinariesNotBuilt
|
|
ECHO Binaries not found. Building binaries first..
|
|
CALL :CmdExe make.cmd bin
|
|
IF NOT !BUILD_ERRORLEVEL!==0 (
|
|
ECHO [CheckOrBuildBinaries] Failed.
|
|
pause
|
|
)
|
|
|
|
GOTO :EOF
|
|
|
|
:CheckPackaging
|
|
CALL :ToAbsolutePaths ZIP "!ZIP!" ISCC "!ISCC!"
|
|
IF NOT EXIST "!ZIP!" (
|
|
ECHO [CheckPackaging] Failed locating zip utility: !ZIP!
|
|
ECHO [CheckPackaging] See !MAKE_CFG!
|
|
GOTO CMDERROR
|
|
)
|
|
IF NOT EXIST "!ISCC!" (
|
|
ECHO [CheckPackaging] Failed locating inno setup compiler: !ISCC!
|
|
ECHO [CheckPackaging] See !MAKE_CFG!
|
|
GOTO CMDERROR
|
|
)
|
|
GOTO :EOF
|
|
|
|
:CheckWinDDK
|
|
SET BUILD_ERRORLEVEL=1
|
|
|
|
IF /I "%1" EQU "pre" (
|
|
IF NOT EXIST "!CMDVAR_WINDDK_DIR!" GOTO WINDDK_NOTFOUND
|
|
IF NOT EXIST "!CMDVAR_WINDDK_W2K_DIR!" GOTO WINDDK_W2K_NOTFOUND
|
|
SET BUILD_ERRORLEVEL=0
|
|
GOTO :EOF
|
|
:WINDDK_NOTFOUND
|
|
ECHO Invalid WinDDK Directory !CMDVAR_WINDDK_DIR!
|
|
GOTO :EOF
|
|
|
|
:WINDDK_W2K_NOTFOUND
|
|
ECHO Invalid WinDDK W2K Directory !CMDVAR_WINDDK_W2K_DIR!
|
|
GOTO :EOF
|
|
) ELSE (
|
|
IF DEFINED _NT_TARGET_VERSION (
|
|
ECHO WinDDK ok. Target version = !_NT_TARGET_VERSION!
|
|
SET BUILD_ERRORLEVEL=0
|
|
) ELSE (
|
|
ECHO Unable to configure WinDDK.
|
|
GOTO :EOF
|
|
)
|
|
)
|
|
GOTO :EOF
|
|
|
|
:LoadConfig
|
|
IF NOT EXIST "!MAKE_CFG!" (
|
|
ECHO Config file not found "!MAKE_CFG!".
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO :EOF
|
|
)
|
|
FOR /F "eol=; tokens=1,2* usebackq delims==" %%I IN (!MAKE_CFG!) DO (
|
|
IF NOT "%%~I" EQU "" (
|
|
SET _PNAME=%%~I
|
|
SET _PNAME=!_PNAME: =!
|
|
IF /I "!_PNAME!" EQU "ZIP" (
|
|
CALL :ToShortName _PVALUE "%%~J"
|
|
) ELSE IF /I "!_PNAME!" EQU "ISCC" (
|
|
CALL :ToShortName _PVALUE "%%~J"
|
|
) ELSE IF /I "!_PNAME!" EQU "IMPLIB" (
|
|
CALL :ToShortName _PVALUE "%%~J"
|
|
) ELSE IF /I "!_PNAME!" EQU "DLLTOOL" (
|
|
CALL :ToShortName _PVALUE "%%~J"
|
|
) ELSE (
|
|
SET _PVALUE=%%J
|
|
)
|
|
SET !_PNAME!=!_PVALUE!
|
|
SET CMDVAR_!_PNAME!=!_PVALUE!
|
|
)
|
|
)
|
|
SET LIBUSB0_DIR=!PACKAGE_ROOT_DIR:\=/!
|
|
IF "!LIBUSB0_DIR:~-1!" EQU "/" SET LIBUSB0_DIR=!LIBUSB0_DIR:~0,-1!
|
|
|
|
IF /I "!WINDDK_AUTOCODEREVIEW!" EQU "false" (
|
|
SET WINDDK_AUTOCODEREVIEW=no_oacr
|
|
) ELSE (
|
|
SET WINDDK_AUTOCODEREVIEW=
|
|
)
|
|
GOTO :EOF
|
|
|
|
:LoadArguments
|
|
CALL :ParamValsToEnv :LoadArgumentsCallback %*
|
|
|
|
IF NOT EXIST "!DIR_LIBUSB_DDK!" (
|
|
ECHO Invalid !MAKE_CFG!.
|
|
GOTO CMDERROR
|
|
)
|
|
CALL :ToAbsolutePaths DIR_LIBUSB_DDK "!DIR_LIBUSB_DDK!"
|
|
CALL :ToAbsolutePaths DIR_LIBUSB "!DIR_LIBUSB_DDK!..\"
|
|
|
|
IF "!CMDVAR_WINDDK!" NEQ "" SET CMDVAR_WINDDK_DIR=!CMDVAR_WINDDK!
|
|
IF "!CMDVAR_WIN2KDDK!" NEQ "" SET CMDVAR_WINDDK_W2K_DIR=!CMDVAR_WIN2KDDK!
|
|
IF "!CMDVAR_WINDDK_W2K_DIR!" EQU "" SET CMDVAR_WINDDK_W2K_DIR=!CMDVAR_WINDDK_DIR!
|
|
IF "!CMDVAR_OUTDIR!" EQU "" SET CMDVAR_OUTDIR=.\!CMDVAR_ARCH!
|
|
IF "!CMDVAR_APP!" EQU "" SET CMDVAR_APP=all
|
|
GOTO :EOF
|
|
|
|
:: params = no_overwrite
|
|
:TokenizeLibusbVersionH
|
|
CALL :ToAbsolutePaths _H_IN "!DIR_LIBUSB_DDK!..\src\libusb-win32_version_h.in"
|
|
CALL :ToAbsolutePaths _H_OUT "!DIR_LIBUSB_DDK!..\src\libusb-win32_version.h"
|
|
IF /I "%~1" EQU "true" IF EXIST "!_H_OUT!" GOTO :EOF
|
|
CALL :SafeDelete "!_H_OUT!"
|
|
CALL :TagEnv "!_H_IN!" "!_H_OUT!"
|
|
GOTO :EOF
|
|
|
|
:LoadArgumentsCallback
|
|
SET CMDVAR_%~1=%~2
|
|
GOTO :EOF
|
|
|
|
::
|
|
:: Parses param/value pairs.
|
|
:: Params = CallbackFunction ArgSkipCount "param1=value1" "param2=value2" ..
|
|
::
|
|
:ParamValsToEnv
|
|
SET _SKIP_ARG_LINE=
|
|
SET _ARG_LINE=
|
|
|
|
SET _CALLBACK_FN=%~1
|
|
SET _ARG_SKIP_COUNT=%~2
|
|
SHIFT /1
|
|
|
|
:ParamValsToEnv_Next
|
|
SHIFT /1
|
|
IF "%~1" EQU "" GOTO :EOF
|
|
IF !_ARG_SKIP_COUNT! GTR 0 (
|
|
SET _SKIP_ARG_LINE=!_SKIP_ARG_LINE! "%~1"
|
|
SET /A _ARG_SKIP_COUNT=_ARG_SKIP_COUNT-1
|
|
GOTO ParamValsToEnv_Next
|
|
)
|
|
SET _ARG_LINE=!_ARG_LINE! %1
|
|
SET _PARAM_VALUE_=%%~1
|
|
FOR /F "usebackq tokens=1,2 delims==" %%H IN ('%%~1') DO (
|
|
IF "%%~H" NEQ "" (
|
|
CALL !_CALLBACK_FN! %%H %%I
|
|
)
|
|
)
|
|
GOTO ParamValsToEnv_Next
|
|
GOTO :EOF
|
|
|
|
:ToAbsoluteDirs
|
|
IF NOT "%~1" EQU "" (
|
|
SET %~1=%~dp2
|
|
SHIFT /1
|
|
SHIFT /1
|
|
GOTO ToAbsoluteDirs
|
|
)
|
|
GOTO :EOF
|
|
|
|
:GetDDKToolPath
|
|
CALL :FindInPath %1 "%~2"
|
|
IF "!%1!" EQU "" CALL :ToAbsolutePaths %1 "!CMDVAR_WINDDK_DIR!bin\x86\%~2"
|
|
IF NOT EXIST "!%1!" (
|
|
ECHO %~2 was not found in the path or !CMDVAR_WINDDK_DIR!bin\x86
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO :EOF
|
|
)
|
|
GOTO :EOF
|
|
|
|
|
|
:SignFile
|
|
CALL :GetDDKToolPath MAKE-CERT makecert.exe
|
|
IF "!BUILD_ERRORLEVEL!" NEQ "0" GOTO :EOF
|
|
|
|
CALL :GetDDKToolPath CERT-MGR certmgr.exe
|
|
IF "!BUILD_ERRORLEVEL!" NEQ "0" GOTO :EOF
|
|
|
|
CALL :GetDDKToolPath SIGN-TOOL signtool.exe
|
|
IF "!BUILD_ERRORLEVEL!" NEQ "0" GOTO :EOF
|
|
|
|
ECHO [SignFile] NOTE - remember to type 'bcdedit -set testsigning on' to use
|
|
ECHO test certificates on x64 machines.
|
|
ECHO.
|
|
CALL :SafeCopy "!PACKAGE_ROOT_DIR!cert\!CMDVAR_CERT_FILE!" "!CD!"
|
|
IF NOT EXIST "!CMDVAR_CERT_FILE!" (
|
|
|
|
ECHO [SignFile] clearing LibusbCertStore
|
|
"!CERT-MGR!" -del -all -s LibusbCertStore
|
|
|
|
ECHO [SignFile] making !CMDVAR_CERT_FILE! test certificate
|
|
"!MAKE-CERT!" -r -pe -ss LibusbCertStore -n "CN=Libusb-Win32 Testing" !CMDVAR_CERT_FILE!
|
|
IF "!ERRORLEVEL!" NEQ "0" (
|
|
SET BUILD_ERRORLEVEL=1
|
|
ECHO [SignFile] failed creating certificate !CMDVAR_CERT_FILE!
|
|
GOTO :EOF
|
|
)
|
|
|
|
CALL :SafeCopy !CMDVAR_CERT_FILE! "!PACKAGE_ROOT_DIR!cert\"
|
|
|
|
ECHO [SignFile] adding !CMDVAR_CERT_FILE! to root
|
|
"!CERT-MGR!" -add !CMDVAR_CERT_FILE! -s -r localMachine root
|
|
IF "!ERRORLEVEL!" NEQ "0" (
|
|
SET BUILD_ERRORLEVEL=1
|
|
ECHO [SignFile] failed adding certificate to root
|
|
GOTO :EOF
|
|
)
|
|
|
|
ECHO [SignFile] adding !CMDVAR_CERT_FILE! to trustedpublisher
|
|
"!CERT-MGR!" -add !CMDVAR_CERT_FILE! -s -r localMachine trustedpublisher
|
|
IF "!ERRORLEVEL!" NEQ "0" (
|
|
SET BUILD_ERRORLEVEL=1
|
|
ECHO [SignFile] failed adding certificate to trustedpublisher
|
|
GOTO :EOF
|
|
)
|
|
|
|
)
|
|
|
|
"!SIGN-TOOL!" sign /s LibusbCertStore %1
|
|
IF "!ERRORLEVEL!" NEQ "0" (
|
|
SET BUILD_ERRORLEVEL=1
|
|
GOTO :EOF
|
|
)
|
|
DEL /Q !CMDVAR_CERT_FILE!
|
|
GOTO :EOF
|
|
|
|
:: searches the directories listed in the PATH
|
|
:: environment variable for %2 and expands to the
|
|
:: drive letter and path of the first one found.
|
|
::
|
|
:FindInPath
|
|
SET %1=%~dp$PATH:2
|
|
IF "!%~1!" NEQ "" (
|
|
CALL :ToAbsolutePaths %1 "!%~1!%2"
|
|
ECHO [FindInPath] found path for %1
|
|
)
|
|
GOTO :EOF
|
|
|
|
:ToAbsolutePaths
|
|
IF NOT "%~1" EQU "" (
|
|
SET %~1=%~f2
|
|
SHIFT /1
|
|
SHIFT /1
|
|
GOTO ToAbsolutePaths
|
|
)
|
|
GOTO :EOF
|
|
|
|
:ToShortName
|
|
IF NOT "%~1" EQU "" (
|
|
SET %~1=%~s2
|
|
SHIFT /1
|
|
SHIFT /1
|
|
GOTO ToShortName
|
|
)
|
|
GOTO :EOF
|
|
|
|
::
|
|
:: Params = <infile> <outfile>
|
|
::
|
|
:TagEnv
|
|
CALL :CreateTempFile TAG_ENV_TMP
|
|
|
|
IF NOT DEFINED _LTAG_ SET _LTAG_=@
|
|
IF NOT DEFINED _RTAG_ SET _RTAG_=@
|
|
IF EXIST "%~2" DEL /Q "%~2"
|
|
ECHO [Tokenizing] %~1..
|
|
SET CMDVAR_>!TAG_ENV_TMP!
|
|
FOR /F "tokens=1,* delims=]" %%A IN ('"type %1|find /n /v """') DO (
|
|
SET "line=%%B"
|
|
IF DEFINED line (
|
|
FOR /F "tokens=1,* usebackq delims==" %%I IN (!TAG_ENV_TMP!) DO (
|
|
SET _TOKEN_KEY_=%%I
|
|
SET _TOKEN_KEY_=!_LTAG_!!_TOKEN_KEY_:~7!!_RTAG_!
|
|
CALL SET "line=%%line:!_TOKEN_KEY_!=%%~J%%"
|
|
)
|
|
ECHO !line!>> "%~2"
|
|
) ELSE ECHO.>> "%~2"
|
|
)
|
|
CALL :DestroyTempFile TAG_ENV_TMP
|
|
|
|
GOTO :EOF
|
|
|
|
:CreateTempFile
|
|
SET %1=!DIR_LIBUSB_DDK!tf!RANDOM!.tmp
|
|
GOTO :EOF
|
|
|
|
:DestroyTempFile
|
|
IF EXIST "!%1!" (
|
|
DEL /Q "!%1!"
|
|
IF EXIST "!%1!" ECHO [DestroyTempFile] !%1! access denied.
|
|
) ELSE (
|
|
ECHO [DestroyTempFile] !%1! not found.
|
|
)
|
|
SET %1=
|
|
GOTO :EOF
|
|
|
|
:CreateErrorMarker
|
|
SET _EMARKER=1
|
|
ECHO !_EMARKER!>"!DIR_LIBUSB_DDK!emarker.tmp"
|
|
GOTO :EOF
|
|
|
|
:DestroyErrorMarker
|
|
SET _EMARKER=
|
|
IF EXIST "!DIR_LIBUSB_DDK!emarker.tmp" (
|
|
DEL /Q "!DIR_LIBUSB_DDK!emarker.tmp"
|
|
SET _EMARKER=1
|
|
)
|
|
GOTO :EOF
|
|
|
|
:CmdExe
|
|
CALL :CreateErrorMarker
|
|
CMD /C %*
|
|
IF NOT !ERRORLEVEL!==0 SET BUILD_ERRORLEVEL=1
|
|
CALL :DestroyErrorMarker
|
|
IF DEFINED _EMARKER! (
|
|
SET BUILD_ERRORLEVEL=1
|
|
ECHO [CmdExe] Last build did not complete.
|
|
)
|
|
GOTO :EOF
|
|
|
|
|
|
:ClearError
|
|
SET ERRORLEVEL=0
|
|
SET BUILD_ERRORLEVEL=0
|
|
GOTO :EOF
|
|
|
|
:CMDERROR
|
|
SET BUILD_ERRORLEVEL=1
|
|
SET ERRORLEVEL=1
|
|
GOTO CMDEXIT
|
|
|
|
:CMDEXIT
|
|
IF /I "!DIR_LIBUSB_DDK!" NEQ "!DIR_LIBUSB_WORKING!" POPD
|
|
EXIT /B !BUILD_ERRORLEVEL!
|
|
|
|
:ShowHelp
|
|
|
|
ECHO.
|
|
ECHO LIBUSB-WIN32 WinDDK build utility/application packager
|
|
ECHO.
|
|
ECHO Summary: This batch script automates the libusb-win32 WinDDK build process
|
|
ECHO and creates libusb-win32 redistributable packages.
|
|
ECHO [see also make.cfg]
|
|
ECHO.
|
|
ECHO BUILD USAGE: CMD /C make.cmd "Option=Value"
|
|
ECHO Options:
|
|
ECHO [req] ARCH w2k/x86/x64/i64
|
|
ECHO APP all/dll/driver/install_filter/install_filter_win/inf_wizard/test/testwin
|
|
ECHO [Default = all]
|
|
ECHO OUTDIR Directory that will contain the compiled binaries
|
|
ECHO [Default = .\ARCH]
|
|
ECHO WINDDK WinDDK directory for WXP-WIN7 builds
|
|
ECHO [Default = see make.cfg]
|
|
ECHO WIN2KDDK WinDDK directory for Windows 2000 builds
|
|
ECHO [Default = see make.cfg]
|
|
ECHO DEBUGMODE Setting this option to 'true' makes chk builds instead of fre.
|
|
ECHO This also enables kernel debug messages and sets all default
|
|
ECHO log modes to the max verbosity.
|
|
ECHO [Default = false]
|
|
ECHO TESTSIGNING Setting this option to 'on' signs te dll and driver with a
|
|
ECHO test certifcate.
|
|
ECHO [Default = off]
|
|
ECHO LOG_OUTPUT Changes the log output type. By default, console apps send log
|
|
ECHO messages to stderr, dlls and windows apps send log messages to
|
|
ECHO OutputDebugString and kernel drivers send messages to
|
|
ECHO DbgPrint. Use DebugView to view DBGPRINT, DEBUGWINDOW logs.
|
|
ECHO http://download.sysinternals.com/Files/DebugView.zip
|
|
ECHO Log Output Types (case sensitive, combinable with +):
|
|
ECHO DEFAULT Use the build defaults. [see above]
|
|
ECHO REMOVE Strip all log messages [except errors].
|
|
ECHO STDERR output to stderr
|
|
ECHO DEBUGWINDOW OutputDebugString, DbgPrint
|
|
ECHO FILE redirect log messages to a file.
|
|
ECHO.
|
|
ECHO [Note: See make.cfg for more options that can be used when building]
|
|
ECHO Examples:
|
|
ECHO CMD /C make.cmd "arch=x86" "app=all" "outdir=.\x86"
|
|
ECHO CMD /C make.cmd "arch=x64" "outdir=.\x64" "winddk=%SystemDrive%\WinDDK\7600.16385.0\"
|
|
ECHO CMD /C make.cmd "arch=x64" "testsigning=on"
|
|
ECHO CMD /C make.cmd "arch=x86"
|
|
ECHO.
|
|
ECHO PACKAGE USAGE: make.cmd PackageCommand "Option=Value"
|
|
ECHO Package Commands:
|
|
ECHO ALL Build binaries for all architectures.
|
|
ECHO DIST Creates libusb-win32 dist packages.
|
|
ECHO SNAPSHOT Creates libusb-win32 snapshot packages.
|
|
ECHO.
|
|
ECHO Additional Commands:
|
|
ECHO CLEAN Cleans all temporary files.
|
|
ECHO CLEANPACKAGE Cleans root package directory.
|
|
ECHO SIGNFILE Signs a dll or sys file with a test certificate.
|
|
ECHO MAKEVER Re/creates libusb-win32_version.h from the template.
|
|
ECHO.
|
|
ECHO [Note: See make.cfg for options that can be used when packaging]
|
|
ECHO.
|
|
ECHO Example: make.cmd clean
|
|
ECHO Example: make.cmd all
|
|
ECHO Example: make.cmd dist
|
|
ECHO.
|
|
GOTO CMDERROR
|
|
|