Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

Add a formula for Proof General 4.1. #14827

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
64 changes: 64 additions & 0 deletions Library/Formula/proof-general.rb
@@ -0,0 +1,64 @@
require 'formula'

class ProofGeneral < Formula
homepage 'http://proofgeneral.inf.ed.ac.uk'
url 'http://proofgeneral.inf.ed.ac.uk/releases/ProofGeneral-4.1.tgz'
sha1 '0dd18bd0bdad8faab76f61bffc8e432c3ed7aeaf'

option 'with-doc', 'Install documentations'
option 'with-emacs=</path/to/emacs>', 'Re-compile the lisp files with a specified emacs'

def which_emacs
ARGV.each do |a|
if a.index('--with-emacs')
emacs = a.sub('--with-emacs=', '')
raise "#{emacs} not found" if not File.exists? "#{emacs}"
ohai "Use Emacs: #{emacs}"

version = `#{emacs} --version | grep -Eo "GNU Emacs \\d+(\\.\\d+)+"`.gsub /\n/, ""
ohai "Emacs version: #{version}"
major = `echo "#{version}" | awk {'print $3'} | cut -d "." -f 1`.gsub /\n/, ""
raise "Only Emacs of major version 23 is supported." if major != "23"
return emacs
end
end
return ""
end

def install
emacs = which_emacs
args = ["PREFIX=#{prefix}",
"DEST_PREFIX=#{prefix}",
"ELISPP=share/emacs/site-lisp/ProofGeneral",
"ELISP_START=#{share}/emacs/site-lisp/site-start.d",
"EMACS=#{emacs}"];

Dir.chdir "ProofGeneral" do
if emacs != ""
system "make clean"
system "make", "compile", *args
end
system "make", "install", *args
man1.install "doc/proofgeneral.1"
info.install "doc/ProofGeneral.info", "doc/PG-adapting.info"

doc.install "doc/ProofGeneral", "doc/PG-adapting" if build.include? 'with-doc'
end
end

def caveats
doc = ""
if build.include? 'with-doc'
doc += <<-EOS.undent
The HTML documentations are available in:
#{HOMEBREW_PREFIX}/share/doc/proof-general
EOS
end

<<-EOS.undent
To use ProofGeneral with Emacs, add the following line to your ~/.emacs file:
(load-file "#{HOMEBREW_PREFIX}/share/emacs/site-lisp/ProofGeneral/generic/proof-site.el")
#{doc}
EOS
end
end