@echo off ::# default builds static library. ::# you can pass the following arguments (case insensitive): ::# - "DLL" to build a DLL instead of a static library ::# - "/MT" to build a static library compatible with MSVC's /MT option (LIBCMT vs MSVCRT) ::# - "USBDK" to build with UsbDk backend if Test%BUILD_ALT_DIR%==Test goto usage ::# process commandline parameters set TARGET=LIBRARY set STATIC_LIBC= set WITH_USBDK= set version=1.0 set PWD=%~dp0 set BUILD_CMD=build -bcwgZ -M2 :more_args if "%1" == "" goto no_more_args ::# /I for case insensitive if /I Test%1==TestDLL set TARGET=DYNLINK if /I Test%1==Test/MT set STATIC_LIBC=1 if /I Test%1==TestUSBDK set WITH_USBDK=1 shift goto more_args :no_more_args cd ..\libusb\os echo TARGETTYPE=%TARGET% > target copy target+..\..\msvc\libusb_sources sources >NUL 2>&1 del target @echo on %BUILD_CMD% @echo off if errorlevel 1 goto builderror cd ..\.. set cpudir=i386 set destType=Win32 if %_BUILDARCH%==x86 goto isI386 set cpudir=amd64 set destType=x64 :isI386 set srcPath=libusb\os\obj%BUILD_ALT_DIR%\%cpudir% set dstPath=%destType%\Debug if %DDKBUILDENV%==chk goto isDebug set dstPath=%destType%\Release :isDebug if exist %destType% goto md2 mkdir %destType% :md2 if exist %dstPath% goto md3 mkdir %dstPath% :md3 if exist %dstPath%\dll goto md4 mkdir %dstPath%\dll :md4 if exist %dstPath%\lib goto md5 md %dstPath%\lib :md5 if exist %dstPath%\examples goto md6 md %dstPath%\examples :md6 @echo on @if /I NOT Test%1==TestDLL goto copylib copy %srcPath%\libusb-%version%.dll %dstPath%\dll copy %srcPath%\libusb-%version%.pdb %dstPath%\dll :copylib copy %srcPath%\libusb-%version%.lib %dstPath%\lib @echo off if exist examples\listdevs_ddkbuild goto md7 md examples\listdevs_ddkbuild :md7 cd examples\listdevs_ddkbuild copy ..\..\msvc\listdevs_sources sources >NUL 2>&1 @echo on %BUILD_CMD% @echo off if errorlevel 1 goto builderror cd ..\.. set srcPath=examples\listdevs_ddkbuild\obj%BUILD_ALT_DIR%\%cpudir% @echo on copy %srcPath%\listdevs.exe %dstPath%\examples copy %srcPath%\listdevs.pdb %dstPath%\examples @echo off if exist examples\xusb_ddkbuild goto md8 md examples\xusb_ddkbuild :md8 cd examples\xusb_ddkbuild copy ..\..\msvc\xusb_sources sources >NUL 2>&1 @echo on %BUILD_CMD% @echo off if errorlevel 1 goto builderror cd ..\.. set srcPath=examples\xusb_ddkbuild\obj%BUILD_ALT_DIR%\%cpudir% @echo on copy %srcPath%\xusb.exe %dstPath%\examples copy %srcPath%\xusb.pdb %dstPath%\examples @echo off if exist examples\getopt\getopt_ddkbuild goto md9 md examples\getopt\getopt_ddkbuild :md9 cd examples\getopt\getopt_ddkbuild copy ..\..\..\msvc\getopt_sources sources >NUL 2>&1 @echo on %BUILD_CMD% @echo off if errorlevel 1 goto builderror cd ..\..\.. if exist examples\fxload_ddkbuild goto md10 md examples\fxload_ddkbuild :md10 cd examples\fxload_ddkbuild copy ..\..\msvc\fxload_sources sources >NUL 2>&1 @echo on %BUILD_CMD% @echo off if errorlevel 1 goto builderror cd ..\.. set srcPath=examples\fxload_ddkbuild\obj%BUILD_ALT_DIR%\%cpudir% @echo on copy %srcPath%\fxload.exe %dstPath%\examples copy %srcPath%\fxload.pdb %dstPath%\examples @echo off if exist examples\hotplugtest_ddkbuild goto md11 md examples\hotplugtest_ddkbuild :md11 cd examples\hotplugtest_ddkbuild copy ..\..\msvc\hotplugtest_sources sources >NUL 2>&1 @echo on %BUILD_CMD% @echo off if errorlevel 1 goto builderror cd ..\.. set srcPath=examples\hotplugtest_ddkbuild\obj%BUILD_ALT_DIR%\%cpudir% @echo on copy %srcPath%\hotplugtest.exe %dstPath%\examples copy %srcPath%\hotplugtest.pdb %dstPath%\examples @echo off cd msvc goto done :usage echo ddk_build must be run in a WDK build environment pause goto done :builderror echo Build failed :done cd %PWD%