nmake/windows build:
authorjljusten <jljusten@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 3 Oct 2007 06:00:02 +0000 (06:00 +0000)
committerjljusten <jljusten@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 3 Oct 2007 06:00:02 +0000 (06:00 +0000)
Added NmakeSubdirs.bat to run nmake on subdirectories and halt
if an error is encountered.  With the previous 'for' usage in the
Makefile it was being missed that BootSectImage was failing to
build.

git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@795 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/Makefile
Source/C/NmakeSubdirs.bat [new file with mode: 0755]

index 187ea8f..1b98e19 100644 (file)
@@ -13,7 +13,7 @@ libs: $(LIBRARIES)
        @echo # Build libraries
        @echo ######################
        @if not exist $(LIB_PATH) mkdir $(LIB_PATH)
-       @for %%i in ($**) do @pushd . & cd %%i & $(MAKE) & popd
+  @NmakeSubdirs.bat all $**
 
 apps: $(APPLICATIONS)
        @echo.
@@ -21,7 +21,7 @@ apps: $(APPLICATIONS)
        @echo # Build executables
        @echo ######################
        @if not exist $(BIN_PATH) mkdir $(BIN_PATH)
-       @for %%i in ($**) do @pushd . & cd %%i & $(MAKE) & popd
+  @NmakeSubdirs.bat all $**
 
 install: $(LIB_PATH) $(BIN_PATH)
        @echo.
@@ -34,12 +34,12 @@ install: $(LIB_PATH) $(BIN_PATH)
 
 .PHONY: clean
 clean:
-       @for %%i in ($(LIBRARIES) $(APPLICATIONS)) do @pushd . & cd %%i & $(MAKE) clean & popd
+  @NmakeSubdirs.bat clean $(LIBRARIES) $(APPLICATIONS)
 
 .PHONY: cleanall
 cleanall:
-       @for %%i in ($(LIBRARIES) $(APPLICATIONS)) do @pushd . & cd %%i & $(MAKE) cleanall & popd
-        @del /f /q $(BIN_PATH)\*.pdb $(BIN_PATH)\*.ilk
+  @NmakeSubdirs.bat cleanall $(LIBRARIES) $(APPLICATIONS)
+  @del /f /q $(BIN_PATH)\*.pdb $(BIN_PATH)\*.ilk
 
 !INCLUDE MSmakefile.rule
 
diff --git a/Source/C/NmakeSubdirs.bat b/Source/C/NmakeSubdirs.bat
new file mode 100755 (executable)
index 0000000..cacb50b
--- /dev/null
@@ -0,0 +1,28 @@
+@echo off\r
+setlocal\r
+SET NMAKE_COMMAND=%1\r
+SHIFT\r
+\r
+:loop\r
+if "%1"=="" goto success\r
+\r
+ECHO Building %1\r
+pushd %1\r
+nmake %NMAKE_COMMAND%\r
+if ERRORLEVEL 1 goto error\r
+ECHO %1 built successfully (%NMAKE_COMMAND%)\r
+ECHO.\r
+shift\r
+popd\r
+goto loop\r
+\r
+:success\r
+goto exit\r
+\r
+:error\r
+popd\r
+ENDLOCAL\r
+ECHO Error while making %1!\r
+VERIFY OTHER 2>NUL\r
+\r
+:exit\r