# A Make compiler for Mix [![Build Status](https://github.com/elixir-lang/elixir_make/workflows/CI/badge.svg)](https://github.com/elixir-lang/elixir_make/actions) [![Hex version](https://img.shields.io/hexpm/v/elixir_make.svg "Hex version")](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.