]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/gcc/mingw-gcc-build.py
BaseTools: Refactor python print statements
[mirror_edk2.git] / BaseTools / gcc / mingw-gcc-build.py
index 04a0ff1948139b642f0b25bba1eb132a7087ce86..20984d3ec8785990908aeecbb3cfc1f75707f3b8 100755 (executable)
@@ -17,6 +17,7 @@
 #
 
 
+from __future__ import print_function\r
 from optparse import OptionParser
 import os
 import shutil
@@ -34,7 +35,7 @@ if sys.version_info < (2, 5):
     #
     # This script (and edk2 BaseTools) require Python 2.5 or newer
     #
-    print 'Python version 2.5 or later is required.'
+    print('Python version 2.5 or later is required.')\r
     sys.exit(-1)
 
 #
@@ -146,37 +147,37 @@ class Config:
         if not self.options.skip_gcc:
             building.append('gcc')
         if len(building) == 0:
-            print "Nothing will be built!"
-            print
-            print "Please try using --help and then change the configuration."
+            print("Nothing will be built!")\r
+            print()\r
+            print("Please try using --help and then change the configuration.")\r
             return False
 
-        print "Current directory:"
-        print "   ", self.base_dir
-        print "Sources download/extraction:", self.Relative(self.src_dir)
-        print "Build directory            :", self.Relative(self.build_dir)
-        print "Prefix (install) directory :", self.Relative(self.prefix)
-        print "Create symlinks directory  :", self.Relative(self.symlinks)
-        print "Building                   :", ', '.join(building)
-        print
+        print("Current directory:")\r
+        print("   ", self.base_dir)\r
+        print("Sources download/extraction:", self.Relative(self.src_dir))\r
+        print("Build directory            :", self.Relative(self.build_dir))\r
+        print("Prefix (install) directory :", self.Relative(self.prefix))\r
+        print("Create symlinks directory  :", self.Relative(self.symlinks))\r
+        print("Building                   :", ', '.join(building))\r
+        print()\r
         answer = raw_input("Is this configuration ok? (default = no): ")
         if (answer.lower() not in ('y', 'yes')):
-            print
-            print "Please try using --help and then change the configuration."
+            print()\r
+            print("Please try using --help and then change the configuration.")\r
             return False
 
         if self.arch.lower() == 'ipf':
-            print
-            print 'Please note that the IPF compiler built by this script has'
-            print 'not yet been validated!'
-            print
+            print()\r
+            print('Please note that the IPF compiler built by this script has')\r
+            print('not yet been validated!')\r
+            print()\r
             answer = raw_input("Are you sure you want to build it? (default = no): ")
             if (answer.lower() not in ('y', 'yes')):
-                print
-                print "Please try using --help and then change the configuration."
+                print()\r
+                print("Please try using --help and then change the configuration.")\r
                 return False
 
-        print
+        print()\r
         return True
 
     def Relative(self, path):
@@ -222,27 +223,10 @@ class SourceFiles:
             'version': '4.3.0',
             'md5': '197ed8468b38db1d3481c3111691d85b',
             },
-        'mingw_hdr': {
-            'url': 'http://sourceforge.net/projects/' + \
-                   'mingw-w64/files/mingw-w64/mingw-w64-snapshot/' + \
-                   'mingw-w64-v1.0-snapshot-$version.tar.bz2/download',
-            'extract-dir': os.path.join('mingw-w64-v1.0-$version', 'mingw-w64-headers'),
-            'version': '20100427',
-            'md5': '1fe68f486bba8995f6a5cf0ed06c80f3',
-            },
         }
 
     source_files_ia32 = {
         'gcc': source_files_x64['gcc'],
-        'mingw_hdr': {
-            'url': 'http://sourceforge.net/projects/' + \
-                   'mingw/files/MinGW%20Runtime/' + \
-                   'mingwrt-$version/' + \
-                   'mingwrt-$version-mingw32-src.tar.gz/download',
-            'extract-dir': 'mingwrt-$version-mingw32',
-            'version': '3.15.2',
-            'md5': '7bf0525f158213f3ac990ea68a5ec34d',
-            },
         }
 
     source_files_ipf = source_files_x64.copy()
@@ -292,7 +276,7 @@ class SourceFiles:
             wDots = (100 * received * blockSize) / fileSize / 10
             if wDots > self.dots:
                 for i in range(wDots - self.dots):
-                    print '.',
+                    print('.', end=' ')\r
                     sys.stdout.flush()
                     self.dots += 1
 
@@ -303,18 +287,18 @@ class SourceFiles:
                     self.dots = 0
                     local_file = os.path.join(self.config.src_dir, fdata['filename'])
                     url = fdata['url']
-                   print 'Downloading %s:' % fname, url
+                    print('Downloading %s:' % fname, url)\r
                     if retries > 0:
-                        print '(retry)',
+                        print('(retry)', end=' ')\r
                     sys.stdout.flush()
 
                     completed = False
                     if os.path.exists(local_file):
                         md5_pass = self.checkHash(fdata)
                         if md5_pass:
-                            print '[md5 match]',
+                            print('[md5 match]', end=' ')\r
                         else:
-                            print '[md5 mismatch]',
+                            print('[md5 mismatch]', end=' ')\r
                         sys.stdout.flush()
                         completed = md5_pass
 
