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