X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=mono.git;a=blobdiff_plain;f=mcs%2FMakefile;h=3b4fb20c46c804afd2d1a5c147405313a90c1d94;hp=14b5121e0a1a54e540bdcd4a2364186d127a1ec1;hb=HEAD;hpb=409834378981afd7a5f63e783b89d093f0a0ce3c diff --git a/mcs/Makefile b/mcs/Makefile index 14b5121e0a1..3b4fb20c46c 100644 --- a/mcs/Makefile +++ b/mcs/Makefile @@ -5,8 +5,9 @@ SUBDIRS := build jay mcs class nunit24 ilasm tools tests errors docs packages # Resgen is corlib specific tool basic_SUBDIRS := build jay class -build_SUBDIRS := build class class/aot-compiler tools +build_SUBDIRS := build class class/aot-compiler tools ilasm monodroid_SUBDIRS := build class +monodroid_tools_SUBDIRS := build class tools monotouch_SUBDIRS := build class monotouch_watch_SUBDIRS := build class monotouch_tv_SUBDIRS := build class @@ -14,14 +15,16 @@ monotouch_runtime_SUBDIRS := build class monotouch_watch_runtime_SUBDIRS := build class monotouch_tv_runtime_SUBDIRS := build class xammac_SUBDIRS := build class -aot_hybrid_SUBDIRS := build class +testing_aot_hybrid_SUBDIRS := build class testing_aot_full_SUBDIRS := build class binary_reference_assemblies_SUBDIRS := build class net_4_x_SUBDIRS := build class nunit24 ilasm tools tests errors docs mcs class/aot-compiler packages xammac_net_4_5_SUBDIRS := build class xbuild_12_SUBDIRS := build class tools/xbuild xbuild_14_SUBDIRS := build class tools/xbuild -xbox_SUBDIRS := build class +winaot_SUBDIRS := build class +orbis_SUBDIRS := build class +unreal_SUBDIRS := build class include build/rules.make @@ -64,6 +67,7 @@ $(_boot_:%=profile-do--xbuild_12--%): profile-do--xbuild_12--%: $(_boot_:%=profile-do--binary_reference_assemblies--%): profile-do--binary_reference_assemblies--%: profile-do--build--% $(_boot_:%=profile-do--net_4_x--%): profile-do--net_4_x--%: profile-do--build--% $(_boot_:%=profile-do--monodroid--%): profile-do--monodroid--%: profile-do--build--% +$(_boot_:%=profile-do--monodroid_tools--%): profile-do--monodroid_tools--%: profile-do--build--% $(_boot_:%=profile-do--monotouch--%): profile-do--monotouch--%: profile-do--build--% $(_boot_:%=profile-do--monotouch_watch--%): profile-do--monotouch_watch--%: profile-do--build--% $(_boot_:%=profile-do--monotouch_tv--%): profile-do--monotouch_tv--%: profile-do--build--% @@ -72,9 +76,11 @@ $(_boot_:%=profile-do--monotouch_watch_runtime--%): profile-do--monotouch_watch $(_boot_:%=profile-do--monotouch_tv_runtime--%): profile-do--monotouch_tv_runtime--%: profile-do--build--% $(_boot_:%=profile-do--xammac--%): profile-do--xammac--%: profile-do--build--% $(_boot_:%=profile-do--xammac_net_4_5--%): profile-do--xammac_net_4_5--%: profile-do--build--% -$(_boot_:%=profile-do--aot_hybrid--%): profile-do--aot_hybrid--%: profile-do--build--% +$(_boot_:%=profile-do--testing_aot_hybrid--%): profile-do--testing_aot_hybrid--%: profile-do--build--% $(_boot_:%=profile-do--testing_aot_full--%): profile-do--testing_aot_full--%: profile-do--build--% -$(_boot_:%=profile-do--xbox--%): profile-do--xbox--%: profile-do--build--% +$(_boot_:%=profile-do--winaot--%): profile-do--winaot--%: profile-do--build--% +$(_boot_:%=profile-do--orbis--%): profile-do--orbis--%: profile-do--build--% +$(_boot_:%=profile-do--unreal--%): profile-do--unreal--%: profile-do--build--% $(_boot_:%=profile-do--build--%): profile-do--build--%: profile-do--basic--% testcorlib: @@ -93,8 +99,7 @@ DISTFILES = \ mkinstalldirs \ MonoIcon.png \ README \ - ScalableMonoIcon.svg \ - winexe.in + ScalableMonoIcon.svg dist-local: dist-default @@ -136,24 +141,35 @@ distcheck: dist-tarball rm -f before.list after.list distdist.list ; \ rm -rf $(package) InstallTest -monocharge: - chargedir=monocharge-`date -u +%Y%m%d` ; \ - mkdir "$$chargedir" ; \ - DESTDIR=`cd "$$chargedir" && pwd` ; \ - $(MAKE) install DESTDIR="$$DESTDIR" || exit 1 ; \ - tar cvjf "$$chargedir".tar.bz2 "$$chargedir" ; \ - rm -rf "$$chargedir" - -# A bare-bones monocharge. - -monocharge-lite: - chargedir=monocharge-lite-`date -u +%Y%m%d` ; \ - mkdir "$$chargedir" ; \ - DESTDIR=`cd "$$chargedir" && pwd` ; \ - $(MAKE) -C mcs install DESTDIR="$$DESTDIR" || exit 1; \ - $(MAKE) -C class/corlib install DESTDIR="$$DESTDIR" || exit 1; \ - $(MAKE) -C class/System install DESTDIR="$$DESTDIR" || exit 1; \ - $(MAKE) -C class/System.XML install DESTDIR="$$DESTDIR" || exit 1; \ - $(MAKE) -C class/Mono.CSharp.Debugger install DESTDIR="$$DESTDIR" || exit 1; \ - tar cvjf "$$chargedir".tar.bz2 "$$chargedir" ; \ - rm -rf "$$chargedir" +# Targets for creating API diffs of the framework + +MONO_API_SNAPSHOT_PATH := $(topdir)../external/api-snapshot/ +GENAPI := $(MONO_API_SNAPSHOT_PATH)tools/genapi/GenAPI.exe +MONO_API_SNAPSHOT_PROFILE_PATH := $(MONO_API_SNAPSHOT_PATH)profiles/$(PROFILE)/ +MONO_API_ASSEMBLIES_IGNORED := $(addprefix $(topdir)class/lib/$(PROFILE)/, Mono.CSharp.dll SystemWebTestShim.dll standalone-runner-support.dll nunit.core.dll nunit.core.extensions.dll nunit.core.interfaces.dll nunit.framework.dll nunit.framework.extensions.dll nunit.mocks.dll nunit.util.dll nunit-console-runner.dll nunitlite.dll Mono.Profiler.Log.dll) +MONO_API_ASSEMBLIES := $(filter-out $(MONO_API_ASSEMBLIES_IGNORED), $(wildcard $(topdir)class/lib/$(PROFILE)/*.dll)) $(wildcard $(topdir)class/lib/$(PROFILE)/Facades/*.dll) +MONO_API_ASSEMBLIES_CS := $(MONO_API_ASSEMBLIES:$(topdir)class/lib/$(PROFILE)/%.dll=$(MONO_API_SNAPSHOT_PROFILE_PATH)%.cs) + +$(MONO_API_SNAPSHOT_PROFILE_PATH)%.cs: $(topdir)class/lib/$(PROFILE)/%.dll $(GENAPI) $(MONO_API_SNAPSHOT_PATH)profiles/license-header.txt + @mkdir -p $(dir $@) + $(Q) MONO_PATH=$(topdir)class/lib/$(BUILD_TOOLS_PROFILE) $(RUNTIME) $(GENAPI) -libPath:$(topdir)class/lib/$(PROFILE),$(topdir)class/lib/$(PROFILE)/Facades -out:$(dir $@) -headerFile:$(MONO_API_SNAPSHOT_PATH)profiles/license-header.txt -assemblyAttributes -typeForwardedTo -assemblyVersion -assembly:$< || echo "Couldn't process assembly." > $@ + +mono-api-current: $(MONO_API_ASSEMBLIES_CS) + +mono-api-current-clean: + $(Q) rm -rf "$(MONO_API_SNAPSHOT_PROFILE_PATH)" + +mono-api-diff: + @echo "Regenerating API snapshot..." + $(Q) $(MAKE) mono-api-current-clean PROFILE=net_4_x + $(Q) $(MAKE) mono-api-current-clean PROFILE=monotouch + $(Q) $(MAKE) mono-api-current-clean PROFILE=monodroid + $(Q) $(MAKE) mono-api-current PROFILE=net_4_x + $(Q) $(MAKE) mono-api-current PROFILE=monotouch + $(Q) $(MAKE) mono-api-current PROFILE=monodroid + @echo "Checking public API differences..." + $(Q) cd $(MONO_API_SNAPSHOT_PATH); git add -A . + $(Q) cd $(MONO_API_SNAPSHOT_PATH); git diff --no-renames HEAD > $(abspath $(topdir))/temp.patch + @mkdir -p apidiff + $(Q) sed -e "/@diffdata@/r temp.patch" -e "/@diffdata@/d" -e "s/@title@/Public API Diff/g" -e "s/@description@/If the changes are intentional, run make -C mcs mono-api-diff<\/code> locally and commit changes in external\/api-snapshot./g" diff.html.in > apidiff/index.html + $(Q) if [ -s temp.patch ]; then echo "Error: Found public API differences, see mcs/apidiff/index.html. If the changes are intentional, please go to external/api-snapshot and commit them."; rm -f temp.patch; exit 1; else echo "No differences found."; rm -f temp.patch; fi