From 729915b138c1ac0529a3c69d5b602b6b316e8fd5 Mon Sep 17 00:00:00 2001 From: argv0 Date: Fri, 15 Apr 2011 03:18:53 +0800 Subject: [PATCH] move app code to apps/ add stage, stagedevrel,docs, test, and dialyzer Makefile targets fix "make rel" target update .gitignore --- riak_core.gitignore | 8 +++- riak_core.rebar.config | 2 + riak_core_multinode.Makefile | 61 +++++++++++++++++++++++++++++- riak_core_multinode.rebar.config | 6 +-- riak_core_multinode.reltool.config | 2 +- riak_core_multinode.template | 16 ++++---- riak_core_multinode.vm.args | 2 +- 7 files changed, 81 insertions(+), 16 deletions(-) diff --git a/riak_core.gitignore b/riak_core.gitignore index dc77f5c..873b49a 100644 --- a/riak_core.gitignore +++ b/riak_core.gitignore @@ -1,3 +1,9 @@ *.beam .eunit -deps/* \ No newline at end of file +deps/* +apps/{{appid}}/ebin +*~ +dev/* +doc/* +rel/{{nodeid}} + diff --git a/riak_core.rebar.config b/riak_core.rebar.config index ca18fe6..7d5f7b5 100644 --- a/riak_core.rebar.config +++ b/riak_core.rebar.config @@ -1,3 +1,5 @@ +{sub_dirs, ["rel", "apps/{{appid}}"]}. +{cover_enabled, true.} {erl_opts, [debug_info, fail_on_warning]}. {deps, [{riak_core, "0.14..*", {git, "git://github.com/basho/riak_core", "master"}} diff --git a/riak_core_multinode.Makefile b/riak_core_multinode.Makefile index af8f65b..ed61453 100644 --- a/riak_core_multinode.Makefile +++ b/riak_core_multinode.Makefile @@ -1,4 +1,4 @@ -.PHONY: deps rel +.PHONY: deps rel stagedevrel all: deps compile @@ -14,6 +14,9 @@ clean: distclean: clean devclean relclean ./rebar delete-deps +test: + ./rebar skip_deps=true eunit + rel: all ./rebar generate @@ -22,9 +25,63 @@ relclean: devrel: dev1 dev2 dev3 +### +### Docs +### +docs: + ./rebar skip_deps=true doc + +## +## Developer targets +## + +stage : rel + $(foreach dep,$(wildcard deps/* wildcard apps/*), rm -rf rel/{{nodeid}}/lib/$(shell basename $(dep))-* && ln -sf $(abspath $(dep)) rel/{{nodeid}}/lib;) + + +stagedevrel: dev1 dev2 dev3 + $(foreach dev,$^,\ + $(foreach dep,$(wildcard deps/* wildcard apps/*), rm -rf dev/$(dev)/lib/$(shell basename $(dep))-* && ln -sf $(abspath $(dep)) dev/$(dev)/lib;)) + +devrel: dev1 dev2 dev3 + + devclean: rm -rf dev dev1 dev2 dev3: mkdir -p dev - (cd rel && ../rebar generate target_dir=../dev/$@ overlay_vars=vars/$@.config) \ No newline at end of file + (cd rel && ../rebar generate target_dir=../dev/$@ overlay_vars=vars/$@.config) + + +## +## Dialyzer +## +APPS = kernel stdlib sasl erts ssl tools os_mon runtime_tools crypto inets \ + xmerl webtool snmp public_key mnesia eunit syntax_tools compiler +COMBO_PLT = $(HOME)/.{{appid}}_combo_dialyzer_plt + +check_plt: deps compile + dialyzer --check_plt --plt $(COMBO_PLT) --apps $(APPS) \ + deps/*/ebin apps/*/ebin + +build_plt: deps compile + dialyzer --build_plt --output_plt $(COMBO_PLT) --apps $(APPS) \ + deps/*/ebin apps/*/ebin + +dialyzer: deps compile + @echo + @echo Use "'make check_plt'" to check PLT prior to using this target. + @echo Use "'make build_plt'" to build PLT prior to using this target. + @echo + @sleep 1 + dialyzer -Wno_return --plt $(COMBO_PLT) deps/*/ebin apps/*/ebin + + +cleanplt: + @echo + @echo "Are you sure? It takes about 1/2 hour to re-build." + @echo Deleting $(COMBO_PLT) in 5 seconds. + @echo + sleep 5 + rm $(COMBO_PLT) \ No newline at end of file diff --git a/riak_core_multinode.rebar.config b/riak_core_multinode.rebar.config index 91f05ca..91aaae8 100644 --- a/riak_core_multinode.rebar.config +++ b/riak_core_multinode.rebar.config @@ -1,7 +1,7 @@ +{sub_dirs, ["rel", "apps/{{appid}}"]}. +{cover_enabled, true}. {erl_opts, [debug_info, fail_on_warning]}. - -{sub_dirs, ["rel"]}. - +{edoc_opts, [{dir, "../../doc"}]}. {deps, [{riak_core, "0.14..*", {git, "git://github.com/basho/riak_core", "master"}} ]}. diff --git a/riak_core_multinode.reltool.config b/riak_core_multinode.reltool.config index 751334c..6d87601 100644 --- a/riak_core_multinode.reltool.config +++ b/riak_core_multinode.reltool.config @@ -1,5 +1,5 @@ {sys, [ - {lib_dirs, ["../../", "../deps/"]}, + {lib_dirs, ["../apps/", "../deps/"]}, {rel, "{{nodeid}}", "1", [ kernel, diff --git a/riak_core_multinode.template b/riak_core_multinode.template index 43f41a3..5d304b4 100644 --- a/riak_core_multinode.template +++ b/riak_core_multinode.template @@ -12,20 +12,20 @@ {template, "riak_core_multinode.vm.args", "rel/files/vm.args"}. %% copy from riak_core -{template, "riak_core.app.src", "src/{{appid}}.app.src"}. -{template, "riak_core_app.erl", "src/{{appid}}_app.erl"}. -{template, "riak_core.erl", "src/{{appid}}.erl"}. -{template, "riak_core.hrl", "src/{{appid}}.hrl"}. -{template, "riak_core_sup.erl", "src/{{appid}}_sup.erl"}. -{template, "riak_core_vnode.erl", "src/{{appid}}_vnode.erl"}. +{template, "riak_core.app.src", "apps/{{appid}}/src/{{appid}}.app.src"}. +{template, "riak_core_app.erl", "apps/{{appid}}/src/{{appid}}_app.erl"}. +{template, "riak_core.erl", "apps/{{appid}}/src/{{appid}}.erl"}. +{template, "riak_core.hrl", "apps/{{appid}}/src/{{appid}}.hrl"}. +{template, "riak_core_sup.erl", "apps/{{appid}}/src/{{appid}}_sup.erl"}. +{template, "riak_core_vnode.erl", "apps/{{appid}}/src/{{appid}}_vnode.erl"}. {template, "riak_core.gitignore", ".gitignore"}. %% rest of multinode stuff -{file, "riak_core_multinode.rebar.config", "rebar.config"}. +{template, "riak_core_multinode.rebar.config", "rebar.config"}. {template, "riak_core_multinode.Makefile", "Makefile"}. {template, "riak_core_multinode.admin-runner", "rel/files/{{nodeid}}-admin"}. {chmod, 8#744, "rel/files/{{nodeid}}-admin"}. -{template, "riak_core_multinode.console", "src/{{appid}}_console.erl"}. +{template, "riak_core_multinode.console", "apps/{{appid}}/src/{{appid}}_console.erl"}. {template, "riak_core_multinode.vars.config", "rel/vars.config"}. {template, "riak_core_multinode.dev1.config", "rel/vars/dev1.config"}. {template, "riak_core_multinode.dev2.config", "rel/vars/dev2.config"}. diff --git a/riak_core_multinode.vm.args b/riak_core_multinode.vm.args index eb8f8fb..ed2a631 100644 --- a/riak_core_multinode.vm.args +++ b/riak_core_multinode.vm.args @@ -1,6 +1,6 @@ ## Name of the node --name \{\{node\}\} +-name {{node}} ## Cookie for distributed erlang -setcookie {{nodeid}}