diff options
Diffstat (limited to 'docs/en/erlang.mk/1/guide/overview.asciidoc')
-rw-r--r-- | docs/en/erlang.mk/1/guide/overview.asciidoc | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/docs/en/erlang.mk/1/guide/overview.asciidoc b/docs/en/erlang.mk/1/guide/overview.asciidoc new file mode 100644 index 00000000..8fa57fe4 --- /dev/null +++ b/docs/en/erlang.mk/1/guide/overview.asciidoc @@ -0,0 +1,87 @@ +[[overview]] +== Overview + +Now that you know how to get started, let's take a look at +what Erlang.mk can do for you. + +=== Building your project + +Erlang.mk is first and foremost a build tool. It is especially +tailored for Erlang developers and follows widely accepted +practices in the Erlang community. + +Erlang.mk will happily build all xref:building[Erlang-specific files] +you throw at it. Other kinds of files too, like C or C++ code +when you are working on xref:ports[a NIF or a port driver]. + +Erlang.mk embraces the concept of xref:deps[source dependencies]. +It can fetch dependency source code using a variety of mechanisms, +including fetching from Git, Mercurial or SVN. + +Erlang.mk will automatically xref:relx[generate releases] +when applicable. It can also xref:escript[generate escripts]. + +=== Exploring the package index + +Erlang.mk comes with a xref:deps[built-in package index]. +It is built as an extension of the dependency system and is +meant to be used for discovery purposes. + +No package is ever installed, they are only used as dependencies +and are always project-specific. They can be thought of as a +shortcut over plain dependencies. + +You can get a list of all packages known to Erlang.mk by using +the `search` target: + +[source,bash] +$ make search + +You can also use this target to search across all packages, for +example to find all packages related to Cowboy: + +[source,bash] +$ make search q=cowboy + +=== Generating documentation + +Erlang.mk supports _EDoc_ and _Asciidoc_. + +xref:edoc[EDoc] generates HTML documentation directly from +your source code. + +While it is convenient, ask yourself: if all the documentation is +inside the source code, why not just open the source code directly? +That's where _Asciidoc_ comes in. + +The xref:asciidoc[Asciidoc] plugin expects all documentation +to be separate from source. It will generate HTML, PDF, man pages and +more from the documentation you write in the 'doc/src/' folder in +your repository. + +=== Running tests + +Erlang.mk supports a lot of different testing and static +analysis tools. + +The xref:shell[make shell] command allows you +to test your project manually. You can automate these +unit tests with xref:eunit[EUnit] and test +your entire system with xref:ct[Common Test]. +xref:coverage[Code coverage] can of course +be enabled during tests. + +Erlang.mk comes with features to make your life easier when +setting up and using xref:ci[Continuous integration]. + +On the static analysis side of things, Erlang.mk comes with +support for xref:dialyzer[Dialyzer] and xref:xref[Xref], +to perform success typing analysis and cross referencing +of the code. + +=== Need more? + +Not convinced yet? You can read about xref:why[why you should use Erlang.mk] +and its xref:history[history]. And if you're still not +convinced after that, it's OK! The world would be boring if +everyone agreed on everything all the time. |