@@ -30,6 +30,7 @@ DEP_PLUGINS = rabbit_common/mk/rabbitmq-build.mk
3030VERBOSE_TEST ?= true
3131MAX_CASES ?= 1
3232
33+ # We are still using Mix for testing.
3334MIX_TEST_OPTS ?= ""
3435MIX_TEST = ERL_COMPILER_OPTIONS=deterministic MIX_ENV=test mix do compile --warnings-as-errors, test --max-cases=$(MAX_CASES ) --warnings-as-errors
3536
@@ -62,33 +63,15 @@ ESCRIPT_EMU_ARGS += -hidden
6263escript-zip ::
6364 $(verbose ) $(ESCRIPT_ZIP ) $(ESCRIPT_ZIP_FILE ) $(ELIXIR_LIBS ) /*
6465
65-
66- # rabbitmq-mix.mk is generated during the creation of the RabbitMQ
67- # source archive. It sets some environment variables to allow
68- # rabbitmq_cli to build offline, using the bundled sources only.
69- -include rabbitmq-mix.mk
70-
71- ACTUAL_ESCRIPTS = $(ESCRIPT_FILE )
72-
7366LINKED_ESCRIPTS = escript/rabbitmq-plugins \
74- escript/rabbitmq-diagnostics \
75- escript/rabbitmq-queues \
76- escript/rabbitmq-streams \
77- escript/vmware-rabbitmq \
78- escript/rabbitmq-upgrade
67+ escript/rabbitmq-diagnostics \
68+ escript/rabbitmq-queues \
69+ escript/rabbitmq-streams \
70+ escript/vmware-rabbitmq \
71+ escript/rabbitmq-upgrade
7972
8073escript :: $(LINKED_ESCRIPTS )
8174
82- # Record the build and link dependency: the target files are linked to
83- # their first dependency.
84- rabbitmq-plugins = escript/rabbitmqctl
85- rabbitmq-diagnostics = escript/rabbitmqctl
86- rabbitmq-queues = escript/rabbitmqctl
87- rabbitmq-streams = escript/rabbitmqctl
88- rabbitmq-upgrade = escript/rabbitmqctl
89- vmware-rabbitmq = escript/rabbitmqctl
90- escript/rabbitmq-plugins escript/rabbitmq-diagnostics escript/rabbitmq-queues escript/rabbitmq-streams escript/rabbitmq-upgrade escript/vmware-rabbitmq : escript/rabbitmqctl
91-
9275# We use hardlinks or symlinks in the `escript` directory and
9376# install's PREFIX when a single escript can have several names (eg.
9477# rabbitmq-plugins, rabbitmq-plugins and rabbitmq-diagnostics).
10992link_escript = ln -f "$(dir $(2 ) )$(notdir $(1 ) ) " "$(2 ) "
11093endif
11194
112- # Elixir dependencies are fetched and compiled as part of the alias
113- # `mix make_all`. We do not fetch and build them in `make deps` because
114- # mix(1) startup time is quite high. Thus we prefer to run it once, even
115- # though it kind of breaks the Erlang.mk model.
95+ # Erlang.mk will fetch dependencies as it now has native Elixir support.
96+ # However we are still using Mix for tests and this means Mix will fetch
97+ # test dependencies.
11698#
11799# We write `y` on mix stdin because it asks approval to install Hex if
118100# it's missing. Another way to do it is to use `mix local.hex` but it
@@ -127,7 +109,7 @@ endif
127109# otherwise mix(1) complains about missing dependencies (the non-prod
128110# ones).
129111
130- $(LINKED_ESCRIPTS ) :
112+ $(LINKED_ESCRIPTS ) : $( ESCRIPT_FILE )
131113 $(verbose ) rm -f " $@ "
132114 $(gen_verbose ) $(call link_escript,$< ,$@ )
133115
@@ -160,19 +142,19 @@ dialyzer:: escript
160142install : $(ESCRIPT_FILE )
161143ifdef PREFIX
162144 $(gen_verbose) mkdir -p "$(DESTDIR)$(PREFIX)"
163- $(verbose) $(foreach script,$(ACTUAL_ESCRIPTS), \
164- cmp -s "$(script )" "$(DESTDIR)$(PREFIX)/$(notdir $(script ))" || \
165- cp "$(script )" "$(DESTDIR)$(PREFIX)/$(notdir $(script ))";)
145+ $(verbose) \
146+ cmp -s "$(ESCRIPT_FILE )" "$(DESTDIR)$(PREFIX)/$(notdir $(ESCRIPT_FILE ))" || \
147+ cp "$(ESCRIPT_FILE )" "$(DESTDIR)$(PREFIX)/$(notdir $(ESCRIPT_FILE ))"
166148 $(verbose) $(foreach script,$(LINKED_ESCRIPTS), \
167- $(call link_escript,$($(notdir $(script)) ),$(DESTDIR)$(PREFIX)/$(notdir $(script)));)
149+ $(call link_escript,$(ESCRIPT_FILE ),$(DESTDIR)$(PREFIX)/$(notdir $(script)));)
168150else
169151 $(verbose) echo "You must specify a PREFIX" 1>&2; false
170152endif
171153
172154clean :: clean-mix
173155
174156clean-mix :
175- $(gen_verbose ) rm -f $(ACTUAL_ESCRIPTS ) $(LINKED_ESCRIPTS )
157+ $(gen_verbose ) rm -f $(ESCRIPT_FILE ) $(LINKED_ESCRIPTS )
176158 $(verbose ) echo y | mix clean
177159
178160format :
0 commit comments