On Windows, the Intel Fortran compiler (ifort) uses -object: instead of -o as the...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 10 Oct 2005 13:41:24 +0000 (13:41 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 10 Oct 2005 13:41:24 +0000 (13:41 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1371 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Tool/ifort.py

index 97a4bcd8b481b6b8f82ae1c556cb116f7ce83943..39c0c8a289bcc7033b1066376eaa210e9dceb8f6 100644 (file)
@@ -359,6 +359,10 @@ RELEASE 0.97 - XXX
   - In Visual Studio project files, put quotes around the -C directory
     so everything works even if the path has spaces in it.
 
+  - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET",
+    when building object files on Windows.  Have the the ifort Tool
+    modify the default command lines appropriately.
+
   From Chen Lee:
 
   - Handle Visual Studio project and solution files in Unicode.
index 181078afa8fda7cab3b7d52fb282da6b93d36c92..7681f385d3f536fbe0955a4a445cf16c1dd9a66d 100644 (file)
@@ -34,6 +34,8 @@ selection method.
 
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
+import string
+
 import SCons.Defaults
 
 import fortran
@@ -58,5 +60,14 @@ def generate(env):
     # be in shared libraries.
     env['SHLINKFLAGS'] = '-shared -no_archive'
 
+    #
+    if env['PLATFORM'] == 'win32':
+        # On Windows, the ifort compiler specifies the object on the
+        # command line with -object:, not -o.  Massage the necessary
+        # command-line construction variables.
+        for var in ['_FORTRANCOMD', '_FORTRANPPCOMD',
+                    '_SHFORTRANCOMD', '_SHFORTRANPPCOMD']:
+            env[var] = string.replace(env[var], '-o $TARGET', '-object:$TARGET')
+
 def exists(env):
     return env.Detect('ifort')