0

私が走るときbrew edit ejabberd

require 'formula'

class Ejabberd < Formula
  homepage 'http://www.ejabberd.im'
  url "http://www.process-one.net/downloads/ejabberd/2.1.11/ejabberd-2.1.11.tgz"
  md5 'a70b040c4e7602f47718c8afe8780d50'

  depends_on "openssl" if MacOS.leopard?
  depends_on "erlang"

  def options
    [
      ['--odbc', "Build with ODBC support."],
      ['--32-bit', "Build 32-bit only."]
    ]
  end

  def install
    ENV['TARGET_DIR'] = ENV['DESTDIR'] = "#{lib}/ejabberd/erlang/lib/ejabberd-#{version}"
    ENV['MAN_DIR'] = man
    ENV['SBIN_DIR'] = sbin

    if ARGV.build_32_bit?
      %w{ CFLAGS LDFLAGS }.each do |compiler_flag|
        ENV.remove compiler_flag, "-arch x86_64"
        ENV.append compiler_flag, "-arch i386"
      end
    end

    cd "src" do
      args = ["--prefix=#{prefix}",
              "--sysconfdir=#{etc}",
              "--localstatedir=#{var}"]

      if MacOS.leopard?
        openssl = Formula.factory('openssl')
        args << "--with-openssl=#{openssl.prefix}"
      end

      args << "--enable-odbc" if ARGV.include? '--odbc'

      system "./configure", *args
      system "make"
      system "make install"
    end

    (etc+"ejabberd").mkpath
    (var+"lib/ejabberd").mkpath
    (var+"spool/ejabberd").mkpath
  end

  def caveats; <<-EOS.undent
    If you face nodedown problems, concat your machine name to:
      /private/etc/hosts
    after 'localhost'.
    EOS
  end
end

? に使用する options メソッドを知りたいです。--odbcとを追加--32-bit./configureますか?

  def options
    [
      ['--odbc', "Build with ODBC support."],
      ['--32-bit', "Build 32-bit only."]
    ]
  end
4

1 に答える 1

0

いいえ; これは、コマンド自体に渡すことができるオプションであること--odbcを示します。--32-bitbrew install

スクリプトのさらに下にある「if ARGV.build_32_bit?and if ARGV.include? '--odbc'」では、これらのオプションの1つに合格したかどうかを確認し、それに応じてビルド手順を修正します。

コマンドラインオプションの可用性を通知し、チェックする特定の方法はbrew install、もはや使用されていないと思います。しかし、私は現在の手順が何であるかを確認するために私のMacにいません。

于 2013-01-10T16:49:44.997 に答える