aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorEric <[email protected]>2012-09-02 11:48:50 -0500
committerEric <[email protected]>2012-09-02 11:48:50 -0500
commit52882fd5bdefbcec85fcf964ed3899d3ba24c528 (patch)
tree87c1678e8add31fa42b987c5e6f1d07264fc419c /Makefile
downloadrelx-52882fd5bdefbcec85fcf964ed3899d3ba24c528.tar.gz
relx-52882fd5bdefbcec85fcf964ed3899d3ba24c528.tar.bz2
relx-52882fd5bdefbcec85fcf964ed3899d3ba24c528.zip
initial commit of the relcool system
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile75
1 files changed, 75 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..13f14c6
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,75 @@
+# Copyright 2012 Opscode, Inc. All Rights Reserved.
+#
+# This file is provided to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+ERL = $(shell which erl)
+
+ERLFLAGS= -pa $(CURDIR)/.eunit -pa $(CURDIR)/ebin -pa $(CURDIR)/*/ebin
+
+REBAR=$(shell which rebar)
+
+ifeq ($(REBAR),)
+$(error "Rebar not available on this system")
+endif
+
+RELCOOL_PLT=$(CURDIR)/.relcool_plt
+
+.PHONY: all compile doc clean eunit dialyzer typer shell distclean pdf get-deps
+
+all: compile eunit dialyzer
+
+get-deps:
+ $(REBAR) get-deps
+ $(REBAR) compile
+
+compile:
+ $(REBAR) skip_deps=true compile
+
+doc:
+ $(REBAR) doc
+
+eunit: compile
+ $(REBAR) skip_deps=true eunit
+
+$(RELCOOL_PLT):
+ @echo Building local plt at $(RELCOOL_PLT)
+ @echo
+ dialyzer --output_plt $(RELCOOL_PLT) --build_plt \
+ --apps erts kernel stdlib -r deps
+
+dialyzer: $(RELCOOL_PLT)
+ dialyzer --plt $(RELCOOL_PLT) -Wrace_conditions --src src
+
+typer:
+ typer --plt $(RELCOOL_PLT) -r ./src
+
+shell: compile
+# You often want *rebuilt* rebar tests to be available to the
+# shell you have to call eunit (to get the tests
+# rebuilt). However, eunit runs the tests, which probably
+# fails (thats probably why You want them in the shell). This
+# runs eunit but tells make to ignore the result.
+ - @$(REBAR) eunit
+ @$(ERL) $(ERLFLAGS)
+
+pdf:
+ pandoc README.md -o README.pdf
+
+clean:
+ $(REBAR) clean
+
+distclean: clean
+ rm -rf $(RELCOOL_PLT)
+ rm -rvf $(CURDIR)/deps/*