Cosmos/source/Cosmos.Build.Windows/Builder/LinkStep.cs
2009-10-05 16:24:07 +00:00

48 lines
1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Cosmos.Compiler.Builder
{
public class LinkStep : BuilderStep
{
public LinkStep(BuildOptions options)
: base(options)
{
}
override public void Execute()
{
Init();
buildFileUtils.RemoveFile(BuildPath + "output.bin");
if (IsELF)
{
Global.Call(ToolsPath + @"cygwin\ld.exe", String.Format("-Ttext 0x500000 -Tdata 0x200000 -e Kernel_Start -o \"{0}\" \"{1}\"", "output.bin", "output.obj"), BuildPath);
}
else
{
File.Move(Path.Combine(BuildPath, "output.obj"), Path.Combine(BuildPath, "output.bin"));
}
buildFileUtils.RemoveFile(BuildPath + "output.obj");
Finish();
}
public bool IsELF
{
get;
set;
}
}
}