singrdk/base/Applications/Runtime/Full/Corlib.Native.proj

501 lines
33 KiB
Plaintext
Raw Permalink Normal View History

2008-11-17 18:29:00 -05:00
<!--
###############################################################################
#
# Copyright (c) Microsoft Corporation. All rights reserved.
#
###############################################################################
-->
<Project DefaultTarget="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\Paths.targets"/>
<Import Project="$(SINGULARITY_ROOT)\Targets\RuntimePaths.target"/>
<PropertyGroup>
<OBJDIR>$(APPRUNTIMENATIVEDIR)</OBJDIR>
<CorlibObjPath>$(APPRUNTIMENATIVEDIR)\Corlib.obj</CorlibObjPath>
<BINDIR>$(OBJROOT)\$(OBJRELRUNTIMEDIR)</BINDIR>
<CFLAGS>$(CFLAGS) /I&quot;$(BINDIR)&quot; /DSINGULARITY_PROCESS=1</CFLAGS>
<AFLAGS>$(AFLAGS) /DSINGULARITY_PROCESS</AFLAGS>
<CORLIB_IL>$(APPRUNTIMEDIR)\Corlib.dll</CORLIB_IL>
<KERNEL>$(SINGULARITY_ROOT)\Kernel</KERNEL>
<NativeLibPath>$(APPRUNTIMENATIVEDIR)\native.$(Runtime).lib</NativeLibPath>
<Collector>$(COLLECTOR_APP)</Collector>
</PropertyGroup>
<PropertyGroup Condition="'$(Machine)'=='x86'">
<CFLAGS>$(CFLAGS) /Gr /DISA_X86=1 /DPTR_SIZE_32=1</CFLAGS>
<ACFLAGS>$(ACFLAGS) /DISA_X86=1 /DPTR_SIZE_32=1</ACFLAGS>
</PropertyGroup>
<PropertyGroup Condition="'$(Machine)'=='x64'">
<CFLAGS>$(CFLAGS) /Gr /DISA_X64=1 /DPTR_SIZE_64=1</CFLAGS>
<ACFLAGS>$(ACFLAGS) /DISA_X64=1 /DPTR_SIZE_64=1</ACFLAGS>
</PropertyGroup>
<PropertyGroup Condition="'$(Machine)'=='arm'">
<CFLAGS>$(CFLAGS) /QRarch5 /QRimplicit-import- /DISA_ARM=1 /DPTR_SIZE_32=1</CFLAGS>
<ACFLAGS>$(ACFLAGS) /DISA_ARM=1 /DPTR_SIZE_32=1</ACFLAGS>
</PropertyGroup>
<Import Project="$(SINGULARITY_ROOT)\Kernel\GC.targets"/>
<PropertyGroup>
<!-- bartok common flags -->
<BARTOK_FLAGS>$(BARTOK_FLAGS) /Singularity</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /UnnameTracedPtrs=true</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /OmitFramePointer=false </BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /GCInlineArrayAllocations=false </BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /GCInlineFixedAllocations=false </BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /GCIntrinsicFixedAllocations=false </BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /GCInlineWriteBarrier=false</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /GenCoffLineNumber=false</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /WholeProgram=true</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /Warnings=true </BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /DisablePInvoke=true</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) $(BARTOK_COLLECTOR)</BARTOK_FLAGS>
<!-- bartok flags for corlib.obj -->
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) </CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) /CompileOnly=true </CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) /Warnings=true </CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) $(BARTOK_COLLECTOR)</CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) /r:&quot;$(LIBSDIR)\Singularity.V1.App.dll&quot;</CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) /r:&quot;$(APPILLSDIR)\Console.App.ill&quot;</CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) /out: &quot;$(APPRUNTIMENATIVEDIR)\CorLib.obj&quot;</CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) /outdir: &quot;$(APPRUNTIMENATIVEDIR)&quot; </CORLIB_BARTOK_FLAGS>
<CORLIB_BARTOK_FLAGS>$(CORLIB_BARTOK_FLAGS) &quot;$(APPRUNTIMEDIR)\Corlib.dll&quot; </CORLIB_BARTOK_FLAGS>
<!-- bartok flags for testapp.obj -->
<TESTAPP_BARTOK_FLAGS>/verbosity:silence</TESTAPP_BARTOK_FLAGS>
<TESTAPP_BARTOK_FLAGS>$(TESTAPP_BARTOK_FLAGS) /GenAsmHeader=&quot;$(APPRUNTIMENATIVEDIR)\halclass.inc&quot;</TESTAPP_BARTOK_FLAGS>
<TESTAPP_BARTOK_FLAGS>$(TESTAPP_BARTOK_FLAGS) /GenCppHeader=&quot;$(APPRUNTIMENATIVEDIR)\halclass.h&quot;</TESTAPP_BARTOK_FLAGS>
<TESTAPP_BARTOK_FLAGS>$(TESTAPP_BARTOK_FLAGS) /IrTreeShake=false</TESTAPP_BARTOK_FLAGS>
<TESTAPP_BARTOK_FLAGS>$(TESTAPP_BARTOK_FLAGS) /IrTreeShakeLate=false</TESTAPP_BARTOK_FLAGS>
<TESTAPP_BARTOK_FLAGS>$(TESTAPP_BARTOK_FLAGS) /out:&quot;$(APPRUNTIMENATIVEDIR)\testapp.obj&quot;</TESTAPP_BARTOK_FLAGS>
<TESTAPP_BARTOK_FLAGS>$(TESTAPP_BARTOK_FLAGS) /outdir:&quot;$(APPRUNTIMENATIVEDIR)&quot;</TESTAPP_BARTOK_FLAGS>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="App.Corlib.csproj"/>
<ProjectReference Include="System.Compiler.Runtime.App.csproj"/>
<ProjectReference Include="Microsoft.SingSharp.Runtime.App.csproj"/>
<ProjectReference Include="Corlib.Contracts.csproj"/>
<ProjectReference Include="Singularity.V1.App.csproj"/>
</ItemGroup>
<!-- Configuration-sensitive values -->
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<BARTOK_FLAGS>$(BARTOK_FLAGS) /IrSimpleInliner=false</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /CoalesceExceptionThrow=false</BARTOK_FLAGS>
</PropertyGroup>
<!-- Machine-sensitive settings -->
<PropertyGroup Condition="'$(Machine)'=='x86'">
<BARTOK_FLAGS Condition="'$(SINGULARITY_LINKED_STACKS)'=='true'">$(BARTOK_FLAGS) /LinkedStacks=true</BARTOK_FLAGS>
<BARTOK_FLAGS Condition="'$(SINGULARITY_STACK_CHECKS)'=='true'">$(BARTOK_FLAGS) /StackOverflowChecks=true</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /SymbolicDebug=true</BARTOK_FLAGS>
<AFLAGS>$(AFLAGS) /I&quot;$(SINGULARITY_ROOT)\kernel\native\ix&quot;</AFLAGS>
<AFLAGS>$(AFLAGS) /I&quot;$(SINGULARITY_ROOT)\kernel\native\ix86&quot;</AFLAGS>
</PropertyGroup>
<PropertyGroup Condition="'$(Machine)'=='arm'">
<BARTOK_FLAGS>$(BARTOK_FLAGS) /PhoenixMirOpts=false</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /TargetArch=ARM</BARTOK_FLAGS>
<BARTOK_FLAGS>$(BARTOK_FLAGS) /EnableIrExposeAllocationCall=true</BARTOK_FLAGS>
<AFLAGS>$(AFLAGS) /I&quot;$(SINGULARITY_ROOT)\kernel\native\arm&quot;</AFLAGS>
</PropertyGroup>
<PropertyGroup Condition="'$(Machine)'=='x64'">
<BARTOK_FLAGS>$(BARTOK_FLAGS) /x64</BARTOK_FLAGS>
<BARTOK_FLAGS Condition="'$(SINGULARITY_LINKED_STACKS)'=='true'">$(BARTOK_FLAGS) /LinkedStacks=true</BARTOK_FLAGS>
<BARTOK_FLAGS Condition="'$(SINGULARITY_STACK_CHECKS)'=='true'">$(BARTOK_FLAGS) /StackOverflowChecks=true</BARTOK_FLAGS>
<AFLAGS>$(AFLAGS) /I&quot;$(SINGULARITY_ROOT)\kernel\native\ix&quot;</AFLAGS>
<AFLAGS>$(AFLAGS) /I&quot;$(SINGULARITY_ROOT)\kernel\native\ix64&quot;</AFLAGS>
</PropertyGroup>
<!-- Common native sources -->
<ItemGroup>
<NativeIncludes Include="$(KERNEL)\Native\hal.h"/>
<NativeSource Include="$(KERNEL)\Native\Buffer.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\CInit.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\DebugStub.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Decimal.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\EventController.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\EventDescriptor.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\GCTracing.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\IoPort.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\MemoryStorage.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Monitoring.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Number.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ProcessEntry.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Tracing.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ZoneAllocation.cpp"><OutputRelativeDir>Kernel\Native\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix64\halexn.cpp"><OutputRelativeDir>Kernel\Native\ix64\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\Processor.cpp"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Singularity\Isal\isac.cpp"><OutputRelativeDir>Kernel\Singularity\Isal\</OutputRelativeDir></NativeSource>
<NativeIncludes Include="$(BartokSrcDir)\runtime\singularity\native\arch\$(BARTOK_MACHINE)\core.inc"/>
<NativeSource Include="$(BartokSrcDir)\runtime\shared\native\arch\$(BARTOK_MACHINE)\lib.asm"><OutputRelativeDir>Bartok\runtime\shared\native\arch\$(BARTOK_MACHINE)\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(BartokSrcDir)\runtime\singularity\native\arch\$(BARTOK_MACHINE)\lib.asm"><OutputRelativeDir>Bartok\runtime\singularity\native\arch\$(BARTOK_MACHINE)\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(BartokSrcDir)\runtime\singularity\native\arch\$(BARTOK_MACHINE)\gc.asm"><OutputRelativeDir>Bartok\runtime\singularity\native\arch\$(BARTOK_MACHINE)\</OutputRelativeDir></NativeSource>
</ItemGroup>
<!-- Machine-sensitive sources -->
<ItemGroup Condition="'$(Machine)'=='x86' or '$(Machine)'=='x64'">
<NativeSource Include="$(KERNEL)\Native\ix\Thread.cpp"><OutputRelativeDir>Kernel\Native\ix\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix\halstack.asm"><OutputRelativeDir>Kernel\Native\ix\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix\kdnotify.asm"><OutputRelativeDir>Kernel\Native\ix\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Singularity\Isal\ix\isa.asm"><OutputRelativeDir>Kernel\Singularity\Isal\ix\</OutputRelativeDir></NativeSource>
</ItemGroup>
<ItemGroup Condition="'$(Machine)'=='x86'">
<NativeSource Include="$(KERNEL)\Native\ix86\Math.cpp"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_lldiv.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_llmul.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_llrem.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_llshl.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_llshr.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_memcpy.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_memset.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_ulldiv.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_ulldvrm.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_ullrem.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix86\_ullshr.asm"><OutputRelativeDir>Kernel\Native\ix86\</OutputRelativeDir></NativeSource>
</ItemGroup>
<ItemGroup Condition="'$(Machine)'=='x64'">
<NativeSource Include="$(KERNEL)\Native\ix64\Math.cpp"><OutputRelativeDir>Kernel\Native\ix64\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix64\_memcpy.asm"><OutputRelativeDir>Kernel\Native\ix64\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix64\_memset.asm"><OutputRelativeDir>Kernel\Native\ix64\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix64\halProcessor.asm"><OutputRelativeDir>Kernel\Native\ix64\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\ix64\halmath.asm"><OutputRelativeDir>Kernel\Native\ix64\</OutputRelativeDir></NativeSource>
</ItemGroup>
<ItemGroup Condition="'$(Machine)'=='arm'">
<NativeSource Include="Native\arm\liesapp.asm"><OutputRelativeDir>Native\arm\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\arm\Math.cpp"><OutputRelativeDir>Kernel\Native\arm\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\arm\Thread.cpp"><OutputRelativeDir>Kernel\Native\arm\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\arm\lies.asm"><OutputRelativeDir>Kernel\Native\arm\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\arm\interlocked_v5.asm"><OutputRelativeDir>Kernel\Native\arm\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Singularity\Isal\Arm\isa.asm"><OutputRelativeDir>Kernel\Singularity\Isal\Arm\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Singularity\Isal\Arm\isatodo.asm"><OutputRelativeDir>Kernel\Singularity\Isal\Arm\</OutputRelativeDir></NativeSource>
<!-- Compiler intrinsics and runtime. -->
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\fpraise.cpp"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_negd.cpp"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\__div0.cpp"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\__udiv.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\__div.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\memcpy.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\memset.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\memmove.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_addd.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_adds.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_divd.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_divs.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_dtoi.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_dtoi64.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_dtos.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_dtou.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_dtou64.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_eqd.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_eqs.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_ged.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_ges.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_gtd.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_gts.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_i64tod.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_i64tos.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_itod.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_itos.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_led.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_les.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_ltd.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_lts.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_muld.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_muls.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_ned.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_nes.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_stod.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_stoi.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_stoi64.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_stou.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\r_stou64.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\e2d.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\mdsdiv64.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\error.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\check.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\fpdata.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\fnorm2.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\normop1.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\normop2.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\add.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\div.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\mul.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\nans.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
<NativeSource Include="$(KERNEL)\Native\Arm\Crt\normal.asm"><OutputRelativeDir>Kernel\Native\Arm\Crt\</OutputRelativeDir></NativeSource>
</ItemGroup>
<ItemGroup Condition="'$(Machine)'=='arm' and '$(Platform)'=='Omap3430'">
<NativeSource Include="$(KERNEL)\Native\arm\cyclecounter.asm"><OutputRelativeDir>Kernel\Native\arm\</OutputRelativeDir></NativeSource>
</ItemGroup>
<!-- ================================== TARGETS ================================================== -->
<Target Name="BuildCorlibObj"
Inputs="$(CORLIB_IL)"
Outputs="$(CorlibObjPath)"
DependsOnTargets="BuildDependentProjects">
<Message Importance="High" Text="Building Corlib.obj"/>
<!-- /GenAsmHeader="$(APPRUNTIMEDIR)\halclass.inc" /GenCppHeader="$(APPRUNTIMEDIR)\halclass.h" -->
<!-- We specify the working directory to work around issues dealing with inheritance of the PATH variable. -->
<MakeDir Directories="$(APPRUNTIMENATIVEDIR)"/>
<Exec Command="$(BARTOK) $(BARTOK_FLAGS) $(CORLIB_BARTOK_FLAGS) > &quot;$(APPRUNTIMENATIVEDIR)\corlib.log&quot;"/>
</Target>
<!--
############################################################### Native Library
-->
<!--
Note: This target uses batching. All tasks within the target will be executed, once for each distinct
NativeSource item.
Notes about dependency checking: In general, we do not attempt to do fine-grained dependency checking
on #include dependencies, because:
* doing so is error-prone (the dependencies are in the code, not in the project)
* we don't have much C++ code, so it compiles fast
* nearly all of the C++ files depend on halclass.h, which is generated when any IL changes
So we just punt, and declare that all native sources depend on halclass.h (and halclass.inc),
and the handful of native header files that we have, which are declared as NativeIncludes items.
This means that we are conservative about dependencies; we may rebuild code when it is not strictly
necessary, but this is better than not building code that really has changed.
This target depends on BuildTestAppObj because that target generates halclass.h / halclass.inc.
-->
<Target Name="BuildNativeSources"
DependsOnTargets="BuildTestAppObj"
Inputs="
%(NativeSource.identity);
@(NativeIncludes);
$(APPRUNTIMENATIVEDIR)\halclass.h;
$(APPRUNTIMENATIVEDIR)\halclass.inc;
$(APPRUNTIMENATIVEDIR)\halclass.armfix.inc;
"
Outputs="$(APPRUNTIMENATIVEDIR)\%(NativeSource.OutputRelativeDir)\%(NativeSource.filename).obj"
>
<MakeDir Directories="$(APPRUNTIMENATIVEDIR);$(APPRUNTIMENATIVEDIR)\%(NativeSource.OutputRelativeDir)"/>
<Exec Command="$(CC) $(CFLAGS) %(__cpp_sources.CFlags) $(ACFLAGS) $(GC_ML_DEFS) /I&quot;$(APPRUNTIMENATIVEDIR)&quot; /I&quot;$(KERNEL)\Native&quot; /Fd&quot;$(APPRUNTIMENATIVEDIR)\native.pdb&quot; /Fo&quot;$(APPRUNTIMENATIVEDIR)\%(NativeSource.OutputRelativeDir)\%(NativeSource.filename).obj&quot; /c &quot;%(NativeSource.identity)&quot; "
Condition="'%(NativeSource.extension)'=='.c' or '%(NativeSource.extension)'=='.cpp'"
/>
<Exec Command="$(AS) $(AFLAGS) $(ACFLAGS) $(GC_ML_DEFS) /I&quot;$(APPRUNTIMENATIVEDIR)&quot; /I&quot;$(KERNEL)\Native&quot; /I&quot;$(KERNEL)\Native\$(Machine)&quot; /I&quot;$(BartokSrcDir)\runtime\singularity\native\arch\$(BARTOK_MACHINE)&quot; /Fo&quot;$(APPRUNTIMENATIVEDIR)\%(NativeSource.OutputRelativeDir)\%(NativeSource.filename).obj&quot; /c &quot;%(NativeSource.identity)&quot; "
Condition="'%(NativeSource.extension)'=='.asm'"/>
</Target>
<!--
This target is ONLY for debugging. It is not used by any other targets.
To use this target, use: msbuild Corlib.Native.proj /t:PreprocessNativeSources
Then look in %SINGULARITY_OBJROOT%\AppRuntimeNative\Prototype.x86.MarkSweep
-->
<Target Name="PreprocessNativeSources"
DependsOnTargets="BuildTestAppObj"
Inputs="
%(NativeSource.identity);
@(NativeIncludes);
$(APPRUNTIMENATIVEDIR)\halclass.h;
$(APPRUNTIMENATIVEDIR)\halclass.inc;
"
Outputs="$(APPRUNTIMENATIVEDIR)\%(NativeSource.filename).i"
>
<Exec Command="$(CC) $(CFLAGS) %(__cpp_sources.CFlags) $(ACFLAGS) $(GC_ML_DEFS) /I&quot;$(APPRUNTIMENATIVEDIR)&quot; /I&quot;$(NativeSrcDir)&quot; /E /C &quot;%(NativeSource.identity)&quot; &gt; &quot;$(APPRUNTIMENATIVEDIR)\%(NativeSource.filename).i&quot;"
Condition="'%(NativeSource.extension)'=='.c' or '%(NativeSource.extension)'=='.cpp'"
/>
<!--
<Exec Command="$(AS) $(AFLAGS) $(ACFLAGS) $(GC_ML_DEFS) /I&quot;$(APPRUNTIMENATIVEDIR)&quot; /I&quot;$(NativeSrcDir)&quot; /I&quot;$(NativeSrcDir)\$(Machine)&quot; /Fo&quot;$(APPRUNTIMENATIVEDIR)\%(NativeSource.filename).obj&quot; /c &quot;%(NativeSource.identity)&quot; "
Condition="'%(NativeSource.extension)'=='.asm'"/>
-->
</Target>
<!-- This target creates __native_objs items from NativeSource items. -->
<Target Name="CreateNativeItems">
<CreateItem Include="$(APPRUNTIMENATIVEDIR)\%(NativeSource.OutputRelativeDir)\%(NativeSource.filename).obj">
<Output ItemName="__native_objs" TaskParameter="Include"/>
</CreateItem>
</Target>
<Target Name="LinkNativeLib"
DependsOnTargets="BuildNativeSources;CreateNativeItems"
Inputs="@(__native_objs)"
Outputs="$(NativeLibPath)">
<Message Text="Linking native objects - $(NativeLibPath)"/>
<Delete Files="$(NativeLibPath)"/>
<!-- NOTE: ARM lib seems to have a bug with long command lines, so use a temp file -->
<WriteLinesToFile Overwrite="true"
File="$(TEMP)\nativelib.txt"
Lines="@(__native_objs->'&quot;%(Identity)&quot;')"
/>
<Exec Command="$(LIB) $(LIBFLAGS) /nod /out:&quot;$(NativeLibPath)&quot; @&quot;$(TEMP)\nativelib.txt&quot;"/>
<Delete Files="$(TEMP)\nativelib.txt"/>
</Target>
<ItemGroup>
<NibLib Include="$(APPRUNTIMENATIVEDIR)\native.$(Runtime).lib"/>
<NibLib Include="$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).lib"/>
</ItemGroup>
<Target Name="CopyNativeLibToNibLibCache"
Inputs="@(NibLib)"
Outputs="$(DISTRO_LIB_DIR)\%(NibLib.filename)%(NibLib.extension)"
DependsOnTargets="LinkNativeLib;BuildAbiLib">
<MakeDir Directories="$(DISTRO_LIB_DIR)"/>
<Copy SourceFiles="@(NibLib)" DestinationFolder="$(DISTRO_LIB_DIR)" SkipUnchangedFiles="true"/>
</Target>
<!--
$(OBJDIR)\testapp.exe : testapp.cs \
$(OBJDIR)\Corlib.dll \
$(APPILLSDIR)\singularity.V1.ill \
csc /nologo $(CSFLAGS) $(GC_CSC_DEFS) /nostdlib /warnaserror+ /nowarn:169,649 \
/d:SINGULARITY /d:SINGULARITY_PROCESS /D:PTR_SIZE_32 /d:LITTLE_ENDIAN \
/d:ENDPOINT_STRUCT \
/r:$(OBJDIR)\Corlib.dll \
/r:$(LIBSDIR)\Singularity.V1.dll \
/t:exe \
/out:$(OBJDIR)\testapp.exe testapp.cs
##############################################################################
-->
<!--
<WriteLinesToFile File="$(OBJDIR)\testapp_csc.txt" Lines="
/nologo $(CSFLAGS) $(GC_CSC_DEFS) /nostdlib /warnaserror+ /nowarn:169,649
/d:SINGULARITY /d:SINGULARITY_PROCESS /D:PTR_SIZE_32 /d:LITTLE_ENDIAN
/d:ENDPOINT_STRUCT;
@(TESTAPP_EXE_REFS->'/r:%(Identity)',' ');
/t:exe
/out:$(OBJDIR)\testapp.exe testapp.cs
" Overwrite="true"/>
<Exec Command="$(BUILDDIR)\csc.exe @$(OBJDIR)\testapp_csc.txt"/>
-->
<ItemGroup>
<TestAppReference Include="$(APPRUNTIMEDIR)\Corlib.dll"/>
<TestAppReference Include="$(LIBSDIR)\Singularity.V1.App.dll"/>
<TestAppReference Include="$(APPILLSDIR)\Console.App.ill"/>
<TestAppReference Include="$(APPRUNTIMEDIR)\System.Compiler.Runtime.dll"/>
<TestAppReference Include="$(APPRUNTIMEDIR)\Microsoft.SingSharp.Runtime.dll"/>
</ItemGroup>
<Target Name="BuildTestAppIL">
<MSBuild Projects="TestApp.csproj" StopOnFirstFailure="$(StopOnFirstFailure)">
<Output PropertyName="TestAppILPath" TaskParameter="TargetOutputs"/>
</MSBuild>
<Message Text="TestAppILPath - $(TestAppILPath)"/>
</Target>
<Target Name="BuildTestAppObj"
Inputs="$(TestAppILPath)"
Outputs="$(APPRUNTIMENATIVEDIR)\testapp.obj;$(APPRUNTIMENATIVEDIR)\testapp_superObj.obj;$(APPRUNTIMENATIVEDIR)\halclass.inc;$(APPRUNTIMENATIVEDIR)\halclass.h;$(APPRUNTIMENATIVEDIR)\halclass.armfix.inc"
DependsOnTargets="BuildTestAppIL"
>
<Message Text="Building testapp.obj"/>
<Message Text=" Native reference: %(TestAppReference.identity)"/>
<Exec Command="PATH $(SINGULARITY_PATH) &amp; $(BARTOK) $(BARTOK_FLAGS) $(TESTAPP_BARTOK_FLAGS) &quot;$(TestAppILPath)&quot; @(TestAppReference->'&quot;%(Identity)&quot;',' ')"/>
<Exec Command="&quot;$(SINGULARITY_ROOT)\Kernel\bararmfix.cmd&quot; &quot;$(APPRUNTIMENATIVEDIR)\halclass.inc&quot; &quot;$(APPRUNTIMENATIVEDIR)\halclass.armfix.inc&quot;"/>
<!-- > $(OBJDIR)\testapp.log -->
</Target>
<ItemGroup>
<NativeReference Include="$(OBJDIR)\native.$(Runtime).lib"/>
<NativeReference Include="$(OBJDIR)\testapp.obj"/>
<NativeReference Include="$(APPRUNTIMENATIVEDIR)\DebugStub.obj"/>
<NativeReference Include="$(APPRUNTIMENATIVEDIR)\Processor.obj"/>
<NativeReference Include="$(OBJDIR)\testapp_superObj.obj"/>
<NativeReference Include="$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).lib"/>
</ItemGroup>
<Target Name="LinkTestApp"
Inputs="@(NativeReference)"
Outputs="$(OBJDIR)\testapp.$(Machine)"
DependsOnTargets="BuildNativeLib;BuildTestAppObj"
>
<Message Text="Linking testapp native image"/>
<Exec Command="$(LINK) /out:&quot;$(OBJDIR)\testapp.$(Machine)&quot; /pdb:&quot;$(OBJDIR)\testapp.$(Machine).pdb&quot; $(LFLAGS) /fixed:no /MAP /base:0x2000000 /entry:RuntimeEntryPoint @(NativeReference->'&quot;%(Identity)&quot;',' ')"/>
</Target>
<Target Name="BuildDependentProjects">
<MSBuild Projects="@(ProjectReference)" StopOnFirstFailure="$(StopOnFirstFailure)" Condition="'$(BuildInParallel)'!='true'"/>
<MSBuild Projects="@(ProjectReference)" StopOnFirstFailure="$(StopOnFirstFailure)" Condition="'$(BuildInParallel)'=='true'" BuildInParallel="true"/>
</Target>
<Target Name="Build" DependsOnTargets="
BuildDependentProjects;
BuildCorlibObj;
LinkNativeLib;
CopyNativeLibToNibLibCache;
BuildAbiLib;
">
</Target>
<Target Name="PreprocessAbiDef">
<MSBuild Projects="$(SINGULARITY_ROOT)\Kernel\Kernel.proj" Targets="PreprocessAbiDef"/>
</Target>
<!-- This builds the PE/COFF unmanaged import library for the app/kernel ABI. -->
<Target Name="BuildAbiLib"
Inputs="$(KERNEL_NATIVE_DIR)\$(SING_DEF_FILE)"
Outputs="$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).lib"
DependsOnTargets="PreprocessAbiDef">
<Message Text="Building ABI PE/COFF import library - $(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).lib" />
<MakeDir Directories="$(APPRUNTIMENATIVEDIR)" />
<!-- Preprocess it first. -->
<Exec Command="$(LIB) $(LIBFLAGS) &quot;/def:$(KERNEL_NATIVE_DIR)\$(SING_DEF_FILE)&quot; /out:&quot;$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).lib&quot;" />
</Target>
<Target Name="Clean">
<Delete Files="
@(NativeSource->'$(APPRUNTIMENATIVEDIR)\%(filename).obj');
$(APPRUNTIMENATIVEDIR)\native.$(Runtime).lib;
$(APPRUNTIMENATIVEDIR)\native.$(Runtime).pdb;
$(APPRUNTIMENATIVEDIR)\$(SING_DEF_FILE);
$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).lib;
$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).def;
$(APPRUNTIMENATIVEDIR)\Singularity.V1.$(Runtime).exp;
$(APPRUNTIMENATIVEDIR)\testapp.obj;
$(APPRUNTIMENATIVEDIR)\testapp_superObj.obj;
$(APPRUNTIMENATIVEDIR)\testapp_info.obj;
$(APPRUNTIMENATIVEDIR)\halclass.h;
$(APPRUNTIMENATIVEDIR)\halclass.inc;
$(APPRUNTIMENATIVEDIR)\halclass.armfix.inc;
$(APPRUNTIMENATIVEDIR)\Corlib.obj;
$(APPRUNTIMENATIVEDIR)\Corlib_info.obj;
"/>
</Target>
</Project>