aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2013-01-17 16:46:59 +0100
committerLoïc Hoguin <[email protected]>2013-01-17 17:01:04 +0100
commitd20989e722c50afea4ed510f372bbbd9221b9048 (patch)
tree483fdbcc9ab03c922095ce234f6ef9e957e14b66 /Makefile
parent0a101a324da969e51395d21e2782095a433b2084 (diff)
downloadranch-d20989e722c50afea4ed510f372bbbd9221b9048.tar.gz
ranch-d20989e722c50afea4ed510f372bbbd9221b9048.tar.bz2
ranch-d20989e722c50afea4ed510f372bbbd9221b9048.zip
Do not require rebar to build Ranch
All is done in the Makefile, like with Cowboy.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile53
1 files changed, 34 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index fd627e2..16ddee3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,27 +1,40 @@
# See LICENSE for licensing information.
PROJECT = ranch
+ERLC_OPTS = -Werror +debug_info +warn_export_all # +bin_opt_info +warn_missing_spec
-DIALYZER = dialyzer
-REBAR = rebar
+DEPS_DIR ?= $(CURDIR)/deps
+export DEPS_DIR
-all: app
+.PHONY: all clean-all app clean docs clean-docs tests build-plt dialyze
# Application.
-deps:
- @$(REBAR) get-deps
+all: app
+
+clean-all: clean clean-docs
+ rm -f .$(PROJECT).plt
+ rm -rf $(DEPS_DIR) logs
-app: deps
- @$(REBAR) compile
+MODULES = $(shell ls src/*.erl | sed 's/src\///;s/\.erl/,/' | sed '$$s/.$$//')
+
+app:
+ @mkdir -p ebin/
+ @cat src/$(PROJECT).app.src \
+ | sed 's/{modules, \[\]}/{modules, \[$(MODULES)\]}/' \
+ > ebin/$(PROJECT).app
+ erlc -v $(ERLC_OPTS) -o ebin/ -pa ebin/ \
+ src/$(PROJECT)_transport.erl src/*.erl
clean:
- @$(REBAR) clean
+ rm -rf ebin/
rm -f test/*.beam
rm -f erl_crash.dump
+# Documentation.
+
docs: clean-docs
- @$(REBAR) doc skip_deps=true
+ erl -noshell -eval 'edoc:application($(PROJECT), ".", []), init:stop().'
clean-docs:
rm -f doc/*.css
@@ -31,20 +44,22 @@ clean-docs:
# Tests.
-tests: clean app eunit ct
-
-eunit:
- @$(REBAR) -C rebar.tests.config eunit skip_deps=true
+CT_RUN = ct_run \
+ -pa ebin $(DEPS_DIR)/*/ebin \
+ -dir test \
+ -logdir logs \
+ -cover test/cover.spec
-ct:
- @$(REBAR) -C rebar.tests.config ct skip_deps=true
+tests: clean app
+ @mkdir -p logs/
+ @$(CT_RUN) -suite acceptor_SUITE
# Dialyzer.
-build-plt:
- @$(DIALYZER) --build_plt --output_plt .$(PROJECT).plt \
- --apps kernel stdlib sasl tools inets crypto public_key ssl
+build-plt: app
+ @dialyzer --build_plt --output_plt .$(PROJECT).plt \
+ --apps erts kernel stdlib crypto public_key ssl
dialyze:
- @$(DIALYZER) --src src --plt .$(PROJECT).plt \
+ @dialyzer --src src --plt .$(PROJECT).plt \
-Werror_handling -Wrace_conditions -Wunmatched_returns # -Wunderspecs