3 include ../build/rules.make
40 $(topdir)/class/Mono.CSharp.Debugger/MonoSymbolFile.cs \
41 $(topdir)/class/Mono.CSharp.Debugger/MonoSymbolTable.cs \
42 $(topdir)/class/Mono.CSharp.Debugger/MonoSymbolWriter.cs
44 all_sources = $(COMPILER_SOURCES) cs-parser.cs
56 #uncomment to enable some debug stuff
57 #DEBUG_FLAGS=/define:MCS_DEBUG
61 PROGRAM_INSTALL_DIR = $(prefix)/lib/mono/2.0
63 install-local: gmcs.exe
64 $(MKINSTALLDIRS) $(DESTDIR)$(PROGRAM_INSTALL_DIR)
65 $(INSTALL_BIN) gmcs.exe $(DESTDIR)$(PROGRAM_INSTALL_DIR)
66 $(INSTALL_DATA) gmcs.exe.config $(DESTDIR)$(PROGRAM_INSTALL_DIR)
67 $(INSTALL_DATA) gmcs.exe.mdb $(DESTDIR)$(PROGRAM_INSTALL_DIR)
70 -rm -f $(DESTDIR)$(PROGRAM_INSTALL_DIR)/gmcs.exe*
72 test-local run-test-local:
75 rm -f *.exe *.pdb cs-parser.cs y.output *.mdb
76 cd .. && $(MAKE) PROFILE=net_2_0_bootstrap clean
78 dist-local: dist-default
80 bootstrap_libs = mscorlib.dll System.dll System.Xml.dll Mono.CompilerServices.SymbolWriter.dll
81 bootstrap_libfiles = $(bootstrap_libs:%=$(topdir)/class/lib/net_2_0_bootstrap/%)
83 $(bootstrap_libfiles): bootstrap-libs
85 .PHONY: bootstrap-libs
87 cd .. && $(MAKE) PROFILE=net_2_0_bootstrap all
89 gmcs.exe: $(all_sources) $(bootstrap_libfiles)
90 MONO_PATH="../class/lib/net_2_0_bootstrap$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" mono ../mcs/mcs.exe $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $(all_sources)
92 gmcs2.exe: $(all_sources)
93 MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time mcs -2 /target:exe /debug /out:$@ $^ $(DEBUG_FLAGS)
95 gmcs3.exe: $(all_sources)
96 MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time $(RUNTIME) ./gmcs2.exe $(USE_MCS_FLAGS) $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $^
98 gmcs4.exe: $(all_sources)
99 MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time $(RUNTIME) ./gmcs3.exe $(USE_MCS_FLAGS) $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $^
101 cs-parser.cs: cs-parser.jay $(topdir)/jay/skeleton.cs
102 $(topdir)/jay/jay -ctv < $(topdir)/jay/skeleton.cs $< > jay-tmp.out && mv jay-tmp.out $@
108 # This used to be called test, but that conflicts with the global
111 btest: gmcs2.exe gmcs3.exe gmcs4.exe
112 ls -l gmcs3.exe gmcs4.exe
118 rm -f gmcs3.exe mcs4.exe
119 make btest USE_MCS_FLAGS=
121 # we need this because bash tries to use its own crappy timer
122 FRIENDLY_TIME = $(shell which time) -f'%U seconds'
126 $(FRIENDLY_TIME) $(RUNTIME) ./mcs.exe $(USE_MCS_FLAGS) /target:exe /out:mcs2.exe $(all_sources) > /dev/null || (echo FAILED; exit 1)
128 @ $(FRIENDLY_TIME) $(RUNTIME) ./mcs2.exe $(USE_MCS_FLAGS) /target:exe /out:mcs3.exe $(all_sources) > /dev/null || (echo FAILED; exit 1)
130 @ rm -f ../class/lib/mscorlib.dll
131 @ (cd ../class/corlib ; make BOOTSTRAP_MCS="$(FRIENDLY_TIME) mono ../../mcs/mcs.exe" > /dev/null ) || (echo FAILED; exit 1)
135 @ rm -f ../class/lib/mscorlib.dll
136 @ (cd ../class/corlib ; make BOOTSTRAP_MCS="$(FRIENDLY_TIME) mono ../../mcs/mcs.exe" > /dev/null ) || (echo FAILED; exit 1)
141 make gmcs3.exe RUNTIME="$(RUNTIME) --profile"
144 echo $(all_sources) > res