ccc: Add -ccc-echo special option, and support pulling CCC_CLANG,
CCC_ECHO, and CCC_FALLBACK from environment as ccc (old) did.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62207 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/ccc/ccclib/Driver.py b/tools/ccc/ccclib/Driver.py
index 5d73a98..79979a0 100644
--- a/tools/ccc/ccclib/Driver.py
+++ b/tools/ccc/ccclib/Driver.py
@@ -33,6 +33,7 @@
         self.cccHostSystem = self.cccHostRelease = None
         self.cccCXX = False
         self.cccClang = False
+        self.cccEcho = False
         self.cccFallback = False
 
     # Host queries which can be forcibly over-riden by the user for
@@ -69,6 +70,16 @@
         
         return platform.release()
 
+    def getenvBool(self, name):
+        var = os.getenv(name)
+        if not var:
+            return False
+
+        try:
+            return bool(int(var))
+        except:
+            return False
+
     ###
 
     def run(self, argv):
@@ -85,6 +96,13 @@
 
         # FIXME: How to handle override of host? ccc specific options?
         # Abuse -b?
+        if self.getenvBool('CCC_CLANG'):
+            self.cccClang = True
+        if self.getenvBool('CCC_ECHO'):
+            self.cccEcho = True
+        if self.getenvBool('CCC_FALLBACK'):
+            self.cccFallback = True
+
         while argv and argv[0].startswith('-ccc-'):
             opt,argv = argv[0][5:],argv[1:]
 
@@ -96,6 +114,8 @@
                 self.cccCXX = True
             elif opt == 'clang':
                 self.cccClang = True
+            elif opt == 'echo':
+                self.cccEcho = True
             elif opt == 'fallback':
                 self.cccFallback = True
             elif opt == 'host-bits':
@@ -173,6 +193,9 @@
 
         for j in jobs.iterjobs():
             if isinstance(j, Jobs.Command):
+                if self.cccEcho:
+                    print ' '.join(map(repr,j.getArgv()))
+                    sys.stdout.flush()
                 res = os.spawnvp(os.P_WAIT, j.executable, j.getArgv())
                 if res:
                     sys.exit(res)