homebrew-core/Formula/asymptote.rb

107 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