Skip to content
Browse files

Add policy files for FSharp.Core 2.0.0.0,4.0.0.0 --> 2.3.0.0, 4.3.0.0

F# 3.0 uses version number 4.3.0.0 for FSharp.Core (2.3.0.0 for the
Mono-for-.NET-2.0 profile). This would break binary compat for
assemblies that expect to bind to FSharp.Core 4.0.0.0.

This means we need to install a global policy redirect DLL for
FSharp.Core 2.0.0.0 --> FSharp.Core 2.3.0.0
FSharp.Core 4.0.0.0 --> FSharp.Core 4.3.0.0

For example, the existing MonoDevelop binding DLL for F# expects to
bind to FSharp.Core 4.0.0.0.

Also, "make do-4-0" no longer makes the proto compiler, you need a
"make all" or "make proto" for that
  • Loading branch information...
1 parent 8768df2 commit 848f8361bc43fc8f163fd34cdcff512465bd0732 @funnelweb funnelweb committed Oct 10, 2012
View
2 Makefile.in
@@ -1,6 +1,6 @@
include $(topsrcdir)config.make
-all clean install do-2-0 do-4-0 clean-2-0 clean-4-0:
+all clean install do-proto do-2-0 do-4-0 clean-2-0 clean-4-0:
$(MAKE) -C src/fsharp $@
dist:
View
2 configure.ac
@@ -71,6 +71,8 @@ src/fsharp/Fsc/Makefile
src/fsharp/FSharp.Compiler.Interactive.Settings/Makefile
src/fsharp/FSharp.Compiler.Server.Shared/Makefile
src/fsharp/fsi/Makefile
+src/fsharp/policy.2.0.FSharp.Core/Makefile
+src/fsharp/policy.4.0.FSharp.Core/Makefile
])
AC_OUTPUT
View
11 src/fsharp/Makefile.in
@@ -1,14 +1,21 @@
-all clean do-2-0 do-4-0 clean-2-0 clean-4-0:
+all: do-proto do-2-0 do-4-0
+clean: clean-2-0 clean-4-0
+
+do-proto:
$(MAKE) -C FSharp.Build-proto $@
$(MAKE) -C FSharp.Compiler-proto $@
$(MAKE) -C Fsc-proto $@
+
+do-2-0 do-4-0 clean-2-0 clean-4-0:
$(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 fsi $@
+ $(MAKE) -C policy.2.0.FSharp.Core $@
+ $(MAKE) -C policy.4.0.FSharp.Core $@
install:
$(MAKE) -C FSharp.Core $@
@@ -18,3 +25,5 @@ install:
$(MAKE) -C FSharp.Compiler.Interactive.Settings $@
$(MAKE) -C FSharp.Compiler.Server.Shared $@
$(MAKE) -C fsi $@
+ $(MAKE) -C policy.2.0.FSharp.Core $@
+ $(MAKE) -C policy.4.0.FSharp.Core $@
View
25 src/fsharp/policy.2.0.FSharp.Core/Makefile.in
@@ -0,0 +1,25 @@
+NAME=policy.2.0.FSharp.Core
+ASSEMBLY = $(NAME).dll
+SIGN=1
+
+srcdir := @abs_srcdir@/
+
+include @abs_top_builddir@/config.make
+
+include $(topdir)/src/fsharp/targets.make
+
+#override the method to build the assembly
+
+$(objdir)$(TARGET_2_0)/policy.2.0.FSharp.Core.dll: policy.2.0.FSharp.Core.dll.config
+ @mkdir -p $(@D)
+ cp policy.2.0.FSharp.Core.dll.config $(@D)
+ al /link:policy.2.0.FSharp.Core.dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub /version:$(VERSION_2_0)
+
+$(objdir)$(TARGET_4_0)/policy.2.0.FSharp.Core.dll: policy.2.0.FSharp.Core.dll.config
+ @mkdir -p $(@D)
+ cp policy.2.0.FSharp.Core.dll.config $(@D)
+ al /link:policy.2.0.FSharp.Core.dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub /version:$(VERSION_4_0)
+
+install: install-lib-2 install-lib-4
+
+
View
11 src/fsharp/policy.2.0.FSharp.Core/policy.2.0.FSharp.Core.dll.config
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" processorArchitecture="msil" Culture="neutral" />
+ <bindingRedirect oldVersion="2.0.0.0" newVersion="2.3.0.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
View
25 src/fsharp/policy.4.0.FSharp.Core/Makefile.in
@@ -0,0 +1,25 @@
+NAME=policy.4.0.FSharp.Core
+ASSEMBLY = $(NAME).dll
+SIGN=1
+
+srcdir := @abs_srcdir@/
+
+include @abs_top_builddir@/config.make
+
+include $(topdir)/src/fsharp/targets.make
+
+# override the targets to build the assembly
+
+$(objdir)$(TARGET_2_0)/policy.4.0.FSharp.Core.dll: policy.4.0.FSharp.Core.dll.config
+ @mkdir -p $(@D)
+ cp policy.4.0.FSharp.Core.dll.config $(@D)
+ al /link:policy.4.0.FSharp.Core.dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub /version:$(VERSION_2_0)
+
+$(objdir)$(TARGET_4_0)/policy.4.0.FSharp.Core.dll: policy.4.0.FSharp.Core.dll.config
+ @mkdir -p $(@D)
+ cp policy.4.0.FSharp.Core.dll.config $(@D)
+ al /link:policy.4.0.FSharp.Core.dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub /version:$(VERSION_4_0)
+
+install: install-lib-2 install-lib-4
+
+
View
11 src/fsharp/policy.4.0.FSharp.Core/policy.4.0.FSharp.Core.dll.config
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" processorArchitecture="msil" Culture="neutral" />
+ <bindingRedirect oldVersion="4.0.0.0" newVersion="4.3.0.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>

0 comments on commit 848f836

Please sign in to comment.
Something went wrong with that request. Please try again.