@@ -330,32 +314,32 @@ class SourceFiles:
                     if not completed and os.path.exists(local_file):
                         md5_pass = self.checkHash(fdata)
                         if md5_pass:
-                            print '[md5 match]',
+                            print('[md5 match]', end=' ')\r
                         else:
-                            print '[md5 mismatch]',
+                            print('[md5 mismatch]', end=' ')\r
                         sys.stdout.flush()
                         completed = md5_pass
 
                     if completed:
-                        print '[done]'
+                        print('[done]')\r
                         break
                     else:
-                        print '[failed]'
-                        print '  Tried to retrieve', url
-                        print '  to', local_file
-                        print 'Possible fixes:'
-                        print '* If you are behind a web-proxy, try setting the',
-                        print 'http_proxy environment variable'
-                        print '* You can try to download this file separately',
-                        print 'and rerun this script'
+                        print('[failed]')\r
+                        print('  Tried to retrieve', url)\r
+                        print('  to', local_file)\r
+                        print('Possible fixes:')\r
+                        print('* If you are behind a web-proxy, try setting the', end=' ')\r
+                        print('http_proxy environment variable')\r
+                        print('* You can try to download this file separately', end=' ')\r
+                        print('and rerun this script')\r
                         raise Exception()
                 
                 except KeyboardInterrupt:
-                    print '[KeyboardInterrupt]'
+                    print('[KeyboardInterrupt]')\r
                     return False
 
-                except Exception, e:
-                    print e
+                except Exception as e:\r
+                    print(e)\r
 
             if not completed: return False
 
@@ -413,7 +397,7 @@ class Extracter:
             extractedMd5 = open(extracted).read()
 
         if extractedMd5 != moduleMd5:
-            print 'Extracting %s:' % self.config.Relative(local_file)
+            print('Extracting %s:' % self.config.Relative(local_file))\r
             tar = tarfile.open(local_file)
             tar.extractall(extractDst)
             open(extracted, 'w').write(moduleMd5)
@@ -439,7 +423,6 @@ class Builder:
         if not self.config.options.skip_binutils:
             self.BuildModule('binutils')
         if not self.config.options.skip_gcc:
-            self.CopyIncludeDirectory()
             self.BuildModule('gcc')
             self.MakeSymLinks()
 
@@ -459,24 +442,6 @@ class Builder:
             "w"
             ).close()
 
-    def CopyIncludeDirectory(self):
-        linkdst = os.path.join(self.config.prefix, 'mingw')
-        src = os.path.join(
-            self.config.src_dir,
-            self.config.arch,
-            self.source_files.GetExtractDirOf('mingw_hdr'),
-            'include'
-            )
-        dst_parent = os.path.join(self.config.prefix, self.config.target_combo)
-        dst = os.path.join(dst_parent, 'include')
-        if not os.path.exists(dst):
-            if not os.path.exists(dst_parent):
-                os.makedirs(dst_parent)
-            print 'Copying headers to', self.config.Relative(dst)
-            shutil.copytree(src, dst, True)
-        if not os.path.lexists(linkdst):
-            print 'Making symlink at', self.config.Relative(linkdst)
-            os.symlink(self.config.target_combo, linkdst)
 
     def BuildModule(self, module):
         base_dir = os.getcwd()
@@ -516,7 +481,7 @@ class Builder:
 
         os.chdir(base_dir)
 
-        print '%s module is now built and installed' % module
+        print('%s module is now built and installed' % module)\r
 
     def RunCommand(self, cmd, module, stage, skipable=False):
         if skipable:
@@ -531,13 +496,13 @@ class Builder:
                 stderr=subprocess.STDOUT
                 )
 
-        print '%s [%s] ...' % (module, stage),
+        print('%s [%s] ...' % (module, stage), end=' ')\r
         sys.stdout.flush()
         p = popen(cmd)
         output = p.stdout.read()
         p.wait()
         if p.returncode != 0:
-            print '[failed!]'
+            print('[failed!]')\r
             logFile = os.path.join(self.config.build_dir, 'log.txt')
             f = open(logFile, "w")
             f.write(output)
@@ -545,7 +510,7 @@ class Builder:
             raise Exception, 'Failed to %s %s\n' % (stage, module) + \
                 'See output log at %s' % self.config.Relative(logFile)
         else:
-            print '[done]'
+            print('[done]')\r
 
         if skipable:
             self.MarkBuildStepComplete('%s.%s' % (module, stage))
@@ -562,13 +527,13 @@ class Builder:
             linkdst = os.path.join(links_dir, link)
             if not os.path.lexists(linkdst):
                 if not startPrinted:
-                    print 'Making symlinks in %s:' % self.config.Relative(links_dir),
+                    print('Making symlinks in %s:' % self.config.Relative(links_dir), end=' ')\r
                     startPrinted = True
-                print link,
+                print(link, end=' ')\r
                 os.symlink(src, linkdst)
 
         if startPrinted:
-            print '[done]'
+            print('[done]')\r
 
 class App:
     """class App
@@ -587,9 +552,9 @@ class App:
         sources = SourceFiles(config)
         result = sources.GetAll()
         if result:
-            print 'All files have been downloaded & verified'
+            print('All files have been downloaded & verified')\r
         else:
-            print 'An error occured while downloading a file'
+            print('An error occured while downloading a file')\r
             return
 
         Extracter(sources, config).ExtractAll()