diff options
| author | Martin Williams | 2014-02-05 14:50:59 +0000 |
|---|---|---|
| committer | Mike McQuaid | 2014-02-05 14:51:31 +0000 |
| commit | 486ec372921069dd0dc185376ea0a192f1f108ff (patch) | |
| tree | 869968585424a8eacb7bd0fdb60edd095a43e845 | |
| parent | fd0b6b7c96c6fc7b31ef52c018b682fb104a1684 (diff) | |
| download | homebrew-486ec372921069dd0dc185376ea0a192f1f108ff.tar.bz2 | |
gnuplot: fix AquaTerm 1.1.1 library detection
Gnuplot supports use of AquaTerm as an output device on OSX, provided
it detects an installed AquaTerm at build time. AquaTerm provides its
support through a framework named 'AquaTerm', which is installed in the
standard location '/Library/Frameworks'.
Gnuplot v4.6.3 does not detect the current version of AquaTerm, v1.1.1,
which was released in July 2012. This is due to a small change to the
standard AquaTerm installation, which is designed to encourage client
software to link to the framework using '-framework' style compiler
options, in place of the traditional library style options. Gnuplot's
trunk (v4.7) does now use this '-framework' style.
References:
https://github.com/AquaTerm/AquaTerm/blob/v1.1.1/aquaterm/ReleaseNotes#L1-11
https://github.com/AquaTerm/AquaTerm/blob/v1.1.1/aquaterm/INSTALL#L7-15
This formula change modifies Gnuplot 4.6.x's configure script to
generate '-framework' style options, thereby allowing a standard
installation of AquaTerm v1.1.1 to be detected. It also makes a minor
modification to an 'import' specification, which is probably only of
relevance on a case sensitive file system.
Gnuplot trunk now includes a '--with-aquaterm' configure option, which
is required before it will attempt to detect AquaTerm. This change adds
a 'noaquaterm' option to the formula to support this (so we default to
--with-aquaterm). The option will also be effective with Gnuplot v4.6.x.
Closes #25121.
Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
| -rw-r--r-- | Library/Formula/gnuplot.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Library/Formula/gnuplot.rb b/Library/Formula/gnuplot.rb index 6e9f9786e..934a42224 100644 --- a/Library/Formula/gnuplot.rb +++ b/Library/Formula/gnuplot.rb @@ -30,6 +30,7 @@ class Gnuplot < Formula option 'tests', 'Verify the build with make check (1 min)' option 'without-emacs', 'Do not build Emacs lisp files' option 'latex', 'Build with LaTeX support' + option 'without-aquaterm', 'Do not build AquaTerm support' depends_on 'pkg-config' => :build depends_on LuaRequirement unless build.include? 'nolua' @@ -43,6 +44,26 @@ class Gnuplot < Formula depends_on :tex if build.include? 'latex' def install + if build.with? "aquaterm" + # Add "/Library/Frameworks" to the default framework search path, so that an + # installed AquaTerm framework can be found. Brew does not add this path + # when building against an SDK (Nov 2013). + ENV.prepend "CPPFLAGS", "-F/Library/Frameworks" + ENV.prepend "LDFLAGS", "-F/Library/Frameworks" + + unless build.head? + # Fix up Gnuplot v4.6.x to accommodate framework style linking. This is + # required with a standard install of AquaTerm 1.1.1 and is supported under + # earlier versions of AquaTerm. Refer: + # https://github.com/AquaTerm/AquaTerm/blob/v1.1.1/aquaterm/ReleaseNotes#L1-11 + # https://github.com/AquaTerm/AquaTerm/blob/v1.1.1/aquaterm/INSTALL#L7-15 + inreplace "configure", "-laquaterm", "-framework AquaTerm" + inreplace "term/aquaterm.trm", "<aquaterm/AQTAdapter.h>", "<AquaTerm/AQTAdapter.h>" + end + elsif !build.head? + inreplace "configure", "-laquaterm", "" + end + # Help configure find libraries readline = Formula.factory 'readline' pdflib = Formula.factory 'pdflib-lite' @@ -61,6 +82,7 @@ class Gnuplot < Formula args << '--enable-qt' if build.include? 'qt' args << '--without-lua' if build.include? 'nolua' args << '--without-lisp-files' if build.include? 'without-emacs' + args << build.with?('aquaterm') ? '--with-aquaterm' : '--without-aquaterm' if build.include? 'latex' args << '--with-latex' @@ -81,4 +103,15 @@ class Gnuplot < Formula def test system "#{bin}/gnuplot", "--version" end + + def caveats + if build.with? "aquaterm" + <<-EOS.undent + AquaTerm support will only be built into Gnuplot if the standard AquaTerm + package from SourceForge has already been installed onto your system. + If you subsequently remove AquaTerm, you will need to uninstall and then + reinstall Gnuplot. + EOS + end + end end |
