8c29982153
This reverts commit adee5315265cc46aa6a3057071527abb16e1cd94. Turns out one of the "other things" is a dealbreaker. We only create kegs using a formula's canonical name. However, we do not check that this is the case when mapping existing kegs back to formula objects, and thus a keg with a name that happens to be an alias can fool Homebrew into thinking the canonically-named keg exists. So anything that enumerates kegs and then tries to do stuff with the resulting formula objects will just break. This is obviously worse than the debugger being broken, so reverting this for the time being.
106 lines
2.8 KiB
Ruby
106 lines
2.8 KiB
Ruby
require 'formula'
|
|
|
|
class TexInstalled < Requirement
|
|
def message; <<-EOS.undent
|
|
A TeX/LaTeX installation is required to install.
|
|
You can obtain the TeX distribution for Mac OS X from:
|
|
http://www.tug.org/mactex/
|
|
EOS
|
|
end
|
|
def satisfied?
|
|
which 'latex'
|
|
end
|
|
def fatal?
|
|
true
|
|
end
|
|
end
|
|
|
|
class Asymptote < Formula
|
|
homepage 'http://asymptote.sourceforge.net/'
|
|
url 'http://downloads.sourceforge.net/asymptote/asymptote-2.15.src.tgz'
|
|
sha1 'e0fb336c195fb21a39e3d0f3acd4881ce5e170a7'
|
|
|
|
depends_on TexInstalled.new
|
|
env :userpaths # To find TeX
|
|
|
|
depends_on 'readline'
|
|
depends_on 'bdw-gc'
|
|
|
|
def install
|
|
texmfhome = share+'texmf'
|
|
|
|
# see: https://sourceforge.net/tracker/?func=detail&aid=3486838&group_id=120000&atid=685683
|
|
inreplace 'configure', '--no-var-tracking', '' if ENV.compiler == :clang
|
|
|
|
system "./configure", "--prefix=#{prefix}",
|
|
"--enable-gc=#{HOMEBREW_PREFIX}",
|
|
"--with-latex=#{texmfhome}/tex/latex",
|
|
"--with-context=#{texmfhome}/tex/context/third",
|
|
# So that `texdoc` can find manuals
|
|
"--with-docdir=#{texmfhome}/doc"
|
|
system "make"
|
|
ENV.deparallelize
|
|
system "make install"
|
|
end
|
|
|
|
def test
|
|
ENV['TEXMFHOME'] = "#{HOMEBREW_PREFIX}/share/texmf"
|
|
mktemp do
|
|
(Pathname.pwd+'asy_test.tex').write <<-EOS.undent
|
|
\\nonstopmode
|
|
|
|
\\documentclass{minimal}
|
|
\\usepackage{asymptote}
|
|
|
|
\\begin{document}
|
|
Hello, Asymptote!
|
|
|
|
\\begin{asy}
|
|
size(3cm);
|
|
draw((0,0)--(1,0)--(1,1)--(0,1)--cycle);
|
|
\\end{asy}
|
|
|
|
\\end{document}
|
|
EOS
|
|
|
|
system "pdflatex asy_test"
|
|
system "asy asy_test-1.asy"
|
|
system "pdflatex asy_test"
|
|
end
|
|
|
|
return (not $? == 0)
|
|
end
|
|
|
|
def caveats
|
|
caveats = <<-EOS
|
|
1) This formula links the latest version of the Asymptote LaTeX and ConTeXt
|
|
packages into:
|
|
|
|
#{HOMEBREW_PREFIX}/share/texmf
|
|
|
|
In order for these packages to be visible to TeX compilers, the above
|
|
directory will need to be added to the TeX search path:
|
|
|
|
sudo tlmgr conf texmf TEXMFHOME "~/Library/texmf:#{HOMEBREW_PREFIX}/share/texmf"
|
|
|
|
|
|
2) If you want to have Asymptote compiled with support for fftw or gsl
|
|
(fast fourier transforms or the GNU Scientific Library) they must be
|
|
manually installed first:
|
|
|
|
brew install fftw
|
|
brew install gsl
|
|
|
|
They are not compiled by default because they take a long time to compile
|
|
and they are not required by most users. (And they're not included in the
|
|
TeX Live build of Asymptote.)
|
|
|
|
|
|
3) If you wish to use xasy, you must first install the Python Imaging
|
|
Library (PIL):
|
|
|
|
easy_install http://effbot.org/downloads/Imaging-1.1.7.tar.gz
|
|
|
|
EOS
|
|
end
|
|
end
|