summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile67
1 files changed, 48 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index 66637ee233..7691962901 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,15 @@
-NODENAME=rabbit
-RABBIT_ARGS=
+RABBITMQ_NODENAME=rabbit
+RABBITMQ_SERVER_START_ARGS=
+RABBITMQ_MNESIA_DIR=/tmp/rabbitmq-$(RABBITMQ_NODENAME)-mnesia
+RABBITMQ_LOG_BASE=/tmp
+
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))
WEB_URL=http://stage.rabbitmq.com/
+MANPAGES=$(patsubst %.pod, %.gz, $(wildcard docs/*.[0-9].pod))
ifndef USE_SPECS
# our type specs rely on features / bug fixes in dialyzer that are
@@ -18,9 +22,6 @@ endif
#other args: +native +"{hipe,[o3,verbose]}" -Ddebug=true +debug_info +no_strict_record_tests
ERLC_OPTS=-I $(INCLUDE_DIR) -o $(EBIN_DIR) -Wall -v +debug_info $(shell [ $(USE_SPECS) = "true" ] && echo "-Duse_specs")
-MNESIA_DIR=/tmp/rabbitmq-$(NODENAME)-mnesia
-LOG_BASE=/tmp
-
VERSION=0.0.0
TARBALL_NAME=rabbitmq-server-$(VERSION)
TARGET_SRC_DIR=dist/$(TARBALL_NAME)
@@ -29,7 +30,7 @@ SIBLING_CODEGEN_DIR=../rabbitmq-codegen/
AMQP_CODEGEN_DIR=$(shell [ -d $(SIBLING_CODEGEN_DIR) ] && echo $(SIBLING_CODEGEN_DIR) || echo codegen)
AMQP_SPEC_JSON_PATH=$(AMQP_CODEGEN_DIR)/amqp-0.8.json
-ERL_CALL=erl_call -sname $(NODENAME) -e
+ERL_CALL=erl_call -sname $(RABBITMQ_NODENAME) -e
# for the moment we don't use boot files because they introduce a
# dependency on particular versions of OTP applications
@@ -54,26 +55,43 @@ clean: cleandb
rm -f $(EBIN_DIR)/*.beam
rm -f $(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
cleandb: stop-node
- erl -mnesia dir '"$(MNESIA_DIR)"' -noshell -eval 'lists:foreach(fun file:delete/1, filelib:wildcard(mnesia:system_info(directory) ++ "/*")), halt().'
+ erl -mnesia dir '"$(RABBITMQ_MNESIA_DIR)"' -noshell -eval 'lists:foreach(fun file:delete/1, filelib:wildcard(mnesia:system_info(directory) ++ "/*")), halt().'
############ various tasks to interact with RabbitMQ ###################
+BASIC_SCRIPT_ENVIRONMENT_SETTINGS=\
+ RABBITMQ_NODE_IP_ADDRESS="$(RABBITMQ_NODE_IP_ADDRESS)" \
+ RABBITMQ_NODE_PORT="$(RABBITMQ_NODE_PORT)" \
+ RABBITMQ_LOG_BASE="$(RABBITMQ_LOG_BASE)" \
+ RABBITMQ_MNESIA_DIR="$(RABBITMQ_MNESIA_DIR)"
+
run: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS) -s rabbit" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ RABBITMQ_NODE_ONLY=true \
+ RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS) -s rabbit" \
+ ./scripts/rabbitmq-server
check-mnesia-schema: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) LOG_BASE=$(LOG_BASE) MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-mnesia-current
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ ./scripts/rabbitmq-mnesia-current
run-node: all
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS)" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ RABBITMQ_NODE_ONLY=true \
+ RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS)" \
+ ./scripts/rabbitmq-server
run-tests: all
echo "rabbit_tests:all_tests()." | $(ERL_CALL)
start-background-node: stop-node
- NODE_IP_ADDRESS=$(NODE_IP_ADDRESS) NODE_PORT=$(NODE_PORT) NODE_ONLY=true LOG_BASE=$(LOG_BASE) RABBIT_ARGS="$(RABBIT_ARGS) -detached" MNESIA_DIR=$(MNESIA_DIR) ./scripts/rabbitmq-server ; sleep 1
+ $(BASIC_SCRIPT_ENVIRONMENT_SETTINGS) \
+ RABBITMQ_NODE_ONLY=true \
+ RABBITMQ_SERVER_START_ARGS="$(RABBITMQ_SERVER_START_ARGS) -detached" \
+ ./scripts/rabbitmq-server ; sleep 1
start-rabbit-on-node: all
echo "rabbit:start()." | $(ERL_CALL)
@@ -106,7 +124,7 @@ srcdist: distclean
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
-
+
cp -r $(AMQP_CODEGEN_DIR)/* $(TARGET_SRC_DIR)/codegen/
cp codegen.py Makefile $(TARGET_SRC_DIR)
@@ -123,23 +141,34 @@ distclean: clean
rm -rf dist
find . -name '*~' -exec rm {} \;
-install: all
+%.gz: %.pod
+ pod2man \
+ -n `echo $$(basename $*) | sed -e 's/\.[^.]\+//'` \
+ -s `echo $$(basename $*) | sed -e 's/.*\.\([^.]\+\)/\1/'` \
+ -c "RabbitMQ AMQP Server" \
+ -d "" \
+ -r "" \
+ $< | gzip --best > $@
+
+docs_all: $(MANPAGES)
+
+install: all docs_all
@[ -n "$(TARGET_DIR)" ] || (echo "Please set TARGET_DIR."; false)
@[ -n "$(SBIN_DIR)" ] || (echo "Please set SBIN_DIR."; false)
@[ -n "$(MAN_DIR)" ] || (echo "Please set MAN_DIR."; false)
-
+
mkdir -p $(TARGET_DIR)
cp -r ebin include LICENSE LICENSE-MPL-RabbitMQ INSTALL $(TARGET_DIR)
chmod 0755 scripts/*
mkdir -p $(SBIN_DIR)
- mkdir -p $(MAN_DIR)/man1
cp scripts/rabbitmq-server $(SBIN_DIR)
cp scripts/rabbitmqctl $(SBIN_DIR)
cp scripts/rabbitmq-multi $(SBIN_DIR)
cp scripts/rabbitmq-mnesia-current $(SBIN_DIR)
- for manpage in docs/*.pod ; do \
- pod2man -c "RabbitMQ AMQP Server" -d "" -r "" \
- $$manpage | gzip --best > \
- $(MAN_DIR)/man1/`echo $$manpage | sed -e 's:docs/\(.*\)\.pod:\1\.1\.gz:g'`; \
+ for section in 1 5; do \
+ mkdir -p $(MAN_DIR)/man$$section; \
+ for manpage in docs/*.$$section.pod; do \
+ cp docs/`basename $$manpage .pod`.gz $(MAN_DIR)/man$$section; \
+ done; \
done