[System.IO.KeventWatcher] Disable the watcher when the root directory is deleted...
[mono.git] / mcs / class / aot-compiler / Makefile
index 48d76e7d59717db53290897042c342920fb6e37a..3f22e653c194bb21bb73162180d68468beb1be8e 100644 (file)
@@ -10,44 +10,54 @@ include ../../build/rules.make
 
 the_libdir = $(topdir)/class/lib/$(PROFILE)/
 
-ifeq (net_2_0, $(PROFILE))
-mcs_exe = $(the_libdir)/gmcs.exe
-else ifeq (net_4_0, $(PROFILE))
-mcs_exe = $(the_libdir)/dmcs.exe
-endif
-
-mcs_aot_image = $(mcs_exe)$(PLATFORM_AOT_SUFFIX)
+# mcs.exe is only in the build profile, but the aot image should be compiled against the current
+# profile
+mcs_exe = $(topdir)/class/lib/build/mcs.exe
+mcs_aot_image = $(the_libdir)/mcs.exe$(PLATFORM_AOT_SUFFIX)
 
 mscorlib_dll = $(the_libdir)/mscorlib.dll
 mscorlib_aot_image = $(mscorlib_dll)$(PLATFORM_AOT_SUFFIX)
 
+# The $(dir $(RUNTIME)) is necessary to get path to the mono binary in case when we cross-compile
+# or just compile from a different directory than the top source dir
+runtime_dep = $(dir $(RUNTIME))/../mono/mini/mono
+
 PROGRAM_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
 LIBRARY_INSTALL_DIR = $(mono_libdir)/mono/$(FRAMEWORK_VERSION)
 
+ifndef SKIP_AOT
+
 ifdef PLATFORM_AOT_SUFFIX
-Q_AOT=$(if $(V),,@echo "AOT [$(PROFILE)] $(notdir $(@))";)
-$(mcs_aot_image): $(mcs_exe)
-       $(Q_AOT) MONO_PATH='$(the_libdir)' > $(PROFILE)_aot.log 2>&1 $(RUNTIME) --aot=bind-to-runtime-version --debug $(mcs_exe)
+Q_AOT=$(if $(V),,@echo "AOT     [$(PROFILE)] $(notdir $(@))";)
+$(mcs_aot_image): $(mcs_exe) $(mscorlib_dll) $(runtime_dep)
+       $(Q_AOT) MONO_PATH='$(the_libdir)' > $(PROFILE)_aot.log 2>&1 $(RUNTIME) --aot=bind-to-runtime-version,outfile=$(mcs_aot_image) --debug $(mcs_exe) || cat $(PROFILE)_aot.log || (cat $(PROFILE)_aot.log; exit 1)
 
-$(mscorlib_aot_image): $(mscorlib_dll)
-       $(Q_AOT) MONO_PATH='$(the_libdir)' > $(PROFILE)_aot.log 2>&1 $(RUNTIME) --aot=bind-to-runtime-version --debug $(mscorlib_dll)
+$(mscorlib_aot_image): $(mscorlib_dll) $(runtime_dep)
+       $(Q_AOT) MONO_PATH='$(the_libdir)' > $(PROFILE)_aot.log 2>&1 $(RUNTIME) --aot=bind-to-runtime-version --debug $(mscorlib_dll) || (cat $(PROFILE)_aot.log; exit 1)
 
-ifeq (net_2_0, $(PROFILE))
-all-local: $(mscorlib_aot_image) $(mcs_aot_image)
-endif
+ifdef ENABLE_AOT
+
+clean-local:
+       -rm -f $(mscorlib_aot_image) $(mcs_aot_image) $(PROFILE)_aot.log
 
-ifeq (net_4_0, $(PROFILE))
+# AOT build profile mcs to speed up build
+ifeq ($(PROFILE),build)
 all-local: $(mscorlib_aot_image) $(mcs_aot_image)
+install-local:
 endif
 
-clean-local:
-       -rm -f $(mscorlib_aot_image) $(mcs_aot_image)
-
+ifeq ($(PROFILE), $(DEFAULT_PROFILE))
+all-local: $(mscorlib_aot_image) $(mcs_aot_image)
 install-local:
        $(MKINSTALLDIRS) $(DESTDIR)$(LIBRARY_INSTALL_DIR)
        $(INSTALL_LIB) $(mscorlib_aot_image) $(DESTDIR)$(LIBRARY_INSTALL_DIR)
        $(INSTALL_LIB) $(mcs_aot_image) $(DESTDIR)$(PROGRAM_INSTALL_DIR)
+endif
+
+endif
+
+endif
 
 endif
 
-dist-local:
+dist-local: dist-default