| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | ifeq ($(.DEFAULT_GOAL),) | 
					
						
							|  |  |  | # Define default goal to `all` because this file defines some targets
 | 
					
						
							|  |  |  | # before the inclusion of erlang.mk leading to the wrong target becoming
 | 
					
						
							|  |  |  | # the default.
 | 
					
						
							|  |  |  | .DEFAULT_GOAL = all | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-06 20:37:00 +08:00
										 |  |  | # PROJECT_VERSION defaults to:
 | 
					
						
							| 
									
										
										
										
											2016-12-06 23:36:41 +08:00
										 |  |  | #   1. the version exported by rabbitmq-server-release;
 | 
					
						
							|  |  |  | #   2. the version stored in `git-revisions.txt`, if it exists;
 | 
					
						
							|  |  |  | #   3. a version based on git-describe(1), if it is a Git clone;
 | 
					
						
							|  |  |  | #   4. 0.0.0
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-09 02:02:49 +08:00
										 |  |  | PROJECT_VERSION := $(RABBITMQ_VERSION) | 
					
						
							| 
									
										
										
										
											2016-12-06 20:37:00 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(PROJECT_VERSION),) | 
					
						
							| 
									
										
										
										
											2024-05-28 18:19:39 +08:00
										 |  |  | PROJECT_VERSION = $(shell \
 | 
					
						
							| 
									
										
										
										
											2016-12-06 20:37:00 +08:00
										 |  |  | if test -f git-revisions.txt; then \ | 
					
						
							|  |  |  | 	head -n1 git-revisions.txt | \
 | 
					
						
							|  |  |  | 	awk '{print $$$(words $(PROJECT_DESCRIPTION) version);}'; \
 | 
					
						
							|  |  |  | else \ | 
					
						
							|  |  |  | 	(git describe --dirty --abbrev=7 --tags --always --first-parent \
 | 
					
						
							|  |  |  | 	 2>/dev/null || echo rabbitmq_v0_0_0) | \
 | 
					
						
							| 
									
										
										
										
											2016-12-06 23:36:41 +08:00
										 |  |  | 	sed -e 's/^rabbitmq_v//' -e 's/^v//' -e 's/_/./g' -e 's/-/+/' \
 | 
					
						
							|  |  |  | 	 -e 's/-/./g'; \
 | 
					
						
							| 
									
										
										
										
											2016-12-06 20:37:00 +08:00
										 |  |  | fi) | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | # --------------------------------------------------------------------
 | 
					
						
							|  |  |  | # RabbitMQ components.
 | 
					
						
							|  |  |  | # --------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # For RabbitMQ repositories, we want to checkout branches which match
 | 
					
						
							|  |  |  | # the parent project. For instance, if the parent project is on a
 | 
					
						
							|  |  |  | # release tag, dependencies must be on the same release tag. If the
 | 
					
						
							|  |  |  | # parent project is on a topic branch, dependencies must be on the same
 | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | # topic branch or fallback to `stable` or `main` whichever was the
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | # base of the topic branch.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | dep_amqp_client                       = git_rmq-subfolder rabbitmq-erlang-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_amqp10_client                     = git_rmq-subfolder rabbitmq-amqp1.0-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							| 
									
										
										
										
											2024-01-03 16:28:36 +08:00
										 |  |  | dep_oauth2_client                     = git_rmq-subfolder oauth2-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | dep_amqp10_common                     = git_rmq-subfolder rabbitmq-amqp1.0-common $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbit                            = git_rmq-subfolder rabbitmq-server $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbit_common                     = git_rmq-subfolder rabbitmq-common $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_amqp1_0                  = git_rmq-subfolder rabbitmq-amqp1.0 $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_auth_backend_amqp        = git_rmq           rabbitmq-auth-backend-amqp $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_auth_backend_cache       = git_rmq-subfolder rabbitmq-auth-backend-cache $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_auth_backend_http        = git_rmq-subfolder rabbitmq-auth-backend-http $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_auth_backend_ldap        = git_rmq-subfolder rabbitmq-auth-backend-ldap $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_auth_backend_oauth2      = git_rmq-subfolder rabbitmq-auth-backend-oauth2 $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_auth_mechanism_ssl       = git_rmq-subfolder rabbitmq-auth-mechanism-ssl $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_aws                      = git_rmq-subfolder rabbitmq-aws $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_boot_steps_visualiser    = git_rmq           rabbitmq-boot-steps-visualiser $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_cli                      = git_rmq-subfolder rabbitmq-cli $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_codegen                  = git_rmq-subfolder rabbitmq-codegen $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_consistent_hash_exchange = git_rmq-subfolder rabbitmq-consistent-hash-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_ct_client_helpers        = git_rmq-subfolder rabbitmq-ct-client-helpers $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_ct_helpers               = git_rmq-subfolder rabbitmq-ct-helpers $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_delayed_message_exchange = git_rmq           rabbitmq-delayed-message-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_dotnet_client            = git_rmq           rabbitmq-dotnet-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_event_exchange           = git_rmq-subfolder rabbitmq-event-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_federation               = git_rmq-subfolder rabbitmq-federation $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_federation_management    = git_rmq-subfolder rabbitmq-federation-management $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_java_client              = git_rmq           rabbitmq-java-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_jms_client               = git_rmq           rabbitmq-jms-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_jms_cts                  = git_rmq           rabbitmq-jms-cts $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_jms_topic_exchange       = git_rmq-subfolder rabbitmq-jms-topic-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_lvc_exchange             = git_rmq           rabbitmq-lvc-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_management               = git_rmq-subfolder rabbitmq-management $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_management_agent         = git_rmq-subfolder rabbitmq-management-agent $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_management_exchange      = git_rmq           rabbitmq-management-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_management_themes        = git_rmq           rabbitmq-management-themes $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_message_timestamp        = git_rmq           rabbitmq-message-timestamp $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_metronome                = git_rmq           rabbitmq-metronome $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_mqtt                     = git_rmq-subfolder rabbitmq-mqtt $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_objc_client              = git_rmq           rabbitmq-objc-client $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_peer_discovery_aws       = git_rmq-subfolder rabbitmq-peer-discovery-aws $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_peer_discovery_common    = git_rmq-subfolder rabbitmq-peer-discovery-common $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_peer_discovery_consul    = git_rmq-subfolder rabbitmq-peer-discovery-consul $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_peer_discovery_etcd      = git_rmq-subfolder rabbitmq-peer-discovery-etcd $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_peer_discovery_k8s       = git_rmq-subfolder rabbitmq-peer-discovery-k8s $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							| 
									
										
										
										
											2024-01-17 23:26:47 +08:00
										 |  |  | dep_rabbitmq_prelaunch                = git_rmq-subfolder rabbitmq-prelaunch $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | dep_rabbitmq_prometheus               = git_rmq-subfolder rabbitmq-prometheus $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_random_exchange          = git_rmq-subfolder rabbitmq-random-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_recent_history_exchange  = git_rmq-subfolder rabbitmq-recent-history-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_routing_node_stamp       = git_rmq           rabbitmq-routing-node-stamp $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_rtopic_exchange          = git_rmq           rabbitmq-rtopic-exchange $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_sharding                 = git_rmq-subfolder rabbitmq-sharding $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_shovel                   = git_rmq-subfolder rabbitmq-shovel $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_shovel_management        = git_rmq-subfolder rabbitmq-shovel-management $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_stomp                    = git_rmq-subfolder rabbitmq-stomp $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_stream                   = git_rmq-subfolder rabbitmq-stream $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_stream_common            = git_rmq-subfolder rabbitmq-stream-common $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_stream_management        = git_rmq-subfolder rabbitmq-stream-management $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_toke                     = git_rmq           rabbitmq-toke $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_top                      = git_rmq-subfolder rabbitmq-top $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_tracing                  = git_rmq-subfolder rabbitmq-tracing $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_trust_store              = git_rmq-subfolder rabbitmq-trust-store $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_test                     = git_rmq           rabbitmq-test $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_web_dispatch             = git_rmq-subfolder rabbitmq-web-dispatch $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_web_stomp                = git_rmq-subfolder rabbitmq-web-stomp $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_web_stomp_examples       = git_rmq-subfolder rabbitmq-web-stomp-examples $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_web_mqtt                 = git_rmq-subfolder rabbitmq-web-mqtt $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_web_mqtt_examples        = git_rmq-subfolder rabbitmq-web-mqtt-examples $(current_rmq_ref) $(base_rmq_ref) main | 
					
						
							|  |  |  | dep_rabbitmq_website                  = git_rmq           rabbitmq-website $(current_rmq_ref) $(base_rmq_ref) live main | 
					
						
							| 
									
										
										
										
											2021-03-22 17:38:17 +08:00
										 |  |  | dep_toke                              = git_rmq           toke $(current_rmq_ref) $(base_rmq_ref) master | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-25 17:08:22 +08:00
										 |  |  | # Third-party dependencies version pinning.
 | 
					
						
							|  |  |  | #
 | 
					
						
							| 
									
										
										
										
											2024-06-21 20:26:53 +08:00
										 |  |  | # We do that in this file, which is included by all projects, to ensure
 | 
					
						
							|  |  |  | # all projects use the same versions. It avoids conflicts.
 | 
					
						
							| 
									
										
										
										
											2016-11-25 17:08:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-23 04:55:14 +08:00
										 |  |  | dep_accept = hex 0.3.5 | 
					
						
							| 
									
										
										
										
											2024-03-14 23:09:17 +08:00
										 |  |  | dep_cowboy = hex 2.12.0 | 
					
						
							|  |  |  | dep_cowlib = hex 2.13.0 | 
					
						
							| 
									
										
										
										
											2023-05-23 04:10:30 +08:00
										 |  |  | dep_credentials_obfuscation = hex 3.4.0 | 
					
						
							| 
									
										
										
										
											2024-04-16 23:38:42 +08:00
										 |  |  | dep_cuttlefish = hex 3.1.0 | 
					
						
							|  |  |  | dep_gen_batch_server = hex 0.8.8 | 
					
						
							| 
									
										
										
										
											2024-05-29 14:45:27 +08:00
										 |  |  | dep_jose = hex 1.11.10 | 
					
						
							| 
									
										
										
										
											2024-05-16 17:04:26 +08:00
										 |  |  | dep_khepri = hex 0.14.0 | 
					
						
							|  |  |  | dep_khepri_mnesia_migration = hex 0.5.0 | 
					
						
							| 
									
										
										
										
											2023-11-23 22:53:53 +08:00
										 |  |  | dep_prometheus = hex 4.11.0 | 
					
						
							| 
									
										
										
										
											2024-07-12 18:38:16 +08:00
										 |  |  | dep_ra = hex 2.13.1 | 
					
						
							| 
									
										
										
										
											2021-09-09 18:37:52 +08:00
										 |  |  | dep_ranch = hex 2.1.0 | 
					
						
							| 
									
										
										
										
											2022-12-24 03:11:27 +08:00
										 |  |  | dep_recon = hex 2.5.3 | 
					
						
							| 
									
										
										
										
											2022-01-11 22:02:59 +08:00
										 |  |  | dep_redbug = hex 2.0.7 | 
					
						
							| 
									
										
										
										
											2023-01-28 02:58:52 +08:00
										 |  |  | dep_thoas = hex 1.0.0 | 
					
						
							| 
									
										
										
										
											2022-04-17 20:48:57 +08:00
										 |  |  | dep_observer_cli = hex 1.7.3 | 
					
						
							| 
									
										
										
										
											2024-05-09 14:17:41 +08:00
										 |  |  | dep_seshat = git https://github.com/rabbitmq/seshat v0.6.1 | 
					
						
							| 
									
										
										
										
											2020-07-21 18:12:54 +08:00
										 |  |  | dep_stdout_formatter = hex 0.2.4 | 
					
						
							| 
									
										
										
										
											2020-07-21 08:40:06 +08:00
										 |  |  | dep_sysmon_handler = hex 1.3.0 | 
					
						
							| 
									
										
										
										
											2017-10-13 20:13:28 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | RABBITMQ_COMPONENTS = amqp_client \
 | 
					
						
							| 
									
										
										
										
											2017-10-13 20:33:16 +08:00
										 |  |  | 		      amqp10_common \
 | 
					
						
							|  |  |  | 		      amqp10_client \
 | 
					
						
							| 
									
										
										
										
											2024-01-03 16:28:36 +08:00
										 |  |  | 					oauth2_client \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbit \
 | 
					
						
							|  |  |  | 		      rabbit_common \
 | 
					
						
							|  |  |  | 		      rabbitmq_amqp1_0 \
 | 
					
						
							|  |  |  | 		      rabbitmq_auth_backend_amqp \
 | 
					
						
							| 
									
										
										
										
											2017-02-07 00:24:00 +08:00
										 |  |  | 		      rabbitmq_auth_backend_cache \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_auth_backend_http \
 | 
					
						
							|  |  |  | 		      rabbitmq_auth_backend_ldap \
 | 
					
						
							| 
									
										
										
										
											2019-07-09 22:06:09 +08:00
										 |  |  | 		      rabbitmq_auth_backend_oauth2 \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_auth_mechanism_ssl \
 | 
					
						
							| 
									
										
										
										
											2017-06-02 22:51:34 +08:00
										 |  |  | 		      rabbitmq_aws \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_boot_steps_visualiser \
 | 
					
						
							| 
									
										
										
										
											2016-11-23 00:16:40 +08:00
										 |  |  | 		      rabbitmq_cli \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_codegen \
 | 
					
						
							|  |  |  | 		      rabbitmq_consistent_hash_exchange \
 | 
					
						
							| 
									
										
										
										
											2016-11-24 01:06:06 +08:00
										 |  |  | 		      rabbitmq_ct_client_helpers \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_ct_helpers \
 | 
					
						
							|  |  |  | 		      rabbitmq_delayed_message_exchange \
 | 
					
						
							|  |  |  | 		      rabbitmq_dotnet_client \
 | 
					
						
							|  |  |  | 		      rabbitmq_event_exchange \
 | 
					
						
							|  |  |  | 		      rabbitmq_federation \
 | 
					
						
							|  |  |  | 		      rabbitmq_federation_management \
 | 
					
						
							|  |  |  | 		      rabbitmq_java_client \
 | 
					
						
							|  |  |  | 		      rabbitmq_jms_client \
 | 
					
						
							| 
									
										
										
										
											2017-02-08 21:38:22 +08:00
										 |  |  | 		      rabbitmq_jms_cts \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_jms_topic_exchange \
 | 
					
						
							| 
									
										
										
										
											2017-09-14 05:54:42 +08:00
										 |  |  | 		      rabbitmq_lvc_exchange \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_management \
 | 
					
						
							|  |  |  | 		      rabbitmq_management_agent \
 | 
					
						
							|  |  |  | 		      rabbitmq_management_exchange \
 | 
					
						
							|  |  |  | 		      rabbitmq_management_themes \
 | 
					
						
							|  |  |  | 		      rabbitmq_message_timestamp \
 | 
					
						
							|  |  |  | 		      rabbitmq_metronome \
 | 
					
						
							|  |  |  | 		      rabbitmq_mqtt \
 | 
					
						
							|  |  |  | 		      rabbitmq_objc_client \
 | 
					
						
							| 
									
										
										
										
											2017-06-01 23:01:48 +08:00
										 |  |  | 		      rabbitmq_peer_discovery_aws \
 | 
					
						
							|  |  |  | 		      rabbitmq_peer_discovery_common \
 | 
					
						
							|  |  |  | 		      rabbitmq_peer_discovery_consul \
 | 
					
						
							| 
									
										
										
										
											2017-06-12 23:35:48 +08:00
										 |  |  | 		      rabbitmq_peer_discovery_etcd \
 | 
					
						
							|  |  |  | 		      rabbitmq_peer_discovery_k8s \
 | 
					
						
							| 
									
										
										
										
											2019-04-23 04:55:14 +08:00
										 |  |  | 		      rabbitmq_prometheus \
 | 
					
						
							| 
									
										
										
										
											2017-10-13 20:13:28 +08:00
										 |  |  | 		      rabbitmq_random_exchange \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_recent_history_exchange \
 | 
					
						
							|  |  |  | 		      rabbitmq_routing_node_stamp \
 | 
					
						
							|  |  |  | 		      rabbitmq_rtopic_exchange \
 | 
					
						
							| 
									
										
										
										
											2016-09-23 17:23:08 +08:00
										 |  |  | 		      rabbitmq_server_release \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_sharding \
 | 
					
						
							|  |  |  | 		      rabbitmq_shovel \
 | 
					
						
							|  |  |  | 		      rabbitmq_shovel_management \
 | 
					
						
							|  |  |  | 		      rabbitmq_stomp \
 | 
					
						
							| 
									
										
										
										
											2020-11-03 21:27:48 +08:00
										 |  |  | 		      rabbitmq_stream \
 | 
					
						
							| 
									
										
										
										
											2021-06-11 22:58:17 +08:00
										 |  |  | 		      rabbitmq_stream_common \
 | 
					
						
							| 
									
										
										
										
											2020-11-19 21:48:25 +08:00
										 |  |  | 		      rabbitmq_stream_management \
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 		      rabbitmq_toke \
 | 
					
						
							|  |  |  | 		      rabbitmq_top \
 | 
					
						
							|  |  |  | 		      rabbitmq_tracing \
 | 
					
						
							|  |  |  | 		      rabbitmq_trust_store \
 | 
					
						
							|  |  |  | 		      rabbitmq_web_dispatch \
 | 
					
						
							|  |  |  | 		      rabbitmq_web_mqtt \
 | 
					
						
							|  |  |  | 		      rabbitmq_web_mqtt_examples \
 | 
					
						
							|  |  |  | 		      rabbitmq_web_stomp \
 | 
					
						
							|  |  |  | 		      rabbitmq_web_stomp_examples \
 | 
					
						
							| 
									
										
										
										
											2018-01-23 22:31:31 +08:00
										 |  |  | 		      rabbitmq_website | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-28 22:05:40 +08:00
										 |  |  | # Erlang.mk does not rebuild dependencies by default, once they were
 | 
					
						
							|  |  |  | # compiled once, except for those listed in the `$(FORCE_REBUILD)`
 | 
					
						
							|  |  |  | # variable.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # We want all RabbitMQ components to always be rebuilt: this eases
 | 
					
						
							|  |  |  | # the work on several components at the same time.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | FORCE_REBUILD = $(RABBITMQ_COMPONENTS) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | # Several components have a custom erlang.mk/build.config, mainly
 | 
					
						
							|  |  |  | # to disable eunit. Therefore, we can't use the top-level project's
 | 
					
						
							|  |  |  | # erlang.mk copy.
 | 
					
						
							|  |  |  | NO_AUTOPATCH += $(RABBITMQ_COMPONENTS) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(origin current_rmq_ref),undefined) | 
					
						
							|  |  |  | ifneq ($(wildcard .git),) | 
					
						
							|  |  |  | current_rmq_ref := $(shell (\
 | 
					
						
							| 
									
										
										
										
											2017-09-13 07:53:33 +08:00
										 |  |  | 	ref=$$(LANG=C git branch --list | awk '/^\* \(.*detached / {ref=$$0; sub(/.*detached [^ ]+ /, "", ref); sub(/\)$$/, "", ref); print ref; exit;} /^\* / {ref=$$0; sub(/^\* /, "", ref); print ref; exit}');\
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | 	if test "$$(git rev-parse --short HEAD)" != "$$ref"; then echo "$$ref"; fi)) | 
					
						
							|  |  |  | else | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | current_rmq_ref := main | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | endif | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | export current_rmq_ref | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(origin base_rmq_ref),undefined) | 
					
						
							|  |  |  | ifneq ($(wildcard .git),) | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | possible_base_rmq_ref := main | 
					
						
							| 
									
										
										
										
											2017-11-28 21:01:13 +08:00
										 |  |  | ifeq ($(possible_base_rmq_ref),$(current_rmq_ref)) | 
					
						
							|  |  |  | base_rmq_ref := $(current_rmq_ref) | 
					
						
							|  |  |  | else | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | base_rmq_ref := $(shell \
 | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | 	(git rev-parse --verify -q main >/dev/null && \
 | 
					
						
							| 
									
										
										
										
											2017-11-28 21:01:13 +08:00
										 |  |  | 	 git rev-parse --verify -q $(possible_base_rmq_ref) >/dev/null && \
 | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | 	 git merge-base --is-ancestor $$(git merge-base main HEAD) $(possible_base_rmq_ref) && \
 | 
					
						
							| 
									
										
										
										
											2017-11-28 21:01:13 +08:00
										 |  |  | 	 echo $(possible_base_rmq_ref)) || \
 | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | 	echo main) | 
					
						
							| 
									
										
										
										
											2017-11-28 21:01:13 +08:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2022-10-04 03:32:04 +08:00
										 |  |  | base_rmq_ref := main | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | endif | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | export base_rmq_ref | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Repository URL selection.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # First, we infer other components' location from the current project
 | 
					
						
							|  |  |  | # repository URL, if it's a Git repository:
 | 
					
						
							|  |  |  | #   - We take the "origin" remote URL as the base
 | 
					
						
							|  |  |  | # - The current project name and repository name is replaced by the
 | 
					
						
							|  |  |  | #   target's properties:
 | 
					
						
							|  |  |  | #       eg. rabbitmq-common is replaced by rabbitmq-codegen
 | 
					
						
							|  |  |  | #       eg. rabbit_common is replaced by rabbitmq_codegen
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # If cloning from this computed location fails, we fallback to RabbitMQ
 | 
					
						
							|  |  |  | # upstream which is GitHub.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-02-13 04:24:07 +08:00
										 |  |  | # Macro to transform eg. "rabbit_common" to "rabbitmq-common".
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | rmq_cmp_repo_name = $(word 2,$(dep_$(1))) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Upstream URL for the current project.
 | 
					
						
							|  |  |  | RABBITMQ_COMPONENT_REPO_NAME := $(call rmq_cmp_repo_name,$(PROJECT)) | 
					
						
							|  |  |  | RABBITMQ_UPSTREAM_FETCH_URL ?= https://github.com/rabbitmq/$(RABBITMQ_COMPONENT_REPO_NAME).git | 
					
						
							|  |  |  | RABBITMQ_UPSTREAM_PUSH_URL ?= git@github.com:rabbitmq/$(RABBITMQ_COMPONENT_REPO_NAME).git | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Current URL for the current project. If this is not a Git clone,
 | 
					
						
							|  |  |  | # default to the upstream Git repository.
 | 
					
						
							|  |  |  | ifneq ($(wildcard .git),) | 
					
						
							|  |  |  | git_origin_fetch_url := $(shell git config remote.origin.url) | 
					
						
							|  |  |  | git_origin_push_url := $(shell git config remote.origin.pushurl || git config remote.origin.url) | 
					
						
							|  |  |  | RABBITMQ_CURRENT_FETCH_URL ?= $(git_origin_fetch_url) | 
					
						
							|  |  |  | RABBITMQ_CURRENT_PUSH_URL ?= $(git_origin_push_url) | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | RABBITMQ_CURRENT_FETCH_URL ?= $(RABBITMQ_UPSTREAM_FETCH_URL) | 
					
						
							|  |  |  | RABBITMQ_CURRENT_PUSH_URL ?= $(RABBITMQ_UPSTREAM_PUSH_URL) | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Macro to replace the following pattern:
 | 
					
						
							|  |  |  | #   1. /foo.git -> /bar.git
 | 
					
						
							|  |  |  | #   2. /foo     -> /bar
 | 
					
						
							|  |  |  | #   3. /foo/    -> /bar/
 | 
					
						
							|  |  |  | subst_repo_name = $(patsubst %/$(1)/%,%/$(2)/%,$(patsubst %/$(1),%/$(2),$(patsubst %/$(1).git,%/$(2).git,$(3)))) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Macro to replace both the project's name (eg. "rabbit_common") and
 | 
					
						
							|  |  |  | # repository name (eg. "rabbitmq-common") by the target's equivalent.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # This macro is kept on one line because we don't want whitespaces in
 | 
					
						
							|  |  |  | # the returned value, as it's used in $(dep_fetch_git_rmq) in a shell
 | 
					
						
							|  |  |  | # single-quoted string.
 | 
					
						
							|  |  |  | dep_rmq_repo = $(if $(dep_$(2)),$(call subst_repo_name,$(PROJECT),$(2),$(call subst_repo_name,$(RABBITMQ_COMPONENT_REPO_NAME),$(call rmq_cmp_repo_name,$(2)),$(1))),$(pkg_$(1)_repo)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dep_rmq_commits = $(if $(dep_$(1)),					\
 | 
					
						
							|  |  |  | 		  $(wordlist 3,$(words $(dep_$(1))),$(dep_$(1))),	\
 | 
					
						
							|  |  |  | 		  $(pkg_$(1)_commit)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | define dep_fetch_git_rmq | 
					
						
							|  |  |  | 	fetch_url1='$(call dep_rmq_repo,$(RABBITMQ_CURRENT_FETCH_URL),$(1))'; \
 | 
					
						
							|  |  |  | 	fetch_url2='$(call dep_rmq_repo,$(RABBITMQ_UPSTREAM_FETCH_URL),$(1))'; \
 | 
					
						
							|  |  |  | 	if test "$$$$fetch_url1" != '$(RABBITMQ_CURRENT_FETCH_URL)' && \
 | 
					
						
							|  |  |  | 	 git clone -q -n -- "$$$$fetch_url1" $(DEPS_DIR)/$(call dep_name,$(1)); then \
 | 
					
						
							|  |  |  | 	    fetch_url="$$$$fetch_url1"; \
 | 
					
						
							|  |  |  | 	    push_url='$(call dep_rmq_repo,$(RABBITMQ_CURRENT_PUSH_URL),$(1))'; \
 | 
					
						
							|  |  |  | 	elif git clone -q -n -- "$$$$fetch_url2" $(DEPS_DIR)/$(call dep_name,$(1)); then \
 | 
					
						
							|  |  |  | 	    fetch_url="$$$$fetch_url2"; \
 | 
					
						
							|  |  |  | 	    push_url='$(call dep_rmq_repo,$(RABBITMQ_UPSTREAM_PUSH_URL),$(1))'; \
 | 
					
						
							|  |  |  | 	fi; \
 | 
					
						
							|  |  |  | 	cd $(DEPS_DIR)/$(call dep_name,$(1)) && ( \
 | 
					
						
							|  |  |  | 	$(foreach ref,$(call dep_rmq_commits,$(1)), \
 | 
					
						
							|  |  |  | 	  git checkout -q $(ref) >/dev/null 2>&1 || \
 | 
					
						
							|  |  |  | 	  ) \
 | 
					
						
							|  |  |  | 	(echo "error: no valid pathspec among: $(call dep_rmq_commits,$(1))" \
 | 
					
						
							|  |  |  | 	  1>&2 && false) ) && \
 | 
					
						
							|  |  |  | 	(test "$$$$fetch_url" = "$$$$push_url" || \
 | 
					
						
							|  |  |  | 	 git remote set-url --push origin "$$$$push_url") | 
					
						
							|  |  |  | endef | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-22 17:38:17 +08:00
										 |  |  | define dep_fetch_git_rmq-subfolder | 
					
						
							|  |  |  | 	fetch_url1='https://github.com/rabbitmq/rabbitmq-server.git'; \
 | 
					
						
							|  |  |  | 	fetch_url2='git@github.com:rabbitmq/rabbitmq-server.git'; \
 | 
					
						
							| 
									
										
										
										
											2021-03-23 15:45:21 +08:00
										 |  |  | 	if [ ! -d $(ERLANG_MK_TMP)/rabbitmq-server ]; then \
 | 
					
						
							|  |  |  | 	  if test "$$$$fetch_url1" != '$(RABBITMQ_CURRENT_FETCH_URL)' && \
 | 
					
						
							|  |  |  | 	   git clone -q -n -- "$$$$fetch_url1" $(ERLANG_MK_TMP)/rabbitmq-server; then \
 | 
					
						
							|  |  |  | 	      fetch_url="$$$$fetch_url1"; \
 | 
					
						
							|  |  |  | 	      push_url='$(call dep_rmq_repo,$(RABBITMQ_CURRENT_PUSH_URL),rabbitmq-server)'; \
 | 
					
						
							|  |  |  | 	  elif git clone -q -n -- "$$$$fetch_url2" $(ERLANG_MK_TMP)/rabbitmq-server; then \
 | 
					
						
							|  |  |  | 	      fetch_url="$$$$fetch_url2"; \
 | 
					
						
							|  |  |  | 	      push_url='$(call dep_rmq_repo,$(RABBITMQ_UPSTREAM_PUSH_URL),rabbitmq-server)'; \
 | 
					
						
							|  |  |  | 	  fi; \
 | 
					
						
							| 
									
										
										
										
											2021-03-22 17:38:17 +08:00
										 |  |  | 	fi; \
 | 
					
						
							| 
									
										
										
										
											2021-03-23 15:45:21 +08:00
										 |  |  | 	cd $(ERLANG_MK_TMP)/rabbitmq-server && ( \
 | 
					
						
							| 
									
										
										
										
											2021-03-22 17:38:17 +08:00
										 |  |  | 	$(foreach ref,$(call dep_rmq_commits,$(1)), \
 | 
					
						
							|  |  |  | 	  git checkout -q $(ref) >/dev/null 2>&1 || \
 | 
					
						
							|  |  |  | 	  ) \
 | 
					
						
							|  |  |  | 	(echo "error: no valid pathspec among: $(call dep_rmq_commits,$(1))" \
 | 
					
						
							|  |  |  | 	  1>&2 && false) ) && \
 | 
					
						
							|  |  |  | 	(test "$$$$fetch_url" = "$$$$push_url" || \
 | 
					
						
							|  |  |  | 	 git remote set-url --push origin "$$$$push_url") | 
					
						
							| 
									
										
										
										
											2021-03-23 15:45:21 +08:00
										 |  |  | 	ln -s $(ERLANG_MK_TMP)/rabbitmq-server/deps/$(call dep_name,$(1)) \
 | 
					
						
							| 
									
										
										
										
											2021-03-22 17:38:17 +08:00
										 |  |  | 		$(DEPS_DIR)/$(call dep_name,$(1)); | 
					
						
							|  |  |  | endef | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | # --------------------------------------------------------------------
 | 
					
						
							|  |  |  | # Component distribution.
 | 
					
						
							|  |  |  | # --------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | list-dist-deps:: | 
					
						
							|  |  |  | 	@: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | prepare-dist:: | 
					
						
							|  |  |  | 	@: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --------------------------------------------------------------------
 | 
					
						
							| 
									
										
										
										
											2024-06-21 20:26:53 +08:00
										 |  |  | # Monorepo-specific settings.
 | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | # --------------------------------------------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-30 01:02:05 +08:00
										 |  |  | # If the top-level project is a RabbitMQ component, we override
 | 
					
						
							| 
									
										
										
										
											2020-08-04 23:41:49 +08:00
										 |  |  | # $(DEPS_DIR) for this project to point to the top-level's one.
 | 
					
						
							| 
									
										
										
										
											2024-06-28 18:09:24 +08:00
										 |  |  | #
 | 
					
						
							|  |  |  | # We do the same for $(ERLANG_MK_TMP) as we want to keep the
 | 
					
						
							|  |  |  | # beam cache regardless of where we build. We also want to
 | 
					
						
							|  |  |  | # share Hex tarballs.
 | 
					
						
							| 
									
										
										
										
											2020-07-30 18:06:57 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-06-21 20:26:53 +08:00
										 |  |  | ifneq ($(PROJECT),rabbitmq_server_release) | 
					
						
							|  |  |  | DEPS_DIR ?= $(abspath ..) | 
					
						
							| 
									
										
										
										
											2024-06-28 18:09:24 +08:00
										 |  |  | ERLANG_MK_TMP ?= $(abspath ../../.erlang.mk) | 
					
						
							| 
									
										
										
										
											2020-07-30 18:06:57 +08:00
										 |  |  | DISABLE_DISTCLEAN = 1 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-04 23:41:49 +08:00
										 |  |  | # We disable `make distclean` so $(DEPS_DIR) is not accidentally removed.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-30 01:02:05 +08:00
										 |  |  | ifeq ($(DISABLE_DISTCLEAN),1) | 
					
						
							| 
									
										
										
										
											2016-09-21 00:19:24 +08:00
										 |  |  | ifneq ($(filter distclean distclean-deps,$(MAKECMDGOALS)),) | 
					
						
							|  |  |  | SKIP_DEPS = 1 | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | endif |