Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Mix.Tasks.Compile.Sfmt do
@shortdoc "Compiles Sfmt"
def run(_) do
File.mkdir("priv")
{exec, args} = {"make", ["all"]}
if System.find_executable(exec) do
build(exec, args)
Mix.Project.build_structure
:ok
else
nocompiler_error(exec)
end
end
def build(exec, args) do
{result, error_code} = System.cmd(exec, args, stderr_to_stdout: true)
IO.binwrite result
if error_code != 0, do: build_error(exec)
end
defp nocompiler_error(exec) do
raise Mix.Error, message: nocompiler_message(exec)
end
defp build_error(exec) do
raise Mix.Error, message: build_message(exec)
end
defp nocompiler_message(exec) do
"""
Could not find the compiler program `#{exec}`.
"""
end
defp build_message(exec) do
"""
Could not build the program with `#{exec}`.
"""
end
end
defmodule Mix.Tasks.Edoc do
@shortdoc "Make docs using edoc on erlang.mk"
def run(_) do
{result, _error_code} = System.cmd("make", ["docs"], stderr_to_stdout: true)
Mix.shell.info result
:ok
end
end
defmodule Sfmt.Mixfile do
use Mix.Project
def project do
[app: :sfmt,
version: "0.13.2",
description: description,
package: package,
compilers: [:sfmt] ++ Mix.compilers,
aliases: [docs: ["edoc"]],
deps: deps]
end
def application do
[applications: [:kernel, :stdlib, :logger]]
end
defp deps do
[]
end
defp description do
"""
SIMD-oriented Fast Mersenne Twister (SFMT) for Erlang.
"""
end
defp package do
[files: [
"c_src",
"doc/overview.edoc",
"reference_texts",
"rebar.config",
"src",
"test",
"test_scripts",
".gitignore",
".travis.yml",
"CHANGES.md",
"CONTRIBUTING.md",
"Doxyfile",
"LICENSE",
"Makefile",
"Makefile.sfmt",
"README.md",
"erlang.mk",
"mix.exs"
],
maintainers: [
"Kenji Rikitake"
],
licenses: ["simplified BSD"],
build_tools: ["make"],
links: %{"GitHub" => "https://github.com/jj1bdx/sfmt-erlang/",
"Docs" => "http://hexdocs.pm/sfmt"}
]
end
end