aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2013-04-30 20:51:37 +0200
committerLoïc Hoguin <[email protected]>2013-05-01 00:34:22 +0200
commited2efbc4a10ef27d6ab42e7bb9db37ac3f47b3c3 (patch)
treef3f6097c9aad95c0122a4c4f2a91e1806b5ed1ed /Makefile
parent76e9df51c0abc5f98af01fcc349b7235ae41c50c (diff)
downloadcowboy-ed2efbc4a10ef27d6ab42e7bb9db37ac3f47b3c3.tar.gz
cowboy-ed2efbc4a10ef27d6ab42e7bb9db37ac3f47b3c3.tar.bz2
cowboy-ed2efbc4a10ef27d6ab42e7bb9db37ac3f47b3c3.zip
Spin-off erlang.mk as a separate project
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile106
1 files changed, 10 insertions, 96 deletions
diff --git a/Makefile b/Makefile
index 97fb8ff..dfdd851 100644
--- a/Makefile
+++ b/Makefile
@@ -1,112 +1,26 @@
# See LICENSE for licensing information.
PROJECT = cowboy
-ERLC_OPTS ?= -Werror +debug_info +warn_export_all +warn_export_vars \
- +warn_shadow_vars +warn_obsolete_guard # +bin_opt_info +warn_missing_spec
-# Dependencies.
-
-dep_ranch = https://github.com/extend/ranch.git 0.8.1
-
-DEPS_DIR ?= $(CURDIR)/deps
-export DEPS_DIR
-
-define get_dep =
- @mkdir -p $(DEPS_DIR)
- git clone -n -- $(word 1,$(dep_$(1))) $(DEPS_DIR)/$(1)
- cd $(DEPS_DIR)/$(1) ; git checkout -q $(word 2,$(dep_$(1)))
-endef
-
-# Makefile tweaks.
-
-V ?= 0
-
-appsrc_verbose_0 = @echo " APP " $(PROJECT).app.src;
-appsrc_verbose = $(appsrc_verbose_$(V))
-
-erlc_verbose_0 = @echo " ERLC " $(?F);
-erlc_verbose = $(erlc_verbose_$(V))
-
-gen_verbose_0 = @echo " GEN " $@;
-gen_verbose = $(gen_verbose_$(V))
-
-.PHONY: all clean-all app clean deps clean-deps docs clean-docs \
- build-tests tests autobahn build-plt dialyze
-
-# Application.
-
-all: deps app
-
-clean-all: clean clean-deps clean-docs
- $(gen_verbose) rm -rf .$(PROJECT).plt $(DEPS_DIR) logs
+# Options.
-MODULES = $(shell ls src/*.erl | sed 's/src\///;s/\.erl/,/' | sed '$$s/.$$//')
-
-app: ebin/$(PROJECT).app
- $(appsrc_verbose) cat src/$(PROJECT).app.src \
- | sed 's/{modules, \[\]}/{modules, \[$(MODULES)\]}/' \
- > ebin/$(PROJECT).app
-
-COMPILE_FIRST = src/cowboy_middleware.erl src/cowboy_sub_protocol.erl
-
-ebin/$(PROJECT).app: src/*.erl
- @mkdir -p ebin/
- $(erlc_verbose) erlc -v $(ERLC_OPTS) -o ebin/ -pa ebin/ \
- $(COMPILE_FIRST) $?
-
-clean:
- $(gen_verbose) rm -rf ebin/ test/*.beam erl_crash.dump
+COMPILE_FIRST = cowboy_middleware cowboy_sub_protocol
+CT_SUITES = eunit http ws
+PLT_APPS = crypto public_key ssl
# Dependencies.
-$(DEPS_DIR)/ranch:
- $(call get_dep,ranch)
-
-deps: $(DEPS_DIR)/ranch
- @$(MAKE) -C $(DEPS_DIR)/ranch
-
-clean-deps:
- -@$(MAKE) -C $(DEPS_DIR)/ranch clean
-
-# Documentation.
-
-docs: clean-docs
- $(gen_verbose) erl -noshell \
- -eval 'edoc:application($(PROJECT), ".", []), init:stop().'
-
-clean-docs:
- $(gen_verbose) rm -f doc/*.css doc/*.html doc/*.png doc/edoc-info
+DEPS = ranch
+dep_ranch = https://github.com/extend/ranch.git 0.8.1
-# Tests.
+# Standard targets.
-build-tests:
- $(gen_verbose) erlc -v $(ERLC_OPTS) \
- -o test/ test/*.erl test/*/*.erl -pa ebin/
+include erlang.mk
-CT_RUN = ct_run \
- -no_auto_compile \
- -noshell \
- -pa ebin $(DEPS_DIR)/*/ebin \
- -dir test \
- -logdir logs
-# -cover test/cover.spec
+# Extra targets.
-tests: ERLC_OPTS += -DTEST=1 +'{parse_transform, eunit_autoexport}'
-tests: clean clean-deps deps app build-tests
- @mkdir -p logs/
- @$(CT_RUN) -suite eunit_SUITE http_SUITE ws_SUITE
- $(gen_verbose) rm -f test/*.beam
+.PHONY: autobahn
autobahn: clean clean-deps deps app build-tests
@mkdir -p logs/
@$(CT_RUN) -suite autobahn_SUITE
-
-# Dialyzer.
-
-build-plt: deps app
- @dialyzer --build_plt --output_plt .$(PROJECT).plt \
- --apps erts kernel stdlib crypto public_key ssl $(DEPS_DIR)/ranch
-
-dialyze:
- @dialyzer --src src --plt .$(PROJECT).plt --no_native \
- -Werror_handling -Wrace_conditions -Wunmatched_returns # -Wunderspecs