]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/build.py
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / BaseTools / Source / Python / build / build.py
index 3e4d83409f49e319ad41107685b23e9c8056196b..51fb1f433eb7878d3721e882a7ff8e19cfee4297 100755 (executable)
@@ -4,7 +4,7 @@
 #  Copyright (c) 2014, Hewlett-Packard Development Company, L.P.<BR>\r
 #  Copyright (c) 2007 - 2021, Intel Corporation. All rights reserved.<BR>\r
 #  Copyright (c) 2018, Hewlett Packard Enterprise Development, L.P.<BR>\r
-#  Copyright (c) 2020, ARM Limited. All rights reserved.<BR>\r
+#  Copyright (c) 2020 - 2021, ARM Limited. All rights reserved.<BR>\r
 #\r
 #  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 #\r
@@ -67,10 +67,6 @@ from AutoGen.AutoGen import CalculatePriorityValue
 ## standard targets of build command\r
 gSupportedTarget = ['all', 'genc', 'genmake', 'modules', 'libraries', 'fds', 'clean', 'cleanall', 'cleanlib', 'run']\r
 \r
-## build configuration file\r
-gBuildConfiguration = "target.txt"\r
-gToolsDefinition = "tools_def.txt"\r
-\r
 TemporaryTablePattern = re.compile(r'^_\d+_\d+_[a-fA-F0-9]+$')\r
 TmpTableDict = {}\r
 \r
@@ -197,7 +193,7 @@ def ReadMessage(From, To, ExitFlag,MemTo=None):
                 To(LineStr)\r
         else:\r
             break\r
-        if ExitFlag.isSet():\r
+        if ExitFlag.is_set():\r
             break\r
 \r
 class MakeSubProc(Popen):\r
@@ -209,7 +205,7 @@ class MakeSubProc(Popen):
 #\r
 # This method will call subprocess.Popen to execute an external program with\r
 # given options in specified directory. Because of the dead-lock issue during\r
-# redirecting output of the external program, threads are used to to do the\r
+# redirecting output of the external program, threads are used to do the\r
 # redirection work.\r
 #\r
 # @param  Command               A list or string containing the call of the program\r
@@ -241,8 +237,8 @@ def LaunchCommand(Command, WorkingDir,ModuleAuto = None):
         EndOfProcedure.clear()\r
         if Proc.stdout:\r
             StdOutThread = Thread(target=ReadMessage, args=(Proc.stdout, EdkLogger.info, EndOfProcedure,Proc.ProcOut))\r
-            StdOutThread.setName("STDOUT-Redirector")\r
-            StdOutThread.setDaemon(False)\r
+            StdOutThread.name = "STDOUT-Redirector"\r
+            StdOutThread.daemon = False\r
             StdOutThread.start()\r
 \r
 \r
@@ -433,8 +429,8 @@ class BuildTask:
     @staticmethod\r
     def StartScheduler(MaxThreadNumber, ExitFlag):\r
         SchedulerThread = Thread(target=BuildTask.Scheduler, args=(MaxThreadNumber, ExitFlag))\r
-        SchedulerThread.setName("Build-Task-Scheduler")\r
-        SchedulerThread.setDaemon(False)\r
+        SchedulerThread.name = "Build-Task-Scheduler"\r
+        SchedulerThread.daemon = False\r
         SchedulerThread.start()\r
         # wait for the scheduler to be started, especially useful in Linux\r
         while not BuildTask.IsOnGoing():\r
@@ -456,7 +452,7 @@ class BuildTask:
             # indicated to do so, or there's error in running thread\r
             #\r
             while (len(BuildTask._PendingQueue) > 0 or len(BuildTask._ReadyQueue) > 0 \\r
-                   or not ExitFlag.isSet()) and not BuildTask._ErrorFlag.isSet():\r
+                   or not ExitFlag.is_set()) and not BuildTask._ErrorFlag.is_set():\r
                 EdkLogger.debug(EdkLogger.DEBUG_8, "Pending Queue (%d), Ready Queue (%d)"\r
                                 % (len(BuildTask._PendingQueue), len(BuildTask._ReadyQueue)))\r
 \r
@@ -474,7 +470,7 @@ class BuildTask:
                 BuildTask._PendingQueueLock.release()\r
 \r
                 # launch build thread until the maximum number of threads is reached\r
-                while not BuildTask._ErrorFlag.isSet():\r
+                while not BuildTask._ErrorFlag.is_set():\r
                     # empty ready queue, do nothing further\r
                     if len(BuildTask._ReadyQueue) == 0:\r
                         break\r
@@ -498,12 +494,12 @@ class BuildTask:
                 time.sleep(0.01)\r
 \r
             # wait for all running threads exit\r
-            if BuildTask._ErrorFlag.isSet():\r
+            if BuildTask._ErrorFlag.is_set():\r
                 EdkLogger.quiet("\nWaiting for all build threads exit...")\r
-            # while not BuildTask._ErrorFlag.isSet() and \\r
+            # while not BuildTask._ErrorFlag.is_set() and \\r
             while len(BuildTask._RunningQueue) > 0:\r
                 EdkLogger.verbose("Waiting for thread ending...(%d)" % len(BuildTask._RunningQueue))\r
