summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--ebin/rabbit.app57
-rw-r--r--ebin/rabbit_app.in20
-rw-r--r--generate_app10
4 files changed, 37 insertions, 60 deletions
diff --git a/Makefile b/Makefile
index 84bb3dfe..e75f2d28 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,8 @@ SOURCE_DIR=src
EBIN_DIR=ebin
INCLUDE_DIR=include
SOURCES=$(wildcard $(SOURCE_DIR)/*.erl)
-TARGETS=$(EBIN_DIR)/rabbit_framing.beam $(patsubst $(SOURCE_DIR)/%.erl, $(EBIN_DIR)/%.beam,$(SOURCES))
+BEAM_TARGETS=$(EBIN_DIR)/rabbit_framing.beam $(patsubst $(SOURCE_DIR)/%.erl, $(EBIN_DIR)/%.beam,$(SOURCES))
+TARGETS=$(EBIN_DIR)/rabbit.app $(BEAM_TARGETS)
WEB_URL=http://stage.rabbitmq.com/
MANPAGES=$(patsubst %.pod, %.gz, $(wildcard docs/*.[0-9].pod))
@@ -39,6 +40,9 @@ ERL_CALL=erl_call -sname $(RABBITMQ_NODENAME) -e
#all: $(EBIN_DIR)/rabbit.boot
all: $(TARGETS)
+$(EBIN_DIR)/rabbit.app: $(EBIN_DIR)/rabbit_app.in $(BEAM_TARGETS)
+ escript generate_app $(EBIN_DIR) < $< > $@
+
$(EBIN_DIR)/%.beam: $(SOURCE_DIR)/%.erl $(INCLUDE_DIR)/rabbit_framing.hrl $(INCLUDE_DIR)/rabbit.hrl
erlc $(ERLC_OPTS) $<
# ERLC_EMULATOR="erl -smp" erlc $(ERLC_OPTS) $<
@@ -57,7 +61,7 @@ dialyze: $(TARGETS)
clean: cleandb
rm -f $(EBIN_DIR)/*.beam
- rm -f $(EBIN_DIR)/rabbit.boot $(EBIN_DIR)/rabbit.script
+ rm -f $(EBIN_DIR)/rabbit.app $(EBIN_DIR)/rabbit.boot $(EBIN_DIR)/rabbit.script
rm -f $(INCLUDE_DIR)/rabbit_framing.hrl $(SOURCE_DIR)/rabbit_framing.erl codegen.pyc
rm -f docs/*.[0-9].gz
@@ -123,7 +127,7 @@ srcdist: distclean
cp BUILD.in $(TARGET_SRC_DIR)/BUILD
elinks -dump -no-references -no-numbering $(WEB_URL)build-server.html \
>> $(TARGET_SRC_DIR)/BUILD
- sed -i 's/%%VERSION%%/$(VERSION)/' $(TARGET_SRC_DIR)/ebin/rabbit.app
+ sed -i 's/%%VERSION%%/$(VERSION)/' $(TARGET_SRC_DIR)/ebin/rabbit_app.in
cp -r $(AMQP_CODEGEN_DIR)/* $(TARGET_SRC_DIR)/codegen/
cp codegen.py Makefile $(TARGET_SRC_DIR)
diff --git a/ebin/rabbit.app b/ebin/rabbit.app
deleted file mode 100644
index 5ecd247b..00000000
--- a/ebin/rabbit.app
+++ /dev/null
@@ -1,57 +0,0 @@
-{application, rabbit, %% -*- erlang -*-
- [{description, "RabbitMQ"},
- {id, "RabbitMQ"},
- {vsn, "%%VERSION%%"},
- {modules, [buffering_proxy,
- rabbit_access_control,
- rabbit_alarm,
- rabbit_amqqueue,
- rabbit_amqqueue_process,
- rabbit_amqqueue_sup,
- rabbit_binary_generator,
- rabbit_binary_parser,
- rabbit_channel,
- rabbit_control,
- rabbit,
- rabbit_error_logger,
- rabbit_error_logger_file_h,
- rabbit_exchange,
- rabbit_framing_channel,
- rabbit_framing,
- rabbit_heartbeat,
- rabbit_load,
- rabbit_log,
- rabbit_memsup_linux,
- rabbit_misc,
- rabbit_mnesia,
- rabbit_multi,
- rabbit_networking,
- rabbit_node_monitor,
- rabbit_persister,
- rabbit_reader,
- rabbit_router,
- rabbit_sasl_report_file_h,
- rabbit_sup,
- rabbit_tests,
- rabbit_tracer,
- rabbit_writer,
- tcp_acceptor,
- tcp_acceptor_sup,
- tcp_client_sup,
- tcp_listener,
- tcp_listener_sup]},
- {registered, [rabbit_amqqueue_sup,
- rabbit_log,
- rabbit_node_monitor,
- rabbit_persister,
- rabbit_router,
- rabbit_sup,
- rabbit_tcp_client_sup]},
- {applications, [kernel, stdlib, sasl, mnesia, os_mon]},
- {mod, {rabbit, []}},
- {env, [{tcp_listeners, [{"0.0.0.0", 5672}]},
- {extra_startup_steps, []},
- {default_user, <<"guest">>},
- {default_pass, <<"guest">>},
- {default_vhost, <<"/">>},
- {memory_alarms, auto}]}]}.
diff --git a/ebin/rabbit_app.in b/ebin/rabbit_app.in
new file mode 100644
index 00000000..e2f36c0f
--- /dev/null
+++ b/ebin/rabbit_app.in
@@ -0,0 +1,20 @@
+{application, rabbit, %% -*- erlang -*-
+ [{description, "RabbitMQ"},
+ {id, "RabbitMQ"},
+ {vsn, "%%VERSION%%"},
+ {modules, []},
+ {registered, [rabbit_amqqueue_sup,
+ rabbit_log,
+ rabbit_node_monitor,
+ rabbit_persister,
+ rabbit_router,
+ rabbit_sup,
+ rabbit_tcp_client_sup]},
+ {applications, [kernel, stdlib, sasl, mnesia, os_mon]},
+ {mod, {rabbit, []}},
+ {env, [{tcp_listeners, [{"0.0.0.0", 5672}]},
+ {extra_startup_steps, []},
+ {default_user, <<"guest">>},
+ {default_pass, <<"guest">>},
+ {default_vhost, <<"/">>},
+ {memory_alarms, auto}]}]}.
diff --git a/generate_app b/generate_app
new file mode 100644
index 00000000..1d75e83c
--- /dev/null
+++ b/generate_app
@@ -0,0 +1,10 @@
+#!/usr/bin/env escript
+%% -*- erlang -*-
+
+main([BeamDir]) ->
+ Modules = [list_to_atom(filename:basename(F, ".beam")) ||
+ F <- filelib:wildcard("*.beam", BeamDir)],
+ {ok, {application, Application, Properties}} = io:read(""),
+ NewProperties = lists:keyreplace(modules, 1, Properties,
+ {modules, Modules}),
+ io:format("~p", [{application, Application, NewProperties}]).