Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

84 lines (64 sloc) 2.217 kb
# ----------------------------------------------------
# Application version
# ----------------------------------------------------
APP_NAME=$(PACKAGE_NAME)
VSN=$(PACKAGE_VERSION)
# ----------------------------------------------------
# FLAGS
# ----------------------------------------------------
ERL_FLAGS =
ERL_INCLUDE = -I../include
ERL_BEHAV_PATH = -pz ../ebin
ERL_COMPILE_FLAGS = $(ERL_INCLUDE) $(ERL_BEHAV_PATH)
EBIN ?= ../ebin
ESRC ?= .
EMULATOR = beam
ERLC_WFLAGS = -W
ERLC = erlc $(ERLC_WFLAGS) $(ERLC_FLAGS)
ERL = erl -boot start_clean
$(EBIN)/%.beam: $(ESRC)/%.erl
@echo " ERLC $<"
@$(ERLC) $(ERL_FLAGS) $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
.erl.beam:
$(ERLC) $(ERL_FLAGS) $(ERL_COMPILE_FLAGS) -o$(dir $@) $<
# ----------------------------------------------------
# Target Specs
# ----------------------------------------------------
MODULES = $(shell find . -name \*.erl | sed 's:^\./::' | sed 's/\.erl//')
MODULES_STRING_LIST = $(shell find . -name \*.erl | sed 's:^\./::' | sed 's/\.erl/,/')
BEHAV_MODULES = $(shell find . -name \*.erl | xargs grep -l behaviour_info | sed 's:^\./::' | sed 's/\.erl//')
ERL_FILES= $(MODULES:%=%.erl)
DOC_FILES=$(ERL_FILES)
APP_FILE= $(APP_NAME).app
APP_SRC= $(APP_FILE).src
APP_TARGET= $(EBIN)/$(APP_FILE)
BEAMS= $(MODULES:%=$(EBIN)/%.$(EMULATOR))
BEHAV_BEAMS= $(BEHAV_MODULES:%=$(EBIN)/%.$(EMULATOR))
TARGET_FILES= $(BEHAV_BEAMS) $(BEAMS) $(APP_TARGET) $(APPUP_TARGET)
# ----------------------------------------------------
# Targets
# ----------------------------------------------------
all debug opt: $(EBIN) $(TARGET_FILES)
# Note: In the open-source build clean must not destroy the preloaded
# beam files.
clean:
rm -f $(TARGET_FILES)
rm -f *~
rm -f core
rm -rf $(EBIN)
rm -rf *html
$(EBIN):
mkdir $(EBIN)
dialyzer: $(TARGET_FILES)
dialyzer --src -r . $(ERL_INCLUDE)
# ----------------------------------------------------
# Special Build Targets
# ----------------------------------------------------
$(APP_TARGET): $(APP_SRC) $(BEAMS)
sed -e 's;%VSN%;$(VSN);' \
-e 's;%APP_NAME%;$(APP_NAME);' \
-e 's;%MODULES%;%MODULES%$(MODULES_STRING_LIST);' \
$< > $<".tmp"
sed -e 's/%MODULES%\(.*\),/\1/' \
$<".tmp" > $@
rm $<".tmp"
Jump to Line
Something went wrong with that request. Please try again.