Adding a python script to enable RVCT 3.1 (ARM ARM compiler) to run in cygwin. The...
authorAJFISH <AJFISH@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 26 Aug 2009 21:08:05 +0000 (21:08 +0000)
committerAJFISH <AJFISH@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 26 Aug 2009 21:08:05 +0000 (21:08 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9201 6f19259b-4bc3-4df7-8a09-765794883524

BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/DEBUG_RVCT31CYGWIN/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/RELEASE_RVCT31CYGWIN/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py [new file with mode: 0755]
BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE31/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE32/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE31/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE32/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/Win32/Arm/DEBUG_RVCT31/CompilerIntrinsicsLib.lib [new file with mode: 0644]
BaseTools/Bin/Win32/Arm/RELEASE_RVCT31/CompilerIntrinsicsLib.lib [new file with mode: 0644]

diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/DEBUG_RVCT31CYGWIN/CompilerIntrinsicsLib.lib b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/DEBUG_RVCT31CYGWIN/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..5f14954
Binary files /dev/null and b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/DEBUG_RVCT31CYGWIN/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/RELEASE_RVCT31CYGWIN/CompilerIntrinsicsLib.lib b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/RELEASE_RVCT31CYGWIN/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..d3efae3
Binary files /dev/null and b/BaseTools/Bin/CYGWIN_NT-5.1-i686/Arm/RELEASE_RVCT31CYGWIN/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py b/BaseTools/Bin/CYGWIN_NT-5.1-i686/armcc_wrapper.py
new file mode 100755 (executable)
index 0000000..4d91a26
--- /dev/null
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+#
+# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+#
+# All rights reserved. This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution.  The full text of the license may be found at
+#
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+#
+# ARMCC tools do not support cygwin paths. Ths script converts cygwin paths to DOS paths
+# in any arguments. 
+#
+# armcc_wrapper.py ToolToExec [command line to convert]
+#
+# anthing with the / will be converted via cygpath cygwin call or manually. 
+# -I/cygpath/c/example is a special case as you can not pass -I to cygpath
+#
+# ExceptionList if a tool takes an argument with a / add it to the exception list
+#
+import sys
+import os
+import subprocess 
+
+#
+# Convert using cygpath command line tool
+# Currently not used, but just in case we need it in the future
+#
+def ConvertCygPathToDosViacygpath(CygPath):
+  p = subprocess.Popen("cygpath -m " + CygPath, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True)
+  return p.stdout.read().strip()
+
+#
+#
+#
+def ConvertCygPathToDos(CygPath):
+  if CygPath.find("/cygdrive/") == 0:
+    # convert /cygdrive/c/Xyz to c:/Xyz
+    DosPath = CygPath[10] + ':' + CygPath[11:]
+  else:
+    DosPath = CygPath
+  
+  # need the extra \\ as we are making a string to pass to a command
+  return DosPath.replace('/','\\\\')
+
+
+def main(argv):
+
+  # use 1st argument as name of tool to call
+  Command = sys.argv[1]
+  
+  ExceptionList = ["/interwork"]
+  
+  for arg in argv:
+    if arg.find('/') == -1:
+      # if we don't need to convert just add to the command line
+      Command = Command + ' ' + arg 
+    elif arg in ExceptionList:
+      # if it is in the list, then don't do a cygpath
+      # assembler stuff after --apcs has the /.
+      Command = Command + ' ' + arg 
+    else:
+      if ((arg[0] == '-') and (arg[1] == 'I' or arg[1] == 'i')):
+        CygPath = arg[0] + arg[1] + ConvertCygPathToDos(arg[2:])
+      else:
+        CygPath = ConvertCygPathToDos(arg)
+      
+      Command = Command + ' ' + CygPath
+    
+  # call the real tool with the converted paths
+  return subprocess.call(Command, shell=True)
+
+if __name__ == "__main__":
+  try:
+     ret = main(sys.argv[2:])
+
+  except:
+    print "exiting: exception from " + sys.argv[0]
+    ret = 2
+
+  sys.exit(ret)
+
diff --git a/BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE31/CompilerIntrinsicsLib.lib b/BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE31/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..79964fe
Binary files /dev/null and b/BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE31/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE32/CompilerIntrinsicsLib.lib b/BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE32/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..79964fe
Binary files /dev/null and b/BaseTools/Bin/Darwin-i386/Arm/DEBUG_XCODE32/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE31/CompilerIntrinsicsLib.lib b/BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE31/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..c82c915
Binary files /dev/null and b/BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE31/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE32/CompilerIntrinsicsLib.lib b/BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE32/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..c82c915
Binary files /dev/null and b/BaseTools/Bin/Darwin-i386/Arm/RELEASE_XCODE32/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/Win32/Arm/DEBUG_RVCT31/CompilerIntrinsicsLib.lib b/BaseTools/Bin/Win32/Arm/DEBUG_RVCT31/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..90dd119
Binary files /dev/null and b/BaseTools/Bin/Win32/Arm/DEBUG_RVCT31/CompilerIntrinsicsLib.lib differ
diff --git a/BaseTools/Bin/Win32/Arm/RELEASE_RVCT31/CompilerIntrinsicsLib.lib b/BaseTools/Bin/Win32/Arm/RELEASE_RVCT31/CompilerIntrinsicsLib.lib
new file mode 100644 (file)
index 0000000..fbce5c0
Binary files /dev/null and b/BaseTools/Bin/Win32/Arm/RELEASE_RVCT31/CompilerIntrinsicsLib.lib differ