X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fbuild%2Flibrary.make;h=e0c16f48e90558609352e080ed67c54f4e64b43e;hb=4239ddd9f18d778e03cc979c9d15135e47fb0e28;hp=acaa93871214a61bebac58bfcbb5595f798d10ab;hpb=aeccd22792f34fb77c340180174f73f6c3270200;p=mono.git diff --git a/mcs/build/library.make b/mcs/build/library.make index acaa9387121..e0c16f48e90 100644 --- a/mcs/build/library.make +++ b/mcs/build/library.make @@ -35,24 +35,11 @@ PROFILE_excludes = $(wildcard $(PROFILE)_$(LIBRARY).exclude.sources) sourcefile = $(depsdir)/$(PROFILE)_$(LIBRARY).sources library_CLEAN_FILES += $(sourcefile) -ifdef EXTENSION_MODULE -EXTENSION_include = $(wildcard $(topdir)/../../mono-extensions/mcs/$(thisdir)/$(PROFILE)_$(LIBRARY).sources) -else -EXTENSION_include = $(wildcard $(PROFILE)_opt_$(LIBRARY).sources) -endif - - -ifdef EXTENSION_MODULE -EXTENSION_exclude = $(wildcard $(topdir)/../../mono-extensions/mcs/$(thisdir)/$(PROFILE)_$(LIBRARY).exclude.sources) -else -EXTENSION_exclude = $(wildcard $(PROFILE)_opt_$(LIBRARY).exclude.sources) -endif - # Note, gensources.sh can create a $(sourcefile).makefrag if it sees any '#include's # We don't include it in the dependencies since it isn't always created -$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(topdir)/build/gensources.sh $(EXTENSION_include) +$(sourcefile): $(PROFILE_sources) $(PROFILE_excludes) $(topdir)/build/gensources.sh @echo Creating the per profile list $@ ... - $(SHELL) $(topdir)/build/gensources.sh $@ '$(PROFILE_sources)' '$(PROFILE_excludes)' '$(EXTENSION_include)' '$(EXTENSION_exclude)' + $(SHELL) $(topdir)/build/gensources.sh $@ '$(PROFILE_sources)' '$(PROFILE_excludes)' endif PLATFORM_excludes := $(wildcard $(LIBRARY).$(PLATFORM)-excludes) @@ -147,7 +134,7 @@ endif csproj-local: csproj-library csproj-test intermediate_clean=$(subst /,-,$(intermediate)) -csproj-library: +csproj-library: config_file=`basename $(LIBRARY) .dll`-$(intermediate_clean)$(PROFILE).input; \ case "$(thisdir)" in *"Facades"*) config_file=Facades_$$config_file;; esac; \ echo $(thisdir):$$config_file >> $(topdir)/../msvc/scripts/order; \ @@ -158,6 +145,7 @@ csproj-library: echo $(build_lib); \ echo $(FRAMEWORK_VERSION); \ echo $(PROFILE); \ + echo $(RESOURCE_DEFS); \ echo $(response)) > $(topdir)/../msvc/scripts/inputs/$$config_file csproj-test: @@ -229,7 +217,28 @@ clean-local: test-local run-test-local run-test-ondotnet-local: @: -DISTFILES = $(wildcard *$(LIBRARY)*.sources) $(EXTRA_DISTFILES) +# +# RESOURCES_DEFS is a list of ID,FILE pairs separated by spaces +# for each of those, generate a rule that produces ID.resource from +# FILE using the resgen tool, adds the generated file to CLENA_FILES and +# passes the resource to the compiler +# +ccomma = , +define RESOURCE_template +$(1).resources: $(2) + $(RESGEN) "$$<" "$$@" + +GEN_RESOURCE_DEPS += $(1).resources +GEN_RESOURCE_FLAGS += -resource:$(1).resources +CLEAN_FILES += $(1).resources +DIST_LISTED_RESOURCES += $(2) +endef + +ifdef RESOURCE_DEFS +$(foreach pair,$(RESOURCE_DEFS), $(eval $(call RESOURCE_template,$(word 1, $(subst $(ccomma), ,$(pair))), $(word 2, $(subst $(ccomma), ,$(pair)))))) +endif + +DISTFILES = $(wildcard *$(LIBRARY)*.sources) $(EXTRA_DISTFILES) $(DIST_LISTED_RESOURCES) ASSEMBLY = $(LIBRARY) ASSEMBLY_EXT = .dll @@ -249,6 +258,7 @@ csproj-test: echo $(test_lib); \ echo $(FRAMEWORK_VERSION); \ echo $(PROFILE); \ + echo ""; \ echo $(test_response)) > $(topdir)/../msvc/scripts/inputs/$$config_file endif @@ -259,6 +269,7 @@ dist-local: dist-default for f in `$(topdir)/tools/removecomments.sh $(wildcard *$(LIBRARY).sources)` $(TEST_FILES) ; do \ case $$f in \ ../*) : ;; \ + *.g.cs) : ;; \ *) dest=`dirname "$$f"` ; \ case $$subs in *" $$dest "*) : ;; *) subs=" $$dest$$subs" ; $(MKINSTALLDIRS) $(distdir)/$$dest ;; esac ; \ cp -p "$$f" $(distdir)/$$dest || exit 1 ;; \ @@ -287,12 +298,12 @@ endif $(the_lib): $(the_libdir)/.stamp -$(build_lib): $(response) $(sn) $(BUILT_SOURCES) $(build_libdir:=/.stamp) - $(LIBRARY_COMPILE) $(LIBRARY_FLAGS) $(LIB_MCS_FLAGS) -target:library -out:$@ $(BUILT_SOURCES_cmdline) @$(response) - $(Q) $(SN) -R $@ $(LIBRARY_SNK) +$(build_lib): $(response) $(sn) $(BUILT_SOURCES) $(build_libdir:=/.stamp) $(GEN_RESOURCE_DEPS) + $(LIBRARY_COMPILE) $(LIBRARY_FLAGS) $(LIB_MCS_FLAGS) $(GEN_RESOURCE_FLAGS) -target:library -out:$@ $(BUILT_SOURCES_cmdline) @$(response) ifdef RESOURCE_STRINGS_FILES $(Q) $(STRING_REPLACER) $(RESOURCE_STRINGS_FILES) $@ endif + $(Q) $(SN) -R $@ $(LIBRARY_SNK) ifdef LIBRARY_USE_INTERMEDIATE_FILE $(the_lib): $(build_lib)