diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 000000000000..769ed580ec41 --- /dev/null +++ b/Makefile @@ -0,0 +1,124 @@ +srcdir := <SRCDIR>/fsharp-4.0.1.5/src/fsharp/ + +include <SRCDIR>/fsharp-4.0.1.5/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, +# as that causes a complete recompilation of both proto and final everytime you touch the +# compiler sources. +all: + $(MAKE) build-proto + $(MAKE) build + +# We need the bootstrap's FSharp.Core to run the proto +build-proto: $(bootstrap)/FSharp.Core.dll $(bootstrap)/FSharp.Core.sigdata $(bootstrap)/FSharp.Core.optdata + @-mkdir -p $(protodir) + #ls -R $(monolibdir)/.. + cp -p $(bootstrap)/FSharp.Core.dll $(protodir)FSharp.Core.dll + cp -p $(bootstrap)/FSharp.Core.sigdata $(protodir)FSharp.Core.sigdata + cp -p $(bootstrap)/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 $@ + +# The main targets +# +# - Only build a net20 version of FSharp.Core if net20 mscorlib exists +# Modern versions of mono no longer include net20 or net35 assemblies +# +build clean install: + $(MAKE) -C FSharp.Core TargetFramework=net40 $@ + $(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 fsiAnyCpu $@ + $(MAKE) -C policy.2.0.FSharp.Core $@ + $(MAKE) -C policy.2.3.FSharp.Core $@ + $(MAKE) -C policy.3.3.FSharp.Core $@ + $(MAKE) -C policy.3.7.FSharp.Core $@ + $(MAKE) -C policy.3.47.FSharp.Core $@ + $(MAKE) -C policy.3.78.FSharp.Core $@ + $(MAKE) -C policy.3.259.FSharp.Core $@ + $(MAKE) -C policy.4.0.FSharp.Core $@ + $(MAKE) -C policy.4.3.FSharp.Core $@ + if test -e $MONOGACDIR20/mscorlib.dll; then $(MAKE) -C FSharp.Core TargetFramework=net20 $@;fi + $(MAKE) only-monotouch only-monodroid only-xamarinmac + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=net40 $@ + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.1 TargetFramework=net40 $@ + if test -e $MONOGACDIR20/mscorlib.dll; then $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=net20 $@;fi +ifeq ("$(pclenabled47)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=portable47 $@ + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.0 TargetFramework=portable47 $@ + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.1 TargetFramework=portable47 $@ +endif +ifeq ("$(pclenabled7)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=portable7 $@ + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.1 TargetFramework=portable7 $@ +endif +ifeq ("$(pclenabled78)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=portable78 $@ + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.1 TargetFramework=portable78 $@ +endif +ifeq ("$(pclenabled259)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=portable259 $@ + $(MAKE) -C FSharp.Core FSharpCoreBackVersion=3.1 TargetFramework=portable259 $@ +endif + +all-monotouch-monodroid-xamarinmac: + $(MAKE) build-proto + $(MAKE) only-monotouch only-monodroid only-xamarinmac only-xamarinwatchos only-xamarintvos + +all-monotouch-xamarinmac: + $(MAKE) build-proto + $(MAKE) only-monotouch only-xamarinmac only-xamarinwatchos only-xamarintvos + +all-monotouch-monodroid: + $(MAKE) build-proto + $(MAKE) only-monotouch only-monodroid only-xamarinwatchos only-xamarintvos + +all-monotouch: + $(MAKE) build-proto + $(MAKE) only-monotouch only-xamarinwatchos only-xamarintvos + +only-monotouch: +ifeq ("$(monotouchenabled)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=monotouch build +endif + +only-xamarinwatchos: +ifeq ("$(monotouchenabled)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=xamarinwatchos build +endif + +only-xamarintvos: +ifeq ("$(monotouchenabled)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=xamarintvos build +endif + +all-monodroid: + $(MAKE) build-proto + $(MAKE) only-monodroid + +only-monodroid: +ifeq ("$(monodroidenabled)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=monodroid build +endif + +all-xamarinmac: + $(MAKE) build-proto + $(MAKE) only-xamarinmac + +only-xamarinmac: only-xamarinmacmobile only-xamarinmacfull + +only-xamarinmacmobile: +ifeq ("$(xamarinmacenabled)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=xamarinmacmobile build +endif + +only-xamarinmacfull: +ifeq ("$(xamarinmacenabled)", "yes") + $(MAKE) -C FSharp.Core TargetFramework=xamarinmacfull build +endif |