[Pkg-cli-apps-commits] [fsharp] 17/71: Updates for F# 3.1 build on Linux

Christopher Halse Rogers raof-guest at moszumanska.debian.org
Fri Jan 17 05:18:09 UTC 2014


This is an automated email from the git hooks/post-receive script.

raof-guest pushed a commit to tag 3.1.0
in repository fsharp.

commit fbc6d802c96be38292630cdfbb804e8e200fe303
Author: Don Syme <donsyme at fastmail.fm>
Date:   Thu Nov 28 14:33:23 2013 +0000

    Updates for F# 3.1 build on Linux
---
 .gitattributes                                     |  1 +
 Makefile.in                                        |  2 +-
 README.md                                          | 10 +++--
 config.make.in                                     | 40 +++++++++++------
 lib/bootstrap/4.0/Microsoft.FSharp.targets         | 10 +----
 src/FSharpSource.targets                           | 50 ++++++++++++----------
 src/fsharp/FSharp.Build-proto/Makefile.in          |  5 +--
 src/fsharp/FSharp.Build/Makefile.in                |  6 +--
 src/fsharp/FSharp.Compiler-proto/Makefile.in       |  5 +--
 .../Makefile.in                                    |  6 +--
 .../FSharp.Compiler.Server.Shared/Makefile.in      |  6 +--
 src/fsharp/FSharp.Compiler/Makefile.in             |  6 +--
 src/fsharp/FSharp.Core/Makefile.in                 |  6 +--
 src/fsharp/FSharp.Data.TypeProviders/Makefile.in   |  6 +--
 src/fsharp/Fsc-proto/Makefile.in                   |  5 +--
 src/fsharp/Fsc/Makefile.in                         |  4 --
 src/fsharp/Makefile.in                             | 50 ++++++++--------------
 src/fsharp/build.fs                                |  2 +-
 src/fsharp/fsi/Makefile.in                         |  4 --
 src/fsharp/fsiAnyCpu/Makefile.in                   |  4 --
 src/fsharp/policy.2.0.FSharp.Core/Makefile.in      | 20 +++------
 src/fsharp/policy.2.3.FSharp.Core/Makefile.in      | 21 +++------
 src/fsharp/policy.3.3.FSharp.Core/Makefile.in      | 23 +++-------
 src/fsharp/policy.4.0.FSharp.Core/Makefile.in      | 23 +++-------
 src/fsharp/policy.4.3.FSharp.Core/Makefile.in      | 23 +++-------
 src/fsharp/targets.make                            | 44 +++++--------------
 26 files changed, 130 insertions(+), 252 deletions(-)

diff --git a/.gitattributes b/.gitattributes
index ac2ad93..b9f31f9 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -25,5 +25,6 @@ autogen.sh text eol=lf
 launcher.in text eol=lf
 config.make.in text eol=lf
 targets.make text eol=lf
+install-sh text eol=lf
 configure.ac text eol=lf
 Makefile.in text eol=lf
\ No newline at end of file
diff --git a/Makefile.in b/Makefile.in
index 419cf77..36c5bdd 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,6 +1,6 @@
 include $(topsrcdir)config.make
 
-all clean install build-proto build-final build-2-0 build-2-1 build-4-0 install-2-1 clean-2-0 clean-2-1 clean-4-0:
+all clean install build build-proto:
 	$(MAKE) -C src/fsharp $@
 
 dist:
diff --git a/README.md b/README.md
index 9ba1a30..3c1a961 100644
--- a/README.md
+++ b/README.md
@@ -41,11 +41,13 @@ If you have only VS2012 installed, and not VS2010, you'll need to install the F#
 ```
 cd src
 msbuild fsharp-proto-build.proj
-ngen install ..\lib\proto\4.0\fsc-proto.exe
+ngen install ..\lib\proto\fsc-proto.exe
 msbuild fsharp-library-build.proj /p:Configuration=Release
 msbuild fsharp-compiler-build.proj /p:Configuration=Release
 ```
