A Make compiler for Mix
Find a file
Jean Klingler 69cd9f4d23
Fix warnings on 1.19 (#93)
* Remove unused require Logger

* Fix warning on 1.19 by setting test_ignore_filters
2025-10-04 14:20:11 +02:00
.github/workflows Fix ubuntu-version and change setup-elixir to setup-beam (#70) 2023-02-08 13:28:20 +01:00
lib Fix warnings on 1.19 (#93) 2025-10-04 14:20:11 +02:00
test Update compile.make_test.exs 2025-01-27 20:01:40 +01:00
.formatter.exs Format the codebase and check for formatted files on Travis CI 2018-02-15 13:05:30 -08:00
.gitignore Add code and tests for the :make compiler 2016-05-14 19:19:46 +02:00
CHANGELOG.md Release v0.9.0 2024-11-12 12:06:08 +01:00
mix.exs Fix warnings on 1.19 (#93) 2025-10-04 14:20:11 +02:00
mix.lock Release v0.9.0 2024-11-12 12:06:08 +01:00
PRECOMPILATION_GUIDE.md Add more details on priv artifacts (#90) 2025-01-28 10:31:15 +01:00
README.md Precompilation updates 2022-08-17 13:36:18 +02:00

A Make compiler for Mix

Build Status Hex version

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

Usage

The package can be installed by adding elixir_make to your list of dependencies in mix.exs:

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:

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

  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.