| Index: dart/tools/make_links.py
 | 
| diff --git a/dart/tools/make_links.py b/dart/tools/make_links.py
 | 
| index 1893f2d41ac6906022423e0b67a106e89196e888..5061c26f07b8008fcdea34f9541f652b1427cc09 100644
 | 
| --- a/dart/tools/make_links.py
 | 
| +++ b/dart/tools/make_links.py
 | 
| @@ -32,7 +32,7 @@ def get_options():
 | 
|        default='')
 | 
|    return result.parse_args()
 | 
|  
 | 
| -def make_link(source, target):
 | 
| +def make_link(source, target, orig_source):
 | 
|    if os.path.islink(target):
 | 
|      print 'Removing %s' % target
 | 
|      sys.stdout.flush()
 | 
| @@ -43,13 +43,19 @@ def make_link(source, target):
 | 
|      sys.stdout.flush()
 | 
|      os.rmdir(target)
 | 
|  
 | 
| -  print 'Creating link from %s to %s' % (source, target)
 | 
| -  sys.stdout.flush()
 | 
| -
 | 
| -  if utils.GuessOS() == 'win32':
 | 
| -    return subprocess.call(['mklink', '/j', target, source], shell=True)
 | 
| +  if os.path.isfile(orig_source):
 | 
| +    print 'Copying file from %s to %s' % (orig_source, target)
 | 
| +    sys.stdout.flush()
 | 
| +    shutil.copyfile(orig_source, target)
 | 
| +    return 0
 | 
|    else:
 | 
| -    return subprocess.call(['ln', '-s', source, target])
 | 
| +    print 'Creating link from %s to %s' % (source, target)
 | 
| +    sys.stdout.flush()
 | 
| +
 | 
| +    if utils.GuessOS() == 'win32':
 | 
| +      return subprocess.call(['mklink', '/j', target, source], shell=True)
 | 
| +    else:
 | 
| +      return subprocess.call(['ln', '-s', source, target])
 | 
|  
 | 
|  def create_timestamp_file(options):
 | 
|    if options.timestamp_file != '':
 | 
| @@ -82,11 +88,12 @@ def main(argv):
 | 
|        name = source
 | 
|      # Remove any addtional path components preceding NAME.
 | 
|      (path, name) = os.path.split(name)
 | 
| +    orig_source = source
 | 
|      if utils.GuessOS() == 'win32':
 | 
|        source = os.path.relpath(source)
 | 
|      else:
 | 
|        source = os.path.relpath(source, start=target)
 | 
| -    exit_code = make_link(source, os.path.join(target, name))
 | 
| +    exit_code = make_link(source, os.path.join(target, name), orig_source)
 | 
|      if exit_code != 0:
 | 
|        return exit_code
 | 
|    create_timestamp_file(options)
 | 
| 
 |