if :os.type() == {:unix, :darwin} do brew_prefix = fn pkg, default -> case System.cmd("brew", ["--prefix", pkg], stderr_to_stdout: true) do {path, 0} -> String.trim(path) _ -> default end end openssl = brew_prefix.("openssl@3", brew_prefix.("openssl", "/opt/homebrew/opt/openssl@3")) libyaml = brew_prefix.("libyaml", "/opt/homebrew/opt/libyaml") add_env = fn var, val -> old = System.get_env(var) || "" if not String.contains?(old, val) do new_val = if old == "", do: val, else: val <> " " <> old System.put_env(var, new_val) end end add_path = fn var, val -> old = System.get_env(var) || "" if not String.contains?(old, val) do new_val = if old == "", do: val, else: val <> ":" <> old System.put_env(var, new_val) end end add_env.("CFLAGS", "-I#{openssl}/include -I#{libyaml}/include") add_env.("CPPFLAGS", "-I#{openssl}/include -I#{libyaml}/include") add_env.("LDFLAGS", "-L#{openssl}/lib -L#{libyaml}/lib") add_path.("PKG_CONFIG_PATH", "#{openssl}/lib/pkgconfig") add_path.("PKG_CONFIG_PATH", "#{libyaml}/lib/pkgconfig") end defmodule TURN.Mixfile do use Mix.Project def project() do [ app: :turn, version: "0.7.23", description: "ERP/1 STUN/TURN Server", package: package(), deps: deps() ] end def package do [ files: ~w(config include src mix.exs rebar.config LICENSE NOTICE README.md), licenses: ["Apache-2.0"], maintainers: ["Namdak Tonpa"], name: :turn, links: %{"GitHub" => "https://github.com/erpuno/turn"} ] end def application() do [ mod: {:eturnal_app, []}, extra_applications: [:public_key, :conf, :stun, :influx_udp] ] end def deps() do [ {:ex_doc, "~> 0.11", only: :dev}, {:conf, "~> 0.2.6"}, {:influx_udp, "~> 1.1.1"}, {:stun, "~> 1.2.10"} ] end end