22a8752beb58dc9356288608c89e89f9dde5dcb2
[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
32 LOCAL_MCS_FLAGS = -r:$(LINKER) -r:Mono.Cecil.dll
33
34 DISTFILES = README $(TUNER_SOURCES) $(TUNER_DESCS) $(TUNER_MASTERS)
35
36 WORKING_DIR = $(topdir)/class/lib/net_2_1_raw
37 OUTPUT_DIR = $(topdir)/class/lib/net_2_1
38
39 DLLFILES = mscorlib.dll System.dll System.Net.dll System.Xml.dll System.Core.dll System.Runtime.Serialization.dll
40 FILES = smcs.exe $(DLLFILES)
41 WORKING_FILES = $(FILES:%=$(WORKING_DIR)/%)
42 OUTPUT_FILES = $(FILES:%=$(OUTPUT_DIR)/%)
43
44 ifneq (net_2_1, $(PROFILE))
45 all-local: Mono.Tuner.dll
46
47 install-local:
48
49 clean-local:
50         rm -f *.dll *.mdb *.pdb
51
52 else
53 all-local: $(OUTPUT_FILES)
54
55 install-local: end-install
56
57 clean-local:
58         rm -f $(OUTPUT_FILES) tune.stamp tune.stampt
59
60 endif
61
62 uninstall-local:
63
64 dist-local: dist-default
65
66 test-local run-test-local run-test-ondotnet-local:
67
68 TUNER_FLAGS = -d $(WORKING_DIR) -o $(OUTPUT_DIR)        \
69         -l none         \
70         -c link         \
71         -a smcs         \
72         -b true         \
73         -m display_internalized false   \
74
75 TUNER_STEPS = \
76         Mono.Tuner.InjectAttributes,Mono.Tuner:OutputStep       \
77         Mono.Tuner.AdjustVisibility,Mono.Tuner:OutputStep       \
78         Mono.Tuner.PrintStatus,Mono.Tuner:OutputStep    \
79         Mono.Tuner.RemoveSerialization,Mono.Tuner:OutputStep    \
80         Mono.Tuner.CheckVisibility,Mono.Tuner   \
81
82 $(OUTPUT_FILES): tune.stamp
83         test -f $@ || { rm -f $<; $(MAKE) $<; }
84
85 tune.stamp: $(WORKING_FILES) $(OUTPUT_DIR)/.stamp
86         touch $@t
87         MONO_PATH=".$(PLATFORM_PATH_SEPARATOR)$(topdir)/class/lib/default$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) --debug $(LINKER) $(TUNER_FLAGS) $(TUNER_DESCS:%=-x %) $(TUNER_STEPS:%=-s %) $(TUNER_MASTERS:%=-i %)
88         for i in $(DLLFILES); do $(SN) $(SNFLAGS) $(OUTPUT_DIR)/$$i $(topdir)/class/mono.snk; done
89         mv $@t $@
90
91 gacutil = $(topdir)/class/lib/net_1_1_bootstrap/gacutil.exe
92 GACUTIL = MONO_PATH="$(topdir)/class/lib/net_1_1_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) $(gacutil) -bootstrap
93
94 TUNER_INSTALL_DIR = $(DESTDIR)$(mono_libdir)/mono/2.1
95
96 end-install: inst-mscorlib.dll inst-smcs.exe gac-System gac-System.Net gac-System.Xml gac-System.Core gac-System.Runtime.Serialization
97
98 inst-%: $(OUTPUT_DIR)/%
99         $(MKINSTALLDIRS) $(TUNER_INSTALL_DIR)
100         $(INSTALL_LIB) $(OUTPUT_DIR)/$* $(TUNER_INSTALL_DIR)/$*
101         test ! -f $(OUTPUT_DIR)/$*.mdb || $(INSTALL_LIB) $(OUTPUT_DIR)/$*.mdb $(TUNER_INSTALL_DIR)/$*.mdb
102
103 gac-%: $(OUTPUT_DIR)/%.dll
104         $(GACUTIL) /i $(OUTPUT_DIR)/$*.dll /f /root $(DESTDIR)$(mono_libdir) /package 2.1
105
106 Mono.Tuner.dll: $(TUNER_SOURCES)
107         $(CSCOMPILE) /out:Mono.Tuner.dll /t:library $(TUNER_SOURCES)
108
109 retune:
110         rm -f tune.stamp && $(MAKE) tune.stamp