-                EdkLogger.debug(EdkLogger.DEBUG_8, "Threads [%s]" % ", ".join(Th.getName() for Th in threading.enumerate()))\r
+                EdkLogger.debug(EdkLogger.DEBUG_8, "Threads [%s]" % ", ".join(Th.name for Th in threading.enumerate()))\r
                 # avoid tense loop\r
                 time.sleep(0.1)\r
         except BaseException as X:\r
@@ -531,7 +527,7 @@ class BuildTask:
     #\r
     @staticmethod\r
     def IsOnGoing():\r
-        return not BuildTask._SchedulerStopped.isSet()\r
+        return not BuildTask._SchedulerStopped.is_set()\r
 \r
     ## Abort the build\r
     @staticmethod\r
@@ -547,7 +543,7 @@ class BuildTask:
     #\r
     @staticmethod\r
     def HasError():\r
-        return BuildTask._ErrorFlag.isSet()\r
+        return BuildTask._ErrorFlag.is_set()\r
 \r
     ## Get error message in running thread\r
     #\r
@@ -644,7 +640,7 @@ class BuildTask:
             # TRICK: hide the output of threads left running, so that the user can\r
             #        catch the error message easily\r
             #\r
-            if not BuildTask._ErrorFlag.isSet():\r
+            if not BuildTask._ErrorFlag.is_set():\r
                 GlobalData.gBuildingModule = "%s [%s, %s, %s]" % (str(self.BuildItem.BuildObject),\r
                                                                   self.BuildItem.BuildObject.Arch,\r
                                                                   self.BuildItem.BuildObject.ToolChain,\r
@@ -653,7 +649,7 @@ class BuildTask:
             EdkLogger.SetLevel(EdkLogger.ERROR)\r
             BuildTask._ErrorFlag.set()\r
             BuildTask._ErrorMessage = "%s broken\n    %s [%s]" % \\r
-                                      (threading.currentThread().getName(), Command, WorkingDir)\r
+                                      (threading.current_thread().name, Command, WorkingDir)\r
 \r
         # indicate there's a thread is available for another build task\r
         BuildTask._RunningQueueLock.acquire()\r
@@ -667,8 +663,8 @@ class BuildTask:
         EdkLogger.quiet("Building ... %s" % repr(self.BuildItem))\r
         Command = self.BuildItem.BuildCommand + [self.BuildItem.Target]\r
         self.BuildTread = Thread(target=self._CommandThread, args=(Command, self.BuildItem.WorkingDir))\r
-        self.BuildTread.setName("build thread")\r
-        self.BuildTread.setDaemon(False)\r
+        self.BuildTread.name = "build thread"\r
+        self.BuildTread.daemon = False\r
         self.BuildTread.start()\r
 \r
 ## The class contains the information related to EFI image\r
@@ -1177,14 +1173,14 @@ class Build():
             EndOfProcedure.clear()\r
             if Process.stdout:\r
                 StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))\r
-                StdOutThread.setName("STDOUT-Redirector")\r
-                StdOutThread.setDaemon(False)\r
+                StdOutThread.name = "STDOUT-Redirector"\r
+                StdOutThread.daemon = False\r
                 StdOutThread.start()\r
 \r
             if Process.stderr:\r
                 StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))\r
-                StdErrThread.setName("STDERR-Redirector")\r
-                StdErrThread.setDaemon(False)\r
+                StdErrThread.name = "STDERR-Redirector"\r
+                StdErrThread.daemon = False\r
                 StdErrThread.start()\r
             # waiting for program exit\r
             Process.wait()\r
@@ -1217,14 +1213,14 @@ class Build():
             EndOfProcedure.clear()\r
             if Process.stdout:\r
                 StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))\r
-                StdOutThread.setName("STDOUT-Redirector")\r
-                StdOutThread.setDaemon(False)\r
+                StdOutThread.name = "STDOUT-Redirector"\r
+                StdOutThread.daemon = False\r
                 StdOutThread.start()\r
 \r
             if Process.stderr:\r
                 StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))\r
-                StdErrThread.setName("STDERR-Redirector")\r
-                StdErrThread.setDaemon(False)\r
+                StdErrThread.name = "STDERR-Redirector"\r
+                StdErrThread.daemon = False\r
                 StdErrThread.start()\r
             # waiting for program exit\r
             Process.wait()\r
@@ -1308,6 +1304,9 @@ class Build():
         if Target == 'run':\r
             return True\r
 \r
+        # Fetch the MakeFileName.\r
+        self.MakeFileName = AutoGenObject.MakeFileName\r
+\r
         # build modules\r
         if BuildModule:\r
             BuildCommand = BuildCommand + [Target]\r
@@ -2183,8 +2182,6 @@ class Build():
             Pa.CreateLibModuelDirs()\r
             # Fetch the MakeFileName.\r
             self.MakeFileName = Pa.MakeFileName\r
-            if not self.MakeFileName:\r
-                self.MakeFileName = Pa.MakeFile\r
 \r
             Pa.DataPipe.DataContainer = {"LibraryBuildDirectoryList":Pa.LibraryBuildDirectoryList}\r
             Pa.DataPipe.DataContainer = {"ModuleBuildDirectoryList":Pa.ModuleBuildDirectoryList}\r