From 3952a891848b2abaee8b04710171c7ec7af9433a Mon Sep 17 00:00:00 2001 From: Duncan McGreggor Date: Thu, 21 May 2015 17:42:05 -0500 Subject: [PATCH] Updated make file and include to latest. --- Makefile | 2 + resources/make/common.mk | 104 ++++++++++++++++++++------------------- 2 files changed, 56 insertions(+), 50 deletions(-) diff --git a/Makefile b/Makefile index d6f62d1..0e89e1c 100644 --- a/Makefile +++ b/Makefile @@ -1 +1,3 @@ +PROJECT = calrissian + include resources/make/common.mk diff --git a/resources/make/common.mk b/resources/make/common.mk index e062f14..cbd99d3 100644 --- a/resources/make/common.mk +++ b/resources/make/common.mk @@ -1,98 +1,112 @@ -PROJECT = calrissian +ifeq ($(shell which erl),) +$(error Can't find Erlang executable 'erl') +exit 1 +endif + LIB = $(PROJECT) DEPS = ./deps BIN_DIR = ./bin -EXPM = $(BIN_DIR)/expm - SOURCE_DIR = ./src OUT_DIR = ./ebin TEST_DIR = ./test TEST_OUT_DIR = ./.eunit SCRIPT_PATH=$(DEPS)/lfe/bin:.:./bin:"$(PATH)":/usr/local/bin -ERL_LIBS=$(shell pwd):$(shell $(LFETOOL) info erllibs) -EMPTY = -ifeq ($(shell which lfetool),$EMPTY) - LFETOOL=$(BIN_DIR)/lfetool +ifeq ($(shell which lfetool),) +LFETOOL=$(BIN_DIR)/lfetool else - LFETOOL=lfetool +LFETOOL=lfetool endif +ERL_LIBS=.:..:$(shell pwd):$(shell $(LFETOOL) info erllibs) OS := $(shell uname -s) ifeq ($(OS),Linux) - HOST=$(HOSTNAME) + HOST=$(HOSTNAME) endif ifeq ($(OS),Darwin) - HOST = $(shell scutil --get ComputerName) + HOST = $(shell scutil --get ComputerName) endif $(BIN_DIR): mkdir -p $(BIN_DIR) -$(LFETOOL): $(BIN_DIR) - @[ -f $(LFETOOL) ] || \ - curl -L -o ./lfetool https://raw.github.com/lfe/lfetool/master/lfetool && \ +get-lfetool: $(BIN_DIR) + curl -L -o ./lfetool https://raw.github.com/lfe/lfetool/dev-v1/lfetool && \ chmod 755 ./lfetool && \ mv ./lfetool $(BIN_DIR) get-version: - @PATH=$(SCRIPT_PATH) lfetool info version - -$(EXPM): $(BIN_DIR) - @[ -f $(EXPM) ] || \ - PATH=$(SCRIPT_PATH) lfetool install expm $(BIN_DIR) + @PATH=$(SCRIPT_PATH) $(LFETOOL) info version + @echo "Erlang/OTP, LFE, & library versions:" + @ERL_LIBS=$(ERL_LIBS) PATH=$(SCRIPT_PATH) erl \ + -eval "lfe_io:format(\"~p~n\",['$(PROJECT)-util':'get-versions'()])." \ + -noshell -s erlang halt get-deps: @echo "Getting dependencies ..." - @which rebar.cmd >/dev/null 2>&1 && rebar.cmd get-deps || rebar get-deps - @PATH=$(SCRIPT_PATH) lfetool update deps + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) download deps clean-ebin: @echo "Cleaning ebin dir ..." @rm -f $(OUT_DIR)/*.beam clean-eunit: - @PATH=$(SCRIPT_PATH) lfetool tests clean + -@PATH=$(SCRIPT_PATH) $(LFETOOL) tests clean compile: get-deps clean-ebin @echo "Compiling project code and dependencies ..." - @which rebar.cmd >/dev/null 2>&1 && rebar.cmd compile || rebar compile + @which rebar.cmd >/dev/null 2>&1 && \ + PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) rebar.cmd compile || \ + PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) rebar compile compile-no-deps: clean-ebin @echo "Compiling only project code ..." - @which rebar.cmd >/dev/null 2>&1 && rebar.cmd compile skip_deps=true || rebar compile skip_deps=true + @which rebar.cmd >/dev/null 2>&1 && \ + PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) \ + rebar.cmd compile skip_deps=true || \ + PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) rebar compile skip_deps=true -compile-tests: - @PATH=$(SCRIPT_PATH) lfetool tests build +compile-tests: clean-eunit + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) tests build + +repl: compile + @which clear >/dev/null 2>&1 && clear || printf "\033c" + @echo "Starting an LFE REPL ..." + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) repl lfe +pc unicode + +repl-no-deps: compile-no-deps + @which clear >/dev/null 2>&1 && clear || printf "\033c" + @echo "Starting an LFE REPL ..." + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) repl lfe +pc unicode shell: compile @which clear >/dev/null 2>&1 && clear || printf "\033c" - @echo "Starting shell ..." - @PATH=$(SCRIPT_PATH) lfetool repl + @echo "Starting an Erlang shell ..." + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) erl + pc unicode shell-no-deps: compile-no-deps @which clear >/dev/null 2>&1 && clear || printf "\033c" - @echo "Starting shell ..." - @PATH=$(SCRIPT_PATH) lfetool repl + @echo "Starting an Erlang shell ..." + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) erl + pc unicode clean: clean-ebin clean-eunit @which rebar.cmd >/dev/null 2>&1 && rebar.cmd clean || rebar clean check-unit-only: - @PATH=$(SCRIPT_PATH) lfetool tests unit + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) tests unit check-integration-only: - @PATH=$(SCRIPT_PATH) lfetool tests integration + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) tests integration check-system-only: - @PATH=$(SCRIPT_PATH) lfetool tests system + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) tests system check-unit-with-deps: get-deps compile compile-tests check-unit-only -check-unit: compile-no-deps check-unit-only -check-integration: compile check-integration-only -check-system: compile check-system-only -check-all-with-deps: compile check-unit-only check-integration-only \ - check-system-only -check-all: get-deps compile-no-deps - @PATH=$(SCRIPT_PATH) lfetool tests all +check-unit: clean-eunit compile-no-deps check-unit-only +check-integration: clean-eunit compile check-integration-only +check-system: clean-eunit compile check-system-only +check-all-with-deps: clean-eunit compile check-unit-only \ + check-integration-only check-system-only clean-eunit +check-all: get-deps clean-eunit compile-no-deps + @PATH=$(SCRIPT_PATH) ERL_LIBS=$(ERL_LIBS) $(LFETOOL) tests all check: check-unit-with-deps @@ -106,16 +120,6 @@ push-all: git push upstream --tags install: compile - @echo "Installing calrissian ..." + @echo "Installing lumberjack ..." @PATH=$(SCRIPT_PATH) lfetool install lfe -upload: $(EXPM) get-version - @echo "Preparing to upload calrissian ..." - @echo - @echo "Package file:" - @echo - @cat package.exs - @echo - @echo "Continue with upload? " - @read - $(EXPM) publish