fa5d0d025041e4914aae62de546c7ca1d03822ae
[mono.git] / mcs / tools / tuner / Makefile
1 thisdir = tools/tuner
2 SUBDIRS =
3 include ../../build/rules.make
4
5 sn = $(topdir)/class/lib/net_1_1_bootstrap/sn.exe
6 SN = MONO_PATH="$(topdir)/class/lib/net_1_1_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(sn)
7 SNFLAGS = -q -R
8
9 LINKER = ../linker/monolinker.exe
10
11 TUNER_SOURCES = \
12         Mono.Tuner/TunerAnnotations.cs  \
13         Mono.Tuner/PrintStatus.cs       \
14         Mono.Tuner/RemoveSerialization.cs       \
15         Mono.Tuner/AdjustVisibility.cs  \
16         Mono.Tuner/CheckVisibility.cs   \
17         Mono.Tuner/InjectAttributes.cs
18
19 TUNER_DESCS =   \
20         Descriptors/mscorlib.xml        \
21         Descriptors/smcs.xml    \
22         Descriptors/System.xml
23
24 TUNER_MASTERS = \
25         masterinfos/silverlight/mscorlib.info   \
26         masterinfos/silverlight/System.info     \
27         masterinfos/silverlight/System.Net.info \
28         masterinfos/silverlight/System.Core.info        \
29         masterinfos/silverlight/System.Xml.info \
30         masterinfos/silverlight/System.Runtime.Serialization.info       \
31         masterinfos/silverlight/System.ServiceModel.info        \
32         masterinfos/silverlight/System.ServiceModel.Web.info    \
33         masterinfos/silverlight/Mono.CompilerServices.SymbolWriter.info
34
35 LOCAL_MCS_FLAGS = -r:$(LINKER) -r:Mono.Cecil.dll
36
37 DISTFILES = README $(TUNER_SOURCES) $(TUNER_DESCS) $(TUNER_MASTERS)
38
39 WORKING_DIR = $(topdir)/class/lib/net_2_1_raw
40 OUTPUT_DIR = $(topdir)/class/lib/net_2_1
41
42 DLLFILES = \
43         mscorlib.dll    \
44         System.dll      \
45         System.Net.dll  \
46         System.Xml.dll  \
47         System.Core.dll \
48         System.Runtime.Serialization.dll        \
49         System.ServiceModel.dll \
50         System.ServiceModel.Web.dll     \
51         Mono.CompilerServices.SymbolWriter.dll
52
53 FILES = smcs.exe $(DLLFILES)
54 WORKING_FILES = $(FILES:%=$(WORKING_DIR)/%)
55 OUTPUT_FILES = $(FILES:%=$(OUTPUT_DIR)/%)
56
57 ifneq (net_2_1, $(PROFILE))
58 all-local: Mono.Tuner.dll
59
60 install-local:
61
62 clean-local:
63         rm -f *.dll *.mdb *.pdb
64
65 else
66 all-local: $(OUTPUT_FILES)
67
68 install-local: end-install
69
70 clean-local:
71         rm -f $(OUTPUT_FILES) tune.stamp tune.stampt
72
73 endif
74
75 uninstall-local:
76
77 dist-local: dist-default
78
79 test-local run-test-local run-test-ondotnet-local:
80
81 TUNER_FLAGS = -d $(WORKING_DIR) -o $(OUTPUT_DIR)        \
82         -l none         \
83         -c link         \
84         -a smcs         \
85         -b true         \
86         -g true         \
87         -m display_internalized false
88
89 TUNER_STEPS = \
90         Mono.Tuner.InjectAttributes,Mono.Tuner:OutputStep       \
91         Mono.Tuner.AdjustVisibility,Mono.Tuner:OutputStep       \
92         Mono.Tuner.PrintStatus,Mono.Tuner:OutputStep    \
93         Mono.Tuner.RemoveSerialization,Mono.Tuner:OutputStep
94
95 ifdef CHECK_VISIBILITY
96 TUNER_STEPS += Mono.Tuner.CheckVisibility,Mono.Tuner
97 endif
98
99 $(OUTPUT_FILES): tune.stamp
100         test -f $@ || { rm -f $<; $(MAKE) $<; }
101
102 tune.stamp: $(WORKING_FILES) $(OUTPUT_DIR)/.stamp
103         touch $@t
104         MONO_PATH=".$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/net_1_1$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) --debug $(LINKER) $(TUNER_FLAGS) $(TUNER_DESCS:%=-x %) $(TUNER_STEPS:%=-s %) $(TUNER_MASTERS:%=-i %)
105         for i in $(DLLFILES); do $(SN) $(SNFLAGS) $(OUTPUT_DIR)/$$i $(topdir)/class/mono.snk; done
106         mv $@t $@
107
108 gacutil = $(topdir)/class/lib/net_1_1_bootstrap/gacutil.exe
109 GACUTIL = MONO_PATH="$(topdir)/class/lib/net_1_1_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(gacutil) -bootstrap
110
111 TUNER_INSTALL_DIR = $(DESTDIR)$(mono_libdir)/mono/2.1
112
113 end-install: inst-mscorlib.dll inst-smcs.exe gac-System gac-System.Net gac-System.Xml gac-System.Core gac-System.Runtime.Serialization gac-System.ServiceModel gac-System.ServiceModel.Web gac-Mono.CompilerServices.SymbolWriter
114
115 inst-%: $(OUTPUT_DIR)/%
116         $(MKINSTALLDIRS) $(TUNER_INSTALL_DIR)
117         $(INSTALL_LIB) $(OUTPUT_DIR)/$* $(TUNER_INSTALL_DIR)/$*
118         test ! -f $(OUTPUT_DIR)/$*.mdb || $(INSTALL_LIB) $(OUTPUT_DIR)/$*.mdb $(TUNER_INSTALL_DIR)/$*.mdb
119
120 gac-%: $(OUTPUT_DIR)/%.dll
121         $(GACUTIL) /i $(OUTPUT_DIR)/$*.dll /f /root $(DESTDIR)$(mono_libdir) /package 2.1
122
123 Mono.Tuner.dll: $(TUNER_SOURCES)
124         $(CSCOMPILE) /out:Mono.Tuner.dll /t:library $(TUNER_SOURCES)
125
126 retune:
127         rm -f tune.stamp && $(MAKE) tune.stamp