Какой инструмент Вы используете для создания программы Erlang?

будет ли это работать?

datatable(field1:string, quota:int, used:int)
[
    "somename", 100, 75
]
| project used, unsued = quota - used
| evaluate narrow()
| project Column, toint(Value)
| render piechart

enter image description here

26
задан Jonas 13 February 2012 в 21:59
поделиться

6 ответов

Мы используем аналогичный Emakefile.

{"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}.

Я использую функцию erlang make для запуска тестов после успешной компиляции.

Извлечение Makefile:

all: compile

compile:
        erlc -o ebin +debug_info erl_make.erl       
        erl -pa ./ebin -eval "erl_make:make(development)" -s init stop -noshell

erl_make.erl

-module(erl_make).

-export([make/1]).

make(Mode) ->
    case make:all([{d, Mode}]) of
        error ->
            error;
        _ ->
            test_suite:test()
    end.
15
ответ дан scatterbrain 28 November 2019 в 06:44
поделиться

Используйте Синан для строительства и Факсен для установки! Проверьте erlware.org. Они намного лучше, чем make-файл и обеспечивают простоту распространения. Они оба активно развиваются и будут представлены в: http://www.manning.com/logan/

2
ответ дан Tristan Sloughter 28 November 2019 в 06:44
поделиться

Я использую Rakefile, вызывая Emakefile. Rakefile для гибкости и Emakefile для скорости !

Эта система сборки довольно мощная, см. erl_rake на GitHub

Создает файлы .app, автоматически создает выпуски, запускается EUnit test. И, учитывая, что он построен на основе Rakefile, я добавил, что для моих проектов на GitHub я настроил старую версию, которую можно легко продвигать в AWS, и запускать тесты с помощью etap.

7
ответ дан 28 November 2019 в 06:44
поделиться

Вот файлы Makefile и Emakefile, которые я обычно использую с make (происхождение неизвестно) .

Makefile:

ERL=erl
APPFILE=myApp.app

all: ebin/$(APPFILE)
    $(ERL) -make 

ebin/$(APPFILE): src/$(APPFILE)
    cp $< $@ 

Emakefile:

{"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}.
6
ответ дан 28 November 2019 в 06:44
поделиться

You can check my Makefiles, i took them from mochiweb or something like that. Sorry but code have some project-specified parts

http://github.com/JLarky/eadc-hub/blob/master/Makefile

MARKDOWN_SOURCES=$(wildcard doc/*.md)
MARKDOWN_TARGETS=$(patsubst doc/%.md,doc/html/%.html,$(MARKDOWN_SOURCES))

all: eadc boot deps

eadc: ebin
cd src && $(MAKE)

deps:
(cd deps/somedeps;$(MAKE);)

docs: erlang-docs # html-docs

erlang-docs: doc/edoc
(cd src;$(MAKE) docs)

html-docs: doc/html $(MARKDOWN_TARGETS)

doc/edoc:
mkdir -p doc/edoc

doc/html:
mkdir -p doc/html

doc/html/%.html: doc/%.md
(title=`grep '^# ' $ $@ ;\
python doc/buildtoc.py  $$t ;\
markdown $$t >> $@ ;\
rm $$t ;\
cat doc/footer.html >> $@)

ebin:
mkdir -p ebin

clean: clean-docs
(cd src;$(MAKE) clean)
(cd deps/*/; $(MAKE) clean)
$(RM) -r priv
$(RM) ebin/*.boot ebin/*.script ebin/*crash.dump ebin/*~ src/*~ priv/*~ *~ \#*\#

clean-docs: clean-html
$(rm) -rf doc/edoc

clean-html:
rm -rf doc/html

boot: ebin/eadc.boot

ebin/eadc.boot: ebin/eadc.rel ebin/eadc.app
erl -pa ebin -noshel -run eadc_utils make_script -run erlang halt

cleandb:
$(RM) -r ebin/Mnesia*

http://github.com/JLarky/eadc-hub/blob/master/support/include.mk

## -*- makefile -*- ## Erlang

ERL := erl
ERLC := $(ERL)c

INCLUDE_DIRS := ../include $(wildcard ../deps/*/include)
EBIN_DIRS := $(wildcard ../deps/*/ebin)
ERLC_FLAGS := -W $(INCLUDE_DIRS:../%=-I ../%) $(EBIN_DIRS:%=-pa %)

ifndef no_debug_info
  ERLC_FLAGS += +debug_info
endif

ifdef debug
  ERLC_FLAGS += -Ddebug
endif

EBIN_DIR := ../ebin
DOC_DIR := ../doc/edoc
EMULATOR := beam

ERL_SOURCES := $(wildcard *.erl)
ERL_HEADERS := $(wildcard *.hrl) $(wildcard ../include/*.hrl)
ERL_OBJECTS := $(ERL_SOURCES:%.erl=$(EBIN_DIR)/%.$(EMULATOR))
ERL_DOCUMENTS := $(ERL_SOURCES:%.erl=$(DOC_DIR)/%.html)
ERL_OBJECTS_LOCAL := $(ERL_SOURCES:%.erl=./%.$(EMULATOR))
APP_FILES := $(wildcard *.app)
REL_FILES := $(wildcard *.rel)
EBIN_FILES_NO_DOCS = $(ERL_OBJECTS) $(APP_FILES:%.app=../ebin/%.app) $(REL_FILES:%.rel=../ebin/%.rel)
EBIN_FILES = $(ERL_DOCUMENTS) $(EBIN_FILES_NO_DOCS)

MODULES = $(ERL_SOURCES:%.erl=%)

../ebin/%.app: %.app
cp $

http://github.com/JLarky/eadc-hub/blob/master/src/Makefile

include ../support/include.mk

all: $(EBIN_FILES_NO_DOCS)

docs: $(ERL_DOCUMENTS)
 *emphasized text*
debug:
$(MAKE) DEBUG=-DDEBUG

clean:
rm -rf $(EBIN_FILES) $(PLUGINS_OBJECTS)
1
ответ дан 28 November 2019 в 06:44
поделиться

Предлагаю свой инструмент :) Eake ... очень похож на грабли из среды Ruby:

http://github.com/andrzejsliwa/eake

или

http://andrzejsliwa.com/2009/05/28/eake-narzedzie-budowania-dla-erlanga-bazujace-na-rake/

Вот пример файла eakefile

-module(eakefile).
-compile([export_all]).
-import(eake, [task/3, namespace/3, run_target/2, run/1]).

execute() -> [

  namespace(db, "test", [
    task(migrate, "That is migration", fun(Params) ->
      io:format("in migration params: ~w", [Params]),
      run_target('db:rollback', [])
    end),

    task(rollback, "That is rollback", fun(_) ->
      io:format("in rollback"),
      run("ls")
    end)
  ])
].

. пример использования:

$ eake db:migrate
$ eake db:migrate db:rollback
$ eake db:migrate=[1,atom]
$ eake db:migrate=name
4
ответ дан 28 November 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: