From c69c74b3d337f6c50f3d5ebd4d136c1cddef0091 Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Mon, 29 Oct 2018 16:09:30 +0100 Subject: [PATCH] Clone files if possible whenever it makes sense. (#5049) Cloning is faster when supported, and it also saves disk space. --- Make.config | 3 ++ Makefile | 6 ++-- builds/Makefile | 50 +++++++++++++------------- fsharp/Makefile | 2 +- msbuild/Makefile | 4 +-- opentk/Makefile.include | 8 ++--- runtime/Makefile | 22 ++++++------ src/Makefile | 66 +++++++++++++++++------------------ src/Makefile.generator | 4 +-- tests/Makefile | 16 ++++----- tests/package-mac-tests.sh | 30 +++++++++------- tests/test-libraries/Makefile | 4 +-- tools/apidiff/Makefile | 8 ++--- tools/install-source/Makefile | 4 +-- tools/mlaunch/Makefile | 8 ++--- tools/mmp/Makefile | 8 ++--- tools/mmp/tests/Makefile | 6 ++-- tools/mtouch/Makefile | 16 ++++----- 18 files changed, 137 insertions(+), 128 deletions(-) diff --git a/Make.config b/Make.config index e3ba095f2067..49532b162419 100644 --- a/Make.config +++ b/Make.config @@ -317,5 +317,8 @@ endif JENKINS_RESULTS_DIRECTORY ?= $(abspath $(TOP)/jenkins-results) +# Clone files instead of copying them on APFS file systems. Much faster. +CP:=$(shell df -t apfs / >/dev/null 2>&1 && echo "cp -c" || echo "cp") + .SUFFIXES: MAKEFLAGS += --no-builtin-rules diff --git a/Makefile b/Makefile index 6b4565b51e03..1334083f10b6 100644 --- a/Makefile +++ b/Makefile @@ -193,9 +193,9 @@ package: mkdir -p ../package $(MAKE) -C $(MACCORE_PATH) package # copy .pkg, .zip and *updateinfo to the packages directory to be uploaded to storage - cp $(MACCORE_PATH)/release/*.pkg ../package - cp $(MACCORE_PATH)/release/*.zip ../package - cp $(MACCORE_PATH)/release/*updateinfo ../package + $(CP) $(MACCORE_PATH)/release/*.pkg ../package + $(CP) $(MACCORE_PATH)/release/*.zip ../package + $(CP) $(MACCORE_PATH)/release/*updateinfo ../package install-system: install-system-ios install-system-mac @# Clean up some old files diff --git a/builds/Makefile b/builds/Makefile index 85cdb1edbfac..72d867d23631 100644 --- a/builds/Makefile +++ b/builds/Makefile @@ -330,10 +330,10 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/libmono-2.0.dylib $(MAC_DESTDIR)$ $(Q_LN) ln -sf libmonosgen-2.0$(suffix $@) $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/pkgconfig/mono-2.pc: mac32/data/mono-2.pc | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/pkgconfig - $(Q_CP) cp $< $@ + $(Q_CP) $(CP) $< $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/assemblies/System/System.config: mac-System.config | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/assemblies/System - $(Q_CP) cp $< $@ + $(Q_CP) $(CP) $< $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/bmac-mobile-mono: install/mac64/bin/mono-sgen | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin $(Q) install -m 0755 $< $@ @@ -639,11 +639,11 @@ TMP_BCL_TARGET_DIRS = \ $(BUILD_DESTDIR)/bcl/xammac_net_4_5/Facades \ $(BUILD_DESTDIR)/bcl/%.dll: $(MONO_PATH)/mcs/class/lib/%.dll | $(TMP_BCL_TARGET_DIRS) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q_SN) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) $(BUILD_DESTDIR)/bcl/%.pdb: $(MONO_PATH)/mcs/class/lib/%.pdb | $(TMP_BCL_TARGET_DIRS) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BCL_TARGETS_DIRS) $(WATCH_BCL_TARGETS_DIRS) $(TVOS_BCL_TARGETS_DIRS): $(Q) mkdir -p $@ @@ -726,8 +726,8 @@ clean-local:: clean-$(2) .stamp-build-$(2): $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(BUILD_DESTDIR)/$(2) $(MAKE) -C $(SDK_BUILDDIR) package-ios-$(3) $(SDK_ARGS) - $(Q) cp -r $(SDK_DESTDIR)/ios-$(4)/lib $(BUILD_DESTDIR)/$(2) - $(Q) cp -r $(SDK_DESTDIR)/ios-$(4)/include $(BUILD_DESTDIR)/$(2) + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-$(4)/lib $(BUILD_DESTDIR)/$(2) + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-$(4)/include $(BUILD_DESTDIR)/$(2) $(Q) touch $$@ build-$(2): .stamp-build-$(2) @@ -750,7 +750,7 @@ $(BUILD_DESTDIR)/$(2)/lib/libmono-profiler-log-static.a: .stamp-build-$(2) $(BUILD_DESTDIR)/$(2)/lib/libmono-profiler-log.0.dylib: .stamp-build-$(2) $(BUILD_DESTDIR)/$(2)/tmp-lib/libmono-profiler-log.0.dylib: $(BUILD_DESTDIR)/$(2)/lib/libmono-profiler-log.0.dylib | $(BUILD_DESTDIR)/$(2)/tmp-lib - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(Q) install_name_tool -id @rpath/libmono-profiler-log.dylib -change $(SDK_DESTDIR)/ios-$(4)/lib/libmonosgen-2.0.1.dylib @rpath/libmonosgen-2.0.dylib $$@ $(BUILD_DESTDIR)/$(2): @@ -805,12 +805,12 @@ $(IPHONESIMULATOR_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework/Mono: $(IOS_DESTDIR)$(IPHONESIMULATOR_PREFIX)/lib/libmonosgen-2.0.dylib | $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) install_name_tool -id @rpath/Mono.framework/Mono $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-Info.plist | $(IOS_DESTDIR)$(IPHONESIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-iphonesimulator:: $(IPHONESIMULATOR_TARGETS) @@ -832,8 +832,8 @@ endif .stamp-build-watchsimulator: $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-simwatch $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/watchsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simwatch-release/lib $(BUILD_DESTDIR)/watchsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simwatch-release/include $(BUILD_DESTDIR)/watchsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simwatch-release/lib $(BUILD_DESTDIR)/watchsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simwatch-release/include $(BUILD_DESTDIR)/watchsimulator $(Q) touch $@ build-watchsimulator: .stamp-build-watchsimulator @@ -884,12 +884,12 @@ $(WATCHSIMULATOR_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework/Mono: $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/usr/lib/libmonosgen-2.0.dylib | $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) $(WATCHOS_BIN_PATH)/install_name_tool -id @rpath/Mono.framework/Mono $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-watchos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-watchsimulator: $(WATCHSIMULATOR_TARGETS) @@ -911,8 +911,8 @@ endif .stamp-build-tvsimulator: $(MONO_PATH)/configure $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-simtv $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/tvsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simtv-release/lib $(BUILD_DESTDIR)/tvsimulator - $(Q) cp -r $(SDK_DESTDIR)/ios-simtv-release/include $(BUILD_DESTDIR)/tvsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simtv-release/lib $(BUILD_DESTDIR)/tvsimulator + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-simtv-release/include $(BUILD_DESTDIR)/tvsimulator $(Q) touch $@ build-tvsimulator: .stamp-build-tvsimulator @@ -963,12 +963,12 @@ $(TVSIMULATOR_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework/Mono: $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/usr/lib/libmonosgen-2.0.dylib | $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) $(TVOS_BIN_PATH)/install_name_tool -id @rpath/Mono.framework/Mono $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-tvos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-tvsimulator: $(TVSIMULATOR_TARGETS) @@ -1002,7 +1002,7 @@ clean-local:: clean-$(2) .stamp-build-$(2): $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-$(3) $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/$(2) - $(Q) cp -r $(SDK_DESTDIR)/ios-$(3)-release/* $(BUILD_DESTDIR)/$(2) + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-$(3)-release/* $(BUILD_DESTDIR)/$(2) $(Q) touch $$@ build-$(2): .stamp-build-$(2) @@ -1147,7 +1147,7 @@ $(IOS_DESTDIR)$(IPHONEOS_SDK)/Frameworks/Mono.framework/Mono: $(TARGET_MONOFRAME $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(IPHONEOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-Info.plist | $(IOS_DESTDIR)$(IPHONEOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ install-iphoneos:: $(IPHONEOS_TARGETS) @@ -1176,7 +1176,7 @@ watchos:: targetwatch .stamp-build-targetwatch: $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-targetwatch $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/targetwatch - $(Q) cp -r $(SDK_DESTDIR)/ios-targetwatch-release/* $(BUILD_DESTDIR)/targetwatch + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-targetwatch-release/* $(BUILD_DESTDIR)/targetwatch $(Q) touch $@ build-targetwatch: .stamp-build-targetwatch @@ -1251,11 +1251,11 @@ $(WATCHOS_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Mono: $(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-watchos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_WATCHOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(BUILD_DESTDIR)/targetwatch/tmp-lib/Mono: $(BUILD_DESTDIR)/targetwatch/lib/libmonosgen-2.0.a $(Q_GEN) CC="$(IOS_CC)" ./create-shared-library.sh $< $@ -arch armv7k -install_name @rpath/Mono.framework/Mono -mwatchos-version-min=$(MIN_WATCHOS_SDK_VERSION) -isysroot $(DEVICEWATCH_SDK) -lc++ -fembed-bitcode @@ -1287,7 +1287,7 @@ tvos:: targettv .stamp-build-targettv: $(MONO_PATH)/configure $(SDK_CONFIG) $(MONO_DEPENDENCIES) $(MAKE) -C $(SDK_BUILDDIR) package-ios-targettv $(SDK_ARGS) $(Q) mkdir -p $(BUILD_DESTDIR)/targettv - $(Q) cp -r $(SDK_DESTDIR)/ios-targettv-release/* $(BUILD_DESTDIR)/targettv + $(Q) $(CP) -r $(SDK_DESTDIR)/ios-targettv-release/* $(BUILD_DESTDIR)/targettv $(Q) touch $@ build-targettv: .stamp-build-targettv @@ -1361,11 +1361,11 @@ $(TVOS_DIRECTORIES): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework/Mono: $(BUILD_DESTDIR)/targettv/tmp-lib/Mono | $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q) dsymutil -t 4 -o $(patsubst %/,%,$(dir $@)).dSYM $@ $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework/Info.plist: Mono.framework-tvos.Info.plist | $(IOS_DESTDIR)$(XAMARIN_TVOS_SDK)/Frameworks/Mono.framework - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(BUILD_DESTDIR)/targettv/tmp-lib/Mono: $(BUILD_DESTDIR)/targettv/lib/libmonosgen-2.0.a $(Q_GEN) CC="$(IOS_CC)" ./create-shared-library.sh $< $@ -arch arm64 -install_name @rpath/Mono.framework/Mono -mtvos-version-min=$(MIN_TVOS_SDK_VERSION) -isysroot $(DEVICETV_SDK) -lc++ -fembed-bitcode diff --git a/fsharp/Makefile b/fsharp/Makefile index 11d2a2244745..3fb39467c289 100644 --- a/fsharp/Makefile +++ b/fsharp/Makefile @@ -183,7 +183,7 @@ $(FSHARP_DIRECTORIES): ### Sign the assemblies. This is done in a temporary directory so that we don't have to re-sign on every install. build/%.dll: $(BIN_DIR)/%.dll | build/monotouch build/xamarinmacmobile build/xamarinmacfull build/xamarinwatchos build/xamarintvos - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(Q_SN) MONO_CFG_DIR="$(TOP)" sn -q -R "$@" "$(PRODUCT_KEY_PATH)" build.stamp: export TargetFrameworkFallbackSearchPaths=$(IOS_DESTDIR)/Library/Frameworks/Mono.framework/External/xbuild-frameworks diff --git a/msbuild/Makefile b/msbuild/Makefile index b83ad1a1ef7c..237e3c459801 100644 --- a/msbuild/Makefile +++ b/msbuild/Makefile @@ -278,7 +278,7 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/4.5/RedistList/FrameworkList $(Q) sed 's@%TargetFrameworkDirectory%@$(MAC_TARGETDIR)/Library/Frameworks/Xamarin.Mac.framework/Versions/Current/lib/mono/4.5@' $< > $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/4.5/machine.config: $(TOP)/tools/mmp/machine.4_5.config | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/etc/mono/4.5 - $(Q) cp $(TOP)/tools/mmp/machine.4_5.config $@ + $(Q) $(CP) $(TOP)/tools/mmp/machine.4_5.config $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/msbuild/%: Xamarin.Mac.Tasks/% | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/msbuild $(Q) install -m 644 $< $@ @@ -306,7 +306,7 @@ $(foreach dll,$(MSBUILD_TASK_ASSEMBLIES),$(dll)/bin/$(CONFIG)/$(dll).dll): .buil define copyToBuild build/$(1).dll: $(1)/bin/$(CONFIG)/$(1).dll | build - $$(Q) cp $$< $$@ + $$(Q) $(CP) $$< $$@ endef # Create the rules to copy all the dlls into the 'build' directory. diff --git a/opentk/Makefile.include b/opentk/Makefile.include index 1f30f13768cf..fe20e1885470 100644 --- a/opentk/Makefile.include +++ b/opentk/Makefile.include @@ -51,13 +51,13 @@ $(MAC_BUILD_DIR)/net_4_5/OpenTK.dll: $(MAC_OPENTK_SOURCES) $(MAC_BUILD_DIR)/full $(MAC_BUILD_DIR)/net_4_5-reference/OpenTK.dll: $(MAC_BUILD_DIR)/net_4_5/OpenTK.dll @mkdir -p $(@D) - $(Q) cp $^ $@ - $(Q) cp $(<:.dll=.pdb) $(@:.dll=.pdb) + $(Q) $(CP) $^ $@ + $(Q) $(CP) $(<:.dll=.pdb) $(@:.dll=.pdb) $(MAC_BUILD_DIR)/%-reference/OpenTK.dll: $(MAC_BUILD_DIR)/%-32/OpenTK.dll @mkdir -p $(@D) - $(Q) cp $^ $@ - $(Q) cp $(<:.dll=.pdb) $(@:.dll=.pdb) + $(Q) $(CP) $^ $@ + $(Q) $(CP) $(<:.dll=.pdb) $(@:.dll=.pdb) $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/reference/mobile/OpenTK.dll: $(MAC_BUILD_DIR)/mobile-reference/OpenTK.dll | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/reference/mobile $(Q) install -m 0755 $^ $@ diff --git a/runtime/Makefile b/runtime/Makefile index f6ce43219eac..19521cf16811 100644 --- a/runtime/Makefile +++ b/runtime/Makefile @@ -132,10 +132,10 @@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/usr/lib/%.a: .libs/$(1)/%.a | $(IOS_ $(Q) install -m 0644 $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin.framework/Xamarin: .libs/$(1)/Xamarin-sim.framework | $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin-debug.framework/Xamarin-debug: .libs/$(1)/Xamarin-debug-sim.framework | $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/Xamarin-debug.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/%.framework/Info.plist: Xamarin.framework-$(1).Info.plist | $(IOS_DESTDIR)$$(XAMARIN_$(5)SIMULATOR_SDK)/Frameworks/%.framework $(Q) sed 's/@BUNDLE_EXECUTABLE@/$$*/' $$< > $$@ @@ -145,10 +145,10 @@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/usr/lib/%.a: .libs/$(1)/%.a | $(IOS_DESTDIR $(Q) install -m 0644 $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin.framework/Xamarin: .libs/$(1)/Xamarin-dev.framework | $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin-debug.framework/Xamarin-debug: .libs/$(1)/Xamarin-debug-dev.framework | $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/Xamarin-debug.framework - $(Q) cp $$< $$@ + $(Q) $(CP) $$< $$@ $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/%.framework/Info.plist: Xamarin.framework-$(1).Info.plist | $(IOS_DESTDIR)$$(XAMARIN_$(6)OS_SDK)/Frameworks/%.framework $(Q) sed 's/@BUNDLE_EXECUTABLE@/$$*/' $$< > $$@ @@ -261,7 +261,7 @@ $$(foreach arch,$$($(2)_ARCHITECTURES),.libs/$(1)/tvextension-main.$$(arch).o): .libs/$(1)/libxamarin-dev.dylib: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/libxamarin.$$(arch).dylib) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -271,7 +271,7 @@ endif .libs/$(1)/libxamarin-debug-dev.dylib: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/libxamarin-debug.$$(arch).dylib) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -281,7 +281,7 @@ endif .libs/$(1)/Xamarin-dev.framework: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/Xamarin.$$(arch).framework) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -289,7 +289,7 @@ endif .libs/$(1)/Xamarin-debug-dev.framework: $$(foreach arch,$$($(2)_DEVICE_ARCHITECTURES),.libs/$(1)/Xamarin-debug.$$(arch).framework) $(Q) rm -f $$@ ifeq (1,$$(words $$($(2)_DEVICE_ARCHITECTURES))) - $(Q) cp $$^ $$@ + $(Q) $(CP) $$^ $$@ else $$(call Q_2,LIPO, [$1]) $(DEVICE_BIN_PATH)/lipo $$^ -create -output $$@ endif @@ -526,10 +526,10 @@ $(foreach arch,$(MAC_ARCHITECTURES),.libs/mac/extension-main.$(arch).o): EXTRA_D $(call Q_2,LIPO, [mac]) xcrun lipo -create $^ -o $@ .libs/mac/XamMacLauncher: $(MACIOS_BINARIES_PATH)/XamMacLauncher | .libs/mac - $(Q) cp $< $@ + $(Q) $(CP) $< $@ .libs/mac/libxammac-%.a: $(MACIOS_BINARIES_PATH)/libxammac-%.a | .libs/mac - $(Q) cp $< $@ + $(Q) $(CP) $< $@ .SECONDARY: .libs/mac/libxammac-classic.a .libs/mac/libxammac-system-classic.a .libs/mac/libxammac-classic-debug.a .libs/mac/libxammac-system-classic-debug.a @@ -551,7 +551,7 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/XamMacLauncher: .libs/mac/XamMacL $(Q) xcrun strip -S $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/%: .libs/mac/% | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono/XamMacLauncher: | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mono $(Q) ln -sF ../XamMacLauncher $@ diff --git a/src/Makefile b/src/Makefile index 336e8c58a202..78560ae13a08 100644 --- a/src/Makefile +++ b/src/Makefile @@ -135,20 +135,20 @@ $(IOS_BUILD_DIR)/native-$(1)%Xamarin.iOS.dll $(IOS_BUILD_DIR)/native-$(1)%Xamari endef $(IOS_BUILD_DIR)/compat/%: $(MACIOS_BINARIES_PATH)/% | $(IOS_BUILD_DIR)/compat - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/%: $(IOS_BUILD_DIR)/compat/% - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(eval $(call IOS_TARGETS_template,32)) $(eval $(call IOS_TARGETS_template,64)) # MonoTouch.Dialog-1 $(IOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/ios/MonoTouch.Dialog-1.dll | $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.pdb: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/ios/MonoTouch.Dialog-1.pdb | $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # MonoTouch.NUnitLite $(IOS_BUILD_DIR)/reference%MonoTouch.NUnitLite.dll $(IOS_BUILD_DIR)/reference%MonoTouch.NUnitLite.pdb: $(IOS_TOUCHUNIT_SOURCES) $(IOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll $(PRODUCT_KEY_PATH) $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll @@ -171,19 +171,19 @@ $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll: $(IOS_BUILD_DIR)/native-64/Xamarin.i $(Q_GEN) mono-cil-strip $< $@ $(IOS_BUILD_DIR)/reference/Xamarin.iOS.pdb: $(IOS_BUILD_DIR)/native-64/Xamarin.iOS.pdb | $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/% : $(MACIOS_BINARIES_PATH)/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1 - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1/Facades/% : $(MACIOS_BINARIES_PATH)/Facades/% | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/2.1 - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BUILD_DIR)/compat/%: $(MACIOS_BINARIES_PATH)/% | $(IOS_BUILD_DIR)/compat - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_BUILD_DIR)/compat/Facades/System.Drawing.Primitives.dll : $(MACIOS_BINARIES_PATH)/Facades/System.Drawing.Primitives.dll | $(IOS_BUILD_DIR)/compat/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # # Assemblies which require special handling as they have dependency on Xamarin.iOS.dll @@ -194,14 +194,14 @@ $(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/System.Drawing.Primitives @touch $@ $(IOS_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%_Facades/System.Drawing.Primitives.dll | $(IOS_BUILD_DIR)/compat/Facades $(IOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MONO_PATH)/mcs/class/lib/monotouch/reference_Facades/netstandard.dll: $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll $(IOS_BUILD_DIR)/reference/OpenTK-1.0.dll $(call Q_PROF_CSC,ios/unified) $(MAKE) $(if $(V),,-s) -C $(MONO_PATH)/mcs/class/Facades/netstandard PROFILE=monotouch LIBRARY_SUBDIR=reference_Facades EXTERNAL_FACADE_DRAWING_REFERENCE="$(abspath $(IOS_BUILD_DIR)/reference/Xamarin.iOS.dll),$(abspath $(IOS_BUILD_DIR)/reference/OpenTK-1.0.dll)" @touch $@ $(IOS_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%_Facades/netstandard.dll | $(IOS_BUILD_DIR)/compat/Facades $(IOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # # System.Net.Http is special @@ -234,12 +234,12 @@ $(MONO_PATH)/mcs/class/lib/monotouch/reference/System.Net.Http%dll $(MONO_PATH)/ # sign dll (one target for both compat+reference) $(IOS_BUILD_DIR)/%/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch/%/System.Net.Http.dll | $(IOS_BUILD_DIR)/compat $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(call Q_PROF_SN,ios/$@) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) # (one target for both compat+reference) $(IOS_BUILD_DIR)/%/System.Net.Http.pdb: $(MONO_PATH)/mcs/class/lib/monotouch/%/System.Net.Http.pdb | $(IOS_BUILD_DIR)/compat $(IOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ clean-local:: rm -rf build @@ -499,11 +499,11 @@ $(eval $(call MAC_TARGETS_template,full-64,Xamarin.Mac.dll,full,$(MAC_CFNETWORK_ $(MAC_BUILD_DIR)/%-reference/Xamarin.Mac.dll: $(MAC_BUILD_DIR)/%-64/Xamarin.Mac.dll @mkdir -p $(@D) - $(Q) cp $^ $@ + $(Q) $(CP) $^ $@ $(MAC_BUILD_DIR)/%-reference/Xamarin.Mac.pdb: $(MAC_BUILD_DIR)/%-64/Xamarin.Mac.pdb @mkdir -p $(@D) - $(Q) cp $^ $@ + $(Q) $(CP) $^ $@ # System.Drawing.Primitives.dll is special @@ -513,7 +513,7 @@ $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/System.Drawing.Primitives.dl @touch $@ $(MAC_BUILD_DIR)/mobile/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/System.Drawing.Primitives.dll $(MAC_BUILD_DIR)/mobile/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # netstandard.dll is special @@ -522,15 +522,15 @@ $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/netstandard.dll: $(MAC_BUILD @touch $@ $(MAC_BUILD_DIR)/mobile/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/xammac/reference_Facades/netstandard.dll $(MAC_BUILD_DIR)/mobile/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_BUILD_DIR)/compat/XamMac.CFNetwork.dll: $(MACIOS_BINARIES_PATH)/XamMac.CFNetwork.dll | $(MAC_BUILD_DIR)/compat - $(Q) cp $< $@ - $(Q) cp $<.mdb $@.mdb + $(Q) $(CP) $< $@ + $(Q) $(CP) $<.mdb $@.mdb $(MAC_BUILD_DIR)/compat/XamMac.dll: $(MACIOS_BINARIES_PATH)/XamMac.dll | $(MAC_BUILD_DIR)/compat - $(Q) cp $< $@ - $(Q) cp $<.mdb $@.mdb + $(Q) $(CP) $< $@ + $(Q) $(CP) $<.mdb $@.mdb MAC_VARIANTS_TARGETS = \ $(MAC_BUILD_DIR)/compat/XamMac.dll \ @@ -753,7 +753,7 @@ $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll: $(WATCH_BUILD_DIR)/watch-32/Xa $(Q_GEN) mono-cil-strip $< $@ $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.pdb: $(WATCH_BUILD_DIR)/watch-32/Xamarin.WatchOS.pdb | $(WATCH_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # MonoTouch.NUnitLite $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite%dll $(WATCH_BUILD_DIR)/reference/MonoTouch.NUnitLite%pdb: $(WATCHOS_TOUCHUNIT_SOURCES) $(PRODUCT_KEY_PATH) $(WATCH_BUILD_DIR)/reference/Xamarin.WatchOS.dll @@ -771,7 +771,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference_Facades/System.Drawing.Prim @touch $@ $(WATCH_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/%_Facades/System.Drawing.Primitives.dll | $(WATCH_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # netstandard.dll is special @@ -780,7 +780,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference_Facades/netstandard.dll: $( @touch $@ $(WATCH_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/%_Facades/netstandard.dll | $(WATCH_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # System.Net.Http.dll is special. See comment in src/Makefile @@ -798,11 +798,11 @@ $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http%dll $(MONO_ # sign dll $(WATCH_BUILD_DIR)/reference/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.dll | $(WATCH_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(call Q_PROF_SN,watch) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) $(WATCH_BUILD_DIR)/reference/System.Net.Http.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_watch/reference/System.Net.Http.pdb | $(WATCH_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(PROJECT_DIR)/xamwatch.csproj: xamwatch.tmpl.csproj Makefile $(wildcard $(TOP)/*.sources) @sed -e 's**$(foreach file,$(WATCHOS_SOURCES),)*' -e 's**$(foreach file,$(WATCHOS_APIS),)*' $< | xmllint --format - > $@ @@ -962,7 +962,7 @@ $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll: $(TVOS_BUILD_DIR)/tvos-64/Xamarin. $(Q_GEN) mono-cil-strip $< $@ $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.pdb: $(TVOS_BUILD_DIR)/tvos-64/Xamarin.TVOS.pdb | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # MonoTouch.NUnitLite $(TVOS_BUILD_DIR)/reference/MonoTouch.NUnitLite%dll $(TVOS_BUILD_DIR)/reference/MonoTouch.NUnitLite%pdb: $(TVOS_TOUCHUNIT_SOURCES) $(PRODUCT_KEY_PATH) $(TVOS_BUILD_DIR)/reference/Xamarin.TVOS.dll $(TVOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll @@ -975,10 +975,10 @@ $(TVOS_BUILD_DIR)/reference/MonoTouch.NUnitLite%dll $(TVOS_BUILD_DIR)/reference/ # MonoTouch.Dialog-1 $(TVOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.dll: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/tvos/MonoTouch.Dialog-1.dll | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(TVOS_BUILD_DIR)/reference/MonoTouch.Dialog-1.pdb: $(MACIOS_BINARIES_PATH)/MonoTouch.Dialog-Unified/tvos/MonoTouch.Dialog-1.pdb | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # System.Drawing.Primitives.dll is special @@ -987,7 +987,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference_Facades/System.Drawing.Primiti @touch $@ $(TVOS_BUILD_DIR)/%/Facades/System.Drawing.Primitives.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%_Facades/System.Drawing.Primitives.dll | $(TVOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # netstandard.dll is special @@ -996,7 +996,7 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference_Facades/netstandard.dll: $(TVO @touch $@ $(TVOS_BUILD_DIR)/%/Facades/netstandard.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/%_Facades/netstandard.dll | $(TVOS_BUILD_DIR)/reference/Facades - $(Q) cp $< $@ + $(Q) $(CP) $< $@ # System.Net.Http.dll is special. See comment in src/Makefile @@ -1016,11 +1016,11 @@ $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http%dll $(MONO_PAT # sign dll $(TVOS_BUILD_DIR)/reference/System.Net.Http.dll: $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.dll | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(call Q_PROF_SN,tvos) MONO_CFG_DIR=$(TOP) $(SYSTEM_SN) -q -R $@ $(PRODUCT_KEY_PATH) $(TVOS_BUILD_DIR)/reference/System.Net.Http.pdb: $(MONO_PATH)/mcs/class/lib/monotouch_tv/reference/System.Net.Http.pdb | $(TVOS_BUILD_DIR)/reference - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(PROJECT_DIR)/xamtvos.csproj: xamtvos.tmpl.csproj Makefile $(wildcard $(TOP)/*.sources) @sed -e 's**$(foreach file,$(TVOS_SOURCES),)*' -e 's**$(foreach file,$(TVOS_APIS),)*' $< | xmllint --format - > $@ diff --git a/src/Makefile.generator b/src/Makefile.generator index 20758c790e15..f3d938e7d117 100644 --- a/src/Makefile.generator +++ b/src/Makefile.generator @@ -164,10 +164,10 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/bgen/bgen-classic.exe: $(MACIOS_B $(Q) install -m 0644 $< $(@:.exe=.pdb) $(MAC_BUILD_DIR)/XamMac.BindingAttributes.dll: $(MACIOS_BINARIES_PATH)/XamMac.BindingAttributes.dll | $(MAC_BUILD_DIR) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_BUILD_DIR)/XamMac.BindingAttributes.mdb: $(MACIOS_BINARIES_PATH)/XamMac.BindingAttributes.mdb | $(MAC_BUILD_DIR) - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(MAC_BUILD_DIR)/Xamarin.Mac-%.BindingAttributes.dll: generator-attributes.cs Makefile.generator $(Q) mkdir -p $(dir $@) diff --git a/tests/Makefile b/tests/Makefile index 73fbd88c45da..bcf870db93e2 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -223,17 +223,17 @@ qa-test-dependencies.zip: ifdef INCLUDE_TVOS @# TVOS $(Q) mkdir -p $@.tmpdir/tvos - $(Q) cp $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.Dialog-1.dll* $@.tmpdir/tvos - $(Q) cp $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.NUnitLite.dll* $@.tmpdir/tvos - $(Q) cp $(TOP)/tests/test-libraries/.libs/tvos/libtest.a $@.tmpdir/tvos - $(Q) cp $(TOP)/tests/test-libraries/.libs/tvos/libtest.dylib $@.tmpdir/tvos - $(Q) cp -a $(TOP)/tests/test-libraries/.libs/tvos/XTest.framework $@.tmpdir/tvos + $(Q) $(CP) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.Dialog-1.dll* $@.tmpdir/tvos + $(Q) $(CP) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.TVOS/MonoTouch.NUnitLite.dll* $@.tmpdir/tvos + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/tvos/libtest.a $@.tmpdir/tvos + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/tvos/libtest.dylib $@.tmpdir/tvos + $(Q) $(CP) -a $(TOP)/tests/test-libraries/.libs/tvos/XTest.framework $@.tmpdir/tvos endif @# iOS $(Q) mkdir -p $@.tmpdir/ios - $(Q) cp $(TOP)/tests/test-libraries/.libs/ios/libtest.a $@.tmpdir/ios - $(Q) cp $(TOP)/tests/test-libraries/.libs/ios/libtest.dylib $@.tmpdir/ios - $(Q) cp -a $(TOP)/tests/test-libraries/.libs/ios/XTest.framework $@.tmpdir/ios + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/ios/libtest.a $@.tmpdir/ios + $(Q) $(CP) $(TOP)/tests/test-libraries/.libs/ios/libtest.dylib $@.tmpdir/ios + $(Q) $(CP) -a $(TOP)/tests/test-libraries/.libs/ios/XTest.framework $@.tmpdir/ios $(Q) printf '#!/bin/bash -e\n\n/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch "$$@"\n' > $@.tmpdir/mlaunch $(Q) chmod +x $@.tmpdir/mlaunch @# Generate zip diff --git a/tests/package-mac-tests.sh b/tests/package-mac-tests.sh index 6371852664e7..3732e5a98456 100755 --- a/tests/package-mac-tests.sh +++ b/tests/package-mac-tests.sh @@ -1,5 +1,11 @@ #!/bin/bash -ex +# Clone files instead of copying them on APFS file systems. Much faster. +CP="cp" +if df -t apfs / >/dev/null 2>&1; then + CP="cp -c" +fi + #git clean -xfdq DIR=$(pwd)/mac-test-package/mac-test-package @@ -14,21 +20,21 @@ make build-mac-dontlink build-mac-apitest build-mac-introspection build-mac-link for app in */bin/x86/*/*.app linker/mac/*/bin/x86/*/*.app introspection/Mac/bin/x86/*/*.app; do mkdir -p "$DIR/tests/$app" - cp -R "$app" "$DIR/tests/$app/.." + $CP -R "$app" "$DIR/tests/$app/.." done -cp -p Makefile-mac.inc $DIR/tests -cp -p common.mk $DIR/tests -cp -p Makefile $DIR/tests -cp -p ../Make.config $DIR -cp -p ../Make.versions $DIR -cp -p test-dependencies.sh $DIR -cp -p ../system-dependencies.sh $DIR +$CP -p Makefile-mac.inc $DIR/tests +$CP -p common.mk $DIR/tests +$CP -p Makefile $DIR/tests +$CP -p ../Make.config $DIR +$CP -p ../Make.versions $DIR +$CP -p test-dependencies.sh $DIR +$CP -p ../system-dependencies.sh $DIR mkdir -p $DIR/mk -cp -p ../Make.config $DIR -cp -p ../mk/subdirs.mk $DIR/mk -cp -p ../mk/rules.mk $DIR/mk -cp -p ../mk/quiet.mk $DIR/mk +$CP -p ../Make.config $DIR +$CP -p ../mk/subdirs.mk $DIR/mk +$CP -p ../mk/rules.mk $DIR/mk +$CP -p ../mk/quiet.mk $DIR/mk # 7za compresses better, because there are many duplicated files cd mac-test-package && zip -r ../mac-test-package.zip * diff --git a/tests/test-libraries/Makefile b/tests/test-libraries/Makefile index ef59f68a2ee8..eedb07230a08 100644 --- a/tests/test-libraries/Makefile +++ b/tests/test-libraries/Makefile @@ -94,10 +94,10 @@ COMMON_DYLIB_ARGS=-g -dynamiclib -gdwarf-2 -fms-extensions libframework.m -o $$@ # XTest is a framework where the binary code is a (fat) dynamic library .libs/$(1)/XTest.framework/XTest: .libs/$(1)/libtest.dylib | .libs/$(1)/XTest.framework - $$(Q) cp $$^ $$@ + $$(Q) $(CP) $$^ $$@ .libs/$(1)/XTest.framework/Info.plist: XTest-Info.plist | .libs/$(1)/XTest.framework - $$(Q) cp $$^ $$@ + $$(Q) $(CP) $$^ $$@ # XStaticObjectTest is a framework where the binary code is a (fat) object file .libs/$(1)/XStaticObjectTest.framework/XStaticObjectTest: $$(foreach arch,$(3),.libs/$(1)/libtest-object.$$(arch).o) | .libs/$(1)/XStaticObjectTest.framework diff --git a/tools/apidiff/Makefile b/tools/apidiff/Makefile index 5ff698b1e3b2..ff4040bf32f6 100644 --- a/tools/apidiff/Makefile +++ b/tools/apidiff/Makefile @@ -267,7 +267,7 @@ endif endif $(Q) $(MAKE) all -j8 $(Q) $(MAKE) -j8 ios-markdown tvos-markdown watchos-markdown macos-markdown - $(Q) cp api-diff.html index.html + $(Q) $(CP) api-diff.html index.html @echo "@MonkeyWrench: AddFile: $(CURDIR)/index.html" @echo "@MonkeyWrench: AddFile: $(CURDIR)/api-diff.html" @# remove empty files so they're not uploaded @@ -282,6 +282,6 @@ endif jenkins-api-diff: -$(MAKE) wrench-api-diff $(Q) mkdir -p $(JENKINS_RESULTS_DIRECTORY)/api-diff - $(Q) cp *.html $(JENKINS_RESULTS_DIRECTORY)/api-diff - $(Q) cp *.md $(JENKINS_RESULTS_DIRECTORY)/api-diff - $(Q) cp -R diff $(JENKINS_RESULTS_DIRECTORY)/api-diff + $(Q) $(CP) *.html $(JENKINS_RESULTS_DIRECTORY)/api-diff + $(Q) $(CP) *.md $(JENKINS_RESULTS_DIRECTORY)/api-diff + $(Q) $(CP) -R diff $(JENKINS_RESULTS_DIRECTORY)/api-diff diff --git a/tools/install-source/Makefile b/tools/install-source/Makefile index 0adb09c83fa6..507d29ed54a0 100644 --- a/tools/install-source/Makefile +++ b/tools/install-source/Makefile @@ -17,13 +17,13 @@ MONO_CECIL_PDB_FILES=$(wildcard $(CECIL_PATH)/symbols/pdb/*.cs) $(wildcard $(CEC Mono.Cecil.Pdb.dll: $(MONO_CECIL_PDB_FILES) $(Q_XBUILD) cd $(CECIL_PATH)/symbols/pdb/ && $(SYSTEM_XBUILD) /p:Configuration=$(CECIL_CONFIG) Mono.Cecil.Pdb.csproj $(XBUILD_VERBOSITY) - $(Q) cp $(CECIL_PATH)/bin/$(CECIL_CONFIG)/*.dll $(dir $@) + $(Q) $(CP) $(CECIL_PATH)/bin/$(CECIL_CONFIG)/*.dll $(dir $@) $(MONO_CECIL_DLL): $(CECIL_PATH)/Mono.Cecil.csproj $(MONO_CECIL_FILES) $(Q_XBUILD) cd $(CECIL_PATH) && $(SYSTEM_XBUILD) /p:Configuration=$(CECIL_CONFIG) Mono.Cecil.csproj $(XBUILD_VERBOSITY) Mono.Cecil.dll: $(MONO_CECIL_DLL) - $(Q) cp $<* $(dir $@) + $(Q) $(CP) $<* $(dir $@) IOS_ASSEMBLIES = \ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mono/Xamarin.iOS/I18N.CJK.pdb \ diff --git a/tools/mlaunch/Makefile b/tools/mlaunch/Makefile index 7149b818f9e5..04c844ae7056 100644 --- a/tools/mlaunch/Makefile +++ b/tools/mlaunch/Makefile @@ -10,16 +10,16 @@ all-local install-local:: $(MAKE) -C $(MACCORE_PATH)/tools/mlaunch $@ else all-local install-local:: - $(Q) cp -R $(MACIOS_BINARIES_PATH)/mlaunch/bin/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin - $(Q) cp -R $(MACIOS_BINARIES_PATH)/mlaunch/lib/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib + $(Q) $(CP) -R $(MACIOS_BINARIES_PATH)/mlaunch/bin/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin + $(Q) $(CP) -R $(MACIOS_BINARIES_PATH)/mlaunch/lib/mlaunch $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib endif ifdef ENABLE_XAMARIN publish: $(Q) mkdir -p $(MACIOS_BINARIES_PATH)/mlaunch/bin $(Q) mkdir -p $(MACIOS_BINARIES_PATH)/mlaunch/lib - $(Q) cp -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/bin - $(Q) cp -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/lib + $(Q) $(CP) -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/bin + $(Q) $(CP) -R $(IOS_DESTDIR)/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/lib/mlaunch $(MACIOS_BINARIES_PATH)/mlaunch/lib $(Q) cd $(MACIOS_BINARIES_PATH) && git add mlaunch && git commit -q -m "Bump mlaunch to xamarin/maccore@$(shell cd $(MACCORE_PATH) && git log -1 --pretty=%h)" && git log -1 --pretty=short $(Q) echo "$(COLOR_GREEN)A new version of mlaunch has been copied to $(MACIOS_BINARIES_PATH), and a commit created with the new version.$(COLOR_CLEAR)" $(Q) echo "$(COLOR_GREEN)Please create pull request in the macios-binaries repository for the new mlaunch version, and once merged, bump the submodule in xamarin-macios.$(COLOR_CLEAR)" diff --git a/tools/mmp/Makefile b/tools/mmp/Makefile index db549080d144..0cc6869eb586 100644 --- a/tools/mmp/Makefile +++ b/tools/mmp/Makefile @@ -33,12 +33,12 @@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/bin/mmp: mmp.in | $(MAC_DESTDIR)$(MAC $(Q) chmod +x $@ $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp/mmp.exe: $(MMP_DIR)/mmp.exe | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp - $(Q) cp $(dir $<)/*.exe $(dir $@) - $(Q) cp $(dir $<)/*.dll $(dir $@) - $(Q) cp $(dir $<)/*.pdb $(dir $@) + $(Q) $(CP) $(dir $<)/*.exe $(dir $@) + $(Q) $(CP) $(dir $<)/*.dll $(dir $@) + $(Q) $(CP) $(dir $<)/*.pdb $(dir $@) $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp/Xamarin.Mac.registrar.%.a: Xamarin.Mac.registrar.%.a | $(MAC_DESTDIR)$(MAC_FRAMEWORK_CURRENT_DIR)/lib/mmp - $(Q) cp $<* $(dir $@) + $(Q) $(CP) $<* $(dir $@) $(MMP_DIRECTORIES): $(Q) mkdir -p $@ diff --git a/tools/mmp/tests/Makefile b/tools/mmp/tests/Makefile index 57be7dded0a7..29d67ca27b5b 100644 --- a/tools/mmp/tests/Makefile +++ b/tools/mmp/tests/Makefile @@ -18,14 +18,14 @@ run:: tests.dll $(NUGET_CONSOLE) $(Q_NUNIT) mono --runtime=v4.0 $(NUGET_CONSOLE) -noshadow -nologo tests.dll mmp.exe: ../mmp.exe - $(Q) cp ../mmp.exe mmp.exe + $(Q) $(CP) ../mmp.exe mmp.exe nunit.framework.dll nunit-console.exe: /Library/Frameworks/Mono.framework/Commands/nuget restore packages.config - cp $(NUGET_LIB) nunit.framework.dll + $(CP) $(NUGET_LIB) nunit.framework.dll Mono.Cecil.dll: - cp $(CECIL_LIB) Mono.Cecil.dll + $(CP) $(CECIL_LIB) Mono.Cecil.dll tests.dll: $(test_sources) mmp.exe nunit.framework.dll Mono.Cecil.dll $(Q_CSC) $(SYSTEM_CSC) $(test_sources) -r:mmp.exe -t:library -out:tests.dll -r:nunit.framework.dll -r:Mono.Cecil.dll -debug diff --git a/tools/mtouch/Makefile b/tools/mtouch/Makefile index eb5623ab93d9..08f4d93f68d2 100644 --- a/tools/mtouch/Makefile +++ b/tools/mtouch/Makefile @@ -266,28 +266,28 @@ $(TARGET_DIRS): $(Q) mkdir -p $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mtouch/mtouch.exe: $(MTOUCH_DIR)/mtouch.exe | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/mtouch - $(Q) cp $(dir $<)/*.exe $(dir $@) - $(Q) cp $(dir $<)/*.dll $(dir $@) - $(Q) cp $(dir $<)/*.pdb $(dir $@) + $(Q) $(CP) $(dir $<)/*.exe $(dir $@) + $(Q) $(CP) $(dir $<)/*.dll $(dir $@) + $(Q) $(CP) $(dir $<)/*.pdb $(dir $@) $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/mtouch: mtouch.in | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin $(Q_GEN) sed 's!@MONOTOUCH_PREFIX@!$(abspath $(IOS_TARGETDIR)$(MONOTOUCH_PREFIX))!g' $< > $@ $(Q) chmod +x $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin/%: % | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/bin - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib/%: % | $(IOS_DESTDIR)$(MONOTOUCH_PREFIX)/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(MONOTOUCH_SIMULATOR_SDK)/usr/lib/%.registrar.a: %.registrar.ios.a | $(IOS_DESTDIR)$(MONOTOUCH_SIMULATOR_SDK)/usr/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/usr/lib/%.registrar.a: %.registrar.watchos.a | $(IOS_DESTDIR)$(XAMARIN_WATCHSIMULATOR_SDK)/usr/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/usr/lib/%.registrar.a: %.registrar.tvos.a | $(IOS_DESTDIR)$(XAMARIN_TVSIMULATOR_SDK)/usr/lib - $(Q) cp $< $@ + $(Q) $(CP) $< $@ ifdef INCLUDE_IOS install-local:: $(TARGETS)