[Pkg-cli-apps-commits] [fsharp] 56/71: Fix bootstrap on Mono

Christopher Halse Rogers raof-guest at moszumanska.debian.org
Fri Jan 17 05:18:15 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 abe566156af5a3cf3d8743bdaf1fd1be2ac5d346
Author: Andrea Canciani <ranma42 at gmail.com>
Date:   Sun Dec 22 22:13:36 2013 +0100

    Fix bootstrap on Mono
    
    Bootstrapping on Mono results in various errors and warnings:
    
    1. The reference for the F# library is FSharp.Core, not Fsharp.Core
    
    2. protodir must end with a '/', otherwise FSharp.Core.dll will be
       copied to protoFSharp.Core.dll (which will not be found later on)
    
    3. sigdata and optdata should be copied when copying FSharp.Core.dll
    
    4. fsc-proto must be marked executable, otherwise xbuild will refuse
       to run it
    
    5. FSharp.Core is only needed to run fsc-proto, but placing it in the
       correct directory before any of the build-proto steps silences
       quite a few warnings about the missing "FSharp.Core reference"
---
 config.make.in                                                |  2 +-
 src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj |  2 +-
 src/fsharp/Fsc-proto/Makefile.in                              |  8 ++------
 src/fsharp/Makefile.in                                        | 10 +++++++++-
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/config.make.in b/config.make.in
index 68c920d..cf14a33 100644
--- a/config.make.in
+++ b/config.make.in
@@ -58,7 +58,7 @@ SIGN_TOKEN = f536804aa0eb945b
 bootstrapdir = $(bootstrap)/4.0/
 tmpdir = .libs/$(CONFIG)/
 objdir = $(tmpdir)$(TARGET)/
-protodir = $(builddir)/lib/proto
+protodir = $(builddir)/lib/proto/
 outdir = $(builddir)lib/$(CONFIG)/$(outsuffix)/
 
 INSTALL = $(SHELL) $(topdir)install-sh
diff --git a/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj b/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
index a098976..546f38f 100644
--- a/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
+++ b/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
@@ -422,7 +422,7 @@
   </ItemGroup>
   <ItemGroup>
     <Reference Include="mscorlib" />
-    <Reference Include="Fsharp.Core" />
+    <Reference Include="FSharp.Core" />
     <Reference Include="System" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Drawing" />
diff --git a/src/fsharp/Fsc-proto/Makefile.in b/src/fsharp/Fsc-proto/Makefile.in
index c58224d..e3ccf44 100644
--- a/src/fsharp/Fsc-proto/Makefile.in
+++ b/src/fsharp/Fsc-proto/Makefile.in
@@ -5,12 +5,8 @@ srcdir := @abs_srcdir@/
 
 include @abs_top_builddir@/config.make
 
-build-proto: $(protodir)FSharp.Core.dll
+build-proto:
 	MONO_ENV_OPTIONS=$(monoopts) xbuild /p:Configuration=Proto
+	chmod +x $(protodir)fsc-proto.exe
 
 include $(topdir)/src/fsharp/targets.make
-
-# We need the bootstrap's FSharp.Core to run the proto
-$(protodir)FSharp.Core.dll: $(bootstrapdir)FSharp.Core.dll
-	@-mkdir $(protodir)
-	cp -p $(bootstrapdir)FSharp.Core.dll $(protodir)FSharp.Core.dll
diff --git a/src/fsharp/Makefile.in b/src/fsharp/Makefile.in
index e26c401..592fa19 100644
--- a/src/fsharp/Makefile.in
+++ b/src/fsharp/Makefile.in
@@ -1,3 +1,6 @@
+srcdir := @abs_srcdir@/
+
+include @abs_top_builddir@/config.make
 
 # Make the proto using the bootstrap, then make the final compiler using the proto
 # We call MAKE sequentially because we don't want build-final to explicitly depend on build-proto,
@@ -7,7 +10,12 @@ all:
 	$(MAKE) build-proto
 	$(MAKE) build
 
-build-proto:
+# We need the bootstrap's FSharp.Core to run the proto
+build-proto: $(bootstrapdir)FSharp.Core.dll $(bootstrapdir)FSharp.Core.sigdata $(bootstrapdir)FSharp.Core.optdata
+	@-mkdir $(protodir)
+	cp -p $(bootstrapdir)FSharp.Core.dll $(protodir)FSharp.Core.dll
+	cp -p $(bootstrapdir)FSharp.Core.sigdata $(protodir)FSharp.Core.sigdata
+	cp -p $(bootstrapdir)FSharp.Core.optdata $(protodir)FSharp.Core.optdata
 	$(MAKE) -C FSharp.Build-proto Configuration=proto $@
 	$(MAKE) -C FSharp.Compiler-proto Configuration=proto $@
 	$(MAKE) -C Fsc-proto Configuration=proto $@

-- 
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