def make(*args)
      options = args.last.is_a?(Hash) ? args.pop : {}

      make = options.delete(:bin) ||
        # Prefer gmake on non-windows environments.
        if !windows? && Omnibus.which("gmake")
          env = options.delete(:env) || {}
          env = { "MAKE" => "gmake" }.merge(env)
          options[:env] = env
          "gmake"
        else
          "make"
        end

      options[:in_msys_bash] = true
      make_cmd = ([make] + args).join(" ").strip
      command(make_cmd, options)
    end
def make(*args)
      options = args.last.is_a?(Hash) ? args.pop : {}

      make = options.delete(:bin) ||
        # Prefer gmake on non-windows environments.
        if !windows? && Omnibus.which("gmake")
          env = options.delete(:env) || {}
          env = { "MAKE" => "gmake" }.merge(env)
          options[:env] = env
          "gmake"
        else
          "make"
        end

      options[:in_msys_bash] = true
      make_cmd = ([make] + args).join(" ").strip
      command(make_cmd, options)
    end
Execute the given make command. When present, this method will prefer the
 use of +gmake+ over +make+. If applicable, this method will also set
 the `MAKE=gmake` environment variable when gmake is to be preferred.

 On windows you need to have the msys-base package (or some equivalent)
 before you can invoke this.

 @example With no arguments
   make

 @example With arguments
   make 'install'

 @example With custom make bin
   make 'install', bin: '/path/to/custom/make'

 @param (see #command)
 @return (see #command)