123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- [[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.
|