diff options
author | Loïc Hoguin <[email protected]> | 2013-04-30 20:51:37 +0200 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2013-05-01 00:34:22 +0200 |
commit | ed2efbc4a10ef27d6ab42e7bb9db37ac3f47b3c3 (patch) | |
tree | f3f6097c9aad95c0122a4c4f2a91e1806b5ed1ed /Makefile | |
parent | 76e9df51c0abc5f98af01fcc349b7235ae41c50c (diff) | |
download | cowboy-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-- | Makefile | 106 |
1 files changed, 10 insertions, 96 deletions
@@ -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 |