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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  | 
# some credit to https://github.com/maddox/magick-installer
require 'formula'
def ghostscript_srsly?
  ARGV.include? '--with-ghostscript'
end
def ghostscript_fonts?
  File.directory? "#{HOMEBREW_PREFIX}/share/ghostscript/fonts"
end
class Imagemagick < Formula
  homepage 'http://www.imagemagick.org'
  # upstream's stable tarballs tend to disappear, so we provide our own mirror
  url 'http://downloads.sf.net/project/machomebrew/mirror/ImageMagick-6.7.7-6.tar.bz2'
  sha256 'fb32cdeef812bc2c3bb9e9f48f3cfc75c1e2640f784ef2670a0dbf948e538677'
  head 'https://www.imagemagick.org/subversion/ImageMagick/trunk',
    :using => UnsafeSubversionDownloadStrategy
  depends_on 'pkg-config' => :build
  depends_on 'jpeg'
  depends_on :libpng
  depends_on 'ghostscript' => :recommended if ghostscript_srsly?
  depends_on 'libtiff' if ARGV.include? '--use-tiff'
  depends_on 'little-cms' if ARGV.include? '--use-cms'
  depends_on 'jasper' if ARGV.include? '--use-jpeg2000'
  depends_on 'libwmf' if ARGV.include? '--use-wmf'
  depends_on 'librsvg' if ARGV.include? '--use-rsvg'
  depends_on 'liblqr' if ARGV.include? '--use-lqr'
  depends_on 'openexr' if ARGV.include? '--use-exr'
  def skip_clean? path
    path.extname == '.la'
  end
  def patches
    # Fixes xml2-config that can be missing --prefix.  See issue #11789
    # Remove if the final Mt. Lion xml2-config supports --prefix.
    # Not reporting this upstream until the final Mt. Lion is released.
    DATA
  end
  def options
    [
      ['--with-ghostscript', 'Compile against ghostscript (not recommended.)'],
      ['--use-tiff', 'Compile with libtiff support.'],
      ['--use-cms', 'Compile with little-cms support.'],
      ['--use-jpeg2000', 'Compile with jasper support.'],
      ['--use-wmf', 'Compile with libwmf support.'],
      ['--use-rsvg', 'Compile with librsvg support.'],
      ['--use-lqr', 'Compile with liblqr support.'],
      ['--use-exr', 'Compile with openexr support.'],
      ['--disable-openmp', 'Disable OpenMP.'],
      ['--enable-hdri', 'Compile with HDRI support enabled'],
      ['--with-magick-plus-plus', 'Compile with C++ interface.'],
      ['--with-quantum-depth-8', 'Compile with a quantum depth of 8 bit'],
      ['--with-quantum-depth-16', 'Compile with a quantum depth of 16 bit'],
      ['--with-quantum-depth-32', 'Compile with a quantum depth of 32 bit'],
    ]
  end
  def install
    args = [ "--disable-osx-universal-binary",
             "--without-perl", # I couldn't make this compile
             "--prefix=#{prefix}",
             "--disable-dependency-tracking",
             "--enable-shared",
             "--disable-static",
             "--with-modules"]
    args << "--disable-openmp" if MacOS.leopard? or ARGV.include? '--disable-openmp'
    args << "--without-gslib" unless ARGV.include? '--with-ghostscript'
    args << "--with-gs-font-dir=#{HOMEBREW_PREFIX}/share/ghostscript/fonts" \
                unless ghostscript_srsly? or ghostscript_fonts?
    args << "--without-magick-plus-plus" unless ARGV.include? '--with-magick-plus-plus'
    args << "--enable-hdri=yes" if ARGV.include? '--enable-hdri'
    if ARGV.include? '--with-quantum-depth-32'
      quantum_depth = 32
    elsif ARGV.include? '--with-quantum-depth-16'
      quantum_depth = 16
    elsif ARGV.include? '--with-quantum-depth-8'
      quantum_depth = 8
    end
    args << "--with-quantum-depth=#{quantum_depth}" if quantum_depth
    args << "--with-rsvg" if ARGV.include? '--use-rsvg'
    # versioned stuff in main tree is pointless for us
    inreplace 'configure', '${PACKAGE_NAME}-${PACKAGE_VERSION}', '${PACKAGE_NAME}'
    system "./configure", *args
    system "make install"
  end
  def caveats
    unless ghostscript_fonts? or ghostscript_srsly?
      <<-EOS.undent
      Some tools will complain unless the ghostscript fonts are installed to:
        #{HOMEBREW_PREFIX}/share/ghostscript/fonts
      EOS
    end
  end
  def test
    system "#{bin}/identify", "/Library/Application Support/Apple/iChat Icons/Flags/Argentina.gif"
  end
end
__END__
--- a/configure	2012-02-25 09:03:23.000000000 -0800
+++ b/configure	2012-04-26 03:32:15.000000000 -0700
@@ -31924,7 +31924,7 @@
         # Debian installs libxml headers under /usr/include/libxml2/libxml with
         # the shared library installed under /usr/lib, whereas the package
         # installs itself under $prefix/libxml and $prefix/lib.
-        xml2_prefix=`xml2-config --prefix`
+        xml2_prefix=/usr
         if test -d "${xml2_prefix}/include/libxml2"; then
             CPPFLAGS="$CPPFLAGS -I${xml2_prefix}/include/libxml2"
         fi
  |