提交 4b884bc1 编写于 作者: D Don Syme 提交者: GitHub

support 'make install' for Mono (#2898)

* support 'make' and 'make install' for Mono

* last few changes for xamarin eetc.

* put make in CI

* fix build(?)

* exec bits

* fix build(8)

* fix build(9)

* remove excess build files

* remove addition of binding redirects
上级 00a29727
......@@ -79,12 +79,11 @@ Release
Proto
sign_temp
.libs
Makefile
configure
launcher
autom4te.cache
config.log
config.make
mono/config.make
config.status
*~
*.suo
......
# F# Compiler, Core Library and Visual F# Tools Open Contribution Repository
This repo is where you can contribute to the F# compiler, core library and the Visual F# Tools.
To learn what F# is and why it's interesting, go to [fsharp.org](http://fsharp.org). To get a free F# environment, go to [fsharp.org](http://fsharp.org/use/windows).
To learn what F# is and why it's interesting, go to [fsharp.org](http://fsharp.org). To get a free F# environment, go to [fsharp.org](http://fsharp.org/).
**Compiler Technical Documentation**
......@@ -25,17 +25,17 @@ The primary technical documents for the F# compiler code are
### F# Compiler (Linux)
Currently you can do on Linux a bootstrap of the Mono version of the compiler. Full testing is not enabled,
nor is a .NET Core build of the compiler.
First [install Mono](http://www.mono-project.com/docs/getting-started/install/linux/). Then:
./build.sh
./autoconf.sh --prefix /usr
make
make install
results will be in ``Debug\net40\bin\...``. This doesn't do any testing (beyond the bootstrap). You can
run the compiler ``fsc.exe`` and F# Interactive ``fsi.exe`` by hand to test it.
Full testing is not yet enabled on Linux, nor is a .NET Core build of the compiler.
These steps are tested under the Linux/Mono configuration(s) in ``.travis.yml`` (Ubuntu).
You can alternatively use
./build.sh
### F# Compiler (Windows)
......
include $(topsrcdir)mono/config.make
.PHONY: restore
restore:
MONO_ENV_OPTIONS=$(monoopts) mono .nuget/NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile .nuget/NuGet.Config
# 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,
# as that causes a complete recompilation of both proto and final everytime you touch the
# compiler sources.
all:
$(MAKE) build-proto
$(MAKE) build
build-proto: restore
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=Proto /p:TargetFramework=$(TargetFramework) src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=Proto /p:TargetFramework=$(TargetFramework) src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=Proto /p:TargetFramework=$(TargetFramework) src/fsharp/Fsc-proto/Fsc-proto.fsproj
# The main targets
build:
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/FSharp.Core/FSharp.Core.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/FSharp.Build/FSharp.Build.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/Fsc/Fsc.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/fsi/Fsi.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 /p:FSharpCoreBackVersion=3.0 src/fsharp/FSharp.Core/FSharp.Core.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 /p:FSharpCoreBackVersion=3.1 src/fsharp/FSharp.Core/FSharp.Core.fsproj
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=net40 /p:FSharpCoreBackVersion=4.0 src/fsharp/FSharp.Core/FSharp.Core.fsproj
$(MAKE) -C mono/policy.2.0.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.2.3.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.3.3.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.3.7.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.3.47.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.3.78.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.3.259.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.4.0.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.4.3.FSharp.Core TargetFramework=net40 $@
$(MAKE) -C mono/policy.4.4.FSharp.Core TargetFramework=net40 $@
ifeq ("$(pclenabled47)", "yes")
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=portable47 src/fsharp/FSharp.Core/FSharp.Core.fsproj
endif
ifeq ("$(pclenabled7)", "yes")
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=portable7 src/fsharp/FSharp.Core/FSharp.Core.fsproj
endif
ifeq ("$(pclenabled78)", "yes")
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=portable78 src/fsharp/FSharp.Core/FSharp.Core.fsproj
endif
ifeq ("$(pclenabled259)", "yes")
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=portable259 src/fsharp/FSharp.Core/FSharp.Core.fsproj
endif
ifeq ("$(monodroidenabled)", "yes")
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=monoandroid10+monotouch10+xamarinios10 src/fsharp/FSharp.Core/FSharp.Core.fsproj
endif
ifeq ("$(xamarinmacenabled)", "yes")
MONO_ENV_OPTIONS=$(monoopts) $(XBUILD) /p:Configuration=$(Configuration) /p:TargetFramework=xamarinmacmobile src/fsharp/FSharp.Core/FSharp.Core.fsproj
endif
install:
-rm -fr $(DESTDIR)$(monodir)/fsharp
-rm -fr $(DESTDIR)$(monodir)/Microsoft\ F#
-rm -fr $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#
-rm -fr $(DESTDIR)$(monodir)/gac/FSharp.Core
-rm -fr $(DESTDIR)$(monodir)/gac/FSharp.Compiler
-rm -fr $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp
-rm -fr $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp
-rm -fr $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp
-rm -fr $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp
-rm -fr $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp
$(MAKE) -C mono/FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/FSharp.Build install
$(MAKE) -C mono/FSharp.Compiler install
$(MAKE) -C mono/Fsc install
$(MAKE) -C mono/FSharp.Compiler.Interactive.Settings install
$(MAKE) -C mono/FSharp.Compiler.Server.Shared install
$(MAKE) -C mono/fsi install
$(MAKE) -C mono/fsiAnyCpu install
$(MAKE) -C mono/FSharp.Core TargetFramework=net40 FSharpCoreBackVersion=3.0 install
$(MAKE) -C mono/FSharp.Core TargetFramework=net40 FSharpCoreBackVersion=3.1 install
$(MAKE) -C mono/FSharp.Core TargetFramework=net40 FSharpCoreBackVersion=4.0 install
$(MAKE) -C mono/policy.2.0.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.2.3.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.3.3.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.3.7.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.3.47.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.3.78.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.3.259.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.4.0.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.4.3.FSharp.Core TargetFramework=net40 install
$(MAKE) -C mono/policy.4.4.FSharp.Core TargetFramework=net40 install
ifeq ("$(pclenabled47)", "yes")
$(MAKE) -C mono/FSharp.Core TargetFramework=portable47 install
endif
ifeq ("$(pclenabled7)", "yes")
$(MAKE) -C mono/FSharp.Core TargetFramework=portable7 install
endif
ifeq ("$(pclenabled78)", "yes")
$(MAKE) -C mono/FSharp.Core TargetFramework=portable78 install
endif
ifeq ("$(pclenabled259)", "yes")
$(MAKE) -C mono/FSharp.Core TargetFramework=portable259 install
endif
ifeq ("$(monodroidenabled)", "yes")
$(MAKE) -C mono/FSharp.Core TargetFramework=monoandroid10+monotouch10+xamarinios10 install
endif
ifeq ("$(xamarinmacenabled)", "yes")
$(MAKE) -C mono/FSharp.Core TargetFramework=xamarinmacmobile install
endif
echo "------------------------------ INSTALLED FILES --------------"
ls -xlR $(DESTDIR)$(monodir)/fsharp $(DESTDIR)$(monodir)/xbuild $(DESTDIR)$(monodir)/gac/FSharp* $(DESTDIR)$(monodir)/Microsoft*
dist:
-rm -r fsharp-$(DISTVERSION) fsharp-$(DISTVERSION).tar.bz2
mkdir -p fsharp-$(DISTVERSION)
(cd $(topdir) && git archive HEAD |(cd $(builddir)fsharp-$(DISTVERSION) && tar xf -))
list='$(EXTRA_DIST)'; for s in $$list; do \
(cp $(topdir)$$s fsharp-$(DISTVERSION)/$$s) \
done;
tar cvjf fsharp-$(DISTVERSION).tar.bz2 $(patsubst %,--exclude=%, $(NO_DIST)) fsharp-$(DISTVERSION)
du -b fsharp-$(DISTVERSION).tar.bz2
[![Join the chat at https://gitter.im/Microsoft/visualfsharp](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Microsoft/visualfsharp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
# Visual F# Tools
# The Combined F# Language, Library, and Tools Repository
## Windows build
......@@ -15,7 +15,8 @@ You are invited to join with the F# Community and the Visual F# Tools team to he
F# is a mature, open source, cross-platform, functional-first programming language which empowers users and organizations to tackle complex computing problems with simple, maintainable, and robust code. F# is used in a wide range of application areas and is supported by Microsoft and other industry-leading companies providing professional tools, and by an active open community. You can find out more about F# at http://fsharp.org.
Changes contributed here are packaged into the Visual F# Tools, the F# Open Edition, and other open source F# editing tools. Microsoft coordinates packaging this repository as part of the Visual F# Tools, while the F# community coordinates packaging it as the Open Edition of F# for use on Linux, macOS, Android, iOS, and other platforms, via the [fsharp/fsharp GitHub repo](https://github.com/fsharp/fsharp/).
Changes contributed here are eventually included in all packagings of F# and open source F# editing tools. Microsoft coordinates packaging this repository
as part of the Visual F# Tools, and the F# community coordinates packaging [other editions of F#](https://github.com/fsharp/fsharp/) for use on Linux, macOS, Android, iOS, and other platforms.
### License
......@@ -34,12 +35,11 @@ For F# Compiler on Windows (``build net40``)
- [.NET 4.5.1](http://www.microsoft.com/en-us/download/details.aspx?id=40779)
- [MSBuild 12.0](http://www.microsoft.com/en-us/download/details.aspx?id=40760)
For F# Compiler on macOS and Linux (see .travis.yml for build steps)
For F# Compiler on macOS and Linux (``build.sh``)
- [Mono latest](http://www.mono-project.com/download/#download-lin)
- If building for .NET Core, then .NET Core will be downloaded from Linux packages
For Visual F# IDE Tools 4.1 development (Windows)
- [Visual Studio 2017](https://www.visualstudio.com/downloads/)
......@@ -96,15 +96,10 @@ Although the primary focus of this repo is F# for Windows and the Visual Studio
If you wish to use the latest F# compiler on a computer without Visual Studio 2017 installed, you can add the nuget package ``FSharp.Compiler.Tools`` to your projects. This will replace the in-box compiler with the version contained in the package.
The actual package is built in https://github.com/fsharp/fsharp.
Note that while this will remove the dependency on VS 2017, you will still need to have MSBuild and the required targets files installed, which come with any older version of VS (e.g. 2013 or 2015).
#### ... With an older version of VS
Just install the nuget package, it will then use MSBuild and the targets files from the older version. If you get an error, see below.
#### ... With VS (any version) installed, but without the optional F# tools installed
The currently distributed F# templates depend on machine-wide installed .targets files. You can manually modify your project to instead use the .targets file from the nuget package. This will allow you to build your project on a computer with VS but without the optional F# tools installed. See https://github.com/fsharp/fsharp/issues/676 for how to modify your project file.
You will need to adjust the targets reference on your project file to use the targets file from the installed ``FSharp.Compiler.Tools`` package.
See https://github.com/fsharp/fsharp/issues/676 for how to modify your project file.
### Get In Touch
Keep up with the Visual F# Team and the development of the Visual F# Tools by following us [@VisualFSharp](https://twitter.com/VisualFSharp) or subscribing to the [.NET Blog](https://blogs.msdn.microsoft.com/dotnet/).
Follow [@VisualFSharp](https://twitter.com/VisualFSharp) on twitter or subscribe to the [.NET Blog](https://blogs.msdn.microsoft.com/dotnet/).
#!/usr/bin/env sh
which autoreconf > /dev/null || (echo "Please install autoconf" && exit 1)
autoreconf && ./configure $@
......@@ -23,7 +23,7 @@ if [ $OS = 'Linux' ]; then
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get -y install mono-devel
sudo apt-get -y install mono-devel autoconf libtool pkg-config make git
fi
# Check if SSL certificates have been imported into Mono's certificate store.
......
......@@ -467,10 +467,21 @@ if [ "$BUILD_PHASE" = '1' ]; then
{ printeval "$cmd"; } || failwith "'$cmd' failed"
fi
build_status "Main part of build finished, completing parts of build needed for Mono setup"
if [ "$BUILD_NET40" = '1' ]; then
{ printeval "./autogen.sh --prefix=/usr"; } || failwith "./autogen.sh failed"
{ printeval "make"; } || failwith "make failed"
fi
build_status "Done with build, starting update/prepare"
if [ "$BUILD_NET40" = '1' ]; then
echo "TODO: Call update.sh"
{ printeval "sudo make install"; } || failwith "sudo make install failed"
# WINDOWS:
# src/update.sh $BUILD_CONFIG
# rc=$?;
# if [ $rc -ne 0 ]; then
......
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.61])
AC_INIT([fsharp], [4.0], [https://github.com/fsharp/fsharp/issues])
# Checks for programs.
AC_PROG_MAKE_SET
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
# pkg-config precedence: 1) our prefix 2) the system Mono location 3) the PATH
prefix_pkg_config="$prefix"/bin/pkg-config
osx_pkg_config=/Library/Frameworks/Mono.framework/Versions/Current/bin/pkg-config
if test -e $prefix_pkg_config; then
PKG_CONFIG=$prefix_pkg_config
elif test -e $osx_pkg_config; then
PKG_CONFIG=$osx_pkg_config
elif test "x$PKG_CONFIG" = "xno"; then
AC_MSG_ERROR([You need to install pkg-config])
fi
AC_MSG_NOTICE("pkg-config: $PKG_CONFIG")
AC_MSG_NOTICE("PKG_CONFIG_LIBDIR: $PKG_CONFIG_LIBDIR")
MONO_REQUIRED_VERSION=4.0
MONO_RECOMMENDED_VERSION=4.2
MONO_RECOMMENDED_REASON="as it is newer and already considered a stable version"
if ! $PKG_CONFIG --atleast-version=$MONO_REQUIRED_VERSION mono; then
AC_MSG_ERROR("You need mono $MONO_REQUIRED_VERSION")
fi
if ! $PKG_CONFIG --atleast-version=$MONO_RECOMMENDED_VERSION mono; then
AC_MSG_WARN([Mono $MONO_RECOMMENDED_VERSION or higher is recommended, $MONO_RECOMMENDED_REASON])
fi
AC_ARG_WITH([gacdir],
[ --with-gacdir=/path/to/gac Specify the gac directory (ex: /usr/lib/mono/gac)],
[],
[with_gacdir=no]
)
MONOPREFIX=$(cd `$PKG_CONFIG --variable=prefix mono` && pwd)
MONOBINDIR="$MONOPREFIX"/bin
MONOLIBDIR="$MONOPREFIX"/lib
AC_PATH_PROG(XBUILD, xbuild, no)
xbuild_from_pkg_config="$MONOBINDIR"/xbuild
if test -e $xbuild_from_pkg_config; then
XBUILD=$xbuild_from_pkg_config
elif test "x$XBUILD" == "xno"; then
AC_MSG_ERROR([Could not find xbuild])
fi
AC_MSG_NOTICE(xbuild: $XBUILD)
MONOGACDIR="$MONOLIBDIR"/mono
if ! test "x$with_gacdir" = "xno"; then
MONOGACDIR=$(cd "$with_gacdir/.." && pwd)
fi
MONOGACDIR40="$MONOGACDIR"/4.0
MONOGACDIR45="$MONOGACDIR"/4.5
if ! test -e $MONOGACDIR45/mscorlib.dll; then
AC_ERROR(Couldn't find the mono gac directory or mscorlib.dll in the usual places. Set --with-gacdir=<path>)
fi
if test -e $MONOLIBDIR/mono/xbuild-frameworks/.NETPortable/v4.0/Profile/Profile47/mscorlib.dll; then
PCLENABLED47=yes
else
PCLENABLED47=no
fi
AC_MSG_NOTICE(PCL Reference Assemblies for Profile 47 found: $PCLENABLED47)
AC_SUBST(PCLENABLED47)
if test -e $MONOLIBDIR/mono/xbuild-frameworks/.NETPortable/v4.0/Profile/Profile47/mscorlib.dll; then
PCLENABLED47=yes
else
PCLENABLED47=no
fi
AC_MSG_NOTICE(PCL Reference Assemblies for Profile 47 found: $PCLENABLED47)
AC_SUBST(PCLENABLED47)
if test -e $MONOLIBDIR/mono/xbuild-frameworks/.NETPortable/v4.5/Profile/Profile7/System.Runtime.dll; then
PCLENABLED7=yes
else
PCLENABLED7=no
fi
AC_MSG_NOTICE(PCL Reference Assemblies for Profile 7 found: $PCLENABLED7)
AC_SUBST(PCLENABLED7)
if test -e $MONOLIBDIR/mono/xbuild-frameworks/.NETPortable/v4.5/Profile/Profile78/System.Runtime.dll; then
PCLENABLED78=yes
else
PCLENABLED78=no
fi
AC_MSG_NOTICE(PCL Reference Assemblies for Profile 78 found: $PCLENABLED78)
AC_SUBST(PCLENABLED78)
if test -e $MONOLIBDIR/mono/xbuild-frameworks/.NETPortable/v4.5/Profile/Profile259/System.Runtime.dll; then
PCLENABLED259=yes
else
PCLENABLED259=no
fi
AC_MSG_NOTICE(PCL Reference Assemblies for Profile 259 found: $PCLENABLED259)
AC_SUBST(PCLENABLED259)
# We enable MonoTouch and MonoDroid builds if PCL components are available.
# These build using binaries from dependencies/mono/2.1, but see
# https://github.com/fsharp/fsharp/issues/391 where PCL is a requirement of
# Microsoft.Common.targets when used in this configuration
MONOTOUCHENABLED=$PCLENABLED78
MONODROIDENABLED=$PCLENABLED78
XAMARINMACENABLED=$PCLENABLED78
AC_SUBST(MONOTOUCHENABLED)
AC_SUBST(MONODROIDENABLED)
AC_SUBST(XAMARINMACENABLED)
AC_SUBST(MONOBINDIR)
AC_SUBST(MONOLIBDIR)
AC_SUBST(MONOGACDIR)
AC_SUBST(MONOGACDIR20)
AC_SUBST(MONOGACDIR35)
AC_SUBST(MONOGACDIR40)
AC_CONFIG_FILES([
mono/launcher
mono/config.make
])
AC_OUTPUT
CONFIGURE_FILE=autogen.sh
if ! test -e $CONFIGURE_FILE; then
CONFIGURE_FILE=configure
fi
CONFIGURE_COMMAND="`dirname $0`/$CONFIGURE_FILE"
if ! test "x$MONOPREFIX" = "x$prefix"; then
AC_WARN([Prefix to use is not the same as mono's: $prefix
Consider using: $CONFIGURE_COMMAND --prefix=$MONOPREFIX])
fi
NAME=FSharp.Build
ASSEMBLY = $(NAME).dll
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-sdk-lib
NAME=FSharp.Compiler.Interactive.Settings
ASSEMBLY = $(NAME).dll
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-sdk-lib install-gac-lib
NAME=FSharp.Compiler.Server.Shared
ASSEMBLY = $(NAME).dll
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-sdk-lib install-gac-lib
NAME=FSharp.Compiler
ASSEMBLY = $(NAME).dll
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-sdk-lib
NAME=FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
install: install-sdk-lib install-gac-lib
NAME=fsc
ASSEMBLY = $(NAME).exe
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-bin
# the version under development, update after a release
$version = '4.1.14'
function isVersionTag($tag){
$v = New-Object Version
[Version]::TryParse(($tag).Replace('-alpha','').Replace('-beta',''), [ref]$v)
}
# append the AppVeyor build number as the pre-release version
if ($env:appveyor){
$version = $version + '-b' + [int]::Parse($env:appveyor_build_number).ToString('000')
if ($env:appveyor_repo_tag -eq 'true' -and (isVersionTag($env:appveyor_repo_tag_name))){
$version = $env:appveyor_repo_tag_name
}
Update-AppveyorBuild -Version $version
} else {
$version = $version + '-b001'
}
$nuget = (gi .\.nuget\NuGet.exe).FullName
$packagesOutDir = Join-Path $PSScriptRoot "..\release\"
function pack($nuspec){
$dir = [IO.Path]::GetDirectoryName($nuspec)
& $nuget pack $nuspec -BasePath "$dir" -Version $version -OutputDirectory "$packagesOutDir" -NoDefaultExcludes -Verbosity d
}
pack(gi .\FSharp.Core.Nuget\FSharp.Core.nuspec)
pack(gi .\FSharp.Compiler.Tools.Nuget\FSharp.Compiler.Tools.nuspec)
#!/bin/sh
# Perform any necessary setup prior to running builds
# (e.g., restoring NuGet packages).
echo "prepare-mono.sh..."
./mono/prepare-mono.sh
rc=$?;
if [ $rc -ne 0 ]; then
echo "mono/prepare-mono script failed."
exit $rc
fi
echo "done mono/prepare-mono.sh, building..."
chmod +x mono/travis-autogen.sh
# Generate the makefiles
# Bootstrap the compiler
# Install the compiler
./mono/travis-autogen.sh && \
make && \
sudo make install
@echo off
:: Check prerequisites
set _msbuildexe="%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% set _msbuildexe="%ProgramFiles%\MSBuild\14.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% set _msbuildexe="%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% set _msbuildexe="%ProgramFiles%\MSBuild\12.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% echo Error: Could not find MSBuild.exe. Please see http://www.microsoft.com/en-us/download/details.aspx?id=40760. && goto :eof
set msbuildflags=/maxcpucount
::Build
%_msbuildexe% %msbuildflags% lib\netcore\build-fsc-netcore.proj /v:n
@if ERRORLEVEL 1 echo Error: "%_msbuildexe% %msbuildflags% lib\netcore\build-fsc-netcore.proj" failed && goto :failure
@echo "Finished"
goto :eof
:failure
exit /b 1
@echo off
:: Check prerequisites
set _msbuildexe="%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% set _msbuildexe="%ProgramFiles%\MSBuild\14.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% set _msbuildexe="%ProgramFiles(x86)%\MSBuild\12.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% set _msbuildexe="%ProgramFiles%\MSBuild\12.0\Bin\MSBuild.exe"
if not exist %_msbuildexe% echo Error: Could not find MSBuild.exe. Please see http://www.microsoft.com/en-us/download/details.aspx?id=40760. && goto :eof
set msbuildflags=/maxcpucount
set _ngenexe="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\ngen.exe"
if not exist %_ngenexe% echo Note: Could not find ngen.exe.
::Build
%_ngenexe% install .\.nuget\NuGet.exe
.\.nuget\NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile .nuget\nuget.config
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
%_ngenexe% install packages\FSharp.Compiler.Tools.4.0.1.21\tools\fsc.exe
set BUILD_NET40=1
set BUILD_PORTABLE=1
set TEST_NET40_COREUNIT_SUITE=1
set TEST_PORTABLE_COREUNIT_SUITE=1
%_msbuildexe% src\fsharp-proto-build.proj
@if ERRORLEVEL 1 echo Error: "%_msbuildexe% src\fsharp-proto-build.proj" failed && goto :failure
%_ngenexe% install Proto\net440\bin\fsc-proto.exe
%_msbuildexe% %msbuildflags% build-everything.proj /p:TargetFramework=net40 /p:Configuration=Release
@if ERRORLEVEL 1 echo Error: "%_msbuildexe% %msbuildflags% src\fsharp-library-build.proj /p:TargetFramework=net40 /p:Configuration=Release" failed && goto :failure
%_msbuildexe% %msbuildflags% src/fsharp/FSharp.Core/FSharp.Core.fsproj /p:TargetFramework=monotouch /p:Configuration=Release /p:KeyFile=..\..\..\mono\mono.snk
@if ERRORLEVEL 1 echo Error: "%_msbuildexe% %msbuildflags% src\fsharp-library-build.proj /p:TargetFramework=monotouch /p:Configuration=Release /p:KeyFile=..\..\..\mono.snk" failed && goto :failure
@echo "Finished"
goto :eof
:failure
exit /b 1
DEFAULT: all
.PHONY: install-sdk-lib install-gac-lib
prefix := @prefix@
topdir := @abs_top_srcdir@/
builddir := @abs_top_builddir@/
libdir := ${prefix}/lib/
bindir := ${prefix}/bin/
monobindir := @MONOBINDIR@
monolibdir := @MONOLIBDIR@
monogacdir := @MONOGACDIR@
monogacdir40 := @MONOGACDIR40@
pclenabled47 := @PCLENABLED47@
pclenabled7 := @PCLENABLED7@
pclenabled78 := @PCLENABLED78@
pclenabled259 := @PCLENABLED259@
monotouchenabled := @MONOTOUCHENABLED@
monodroidenabled := @MONODROIDENABLED@
xamarinmacenabled := @XAMARINMACENABLED@
monodir := ${libdir}mono
TargetFramework = net40
CONFIG = release
Configuration = Release
DISTVERSION = 201011
# Version number mappings for various versions of FSharp.Core
ifeq (x-$(TargetFramework)-,x-net40-)
ifeq (x-$(FSharpCoreBackVersion)-,x--)
VERSION = 4.4.1.0
PKGINSTALL = yes
REFASSEMPATH = .NETFramework/v4.0
outsuffix = $(TargetFramework)
endif
ifeq (x-$(FSharpCoreBackVersion)-,x-3.0-)
VERSION = 4.3.0.0
REFASSEMPATH = .NETFramework/v4.0
outsuffix = fsharp30/$(TargetFramework)
endif
ifeq (x-$(FSharpCoreBackVersion)-,x-3.1-)
VERSION = 4.3.1.0
REFASSEMPATH = .NETFramework/v4.0
outsuffix = fsharp31/$(TargetFramework)
endif
ifeq (x-$(FSharpCoreBackVersion)-,x-4.0-)
VERSION = 4.4.0.0
REFASSEMPATH = .NETFramework/v4.0
outsuffix = fsharp40/$(TargetFramework)
endif
endif
ifeq (x-$(TargetFramework)-,x-monoandroid10+monotouch10+xamarinios10-)
VERSION = 3.98.41.0
outsuffix = $(TargetFramework)
endif
ifeq (x-$(TargetFramework)-,x-xamarinmacmobile-)
VERSION = 3.99.41.0
outsuffix = $(TargetFramework)
endif
ifeq (x-$(TargetFramework)-,x-portable47-)
VERSION = 3.47.41.0
PCLPATH = .NETPortable
outsuffix = $(TargetFramework)
endif
ifeq (x-$(TargetFramework)-,x-portable7-)
VERSION = 3.7.41.0
PCLPATH = .NETCore
outsuffix = $(TargetFramework)
endif
ifeq (x-$(TargetFramework)-,x-portable78-)
VERSION = 3.78.41.0
PCLPATH = .NETCore
outsuffix = $(TargetFramework)
endif
ifeq (x-$(TargetFramework)-,x-portable259-)
VERSION = 3.259.41.0
PCLPATH = .NETCore
outsuffix = $(TargetFramework)
endif
FSCORE_DELAY_SIGN_TOKEN = b03f5f7f11d50a3a
SIGN_TOKEN = f536804aa0eb945b
tmpdir = .libs/$(Configuration)/
outdir = $(builddir)$(Configuration)/$(outsuffix)/bin/
INSTALL = $(SHELL) $(topdir)/mono/install-sh
INSTALL_BIN = $(INSTALL) -c -m 755
INSTALL_LIB = $(INSTALL_BIN)
XBUILD = @XBUILD@
EXTRA_DIST = configure
NO_DIST = .gitignore lib/debug lib/proto lib/release
# Install .optdata/.sigdata if they exist (they go alongside FSharp.Core)
# Install the .Targets file. The XBuild targets file gets installed into the place(s) expected for standard F# project
# files. For F# 2.0 project files this is
# /usr/lib/mono/Microsoft F#/v4.0/Microsoft.FSharp.Targets
# For F# 3.0 project files this is
# /usr/lib/mono/Microsoft SDKs/F#/3.0/Framework/v4.0/Microsoft.FSharp.Targets
# For F# 3.1 project files this is
# /usr/lib/mono/xbuild/Microsoft/VisualStudio/v12.0/FSharp/Microsoft.FSharp.Targets
# For F# 4.0 project files this is
# /usr/lib/mono/xbuild/Microsoft/VisualStudio/v14.0/FSharp/Microsoft.FSharp.Targets
# For F# 4.1 project files this is
# /usr/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/FSharp/Microsoft.FSharp.Targets
#
# Here 12.0/14.0/15.0 is 'VisualStudioVersion'. xbuild should set this to 11.0/12.0/14.0/15.0, copying MSBuild.
#
# We put the F# targets and link the SDK DLLs for all these locations
#
# We put a forwarding targets file into all three locations. We also put one in
# .../lib/mono/xbuild/Microsoft/VisualStudio/v/FSharp/Microsoft.FSharp.Targets
# since this is the location if 'xbuild' fails to set VisualStudioVersion.
#
install-sdk-lib:
@echo "Installing $(ASSEMBLY)"
@mkdir -p $(DESTDIR)$(monodir)/fsharp
@if test "x$(DELAY_SIGN)" = "x1"; then \
echo "Signing $(outdir)$(ASSEMBLY) with Mono key"; \
$(monobindir)/sn -q -R $(outdir)$(ASSEMBLY) $(topdir)mono/mono.snk; \
fi
@if test x-$(NAME) = x-FSharp.Compiler; then \
echo "Installing extra dependency System.Collections.Immutable.dll to $(DESTDIR)$(monodir)/fsharp/"; \
$(INSTALL_LIB) $(outdir)System.Collections.Immutable.dll $(DESTDIR)$(monodir)/fsharp/; \
echo "Installing extra dependency System.Reflection.Metadata.dll to $(DESTDIR)$(monodir)/fsharp/"; \
$(INSTALL_LIB) $(outdir)System.Reflection.Metadata.dll $(DESTDIR)$(monodir)/fsharp/; \
fi
@if test x-$(NAME) = x-FSharp.Build; then \
echo "Installing Microsoft.FSharp.Targets and Microsoft.Portable.FSharp.Targets into install locations matching Visual Studio"; \
echo " --> $(DESTDIR)$(monodir)/fsharp/"; \
echo " --> $(DESTDIR)$(monodir)/Microsoft\ F#/v4.0/"; \
echo " --> $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v4.0/"; \
echo " --> $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.1/Framework/v4.0/"; \
echo " --> $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.0/Framework/v4.0/"; \
echo " --> $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.1/Framework/v4.0/"; \
echo " --> $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp/"; \
echo " --> $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp/"; \
echo " --> $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/"; \
echo " --> $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/"; \
echo " --> $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/"; \
\
mkdir -p $(tmpdir); \
mkdir -p $(DESTDIR)$(monodir)/Microsoft\ F#/v4.0/; \
mkdir -p $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v4.0/; \
mkdir -p $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.1/Framework/v4.0/; \
mkdir -p $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.0/Framework/v4.0/; \
mkdir -p $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.1/Framework/v4.0/; \
mkdir -p $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp/; \
mkdir -p $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp/; \
mkdir -p $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/; \
mkdir -p $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/; \
mkdir -p $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/; \
\
$(INSTALL_LIB) $(outdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/fsharp/; \
$(INSTALL_LIB) $(outdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/fsharp/; \
\
echo '<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' > $(tmpdir)Microsoft.FSharp.Targets; \
echo ' <Import Project="$(monodir)/fsharp/Microsoft.FSharp.Targets" />' >> $(tmpdir)Microsoft.FSharp.Targets; \
echo '</Project>' >> $(tmpdir)Microsoft.FSharp.Targets; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ F#/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.1/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.0/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.1/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/; \
\
echo '<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">' > $(tmpdir)Microsoft.Portable.FSharp.Targets; \
echo ' <Import Project="$(monodir)/fsharp/Microsoft.Portable.FSharp.Targets" />' >> $(tmpdir)Microsoft.Portable.FSharp.Targets; \
echo '</Project>' >> $(tmpdir)Microsoft.Portable.FSharp.Targets; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ F#/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.0/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/3.1/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.0/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/Microsoft\ SDKs/F#/4.1/Framework/v4.0/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v11.0/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v12.0/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v14.0/FSharp/; \
$(INSTALL_LIB) $(tmpdir)Microsoft.Portable.FSharp.Targets $(DESTDIR)$(monodir)/xbuild/Microsoft/VisualStudio/v15.0/FSharp/; \
fi
@if test x-$(outsuffix) = x-net40; then \
if test -e $(outdir)$(NAME).dll; then \
echo "Installing $(outdir)$(NAME).dll to $(DESTDIR)$(monodir)/fsharp/"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/; \
$(INSTALL_LIB) $(outdir)$(NAME).dll $(DESTDIR)$(monodir)/fsharp/; \
fi; \
if test -e $(outdir)$(NAME).dll.config; then \
echo "Installing $(outdir)$(NAME).dll to $(DESTDIR)$(monodir)/fsharp/"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/; \
$(INSTALL_LIB) $(outdir)$(NAME).dll.config $(DESTDIR)$(monodir)/fsharp/; \
fi; \
if test -e $(outdir)$(NAME).xml; then \
echo "Installing $(outdir)$(NAME).xml into $(DESTDIR)$(monodir)/fsharp/"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/; \
$(INSTALL_LIB) $(outdir)$(NAME).xml $(DESTDIR)$(monodir)/fsharp/; \
fi; \
if test -e $(outdir)$(NAME).sigdata; then \
echo "Installing $(outdir)$(NAME).sigdata into $(DESTDIR)$(monodir)/fsharp/"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/; \
$(INSTALL_LIB) $(outdir)$(NAME).sigdata $(DESTDIR)$(monodir)/fsharp/; \
fi; \
if test -e $(outdir)$(NAME).optdata; then \
echo "Installing $(outdir)$(NAME).optdata into $(DESTDIR)$(monodir)/fsharp/"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/; \
$(INSTALL_LIB) $(outdir)$(NAME).optdata $(DESTDIR)$(monodir)/fsharp/; \
fi; \
fi
@if test x-$(NAME) = x-FSharp.Core && test x-$(REFASSEMPATH) != x-; then \
echo "Installing FSharp.Core $(VERSION) reference assembly into api location"; \
echo " --> $(DESTDIR)$(monodir)/fsharp/api/$(REFASSEMPATH)/$(VERSION)"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/api/$(REFASSEMPATH)/$(VERSION); \
$(INSTALL_LIB) $(outdir)$(NAME).xml $(DESTDIR)$(monodir)/fsharp/api/$(REFASSEMPATH)/$(VERSION)/; \
$(INSTALL_LIB) $(outdir)$(NAME).sigdata $(DESTDIR)$(monodir)/fsharp/api/$(REFASSEMPATH)/$(VERSION)/; \
$(INSTALL_LIB) $(outdir)$(NAME).optdata $(DESTDIR)$(monodir)/fsharp/api/$(REFASSEMPATH)/$(VERSION)/; \
$(INSTALL_LIB) $(outdir)$(NAME).dll $(DESTDIR)$(monodir)/fsharp/api/$(REFASSEMPATH)/$(VERSION)/; \
fi
@if test x-$(NAME) = x-FSharp.Core && test x-$(PCLPATH) != x-; then \
echo "Installing FSharp.Core $(VERSION) reference assembly into api location"; \
echo " --> $(DESTDIR)$(monodir)/fsharp/$(PCLPATH)/$(VERSION)"; \
mkdir -p $(DESTDIR)$(monodir)/fsharp/api/$(PCLPATH)/$(VERSION); \
$(INSTALL_LIB) $(outdir)$(NAME).xml $(DESTDIR)$(monodir)/fsharp/api/$(PCLPATH)/$(VERSION)/; \
$(INSTALL_LIB) $(outdir)$(NAME).sigdata $(DESTDIR)$(monodir)/fsharp/api/$(PCLPATH)/$(VERSION)/; \
$(INSTALL_LIB) $(outdir)$(NAME).optdata $(DESTDIR)$(monodir)/fsharp/api/$(PCLPATH)/$(VERSION)/; \
$(INSTALL_LIB) $(outdir)$(NAME).dll $(DESTDIR)$(monodir)/fsharp/api/$(PCLPATH)/$(VERSION)/; \
fi
# Install the library binaries in the GAC directory,
install-gac-lib:
$(eval TARGET = "4.5")
@echo "Installing $(ASSEMBLY)"
@if test "x$(DELAY_SIGN)" = "x1"; then \
echo "Signing $(outdir)$(ASSEMBLY) with Mono key"; \
$(monobindir)/sn -q -R $(outdir)$(ASSEMBLY) $(topdir)mono/mono.snk; \
fi
@if test -e $(outdir)$(NAME).dll; then \
if test x-$(NAME) = x-FSharp.Core && test x-$(PKGINSTALL) = x-yes; then \
echo "Using gacutil to install $(outdir)$(ASSEMBLY) into GAC root $(DESTDIR)$(libdir) as package $(TARGET)"; \
$(monobindir)/gacutil -i $(outdir)$(ASSEMBLY) -root $(DESTDIR)$(libdir) -package $(TARGET); \
else \
echo "Installing $(outdir)$(NAME).dll to $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/"; \
mkdir -p $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
$(INSTALL_LIB) $(outdir)$(NAME).dll $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
fi; \
fi
@if test -e $(outdir)$(NAME).xml; then \
echo "Installing $(outdir)$(NAME).xml into $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/"; \
mkdir -p $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
$(INSTALL_LIB) $(outdir)$(NAME).xml $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
if test x-$(PKGINSTALL) = x-yes && test x-$(NAME) = x-FSharp.Core; then \
echo "Using linking to ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).xml to install $(DESTDIR)$(libdir)mono/$(TARGET)/$(NAME).xml"; \
ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).xml $(DESTDIR)$(libdir)mono/$(TARGET)/$(NAME).xml; \
fi; \
fi
@if test -e $(outdir)$(NAME).sigdata; then \
echo "Installing $(outdir)$(NAME).sigdata into $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/"; \
mkdir -p $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
$(INSTALL_LIB) $(outdir)$(NAME).sigdata $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
if test x-$(PKGINSTALL) = x-yes; then \
echo "Using linking to ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).sigdata to install $(DESTDIR)$(libdir)mono/$(TARGET)/$(NAME).sigdata"; \
ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).sigdata $(DESTDIR)$(libdir)mono/$(TARGET)/$(NAME).sigdata; \
fi; \
fi
@if test -e $(outdir)$(NAME).optdata; then \
echo "Installing $(outdir)$(NAME).optdata into $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/"; \
mkdir -p $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
$(INSTALL_LIB) $(outdir)$(NAME).optdata $(DESTDIR)$(monodir)/gac/$(NAME)/$(VERSION)__$(TOKEN)/; \
if test x-$(PKGINSTALL) = x-yes; then \
echo "Using linking to ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).optdata to install $(DESTDIR)$(libdir)mono/$(TARGET)/$(NAME).optdata"; \
ln -fs ../gac/$(NAME)/$(VERSION)__$(TOKEN)/$(NAME).optdata $(DESTDIR)$(libdir)mono/$(TARGET)/$(NAME).optdata; \
fi; \
fi
# The binaries fsc.exe and fsi.exe only get installed for Mono 4.5 profile
# This also installs 'fsharpc' and 'fsharpi' and 'fsharpiAnyCpu'
install-bin:
chmod +x $(outdir)$(ASSEMBLY)
sed -e 's,[@]DIR[@],$(monodir)/fsharp,g' -e 's,[@]TOOL[@],$(ASSEMBLY),g' -e 's,[@]MONOBINDIR[@],$(monobindir),g' < $(topdir)mono/launcher > $(outdir)$(subst fs,fsharp,$(NAME))
chmod +x $(outdir)$(subst fs,fsharp,$(NAME))
@mkdir -p $(DESTDIR)$(monodir)/fsharp
@mkdir -p $(DESTDIR)$(bindir)
$(INSTALL_BIN) $(outdir)$(ASSEMBLY) $(DESTDIR)$(monodir)/fsharp
$(INSTALL_BIN) $(outdir)$(ASSEMBLY).config $(DESTDIR)$(monodir)/fsharp
$(INSTALL_BIN) $(outdir)$(subst fs,fsharp,$(NAME)) $(DESTDIR)$(bindir)
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<TargetFrameworkIdentifier>MonoAndroid</TargetFrameworkIdentifier>
<MonoAndroidVersion>v1.0</MonoAndroidVersion>
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v2.2</TargetFrameworkVersion>
<AndroidLinkMode Condition="'$(AndroidLinkMode)' == ''">SdkOnly</AndroidLinkMode>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" Condition="!Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
<Import Project="$(MSBuildExtensionsPath32)\..\Microsoft F#\v4.0\Microsoft.FSharp.Targets" Condition=" Exists('$(MSBuildBinPath)\Microsoft.Build.Tasks.v4.0.dll')" />
<Import Project="Novell.MonoDroid.Common.targets" />
</Project>
\ No newline at end of file
NAME=fsi
ASSEMBLY = $(NAME).exe
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-bin
NAME=fsiAnyCpu
ASSEMBLY = $(NAME).exe
TOKEN=$(SIGN_TOKEN)
include ../config.make
install: install-bin
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
-*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
#!/bin/sh
EXEC="exec "
if test x"$1" = x--debug; then
DEBUG=--debug
shift
fi
if test x"$1" = x--gdb; then
shift
EXEC="gdb --eval-command=run --args "
fi
if test x"$1" = x--valgrind; then
shift
EXEC="valgrind $VALGRIND_OPTIONS"
fi
# Beware this line must match the regular expression " (\/.*)\/fsi\.exe" when @TOOL@ is fsi.exe.
# That's because the FSharp MonoDevelop addin looks inside the text of this script to determine the installation
# location of the default FSharp install in order to find the FSharp compiler binaries (see
# fsharpbinding/MonoDevelop.FSharpBinding/Services/CompilerLocationUtils.fs). That's a pretty unfortunate
# way of finding those binaries. And really should be changed.
$EXEC @MONOBINDIR@/mono $DEBUG $MONO_OPTIONS @DIR@/@TOOL@ --exename:$(basename "$0") "$@"
文件已添加
文件已添加
NAME=policy.2.0.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" processorArchitecture="msil" Culture="neutral" />
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.3.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v4.0.30319">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" processorArchitecture="msil" Culture="neutral" />
<bindingRedirect oldVersion="2.0.0.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.2.3.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
# override the targets to build the assembly
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" processorArchitecture="msil" Culture="neutral" />
<bindingRedirect oldVersion="2.3.5.0" newVersion="2.3.1.0" />
<bindingRedirect oldVersion="2.3.5.1" newVersion="2.3.1.0" />
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v4.0.30319">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" processorArchitecture="msil" Culture="neutral" />
<bindingRedirect oldVersion="2.3.0.0-2.3.5.1" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.3.259.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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="3.259.3.1-3.259.41.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.3.3.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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="3.3.1.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.3.47.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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="3.47.4.0-3.47.41.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.3.7.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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="3.7.4.0-3.7.41.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.3.78.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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="3.78.3.1-3.78.41.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.4.0.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.4.3.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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.3.0.0-4.3.1.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
NAME=policy.4.4.FSharp.Core
ASSEMBLY = $(NAME).dll
DELAY_SIGN=1
TOKEN=$(FSCORE_DELAY_SIGN_TOKEN)
include ../config.make
$(outdir)$(NAME).dll: $(NAME).dll.config
@mkdir -p $(@D)
cp $(NAME).dll.config $(@D)
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)mono/msfinal.pub
build:
$(MAKE) $(outdir)$(NAME).dll
clean:
-rm -f $(outdir)$(NAME).dll
install: install-sdk-lib install-gac-lib
\ No newline at end of file
<?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.3.0.0-4.4.0.0" newVersion="4.4.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
#!/usr/bin/env sh
# OS detection
OSName=$(uname -s)
case $OSName in
Darwin)
OS=OSX
;;
Linux)
OS=Linux
;;
*)
echo "Unsupported OS '$OSName' detected. Cannot continue with build, the scripts must be updated to support this OS."
exit 1
;;
esac
# On Linux (or at least, Ubuntu), when building with Mono, need to install the mono-devel package first.
if [ $OS = 'Linux' ]; then
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get -y install mono-devel
fi
# Check if SSL certificates have been imported into Mono's certificate store.
# If certs haven't been installed, some/all of the Nuget packages will fail to restore.
#if [ $('certmgr -list -c Trust | grep -c -F "X.509"') -le 1 ]; then
# echo "No SSL certificates installed so unable to restore NuGet packages." >&2;
# echo "Run 'mozroots --sync --import' to install certificates to Mono's certificate store." >&2;
# exit 1
#fi
# Restore NuGet packages (needed for compiler bootstrap and tests).
mono .nuget/NuGet.exe restore packages.config -PackagesDirectory packages -ConfigFile .nuget/NuGet.Config
(if test x-$BUILD_CORECLR = x-1; then \
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'; \
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893; \
sudo apt-get update; \
sudo apt-get -y install dotnet-dev-1.0.0-preview2-003131; \
(cd tests/fsharp; mono ../../.nuget/NuGet.exe restore project.json -PackagesDirectory ../../packages -ConfigFile ../../.nuget/NuGet.Config); \
./init-tools.sh; \
echo "------ start log"; \
cat ./init-tools.log; echo "------ end log"; \
fi)
(if test x-$BUILD_PROTO_WITH_CORECLR_LKG = x-1; then \
(cd lkg/fsc && dotnet restore --packages ../packages && dotnet publish project.json -o ../Tools/lkg -r ubuntu.14.04-x64); \
(cd lkg/fsi && dotnet restore --packages ../packages && dotnet publish project.json -o ../Tools/lkg -r ubuntu.14.04-x64); \
fi)
#TODO: work out how to avoid the need for this
echo "chmod u+x packages/FSharp.Compiler.Tools.4.1.5/tools/fsi.exe"
echo "chmod u+x packages/FsLexYacc.7.0.4/build/fslex.exe"
echo "chmod u+x packages/FsLexYacc.7.0.4/build/fsyacc.exe"
chmod u+x packages/FSharp.Compiler.Tools.4.1.5/tools/fsi.exe
chmod u+x packages/FsLexYacc.7.0.4/build/fslex.exe
chmod u+x packages/FsLexYacc.7.0.4/build/fsyacc.exe
# The FSharp.Compiler.Tools package doesn't work correctly unless a proper install of F# has been done on the machine.
# OSX can skip this because the OSX Mono installer includes F#.
if [ $OS != 'OSX' ]; then
sudo apt-get -y install fsharp
fi
# "access to the path /etc/mono/registry/last-time is denied"
# On non-OSX systems, may need to create Mono's registry folder to avoid exceptions during builds.
# This doesn't seem to be necessary on OSX, as the folder is created by the installer.
if [ $OS != 'OSX' ]; then
# This registry folder path is correct for Linux;
# on OSX the folder is /Library/Frameworks/Mono.framework/Versions/Current/etc/mono/registry
# and may be different for *BSD systems.
__MonoRegistryDir="/etc/mono/registry"
if [ ! -d "$__MonoRegistryDir" ]; then
echo "Mono registry directory does not exist (it may not have been created yet)."
echo "The directory needs to be created now; superuser permissions are required for this."
{ sudo -- sh -c "mkdir -p $__MonoRegistryDir && chmod uog+rw $__MonoRegistryDir"; } || { echo "Unable to create/chmod Mono registry directory '$__MonoRegistryDir'." >&2; }
fi
fi
# Run some project building tests
# Run some a variation of the tests/fsharp suite
# Run the FSharp.Core.Unittests suite
(cd tests/projects; ./build.sh) &&
(cd tests/fsharp/core; ./run-opt.sh)
# This currently takes too long in travis
#&& mono packages/NUnit.Console.3.0.0/tools/nunit3-console.exe --agents=1 Release/net40/bin/FSharp.Core.Unittests.dll
#!/usr/bin/env sh
echo "TRAVIS_OS_NAME=$TRAVIS_OS_NAME"
if [ "$TRAVIS_OS_NAME" = "osx" ];
then
monoVer=$(mono --version | head -n 1 | cut -d' ' -f 5)
prefix="/Library/Frameworks/Mono.framework/Versions/$monoVer";
else
prefix="/usr";
fi
echo "./autogen.sh --prefix=$prefix"
./autogen.sh --prefix=$prefix
\ No newline at end of file
......@@ -8,6 +8,13 @@
<FSCoreVersion Condition="'$(TargetFramework)' == 'portable47'">3.47.41.0</FSCoreVersion>
<FSCoreVersion Condition="'$(TargetFramework)' == 'portable78'">3.78.41.0</FSCoreVersion>
<FSCoreVersion Condition="'$(TargetFramework)' == 'portable259'">3.259.41.0</FSCoreVersion>
<FSCoreVersion Condition="'$(TargetFramework)' == 'monoandroid10+monotouch10+xamarinios10' ">3.98.41.0</FSCoreVersion>
<FSCoreVersion Condition="'$(TargetFramework)' == 'xamarinmacmobile' ">3.99.41.0</FSCoreVersion>
<FSCoreVersion Condition="'$(FSharpCoreBackVersion)' == '3.0' AND '$(FSCoreVersion)' == '4.4.1.0'">4.3.0.0</FSCoreVersion>
<FSCoreVersion Condition="'$(FSharpCoreBackVersion)' == '3.1' AND '$(FSCoreVersion)' == '4.4.1.0'">4.3.1.0</FSCoreVersion>
<FSCoreVersion Condition="'$(FSharpCoreBackVersion)' == '4.0' AND '$(FSCoreVersion)' == '4.4.1.0'">4.4.0.0</FSCoreVersion>
</PropertyGroup>
<Choose>
......@@ -142,6 +149,30 @@
<!-- MSbuild works out the assembly references -->
</PropertyGroup>
<!-- MonoAndroid, MonoTouch, XamarinWatchOS, XamarinTVOS -->
<PropertyGroup Condition="('$(TargetFramework)'=='monoandroid10+monotouch10+xamarinios10')">
<!-- Although Reflection Emit is available on MonoAndroid, we don't use it for FSharp.Core -->
<!-- because we want the FSharp.Core DLLs to be identical for MonoAndroid and MonoTouch -->
<DefineConstants>$(DefineConstants);FX_NO_REFLECTION_EMIT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_BIGINT</DefineConstants>
<DefineConstants>$(DefineConstants);FX_NO_STRUCTURAL_EQUALITY</DefineConstants>
<AssemblySearchPaths>$(FSharpSourcesRoot)\..\mono\dependencies\2.1\XamarinWatchOS;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup>
<!-- Target MonoAndroid -->
<PropertyGroup Condition="'$(TargetFramework)'=='monoandroid10+monotouch10+xamarinios10'">
<AssemblySearchPaths>$(FSharpSourcesRoot)\..\mono\dependencies\2.1\MonoAndroid;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup>
<!-- Target xamarinmacmobile similar to monoandroid10+monotouch10+xamarinios10 configurations, with Reflection.emit, structural equality, and BigInt -->
<PropertyGroup Condition="'$(TargetFramework)'=='xamarinmacmobile'">
<AssemblySearchPaths>$(FSharpSourcesRoot)\..\mono\dependencies\2.1\XamarinMac;$(AssemblySearchPaths)</AssemblySearchPaths>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='coreclr'">
<DefineConstants>$(DefineConstants);FX_PORTABLE_OR_NETSTANDARD</DefineConstants>
<DefineConstants>$(DefineConstants);NETSTANDARD1_6</DefineConstants>
......@@ -371,6 +402,15 @@
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v4.5</TargetFrameworkVersion>
</PropertyGroup>
<!-- If building an FSharp.Core for a back version (Mono Debian source builds only), put it in a ualified directory -->
<PropertyGroup>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == ''">$(TargetFramework)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '3.0'">fsharp30\$(TargetFramework)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '3.1'">fsharp31\$(TargetFramework)</TargetFrameworkOutputDirectory>
<TargetFrameworkOutputDirectory Condition="'$(FSharpCoreBackVersion)' == '4.0'">fsharp40\$(TargetFramework)</TargetFrameworkOutputDirectory>
<IntermediateOutputPath>obj\$(TargetFrameworkOutputDirectory)\</IntermediateOutputPath>
</PropertyGroup>
<Choose>
<When Condition="'$(BuildWith)' == 'LKG' AND '$(BUILD_PROTO_WITH_CORECLR_LKG)' == '1'">
<PropertyGroup >
......@@ -397,7 +437,7 @@
<When Condition="'$(BuildWith)' == '' AND ('$(TargetFramework)'=='portable47' OR '$(TargetFramework)'=='portable7' OR '$(TargetFramework)'=='portable78' OR '$(TargetFramework)'=='portable259' OR '$(TargetFramework)'=='coreclr')">
<!-- Compiling portable/coreclr with Proto, currently always use a .NET Framework/Mono proto -->
<PropertyGroup>
<OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFramework)\bin</OutputPath>
<OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFrameworkOutputDirectory)\bin</OutputPath>
<FscToolPath>$(FSharpSourcesRoot)\..\Proto\$(ProtoFlavour)\bin</FscToolPath>
<FscToolExe>fsc-proto.exe</FscToolExe>
<FSharpTargetsPath>..\Proto\$(ProtoFlavour)\bin\Microsoft.Portable.FSharp-proto.targets</FSharpTargetsPath>
......@@ -406,7 +446,7 @@
<Otherwise>
<!-- Compiling net40 with Proto -->
<PropertyGroup>
<OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFramework)\bin</OutputPath>
<OutputPath Condition=" '$(CustomOutputPath)' != 'true' ">$(FSharpSourcesRoot)\..\$(Configuration)\$(TargetFrameworkOutputDirectory)\bin</OutputPath>
<FscToolPath>$(FSharpSourcesRoot)\..\Proto\$(ProtoFlavour)\bin</FscToolPath>
<FscToolExe>fsc-proto.exe</FscToolExe>
<FSharpTargetsPath>..\Proto\$(ProtoFlavour)\bin\Microsoft.FSharp-proto.targets</FSharpTargetsPath>
......
......@@ -532,7 +532,7 @@
<Reference Include="System.Numerics" />
<Reference Include="ISymWrapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.DiaSymReader.PortablePdb">
<HintPath>..\..\..\packages\Microsoft.DiaSymReader.PortablePdb.1.2.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll</HintPath>
<HintPath>..\..\..\packages\Microsoft.DiaSymReader.PortablePdb.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll</HintPath>
</Reference>
<Reference Include="Microsoft.DiaSymReader">
<HintPath>..\..\..\packages\Microsoft.DiaSymReader.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.dll</HintPath>
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="2.0.0.0-4.4.1.0" newVersion="FSCoreVersion"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="2.0.0.0-4.4.1.0" newVersion="FSCoreVersion"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
\ No newline at end of file
......@@ -235,26 +235,18 @@
<Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Numerics" Condition="'$(TargetFramework)' == 'net40' OR
'$(TargetFramework)' == 'monotouch' OR
'$(TargetFramework)' == 'xamarinwatchos' OR
'$(TargetFramework)' == 'xamarintvos' OR
'$(TargetFramework)' == 'monodroid' OR
'$(TargetFramework)' == 'xamarinmacmobile' OR
'$(TargetFramework)' == 'xamarinmacfull'" >
'$(TargetFramework)' == 'monoandroid10+monotouch10+xamarinios10' OR
'$(TargetFramework)' == 'xamarinmacmobile'" >
<Private>false</Private>
</Reference>
<Reference Include="System.Net" Condition="'$(TargetFramework)' == 'portable47' OR
'$(TargetFramework)' == 'portable7'" >
<Private>false</Private>
</Reference>
<Reference Include="System.Core" Condition="'$(TargetFramework)' == 'monotouch' OR
'$(TargetFramework)' == 'xamarinwatchos' OR
'$(TargetFramework)' == 'xamarintvos' OR
'$(TargetFramework)' == 'monodroid' OR
<Reference Include="System.Core" Condition="'$(TargetFramework)' == 'monoandroid10+monotouch10+xamarinios10' OR
'$(TargetFramework)' == 'portable47' OR
'$(TargetFramework)' == 'portable7' OR
'$(TargetFramework)' == 'xamarinmacmobile' OR
'$(TargetFramework)' == 'xamarinmacfull'" >
'$(TargetFramework)' == 'xamarinmacmobile'" >
<Private>false</Private>
</Reference>
</ItemGroup>
......
......@@ -5,13 +5,8 @@
<gcServer enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="FSharp.Core"
publicKeyToken="b03f5f7f11d50a3a"
culture="neutral"/>
<bindingRedirect
oldVersion="2.0.0.0-4.4.1.0"
newVersion="4.4.1.0"/>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="2.0.0.0-4.4.1.0" newVersion="4.4.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
......
......@@ -4,13 +4,8 @@
<legacyUnhandledExceptionPolicy enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="FSharp.Core"
publicKeyToken="b03f5f7f11d50a3a"
culture="neutral"/>
<bindingRedirect
oldVersion="2.0.0.0-4.4.1.0"
newVersion="4.4.1.0"/>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="2.0.0.0-4.4.1.0" newVersion="4.4.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
......
......@@ -5,13 +5,8 @@
<legacyUnhandledExceptionPolicy enabled="true" />
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="FSharp.Core"
publicKeyToken="b03f5f7f11d50a3a"
culture="neutral"/>
<bindingRedirect
oldVersion="2.0.0.0-4.4.1.0"
newVersion="4.4.1.0"/>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="2.0.0.0-4.4.1.0" newVersion="4.4.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册