diff --git a/Makefile b/Makefile index f0a62971d91..8a26a240042 100644 --- a/Makefile +++ b/Makefile @@ -138,6 +138,7 @@ endef # -------------------------------------------------------------------- .PHONY: source-dist clean-source-dist +.PHONY: build-dist clean-build-dist SOURCE_DIST_BASE ?= rabbitmq-server SOURCE_DIST_SUFFIXES ?= tar.xz @@ -149,6 +150,13 @@ SOURCE_DIST_FILES = $(addprefix $(SOURCE_DIST).,$(SOURCE_DIST_SUFFIXES)) .PHONY: $(SOURCE_DIST_FILES) +# Override rsync flags as a pre-requisite +build-dist: RSYNC_FLAGS = $(BUILD_DIST_RSYNC_FLAGS) +build-dist: $(SOURCE_DIST_FILES) + @: + +# Override rsync flags as a pre-requisite +source-dist: RSYNC_FLAGS = $(SOURCE_DIST_RSYNC_FLAGS) source-dist: $(SOURCE_DIST_FILES) @: @@ -157,7 +165,9 @@ RSYNC_V_0 = RSYNC_V_1 = -v RSYNC_V_2 = -v RSYNC_V = $(RSYNC_V_$(V)) -RSYNC_FLAGS += -a $(RSYNC_V) \ +BASE_RSYNC_FLAGS += -a $(RSYNC_V) \ + --delete \ + --delete-excluded \ --exclude '.sw?' --exclude '.*.sw?' \ --exclude '*.beam' \ --exclude '*.d' \ @@ -188,12 +198,10 @@ RSYNC_FLAGS += -a $(RSYNC_V) \ --exclude '$(notdir $(DEPS_DIR))/' \ --exclude 'hexer*' \ --exclude 'logs/' \ - --exclude 'packaging' \ --exclude 'PKG_*.md' \ --exclude '/plugins/' \ --include 'cli/plugins' \ --exclude '$(notdir $(DIST_DIR))/' \ - --exclude 'test' \ --exclude '/$(notdir $(PACKAGES_DIR))/' \ --exclude '/PACKAGES/' \ --exclude '/amqp_client/doc/' \ @@ -208,9 +216,21 @@ RSYNC_FLAGS += -a $(RSYNC_V) \ --exclude '/ranch/doc/' \ --exclude '/ranch/examples/' \ --exclude '/sockjs/examples/' \ - --exclude '/workflow_sources/' \ - --delete \ - --delete-excluded + --exclude '/workflow_sources/' + +SOURCE_DIST_RSYNC_FLAGS += $(BASE_RSYNC_FLAGS) \ + --exclude 'packaging' \ + --exclude 'test' + +# For build-dist, explicitly include folders that are needed +# for tests to execute. These are added before excludes from +# the base flags so rsync honors the first match. +BUILD_DIST_RSYNC_FLAGS += \ + --include 'rabbit_shovel_test/ebin' \ + --include 'rabbit_shovel_test/ebin/*' \ + --include 'rabbitmq_ct_helpers/tools' \ + --include 'rabbitmq_ct_helpers/tools/*' \ + $(BASE_RSYNC_FLAGS) TAR ?= tar TAR_V_0 = @@ -375,6 +395,8 @@ $(SOURCE_DIST).zip: $(SOURCE_DIST).manifest clean:: clean-source-dist +clean-build-dist:: clean-source-dist + clean-source-dist: $(gen_verbose) rm -rf -- $(SOURCE_DIST_BASE)-*