-You can also build the FSharp.Core for .NET 2.0, Mono 2.1, MonoTouch, Silverlight 5.0, Windows Phone 7.1, Portable Profile47 (net45+sl5+win8), Portable Profile88 (net4+sl4+wp71+win8) and XNA 4.0 for Xbox 360 profiles:
+You can also build the FSharp.Core for .NET 2.0, Xamarin Android, Xamarin iOS, 
+Portable Profile47 (net45+sl5+win8), Portable Profile88 (net4+sl4+wp71+win8), XNA 4.0 for Xbox 360, 
+Silverlight 5.0 and Windows Phone 7.1,  profiles:
 ```
 msbuild fsharp-library-build.proj /p:TargetFramework=net20 /p:Configuration=Release
 msbuild fsharp-library-build.proj /p:TargetFramework=portable-net45+sl5+win8 /p:Configuration=Release
@@ -53,7 +55,7 @@ msbuild fsharp-library-build.proj /p:TargetFramework=portable-net4+sl4+wp71+win8
 msbuild fsharp-library-build.proj /p:TargetFramework=portable-windows8+net45 /p:Configuration=Release
 msbuild fsharp-library-build.proj /p:TargetFramework=sl5 /p:Configuration=Release
 
-msbuild fsharp-library-build.proj /p:TargetFramework=mono21 /p:Configuration=Release
+msbuild fsharp-library-build.proj /p:TargetFramework=monodroid /p:Configuration=Release
 msbuild fsharp-library-build.proj /p:TargetFramework=monotouch /p:Configuration=Release
 msbuild fsharp-library-build.proj /p:TargetFramework=wp7 /p:Configuration=Release
 msbuild fsharp-library-build.proj /p:TargetFramework=net40-xna40-xbox360 /p:Configuration=Release
@@ -75,7 +77,7 @@ msbuild fsharp-library-build.proj /p:TargetFramework=portable-net4+sl4+wp71+win8
 msbuild fsharp-library-build.proj /p:TargetFramework=portable-windows8+net45 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 msbuild fsharp-library-build.proj /p:TargetFramework=sl5 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 
-msbuild fsharp-library-build.proj /p:TargetFramework=mono21 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
+msbuild fsharp-library-build.proj /p:TargetFramework=monodroid /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 msbuild fsharp-library-build.proj /p:TargetFramework=monotouch /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 msbuild fsharp-library-build.proj /p:TargetFramework=wp7 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
 msbuild fsharp-library-build.proj /p:TargetFramework=net40-xna40-xbox360 /p:Configuration=Release /p:FSharpCoreBackVersion=3.0
diff --git a/config.make.in b/config.make.in
index f77297b..68c920d 100644
--- a/config.make.in
+++ b/config.make.in
@@ -9,7 +9,7 @@ monogacdir := @MONOGACDIR@
 
 monogacdir20 := @MONOGACDIR20@
 
-#This is where to find MonoTouch of MonoAndroid, for "make build-2-1"
+#This is where to find MonoTouch of MonoAndroid, for "make build-monodroid"
 #
 #For now this is hardwired, it should be optionally detected by configure.ac
 monogacdir21 := @abs_top_srcdir@/dependencies/mono/2.1
@@ -18,34 +18,48 @@ monogacdir35 := @MONOGACDIR35@
 monogacdir40 := @MONOGACDIR40@
 
 gacdir := ${libdir}mono
-gacdir20 := ${gacdir}/2.0
-gacdir40 := ${gacdir}/4.0
 
 tooldir := $(topdir)lib/bootstrap/4.0/
 
 monoopts = @mono_gc_options@
 MONO_OPTIONS += @mono_gc_options@
 
+TargetFramework = net40
 CONFIG = release
 Configuration = Release
 DISTVERSION = 201011
+outsuffix = $(TargetFramework)
+
+ifeq (x-$(TargetFramework),x-net20)
+VERSION = 2.3.1.0
+TARGET = 2.0
+endif
+
+ifeq (x-$(TargetFramework),x-net40)
+VERSION = 4.3.1.0
+TARGET = 4.0
+outsuffix = .
+endif
+
+ifeq (x-$(TargetFramework),x-monodroid)
+VERSION = 2.3.98.1
+TARGET = monodroid
+endif
+
+
+ifeq (x-$(TargetFramework),x-monotouch)
+VERSION = 2.3.99.1
+TARGET = monotouch
+endif
 
-VERSION_2_0 = 2.3.1.0
-VERSION_2_1 = 2.3.98.0
-VERSION_4_0 = 4.3.1.0
-TARGET_2_0 = 2.0
-TARGET_2_1 = 2.1
-TARGET_4_0 = 4.0
 DELAY_SIGN_TOKEN = b03f5f7f11d50a3a
 SIGN_TOKEN = f536804aa0eb945b
 
 bootstrapdir = $(bootstrap)/4.0/
 tmpdir = .libs/$(CONFIG)/
 objdir = $(tmpdir)$(TARGET)/
-protodir = $(builddir)/lib/proto/4.0/
-outdir = $(builddir)lib/$(CONFIG)/$(TARGET)/
-outdir20 = $(builddir)lib/$(CONFIG)/$(TARGET_2_0)
-outdir40 = $(builddir)lib/$(CONFIG)/$(TARGET_4_0)
+protodir = $(builddir)/lib/proto
+outdir = $(builddir)lib/$(CONFIG)/$(outsuffix)/
 
 INSTALL = $(SHELL) $(topdir)install-sh
 INSTALL_DATA = $(INSTALL) -c -m 644
diff --git a/lib/bootstrap/4.0/Microsoft.FSharp.targets b/lib/bootstrap/4.0/Microsoft.FSharp.targets
index c7dffe5..3250716 100644
--- a/lib/bootstrap/4.0/Microsoft.FSharp.targets
+++ b/lib/bootstrap/4.0/Microsoft.FSharp.targets
@@ -18,14 +18,8 @@ Copyright (C) Microsoft Corporation. Apache 2.0 License.
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
 
-  <UsingTask TaskName="Fsc" AssemblyFile="FSharp.Build.dll" Condition="Exists('$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll')" />
-  <UsingTask TaskName="CreateFSharpManifestResourceName" AssemblyFile="FSharp.Build.dll" Condition="Exists('$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll')" />
-
-  <!-- The next two are for when the ToolsVersion is 3.5, i.e. we're referencing .NET 2.0 -->
-  <UsingTask TaskName="Fsc" AssemblyFile="$(MSBuildExtensionsPath32)\..\2.0\FSharp.Build.dll" Condition="!Exists('$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll') AND Exists('$(MSBuildExtensionsPath32)\..\2.0\FSharp.Build.dll')" />
-  <UsingTask TaskName="CreateFSharpManifestResourceName" AssemblyFile="$(MSBuildExtensionsPath32)\..\2.0\FSharp.Build.dll" Condition="!Exists('$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll') AND Exists('$(MSBuildExtensionsPath32)\..\2.0\FSharp.Build.dll')" />
-
-
+  <UsingTask TaskName="Fsc" AssemblyFile="FSharp.Build.dll" />
+  <UsingTask TaskName="CreateFSharpManifestResourceName" AssemblyFile="FSharp.Build.dll" />
 
 
   <PropertyGroup>
diff --git a/src/FSharpSource.targets b/src/FSharpSource.targets
index 53830da..01d18e3 100755
--- a/src/FSharpSource.targets
+++ b/src/FSharpSource.targets
@@ -8,8 +8,6 @@
     <!-- Tail calls on, even in debug -->
     <Tailcalls>true</Tailcalls>
     <TargetFramework Condition="'$(TargetFramework)'==''">net40</TargetFramework>
-    <!-- Use a 4.0 proto compiler -->
-    <protoCLIDir>4.0</protoCLIDir>
     <LkgPath>$(FSharpSourcesRoot)\..\lib\bootstrap\4.0</LkgPath>
     <FsLexUnicode>true</FsLexUnicode>
     <OtherFlags>$(OtherFlags) --times</OtherFlags>
@@ -27,7 +25,7 @@
     <AssemblyVersion Condition="'$(TargetFramework)' == 'net20'">2.3.1.0</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-net45+sl5+win8' ">2.3.5.1</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-net4+sl4+wp71+win8' ">2.3.6.1</AssemblyVersion>
-    <AssemblyVersion Condition="'$(TargetFramework)' == 'mono21' ">2.3.98.1</AssemblyVersion>
+    <AssemblyVersion Condition="'$(TargetFramework)' == 'monodroid' ">2.3.98.1</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'monotouch' ">2.3.99.1</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-windows8+net45'">3.3.1.0</AssemblyVersion>
 
@@ -37,7 +35,7 @@
     <AssemblyVersion Condition="'$(TargetFramework)' == 'net40' AND '$(FSharpCoreBackVersion)' == '3.0' ">4.3.0.0</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-net45+sl5+win8' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.5.0</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'portable-net4+sl4+wp71+win8' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.6.0</AssemblyVersion>
-    <AssemblyVersion Condition="'$(TargetFramework)' == 'mono21' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.98.0</AssemblyVersion>
+    <AssemblyVersion Condition="'$(TargetFramework)' == 'monodroid' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.98.0</AssemblyVersion>
     <AssemblyVersion Condition="'$(TargetFramework)' == 'monotouch' AND '$(FSharpCoreBackVersion)' == '3.0' ">2.3.99.0</AssemblyVersion>
     <!-- FSharp.Core using System.Runtime -->
     <OtherFlags>$(OtherFlags) --version:$(AssemblyVersion)</OtherFlags>
@@ -107,7 +105,7 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
   <PropertyGroup Condition="'$(TargetFramework)'=='net20'">
     <!-- If 3.5 is not configured explicitly, use 2.0 -->
     <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)'==''">v2.0</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>2.0</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
     <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants>
@@ -123,7 +121,11 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
 
   <PropertyGroup Condition="'$(TargetFramework)'=='net40'">
     <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == '' ">v4.0</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>4.0</TargetFrameworkOutputDirectory>
+    <!-- When compiling for .NET 4.0 place all binaries directly in the primary output directory -->
+    <TargetFrameworkOutputDirectory>.</TargetFrameworkOutputDirectory>
+    <!-- When compiling back versions of the core library place binary in the qualified location -->
+    <!-- An additional back version qualification is added further below. -->
+    <TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' != ''">$(TargetFramework)</TargetFrameworkOutputDirectory>
     <DefineConstants Condition="'$(TargetFrameworkVersion)' == 'v4.5'">$(DefineConstants);FX_ATLEAST_45</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_ATLEAST_40</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_ATLEAST_35</DefineConstants>
@@ -137,9 +139,9 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
   </PropertyGroup>
 
   <!-- Target MonoAndroid -->
-  <PropertyGroup Condition="'$(TargetFramework)'=='mono21'">
+  <PropertyGroup Condition="'$(TargetFramework)'=='monodroid'">
     <TargetFrameworkVersion>v2.1</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>2.1</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
     <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants>
@@ -153,7 +155,7 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
   <!-- Target MonoTouch -->
   <PropertyGroup Condition="'$(TargetFramework)'=='monotouch'">
     <TargetFrameworkVersion>v2.1</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>2.1monotouch</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
     <DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_CUSTOMATTRIBUTEDATA</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_BIGINT_CULTURE_PARSE</DefineConstants>
@@ -303,7 +305,7 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
   <!-- Target Silverlight 3.0 -->
   <PropertyGroup Condition="'$(TargetFramework)'=='sl3'">
     <TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>sl3</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
     <DefineConstants>$(DefineConstants);SILVERLIGHT</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_TASK</DefineConstants>
@@ -382,7 +384,7 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
     <DefineConstants>$(DefineConstants);FX_ATLEAST_LINQ</DefineConstants>
     <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>sl4</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
     <SilverlightVersion>v4.0</SilverlightVersion>
   </PropertyGroup>
 
@@ -579,7 +581,7 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
   <!-- Target CompactFramework 3.5 -->
   <PropertyGroup Condition="'$(TargetFramework)'=='net35-cf'">
     <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
-    <TargetFrameworkOutputDirectory>3.5</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory>$(TargetFramework)</TargetFrameworkOutputDirectory>
     <TargetFrameworkIdentifier>CompactFramework</TargetFrameworkIdentifier>
     <DefineConstants>$(DefineConstants);FX_ATLEAST_COMPACT_FRAMEWORK_35</DefineConstants>
     <DefineConstants>$(DefineConstants);FX_NO_CANCELLATIONTOKEN_CLASSES</DefineConstants>
@@ -673,7 +675,7 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
 
   <!-- If building an FSharp.Core for F# 3.0, put it in the 3.0 directory -->
   <PropertyGroup>
-    <TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' != '3.0'">$(TargetFrameworkOutputDirectory)\$(FSharpCoreBackVersion)</TargetFrameworkOutputDirectory>
+    <TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '3.0'">fsharp30\$(TargetFrameworkOutputDirectory)</TargetFrameworkOutputDirectory>
   </PropertyGroup>
 
   <!-- Always qualify the IntermediateOutputPath by the TargetFramework if any exists -->
@@ -689,28 +691,32 @@ Some other NuGET monikers to support in the future, see http://docs.nuget.org/do
 
   <!-- Build with prototype compiler (location is given by settings below). The output is the final bootstrapped compiler -->
   <PropertyGroup Condition=" '$(BuildWith)' == ''">
-    <FscToolPath>$(FSharpSourcesRoot)\..\lib\proto\$(protoCLIDir)</FscToolPath>
+    <FscToolPath>$(FSharpSourcesRoot)\..\lib\proto</FscToolPath>
     <FscToolExe>fsc-proto.exe</FscToolExe>
     <OutputPath>$(FSharpSourcesRoot)\..\lib\$(ConfigurationOutputDirectory)\$(TargetFrameworkOutputDirectory)</OutputPath>
   </PropertyGroup>
 
 
   <!-- Include the proto targets file when building the final compiler using the proto -->
-  <Import Project="..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets" 
-          Condition="Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == ''"/>
+  <Import Project="..\lib\proto\Microsoft.FSharp-proto.targets" 
+          Condition="Exists('..\lib\proto\Microsoft.FSharp-proto.targets') AND '$(BuildWith)' == ''"/>
 
   <!-- Include the portable targets file when building the portable FSharp.Core -->
   <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets"
-          Condition="'$(TargetFramework)'=='portable-net4+sl4+wp71+win8'"/>
-  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets"
-          Condition="'$(TargetFramework)'=='portable-net45+sl5+win8'"/>
+          Condition="('$(TargetFramework)'=='portable-net4+sl4+wp71+win8' OR
+                      '$(TargetFramework)'=='portable-net45+sl5+win8')"></Import>
+
+  <!-- Include the Silverlight targets file if needed -->
+  <Import Project="Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets"
+          Condition="('$(TargetFramework)'=='sl3' OR 
+                      '$(TargetFramework)'=='sl4' OR 
+                      '$(TargetFramework)'=='sl5' OR 
+                      '$(TargetFramework)'=='sl5-compiler')"/>
 
   <!-- Include the bootstrap targets file when building the proto compiler using the bootstrap -->
   <!-- Also include it if Proto targets file doesn't exist, e.g. when cleaning the build with /t:Clean -->
   <Import Project="$(LkgPath)\Microsoft.FSharp.Targets"  
-          Condition="(!Exists('..\lib\proto\$(protoCLIDir)\Microsoft.FSharp-proto.targets')  OR '$(BuildWith)' == 'LKG') " />
-  <Import Project="Silverlight\$(SilverlightVersion)\FSharpSource.Silverlight.Common.targets"
-          Condition="'$(TargetFramework)'=='sl3' or '$(TargetFramework)'=='sl4' or '$(TargetFramework)'=='sl5' or '$(TargetFramework)'=='sl5-compiler'"/>
+          Condition="(!Exists('..\lib\proto\Microsoft.FSharp-proto.targets')  OR '$(BuildWith)' == 'LKG') " />
 
   <!-- Reference an existing FSI.EXE for use from within MSBuild -->
   <PropertyGroup>
diff --git a/src/fsharp/FSharp.Build-proto/Makefile.in b/src/fsharp/FSharp.Build-proto/Makefile.in
index 2c89507..89d3f27 100644
--- a/src/fsharp/FSharp.Build-proto/Makefile.in
+++ b/src/fsharp/FSharp.Build-proto/Makefile.in
@@ -6,10 +6,7 @@ srcdir := @abs_srcdir@/
 include @abs_top_builddir@/config.make
 
 build-proto:
-	xbuild /p:Configuration=Proto
-
-clean: 
-	xbuild /p:Configuration=Proto /t:Clean
+	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=Proto
 
 include $(topdir)/src/fsharp/targets.make
 
diff --git a/src/fsharp/FSharp.Build/Makefile.in b/src/fsharp/FSharp.Build/Makefile.in
index 54ae5a0..35c7fca 100644
--- a/src/fsharp/FSharp.Build/Makefile.in
+++ b/src/fsharp/FSharp.Build/Makefile.in
@@ -8,9 +8,5 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0
-
-clean: clean-4-0
-
-install: install-lib-4-0 install-lib-4-5
+install: install-lib install-lib-net45
 
diff --git a/src/fsharp/FSharp.Compiler-proto/Makefile.in b/src/fsharp/FSharp.Compiler-proto/Makefile.in
index c58cf0f..fc325f2 100644
--- a/src/fsharp/FSharp.Compiler-proto/Makefile.in
+++ b/src/fsharp/FSharp.Compiler-proto/Makefile.in
@@ -6,9 +6,6 @@ srcdir := @abs_srcdir@/
 include @abs_top_builddir@/config.make
 
 build-proto:
-	xbuild /p:Configuration=Proto
-
-clean: 
-	xbuild /p:Configuration=Proto /t:Clean
+	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=Proto
 
 include $(topdir)/src/fsharp/targets.make
diff --git a/src/fsharp/FSharp.Compiler.Interactive.Settings/Makefile.in b/src/fsharp/FSharp.Compiler.Interactive.Settings/Makefile.in
index 3ecefba..5254a08 100644
--- a/src/fsharp/FSharp.Compiler.Interactive.Settings/Makefile.in
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/Makefile.in
@@ -8,11 +8,7 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
-install: install-lib-4-0 install-lib-4-5
+install: install-lib install-lib-net45
 
 
 
diff --git a/src/fsharp/FSharp.Compiler.Server.Shared/Makefile.in b/src/fsharp/FSharp.Compiler.Server.Shared/Makefile.in
index c558054..e48bee4 100644
--- a/src/fsharp/FSharp.Compiler.Server.Shared/Makefile.in
+++ b/src/fsharp/FSharp.Compiler.Server.Shared/Makefile.in
@@ -8,11 +8,7 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
-install: install-lib-4-0 install-lib-4-5
+install: install-lib install-lib-net45
 
 
 
diff --git a/src/fsharp/FSharp.Compiler/Makefile.in b/src/fsharp/FSharp.Compiler/Makefile.in
index afcb5ae..311a75b 100644
--- a/src/fsharp/FSharp.Compiler/Makefile.in
+++ b/src/fsharp/FSharp.Compiler/Makefile.in
@@ -8,11 +8,7 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
-install: install-lib-4-0 install-lib-4-5
+install: install-lib install-lib-net45
 
 
 
diff --git a/src/fsharp/FSharp.Core/Makefile.in b/src/fsharp/FSharp.Core/Makefile.in
index 86866af..c6dd33d 100644
--- a/src/fsharp/FSharp.Core/Makefile.in
+++ b/src/fsharp/FSharp.Core/Makefile.in
@@ -9,10 +9,6 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 build-2-0 build-2-1
-
-clean: clean-4-0 clean-2-0 clean-2-1
-
-install: install-lib-4-0 install-lib-4-5 install-lib-2 install-lib-2-1
+install: install-lib install-lib-net45 
 
 
diff --git a/src/fsharp/FSharp.Data.TypeProviders/Makefile.in b/src/fsharp/FSharp.Data.TypeProviders/Makefile.in
index ec115cf..44c79bf 100644
--- a/src/fsharp/FSharp.Data.TypeProviders/Makefile.in
+++ b/src/fsharp/FSharp.Data.TypeProviders/Makefile.in
@@ -8,11 +8,7 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
-install: install-lib-4-0 install-lib-4-5
+install: install-lib install-lib-net45
 
 
 
diff --git a/src/fsharp/Fsc-proto/Makefile.in b/src/fsharp/Fsc-proto/Makefile.in
index 15f66c9..c58224d 100644
--- a/src/fsharp/Fsc-proto/Makefile.in
+++ b/src/fsharp/Fsc-proto/Makefile.in
@@ -6,10 +6,7 @@ srcdir := @abs_srcdir@/
 include @abs_top_builddir@/config.make
 
 build-proto: $(protodir)FSharp.Core.dll
-	xbuild /p:Configuration=Proto
-
-clean: 
-	xbuild /p:Configuration=Proto /t:Clean
+	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=Proto
 
 include $(topdir)/src/fsharp/targets.make
 
diff --git a/src/fsharp/Fsc/Makefile.in b/src/fsharp/Fsc/Makefile.in
index c436ffb..284a18b 100644
--- a/src/fsharp/Fsc/Makefile.in
+++ b/src/fsharp/Fsc/Makefile.in
@@ -24,10 +24,6 @@ sources = \
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
 install: install-bin 
 
 
diff --git a/src/fsharp/Makefile.in b/src/fsharp/Makefile.in
index 83793ff..e26c401 100644
--- a/src/fsharp/Makefile.in
+++ b/src/fsharp/Makefile.in
@@ -5,15 +5,15 @@
 # compiler sources.
 all:
 	$(MAKE) build-proto
-	$(MAKE) build-final
+	$(MAKE) build
 
 build-proto:
-	$(MAKE) -C FSharp.Build-proto $@
-	$(MAKE) -C FSharp.Compiler-proto $@
-	$(MAKE) -C Fsc-proto $@
+	$(MAKE) -C FSharp.Build-proto Configuration=proto $@
+	$(MAKE) -C FSharp.Compiler-proto Configuration=proto $@
+	$(MAKE) -C Fsc-proto Configuration=proto $@
 
-build-2-0 build-4-0 build-final install:
-	$(MAKE) -C FSharp.Core $@
+build clean install:
+	$(MAKE) -C FSharp.Core TargetFramework=net40 $@
 	$(MAKE) -C FSharp.Build $@
 	$(MAKE) -C FSharp.Compiler $@
 	$(MAKE) -C Fsc $@
@@ -27,31 +27,19 @@ build-2-0 build-4-0 build-final install:
 	$(MAKE) -C policy.2.3.FSharp.Core $@
 	$(MAKE) -C policy.3.3.FSharp.Core $@
 	$(MAKE) -C policy.4.3.FSharp.Core $@
-
-clean clean-2-0 clean-4-0:
-	$(MAKE) -C FSharp.Build-proto $@
-	$(MAKE) -C FSharp.Compiler-proto $@
-	$(MAKE) -C Fsc-proto $@
-	$(MAKE) -C FSharp.Core $@
-	$(MAKE) -C FSharp.Build $@
-	$(MAKE) -C FSharp.Compiler $@
-	$(MAKE) -C Fsc $@
-	$(MAKE) -C FSharp.Compiler.Interactive.Settings $@
-	$(MAKE) -C FSharp.Compiler.Server.Shared $@
-	$(MAKE) -C FSharp.Data.TypeProviders $@
-	$(MAKE) -C fsi $@
-	$(MAKE) -C fsiAnyCpu $@
-	$(MAKE) -C policy.2.0.FSharp.Core $@
-	$(MAKE) -C policy.4.0.FSharp.Core $@
-	$(MAKE) -C policy.2.3.FSharp.Core $@
-	$(MAKE) -C policy.3.3.FSharp.Core $@
-	$(MAKE) -C policy.4.3.FSharp.Core $@
-
-clean-2-1 build-2-1:
-	$(MAKE) -C FSharp.Core $@
-
-install-2-1: build-2-1
-	$(MAKE) -C FSharp.Core $@
+	$(MAKE) -C policy.2.0.FSharp.Core TargetFramework=net20 $@
+	$(MAKE) -C policy.2.3.FSharp.Core TargetFramework=net20 $@
+	$(MAKE) -C FSharp.Core TargetFramework=net20 $@
+	$(MAKE) -C FSharp.Core TargetFramework=monodroid $@
+	$(MAKE) -C FSharp.Core TargetFramework=monotouch $@
+
+# Add these to build portable FSharp.Core on Mac 
+# - Requires Mono 3.2.4 or greater
+# - Requires $(MSBuildExtensionsPath32)\Microsoft\Portable\v4.0\Microsoft.Portable.Common.targets
+# - Requires PCL assemblies
+
+#$(MAKE) -C FSharp.Core TargetFramework=portable-net45+sl5+win8 $@
+#$(MAKE) -C FSharp.Core TargetFramework=portable-net4+sl4+wp71+win8 $@
 
 
 
diff --git a/src/fsharp/build.fs b/src/fsharp/build.fs
index 539ce37..3c28fba 100755
--- a/src/fsharp/build.fs
+++ b/src/fsharp/build.fs
@@ -1473,7 +1473,7 @@ let OutputErrorOrWarningContext prefix fileLineFn os err =
 let GetFSharpCoreLibraryName () = "FSharp.Core"
 
 #if SILVERLIGHT
-let GetFSharpCoreReferenceUsedByCompiler() = GetFSharpCoreLibraryName()
+let GetFSharpCoreReferenceUsedByCompiler(useMonoResolution) = GetFSharpCoreLibraryName()
 let GetFsiLibraryName () = "FSharp.Compiler.Silverlight"  
 #else
 type internal TypeInThisAssembly = class end
diff --git a/src/fsharp/fsi/Makefile.in b/src/fsharp/fsi/Makefile.in
index e0a6b42..6b28d3e 100644
--- a/src/fsharp/fsi/Makefile.in
+++ b/src/fsharp/fsi/Makefile.in
@@ -8,10 +8,6 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
 install: install-bin
 
 
diff --git a/src/fsharp/fsiAnyCpu/Makefile.in b/src/fsharp/fsiAnyCpu/Makefile.in
index 596ace5..510fa95 100644
--- a/src/fsharp/fsiAnyCpu/Makefile.in
+++ b/src/fsharp/fsiAnyCpu/Makefile.in
@@ -8,10 +8,6 @@ include @abs_top_builddir@/config.make
 
 include $(topdir)/src/fsharp/targets.make
 
-build-final: build-4-0 
-
-clean: clean-4-0
-
 install: install-bin
 
 
diff --git a/src/fsharp/policy.2.0.FSharp.Core/Makefile.in b/src/fsharp/policy.2.0.FSharp.Core/Makefile.in
index 898ed38..29d9b35 100644
--- a/src/fsharp/policy.2.0.FSharp.Core/Makefile.in
+++ b/src/fsharp/policy.2.0.FSharp.Core/Makefile.in
@@ -10,28 +10,18 @@ include $(topdir)/src/fsharp/targets.make
 
 # override the targets to build the assembly
 
-$(outdir20)/$(NAME).dll: $(NAME).dll.config 
+$(outdir)/$(NAME).dll: $(NAME).dll.config 
 	@mkdir -p $(@D)
 	cp $(NAME).dll.config $(@D)
 	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
 
-$(outdir40)/$(NAME).dll: $(NAME).dll.config 
-	@mkdir -p $(@D)
-	cp $(NAME).dll.config $(@D)
-	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
-
-build-2-0: 
-	$(MAKE) $(outdir20)/$(NAME).dll
-
-build-4-0: 
-	$(MAKE) $(outdir40)/$(NAME).dll
-
-build-final: build-2-0 build-4-0
+build: 
+	$(MAKE) $(outdir)/$(NAME).dll
 
 clean: 
-	-rm -f $(outdir20)/$(NAME).dll $(outdir40)/$(NAME).dll
+	-rm -f $(outdir)/$(NAME).dll 
 
-install: install-lib-2 install-lib-4-0
+install: install-lib
 
 
 
diff --git a/src/fsharp/policy.2.3.FSharp.Core/Makefile.in b/src/fsharp/policy.2.3.FSharp.Core/Makefile.in
index 10d75ba..51ece55 100644
--- a/src/fsharp/policy.2.3.FSharp.Core/Makefile.in
+++ b/src/fsharp/policy.2.3.FSharp.Core/Makefile.in
@@ -10,28 +10,17 @@ include $(topdir)/src/fsharp/targets.make
 
 # override the targets to build the assembly
 
-$(outdir20)/$(NAME).dll: $(NAME).dll.config 
+$(outdir)/$(NAME).dll: $(NAME).dll.config 
 	@mkdir -p $(@D)
 	cp $(NAME).dll.config $(@D)
 	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
 
-$(outdir40)/$(NAME).dll: $(NAME).dll.config 
-	@mkdir -p $(@D)
-	cp $(NAME).dll.config $(@D)
-	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
-
-build-2-0: 
-	$(MAKE) $(outdir20)/$(NAME).dll
-
-build-4-0: 
-	$(MAKE) $(outdir40)/$(NAME).dll
-
-build-final: build-2-0 build-4-0
+build: 
+	$(MAKE) $(outdir)/$(NAME).dll
 
 clean: 
-	-rm -f $(outdir20)/$(NAME).dll $(outdir20)/$(NAME).dll
-
-install: install-lib-2 install-lib-4-0
+	-rm -f $(outdir)/$(NAME).dll 
 
+install: install-lib
 
 
diff --git a/src/fsharp/policy.3.3.FSharp.Core/Makefile.in b/src/fsharp/policy.3.3.FSharp.Core/Makefile.in
index 2bf10df..7b3c87c 100644
--- a/src/fsharp/policy.3.3.FSharp.Core/Makefile.in
+++ b/src/fsharp/policy.3.3.FSharp.Core/Makefile.in
@@ -10,28 +10,15 @@ include $(topdir)/src/fsharp/targets.make
 
 # override the targets to build the assembly
 
-$(outdir20)/$(NAME).dll: $(NAME).dll.config 
+$(outdir)/$(NAME).dll: $(NAME).dll.config 
 	@mkdir -p $(@D)
 	cp $(NAME).dll.config $(@D)
 	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
 
-$(outdir40)/$(NAME).dll: $(NAME).dll.config 
-	@mkdir -p $(@D)
-	cp $(NAME).dll.config $(@D)
-	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
-
-build-2-0: 
-	$(MAKE) $(outdir20)/$(NAME).dll
-
-build-4-0: 
-	$(MAKE) $(outdir40)/$(NAME).dll
-
-build-final: build-2-0 build-4-0
+build: 
+	$(MAKE) $(outdir)/$(NAME).dll
 
 clean: 
-	-rm -f $(outdir20)/$(NAME).dll $(outdir20)/$(NAME).dll
-
-install: install-lib-2 install-lib-4-0
-
-
+	-rm -f $(outdir)/$(NAME).dll 
 
+install: install-lib
diff --git a/src/fsharp/policy.4.0.FSharp.Core/Makefile.in b/src/fsharp/policy.4.0.FSharp.Core/Makefile.in
index 21d3f4d..393b9af 100644
--- a/src/fsharp/policy.4.0.FSharp.Core/Makefile.in
+++ b/src/fsharp/policy.4.0.FSharp.Core/Makefile.in
@@ -10,28 +10,15 @@ include $(topdir)/src/fsharp/targets.make
 
 # override the targets to build the assembly
 
-$(outdir20)/$(NAME).dll: $(NAME).dll.config 
+$(outdir)/$(NAME).dll: $(NAME).dll.config 
 	@mkdir -p $(@D)
 	cp $(NAME).dll.config $(@D)
 	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
 
-$(outdir40)/$(NAME).dll: $(NAME).dll.config 
-	@mkdir -p $(@D)
-	cp $(NAME).dll.config $(@D)
-	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
-
-build-2-0: 
-	$(MAKE) $(outdir20)/$(NAME).dll
-
-build-4-0: 
-	$(MAKE) $(outdir40)/$(NAME).dll
-
-build-final: build-2-0 build-4-0
+build: 
+	$(MAKE) $(outdir)/$(NAME).dll
 
 clean: 
-	-rm -f $(outdir20)/$(NAME).dll $(outdir20)/$(NAME).dll
-
-install: install-lib-2 install-lib-4-0
-
-
+	-rm -f $(outdir)/$(NAME).dll 
 
+install: install-lib
diff --git a/src/fsharp/policy.4.3.FSharp.Core/Makefile.in b/src/fsharp/policy.4.3.FSharp.Core/Makefile.in
index 1572656..51e8c2d 100644
--- a/src/fsharp/policy.4.3.FSharp.Core/Makefile.in
+++ b/src/fsharp/policy.4.3.FSharp.Core/Makefile.in
@@ -10,28 +10,15 @@ include $(topdir)/src/fsharp/targets.make
 
 # override the targets to build the assembly
 
-$(outdir20)/$(NAME).dll: $(NAME).dll.config 
+$(outdir)/$(NAME).dll: $(NAME).dll.config 
 	@mkdir -p $(@D)
 	cp $(NAME).dll.config $(@D)
 	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
 
-$(outdir40)/$(NAME).dll: $(NAME).dll.config 
-	@mkdir -p $(@D)
-	cp $(NAME).dll.config $(@D)
-	al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
-
-build-2-0: 
-	$(MAKE) $(outdir20)/$(NAME).dll
-
-build-4-0: 
-	$(MAKE) $(outdir40)/$(NAME).dll
-
-build-final: build-2-0 build-4-0
+build: 
+	$(MAKE) $(outdir)/$(NAME).dll
 
 clean: 
-	-rm -f $(outdir20)/$(NAME).dll $(outdir20)/$(NAME).dll
-
-install: install-lib-2 install-lib-4-0
-
-
+	-rm -f $(outdir)/$(NAME).dll 
 
+install: install-lib
diff --git a/src/fsharp/targets.make b/src/fsharp/targets.make
index b21053b..d9b470e 100644
--- a/src/fsharp/targets.make
+++ b/src/fsharp/targets.make
@@ -1,37 +1,12 @@
 SOURCES := $(patsubst $(srcdir)$(tmpdir)%,$(tmpdir)%,$(patsubst %,$(srcdir)%,$(sources)))
 
-.PHONY: install install-lib-2-0 install-lib-2-1 install-lib-4-0
+.PHONY: install install-lib-net20 install-lib-monodroid install-lib-net40
 
-build-2-0:
-	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=$(Configuration) /p:TargetFramework=net20 /p:MonoLibDir40=$(monogacdir40)
+build:
+	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=$(Configuration) /p:TargetFramework=$(TargetFramework) /p:MonoLibDir40=$(monogacdir40)
 
-build-2-1:
-	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=$(Configuration) /p:TargetFramework=mono21
-
-build-4-0:
-	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=$(Configuration) /p:TargetFramework=net40
-
-clean-2-0:
-	xbuild /p:Configuration=$(Configuration) /p:TargetFramework=net20 /t:Clean
-
-clean-2-1:
-	xbuild /p:Configuration=$(Configuration) /p:TargetFramework=mono21 /t:Clean
-
-clean-4-0:
-	xbuild /p:Configuration=$(Configuration) /p:TargetFramework=net40 /t:Clean
-
-
-install-lib-2: TARGET := $(TARGET_2_0)
-install-lib-2: VERSION := $(VERSION_2_0)
-
-install-lib-2-1: TARGET := $(TARGET_2_1)
-install-lib-2-1: VERSION := $(VERSION_2_1)
-
-install-lib-4-0: TARGET := $(TARGET_4_0)
-install-lib-4-0: VERSION := $(VERSION_4_0)
-
-# At the moment SDK binaries go in the mono/4.0 directory.
-install-bin: TARGET := $(TARGET_4_0)
+clean:
+	xbuild /p:Configuration=$(Configuration) /p:TargetFramework=$(TargetFramework) /t:Clean
 
 
 # Install the library binaries in the GAC and the framework directory, 
@@ -48,7 +23,7 @@ install-bin: TARGET := $(TARGET_4_0)
 #
 # We put the F# 3.1 targets and link the SDK DLLs for all three locations
 
-install-lib-2 install-lib-2-1 install-lib-4-0:
+install-lib:
 	@echo "Installing $(ASSEMBLY)"
 	@mkdir -p $(DESTDIR)$(gacdir)/$(TARGET)
 	@if test "x$(DELAY_SIGN)" = "x1"; then \
@@ -86,8 +61,10 @@ install-lib-2 install-lib-2-1 install-lib-4-0:
 		ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).optdata $(DESTDIR)$(gacdir)/$(TARGET)/$(NAME).optdata; \
 	fi
 
-install-lib-4-5: install-lib-4-0
-	@if test -e $(DESTDIR)$(gacdir)/4.5/; then \
+# Also place some .NET 4.0 libraries into .NET 4.5
+install-lib-net45: 
+	@if test '$(TargetFramework)' = 'net40'; then \
+	  if test -e $(DESTDIR)$(gacdir)/4.5/; then \
 		ln -fs ../4.0/$(ASSEMBLY) $(DESTDIR)$(gacdir)/4.5/$(ASSEMBLY); \
 		if test -e $(DESTDIR)$(gacdir)/4.0/$(ASSEMBLY).config; then \
 		    ln -fs ../4.0/$(ASSEMBLY).config $(DESTDIR)$(gacdir)/4.5/$(ASSEMBLY).config; \
@@ -101,6 +78,7 @@ install-lib-4-5: install-lib-4-0
 		if test -e $(DESTDIR)$(gacdir)/4.0/$(NAME).optdata; then \
 		    ln -fs ../4.0/$(NAME).optdata $(DESTDIR)$(gacdir)/4.5/$(NAME).optdata; \
 		fi; \
+	  fi \
 	fi
 
 # The binaries fsc.exe and fsi.exe only get installed for Mono 4.0 profile

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-cli-apps/packages/fsharp.git



More information about the Pkg-cli-apps-commits mailing list