https://github.com/elixir-lang/elixir_make
A Make compiler for Mix
https://github.com/elixir-lang/elixir_make
Last synced: 4 months ago
JSON representation
A Make compiler for Mix
- Host: GitHub
- URL: https://github.com/elixir-lang/elixir_make
- Owner: elixir-lang
- Created: 2016-05-14T16:47:37.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-01-28T09:31:16.000Z (about 1 year ago)
- Last Synced: 2025-05-03T07:03:29.143Z (10 months ago)
- Language: Elixir
- Homepage:
- Size: 169 KB
- Stars: 192
- Watchers: 17
- Forks: 46
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# A Make compiler for Mix
[](https://github.com/elixir-lang/elixir_make/actions)
[](https://hex.pm/packages/elixir_make)
This project provides a Mix compiler that makes it straight-forward to use makefiles in your Mix projects.
## Documentation
API documentation is available at [https://hexdocs.pm/elixir_make](https://hexdocs.pm/elixir_make)
## Usage
The package can be installed by adding `elixir_make` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:elixir_make, "~> 0.4", runtime: false}]
end
```
Still in your `mix.exs` file, you will need to add `:elixir_make` to your list of compilers in `project/0`:
```elixir
compilers: [:elixir_make] ++ Mix.compilers,
```
And that's it. The command above will invoke `make` for Unix, `nmake` for Windows and `gmake` for FreeBSD and OpenBSD. A "Makefile" file is expected at your project root for Unix systems and "Makefile.win" for Windows systems. Run `mix help compile.elixir_make` for more information and options.
## Publishing a package to Hex.pm
When publishing a package to Hex.pm using `elixir_make` requires you to add
any file (such as the Makefile and any source files) to the `files` option.
See [the hex docs](https://hex.pm/docs/publish#adding-metadata-to-code-classinlinemixexscode)
```elixir
defp package do
[
# ...
files: [
"lib", "LICENSE", "mix.exs", "README.md", # These are the default files
"src/*.[ch]", "Makefile"], # You will need to add something like this.
# ...
]
end
```
## License
Same as Elixir.