+ $(topdir)/jay/jay -ctv < $(topdir)/jay/skeleton.cs $< > jay-tmp.out && mv jay-tmp.out $@
+
+include ../build/executable.make
+
+ifeq (net_2_0, $(PROFILE))
+# Utility rule to make debugging somewhat easier.
+all-local: gmcs.exe
+gmcs.exe: $(PROGRAM)
+ cp -p $< $@
+ test ! -f $<.mdb || cp -p $<.mdb $@.mdb
+endif
+
+clean-local: clean-net_2_0_bootstrap
+clean-net_2_0_bootstrap:
+ cd .. && $(MAKE) PROFILE=net_2_0_bootstrap clean
+
+bootstrap_libs = mscorlib.dll System.dll System.Xml.dll Mono.CompilerServices.SymbolWriter.dll
+bootstrap_libfiles = $(bootstrap_libs:%=$(topdir)/class/lib/net_2_0_bootstrap/%)
+
+$(bootstrap_libfiles): bootstrap-libs
+ @:
+.PHONY: bootstrap-libs
+bootstrap-libs:
+ cd .. && $(MAKE) PROFILE=net_2_0_bootstrap all
+
+$(PROGRAM): $(bootstrap_libfiles)
+
+gmcs2.exe: $(PROGRAM)
+ MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time $(PROGRAM) -2 /target:exe /debug /out:$@ $^ $(DEBUG_FLAGS)
+
+gmcs3.exe: gmcs2.exe
+ MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time $(RUNTIME) $(RUNTIME_FLAGS) ./gmcs2.exe $(USE_MCS_FLAGS) $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $^
+
+gmcs4.exe: gmcs3.exe
+ MONO_PATH="../class/lib/net_2_0$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" time $(RUNTIME) $(RUNTIME_FLAGS) ./gmcs3.exe $(USE_MCS_FLAGS) $(DEBUG_FLAGS) -2 /target:exe /debug /out:$@ $^
+