X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fbuild%2Fexecutable.make;h=6030f5e48ee44b2068df8d92e5d1529cf7efde79;hb=656b38c2e15860ed8d9e16809579989ebd69b9fa;hp=726ac000f863871c3c92c8304a55a40fad2c4002;hpb=93703b4ef8bdcf1d6cf336e14f534454221730c5;p=mono.git diff --git a/mcs/build/executable.make b/mcs/build/executable.make index 726ac000f86..6030f5e48ee 100644 --- a/mcs/build/executable.make +++ b/mcs/build/executable.make @@ -2,7 +2,8 @@ # # The rules for building a program. -base_prog = $(shell basename $(PROGRAM)) +base_prog = $(notdir $(PROGRAM)) +prog_dir := $(filter-out . ./, $(dir $(PROGRAM))) sourcefile = $(base_prog).sources base_prog_config := $(wildcard $(base_prog).config.$(PROFILE)) ifndef base_prog_config @@ -21,6 +22,12 @@ response = $(depsdir)/$(base_prog).response executable_CLEAN_FILES += $(response) endif +ifdef KEEP_OUTPUT_FILE_COPY + COPY_CMD = cp +else + COPY_CMD = mv +endif + makefrag = $(depsdir)/$(PROFILE)_$(base_prog).makefrag pdb = $(patsubst %.exe,%.pdb,$(PROGRAM)) mdb = $(patsubst %.exe,%.mdb,$(PROGRAM)) @@ -48,13 +55,16 @@ install-local: $(PROGRAM) $(PROGRAM_config) ifdef PROGRAM_config $(INSTALL_DATA) $(PROGRAM_config) $(DESTDIR)$(PROGRAM_INSTALL_DIR) endif +ifdef PLATFORM_AOT_SUFFIX + test ! -f $(PROGRAM)$(PLATFORM_AOT_SUFFIX) || $(INSTALL_LIB) $(PROGRAM)$(PLATFORM_AOT_SUFFIX) $(DESTDIR)$(PROGRAM_INSTALL_DIR) +endif uninstall-local: -rm -f $(DESTDIR)$(PROGRAM_INSTALL_DIR)/$(base_prog) $(DESTDIR)$(PROGRAM_INSTALL_DIR)/$(base_prog).mdb $(DESTDIR)$(PROGRAM_INSTALL_DIR)/$(base_prog).config endif clean-local: - -rm -f $(executable_CLEAN_FILES) $(CLEAN_FILES) + -rm -f $(executable_CLEAN_FILES) $(CLEAN_FILES) $(tests_CLEAN_FILES) test-local: @: @@ -65,13 +75,24 @@ run-test-ondotnet-local: DISTFILES = $(sourcefile) $(base_prog_config) $(EXTRA_DISTFILES) +ifdef HAS_NUNIT_TEST +ASSEMBLY = $(PROGRAM) +ASSEMBLY_EXT = .exe +the_assembly = $(PROGRAM) +include $(topdir)/build/tests.make +endif + +ifdef HAVE_CS_TESTS +DISTFILES += $(test_sourcefile) +endif + dist-local: dist-default for f in `cat $(sourcefile)` ; do \ case $$f in \ ../*) : ;; \ - *) dest=`dirname $$f` ; \ + *) dest=`dirname "$$f"` ; \ case $$subs in *" $$dest "*) : ;; *) subs=" $$dest$$subs" ; $(MKINSTALLDIRS) $(distdir)/$$dest ;; esac ; \ - cp -p $$f $(distdir)/$$dest || exit 1 ;; \ + cp -p "$$f" $(distdir)/$$dest || exit 1 ;; \ esac ; done ; \ for d in . $$subs ; do \ case $$d in .) : ;; *) test ! -f $$d/ChangeLog || cp -p $$d/ChangeLog $(distdir)/$$d ;; esac ; done @@ -80,17 +101,17 @@ ifndef PROGRAM_COMPILE PROGRAM_COMPILE = $(CSCOMPILE) endif -$(PROGRAM): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response) +$(PROGRAM): $(BUILT_SOURCES) $(EXTRA_SOURCES) $(response) $(prog_dir:=/.stamp) $(PROGRAM_COMPILE) -target:exe -out:$(base_prog) $(BUILT_SOURCES) $(EXTRA_SOURCES) @$(response) ifneq ($(base_prog),$(PROGRAM)) - mv $(base_prog) $(PROGRAM) - test ! -f $(base_prog).mdb || mv $(base_prog).mdb $(PROGRAM).mdb + $(COPY_CMD) $(base_prog) $(PROGRAM) + test ! -f $(base_prog).mdb || $(COPY_CMD) $(base_prog).mdb $(PROGRAM).mdb endif ifdef PROGRAM_config ifneq ($(base_prog_config),$(PROGRAM_config)) executable_CLEAN_FILES += $(PROGRAM_config) -$(PROGRAM_config): $(base_prog_config) +$(PROGRAM_config): $(base_prog_config) $(dir $(PROGRAM_config))/.stamp cp $(base_prog_config) $(PROGRAM_config) endif endif @@ -107,5 +128,25 @@ endif -include $(makefrag) -all-local: $(makefrag) -$(makefrag): $(topdir)/build/executable.make +all-local: $(makefrag) $(extra_targets) + +csproj-local: + config_file=`basename $(PROGRAM) .exe`-$(PROFILE).input; \ + echo $(thisdir):$$config_file >> $(topdir)/../mono/msvc/scripts/order; \ + (echo $(is_boot); \ + echo $(MCS); \ + echo $(USE_MCS_FLAGS) $(LIBRARY_FLAGS) $(LIB_MCS_FLAGS); \ + echo $(PROGRAM); \ + echo $(BUILT_SOURCES_cmdline); \ + echo $(build_lib); \ + echo $(response)) > $(topdir)/../mono/msvc/scripts/inputs/$$config_file + + +ifneq ($(response),$(sourcefile)) +$(response): $(topdir)/build/executable.make $(depsdir)/.stamp +endif +$(makefrag): $(topdir)/build/executable.make $(depsdir)/.stamp + +doc-update-local: + @: +