[xbuild] Add support for multi-targeting arbitrary frameworks.
[mono.git] / mcs / tools / xbuild / Makefile
1 thisdir = tools/xbuild
2 SUBDIRS = 
3 include ../../build/rules.make
4 HAS_NUNIT_TEST = yes
5
6 BUILD_FRAMEWORK = Microsoft.Build.Framework.dll
7 BUILD_ENGINE = Microsoft.Build.Engine.dll
8
9 ifeq (3.5, $(FRAMEWORK_VERSION))
10 NAME_SUFFIX = .v3.5
11 ASSEMBLY_VERSION = 3.5.0.0
12 BUILD_FRAMEWORK := $(topdir)/class/lib/$(PROFILE)/$(BUILD_FRAMEWORK)
13 BUILD_ENGINE := $(topdir)/class/lib/$(PROFILE)/$(BUILD_ENGINE)
14 else
15 ifeq (4.0, $(FRAMEWORK_VERSION))
16 NAME_SUFFIX = .v4.0
17 ASSEMBLY_VERSION = 4.0.0.0
18 endif
19 endif
20
21 LOCAL_MCS_FLAGS = -r:$(BUILD_FRAMEWORK) -r:Microsoft.Build.Utilities$(NAME_SUFFIX).dll -r:$(BUILD_ENGINE)
22 PROGRAM = $(topdir)/class/lib/$(PROFILE)/xbuild.exe
23
24 include ../../build/executable.make
25
26 CLEAN_FILES= xbuild.exe xbuild.exe.mdb
27
28 XBUILD_DIR=.
29 XBUILD_FRAMEWORKS_DIR=$(mono_libdir)/mono/xbuild-frameworks/.NETFramework/
30 REDISTLIST_DIR=$(XBUILD_FRAMEWORKS_DIR)/v$(FRAMEWORK_VERSION)/RedistList
31 include $(XBUILD_DIR)/xbuild_targets.make
32
33 install-local:  install-extras
34
35 WEBAPP_DIR = Microsoft/VisualStudio/v9.0/WebApplications
36 SILVERLIGHT_DIR = $(mono_libdir)/mono/xbuild/Microsoft/Silverlight
37 EXTRAS_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
38 install-extras: 
39         $(MKINSTALLDIRS) $(DESTDIR)$(EXTRAS_DIR) $(REDISTLIST_DIR) $(DESTDIR)$(XBUILD_FRAMEWORKS_DIR)/v3.0/RedistList
40         $(INSTALL_DATA) xbuild/xbuild.rsp $(DESTDIR)$(EXTRAS_DIR)
41         $(INSTALL_DATA) xbuild/$(FRAMEWORK_VERSION)/Microsoft.Common.tasks $(DESTDIR)$(EXTRAS_DIR)
42         $(INSTALL_DATA) xbuild/Microsoft.Build.xsd $(DESTDIR)$(EXTRAS_DIR)
43         $(INSTALL_DATA) xbuild/$(FRAMEWORK_VERSION)/Microsoft.Common.targets $(DESTDIR)$(EXTRAS_DIR)
44         $(INSTALL_DATA) xbuild/Microsoft.CSharp.targets $(DESTDIR)$(EXTRAS_DIR)
45         $(INSTALL_DATA) xbuild/Microsoft.VisualBasic.targets $(DESTDIR)$(EXTRAS_DIR)
46         $(INSTALL_DATA) xbuild/$(FRAMEWORK_VERSION)/FrameworkList.xml $(DESTDIR)$(REDISTLIST_DIR)
47         $(INSTALL_DATA) xbuild/FrameworkList-3.0.xml $(DESTDIR)$(XBUILD_FRAMEWORKS_DIR)/v3.0/RedistList/FrameworkList.xml
48         $(MKINSTALLDIRS) $(DESTDIR)$(EXTRAS_DIR)/MSBuild
49         $(INSTALL_DATA) xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd $(DESTDIR)$(EXTRAS_DIR)/MSBuild
50         $(INSTALL_DATA) xbuild/MSBuild/Microsoft.Build.Core.xsd $(DESTDIR)$(EXTRAS_DIR)/MSBuild
51         $(MKINSTALLDIRS) $(DESTDIR)$(mono_libdir)/mono/xbuild
52         $(MKINSTALLDIRS) $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)
53         $(INSTALL_DATA) xbuild/Microsoft.WebApplication.targets $(DESTDIR)$(mono_libdir)/mono/xbuild/$(WEBAPP_DIR)
54         $(MKINSTALLDIRS) $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0
55         $(MKINSTALLDIRS) $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0
56         $(INSTALL_DATA) xbuild/Microsoft.Silverlight.CSharp.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0
57         $(INSTALL_DATA) xbuild/Microsoft.Silverlight.CSharp.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0
58         $(INSTALL_DATA) xbuild/Microsoft.Silverlight.VisualBasic.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0
59         $(INSTALL_DATA) xbuild/Microsoft.Silverlight.VisualBasic.targets $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0
60         sed -e 's/@SILVERLIGHT_VERSION@/2.0/g' xbuild/Microsoft.Silverlight.Common.targets > $(DESTDIR)$(SILVERLIGHT_DIR)/v2.0/Microsoft.Silverlight.Common.targets
61         sed -e 's/@SILVERLIGHT_VERSION@/3.0/g' xbuild/Microsoft.Silverlight.Common.targets > $(DESTDIR)$(SILVERLIGHT_DIR)/v3.0/Microsoft.Silverlight.Common.targets
62
63 EXTRA_DISTFILES = \
64         xbuild/xbuild.rsp \
65         xbuild/2.0/Microsoft.Common.tasks \
66         xbuild/3.5/Microsoft.Common.tasks \
67         xbuild/4.0/Microsoft.Common.tasks \
68         xbuild/2.0/Microsoft.Common.targets \
69         xbuild/3.5/Microsoft.Common.targets \
70         xbuild/4.0/Microsoft.Common.targets \
71         xbuild/2.0/FrameworkList.xml \
72         xbuild/3.5/FrameworkList.xml \
73         xbuild/4.0/FrameworkList.xml \
74         xbuild/FrameworkList-3.0.xml \
75         xbuild/Microsoft.Build.xsd \
76         xbuild/Microsoft.CSharp.targets \
77         xbuild/MSBuild/Microsoft.Build.CommonTypes.xsd \
78         xbuild/MSBuild/Microsoft.Build.Core.xsd         \
79         xbuild/Microsoft.VisualBasic.targets \
80         xbuild/Microsoft.WebApplication.targets \
81         xbuild/Microsoft.Silverlight.Common.targets \
82         xbuild/Microsoft.Silverlight.CSharp.targets \
83         xbuild/Microsoft.Silverlight.VisualBasic.targets \
84         xbuild_targets.make