Adding a "build-dist" target to the Makefile

This target is identical to the existing "source-dist" target, except that it allows for packaging and testing of the source archive. This is done by including the packaging/ and tests/ directories in the output tarball, along with specific subdirectories that are required by tests.

Signed-off-by: Kartik Ganesh <gkart@amazon.com>
This commit is contained in:
Kartik Ganesh 2025-02-20 15:38:25 -08:00
parent cc0458a139
commit aa9e0a5a28
1 changed files with 28 additions and 6 deletions

View File

@ -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)-*