blob: 119f91b99e1e4feb9f05d744e9b264abbba7bd68 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  | 
require 'formula'
class Symphony < Formula
  url 'http://www.coin-or.org/download/source/SYMPHONY/SYMPHONY-5.3.3.tgz'
  homepage 'http://www.coin-or.org/projects/SYMPHONY.xml'
  md5 '8c34f9fa49ebff325b984408ff1f92fc'
  def options
    [
     ["--enable-openmp", "Enable openmp support"],
     ["--with-gmpl", "Add in GNU Modeling Lang. support via GLPK"]
    ]
  end
  def install
    args = ["--disable-debug", "--disable-dependency-tracking",
            "--enable-shared=no", # can't get shared libs to work
            "--enable-static-executable",
            "--prefix=#{prefix}"]
    if ARGV.include? "--with-gmpl"
      # Symphony uses a patched version of GLPK for reading MPL files.
      # Use a private version rather than require the Homebrew version of GLPK.
      Dir.chdir 'ThirdParty/Glpk' do
        system "./get.Glpk"
      end
      dir_glpk = Pathname.getwd + 'ThirdParty/Glpk/glpk/src'
      ENV.append "CPPFLAGS", "-I#{dir_glpk}"
      ENV.append "CDEFS", "-DUSE_GLPMPL"
      args << "--with-gmpl"
    end
    if ARGV.include? "--enable-openmp"
      inreplace 'SYMPHONY/config', /^SYM_COMPILE_IN_LP = TRUE/, "SYM_COMPILE_IN_LP = FALSE"
      args << "--enable-openmp"
    end
    system "./configure",  *args
    system "make"
    system "make install"
  end
end
  |