Skip to content

Commit

Permalink
First commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
jrper committed Apr 27, 2016
0 parents commit b939eae
Show file tree
Hide file tree
Showing 7 changed files with 1,000 additions and 0 deletions.
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# homebrew-supportingsoftware

Homebrew recipes for the supporting software required to compile or install fluidity on Mac OS X. Existing homebrew users should tap the repository with:

`brew tap FluidityProject/supportingsoftware`

A Fluidity installation should then be available with:

`brew install fluidity`
51 changes: 51 additions & 0 deletions fluidity.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

class Fluidity < Formula
desc ""
homepage "http://FluidityProject.github.io"
url "https://github.com/FluidityProject/fluidity.git", :branch => "ElCapitanFixes"
sha256 ""
version "4.13"

depends_on :mpi => [:cc, :cxx, :f77, :f90]
depends_on :fortran
depends_on :x11
depends_on "FluidityProject/supportingsoftware/petsc-fluidity"
depends_on "FluidityProject/supportingsoftware/zoltan"
depends_on "python"
depends_on "numpy"
depends_on "udunits"
depends_on "gnu-sed"
depends_on "vtk5"
depends_on "judy"
depends_on "spatialindex"
depends_on "FluidityProject/supportingsoftware/libspud"

option "enable-2d-adaptivity", "Build and link libmba2 for 2d adaptivity"
option "enable-debug", "Build debug version"

keg_only "Lets test this first!"

fails_with :llvm
fails_with :gcc_4_0

def oprefix(f)
Formula[f].opt_prefix
end

def install
# ENV.deparallelize # if your formula fails when building in parallel

ENV["CPPFLAGS"] = "-I#{oprefix("origimbo/tools/zoltan")}/include -I#{oprefix("vtk5")}/include/vtk-5.10"
ENV["LDFLAGS"] = "-L#{oprefix("vtk5")}/lib/vtk-5.10 -lvtkIO -lvtkHybrid -lvtkGraphics -lvtkRendering -lvtkFiltering -lvtkCommon"

ENV["PETSC_DIR"] = "#{HOMEBREW_PREFIX}/opt/petsc-fluidity"

system "./configure", "--prefix=#{prefix}",
"--with-libspud-root=#{HOMEBREW_PREFIX}",
"--with-spatialindex-root=#{HOMEBREW_PREFIX}",
"--with-judy=#{oprefix("judy")}/lib/libjudy.a"
system "make"
system "make", "install"
end

end
44 changes: 44 additions & 0 deletions libspud.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Documentation: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md
# http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!

class Libspud < Formula
desc ""
homepage ""
url "lp:spud", :using => :bzr
sha256 ""
version "1.1"

# depends_on "cmake" => :build
depends_on "libxml2"
depends_on "python"
depends_on "trang"
depends_on "pygtk" => "with-libglade"
depends_on :fortran

bottle do
root_url "https://github.com/FluidityProject/homebrew-supportingsoftware/releases/download/v1.0/"
cellar :any_skip_relocation
sha256 "caec3fe5d64de3500520d86d8460aec1002dc284a42b1066b8e47d566701105d" => :mavericks
end

env :std

fails_with :llvm

def install
# ENV.deparallelize # if your formula fails when building in parallel

# Remove unrecognized options if warned by configure
system "./configure", "--prefix=#{prefix}"
system "make"
system "make", "install" # if this fails, try separate make/make install steps

inreplace "#{bin}/diamond", "/usr/share/diamond/gui/diamond.svg", "#{prefix}/share/diamond/gui/diamond.svg"

end

test do
system "true"
end
end
93 changes: 93 additions & 0 deletions petsc-fluidity.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Documentation: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Formula-Cookbook.md
# http://www.rubydoc.info/github/Homebrew/homebrew/master/Formula

class PetscFluidity < Formula
desc ""
homepage ""
url "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-lite-3.6.3.tar.gz"
version "3.6.3-fluidity"
sha256 "2458956c876496f3c8160591324459be7c11f2e1ce09ad98347394c67a46d858"

depends_on "cmake" => :build
depends_on :x11 # if your formula requires any X11/XQuartz components
depends_on "hypre"
depends_on "metis"
depends_on "parmetis"
depends_on "scalapack"
depends_on "suite-sparse"
depends_on "mumps"
depends_on "hwloc"
depends_on "netcdf" => "with-fortran"
depends_on "hdf5" => "with-mpi"
depends_on "valgrind"
depends_on :mpi => [:cc, :cxx, :f77, :f90]
depends_on :fortran

bottle do
root_url "https://github.com/FluidityProject/homebrew-supportingsoftware/releases/download/v1.0/"
sha256 "952c231f62acbf308fbe0f42cb42e17a72b2dcc79edeb6295f9c78cb2128dc3b" => :mavericks
end

keg_only "Don't conflict with default homebrew petsc installation."

fails_with :llvm
fails_with :gcc_4_0

def oprefix(f)
Formula[f].opt_prefix
end



def install
ENV.deparallelize

ENV.delete "CC"
ENV.delete "CXX"
ENV.delete "F77"
ENV.delete "FC"

ENV["PETSC_DIR"] = Dir.getwd

system "./configure", "--with-shared-libraries=0",
"CC=#{ENV["MPICC"]}",
"CXX=#{ENV["MPICXX"]}",
"FC=#{ENV["MPIF77"]}",
"F77=#{ENV["MPIFC"]}",
"--with-debugging=0",
"--with-fortran-interfaces=1",
"--download-blacs",
"--with-hypre-dir=#{oprefix("hypre")}",
"--download-ml",
"--download-ctetgen",
"--download-chaco",
"--with-metis-dir=#{oprefix("metis")}",
"--with-parmetis-dir=#{oprefix("parmetis")}",
"--with-netcdf=1",
"--with-netcdf-dir=#{oprefix("netcdf")}",
"--with-hdf5",
"--with-hdf5-dir=#{oprefix("hdf5")}",
"--with-mumps-dir=#{oprefix("mumps")}/libexec",
"--with-scalapack-dir=#{oprefix("scalapack")}",
"--with-suitesparse-dir=#{oprefix("suite-sparse")}",
"--with-scalar-type=real",
"--with-hwloc-dir=#{oprefix("hwloc")}",
"--prefix=#{prefix}"
system "make", "all"
system "make", "install"

end

test do
# `test do` will create, run in and delete a temporary directory.
#
# This test will fail and we won't accept that! It's enough to just replace
# "false" with the main program this formula installs, but it'd be nice if you
# were more thorough. Run the test with `brew test petsc-lite`. Options passed
# to `brew install` such as `--HEAD` also need to be provided to `brew test`.
#
# The installed folder is not in the path, so use the entire path to any
# executables being tested: `system "#{bin}/program", "do", "something"`.
system "false"
end
end
73 changes: 73 additions & 0 deletions transfig.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
class Transfig < Formula
homepage 'http://www.xfig.org'
url 'https://downloads.sourceforge.net/mcj/transfig.3.2.5e.tar.gz'
version '3.2.5e'

depends_on 'homebrew/x11/imake' => :build
depends_on 'jpeg'
depends_on 'ghostscript'
depends_on :x11
depends_on 'gcc'

fails_with :clang do
cause "clang fails to process xfig's imake rules"
end
fails_with :llvm
fails_with :gcc_4_0

env :std

def install
# transfig does not like to execute makefiles in parallel
ENV.deparallelize

# Patch tranfig/Imakefile
inreplace "transfig/Imakefile", "XCOMM BINDIR = /usr/bin/X11",
"BINDIR = #{bin}\n"+ # set install dir for bin
"USRLIBDIR = #{lib}\n" # set install dir for lib
inreplace "transfig/Imakefile", "XCOMM MANDIR = $(MANSOURCEPATH)$(MANSUFFIX)",
"MANDIR = #{man}$(MANSUFFIX)"
inreplace "transfig/Imakefile", "XCOMM USELATEX2E = -DLATEX2E",
"USELATEX2E = -DLATEX2E"

# Patch fig2dev/Imakefile
inreplace "fig2dev/Imakefile", "XCOMM BINDIR = /usr/bin/X11",
"BINDIR = #{bin}\n"+ # set install dir for bin
"USRLIBDIR = #{lib}\n" # set install dir for lib
inreplace "fig2dev/Imakefile", "XCOMM MANDIR = $(MANSOURCEPATH)$(MANSUFFIX)",
"MANDIR = #{man}$(MANSUFFIX)"
inreplace "fig2dev/Imakefile", "XFIGLIBDIR = /usr/local/lib/X11/xfig",
"XFIGLIBDIR = #{share}"
inreplace "fig2dev/Imakefile","XCOMM USEINLINE = -DUSE_INLINE",
"USEINLINE = -DUSE_INLINE"
inreplace "fig2dev/Imakefile", "RGB = $(LIBDIR)/rgb.txt", "RGB = #{MacOS::X11.share}/X11/rgb.txt"
inreplace "fig2dev/Imakefile", "PNGINC = -I/usr/include/X11","PNGINC = -I#{MacOS::X11.include}"
inreplace "fig2dev/Imakefile", "PNGLIBDIR = $(USRLIBDIR)","PNGLIBDIR = #{MacOS::X11.lib}"
inreplace "fig2dev/Imakefile", "ZLIBDIR = $(USRLIBDIR)", "ZLIBDIR = /usr/lib"
inreplace "fig2dev/Imakefile", "XPMLIBDIR = $(USRLIBDIR)", "XPMLIBDIR = #{MacOS::X11.lib}"
inreplace "fig2dev/Imakefile", "XPMINC = -I/usr/include/X11", "XPMINC = -I#{MacOS::X11.include}/X11"
inreplace "fig2dev/Imakefile", "XCOMM DDA4 = -DA4", "DDA4 = -DA4"
inreplace "fig2dev/Imakefile", "FIG2DEV_LIBDIR = /usr/local/lib/fig2dev",
"FIG2DEV_LIBDIR = #{lib}/fig2dev"

# generate Makefiles
system "make clean"
system "xmkmf"
system "make Makefiles"

# build everything
system "make", "CC=#{ENV["CC"]}", "CXX=#{ENV["CXX"]}", 'CCOPTIONS=""'

# install everything
system "make install"
system "make install.man"

end

test do

system "echo hello"

end

end
56 changes: 56 additions & 0 deletions zoltan.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
class Zoltan < Formula
homepage "http://www.cs.sandia.gov/Zoltan"
url "http://www.cs.sandia.gov/~kddevin/Zoltan_Distributions/zoltan_distrib_v3.81.tar.gz"
sha256 "9d6f2f9e2b37456cab7fe6714d51cd6d613374e915e6cc9f7fddcd72e3f38780"

option "without-check", "Skip build-time tests (not recommended)"

depends_on 'parmetis'
depends_on :fortran

mpilang = [:cc, :cxx, :f90]
depends_on :mpi => mpilang

bottle do
root_url "https://github.com/FluidityProject/homebrew-supportingsoftware/releases/download/v1.0/"
sha256 "7ecf099174c6e0687921605777f2a4c666aa83a1f8e8970678156f2dcc8eae90" => :mavericks
end


fails_with :llvm
fails_with :gcc_4_0

ENV["OMPI_FC"] = ENV["FC"]

def oprefix(f)
Formula[f].opt_prefix
end

def install
ENV.deparallelize

args = [
"--prefix=#{prefix}",
"CC=#{ENV["MPICC"]}",
"CXX=#{ENV["MPICXX"]}",
]
args << "--with-parmetis"
args << "--enable-zoltan-cppdriver"
args << "--enable-mpi"
args << "--with-mpi-compilers=yes"
args << "--with-gnumake"
args << "--enable-zoltan-cppdriver"
args << "--disable-examples"
args << "--with-parmetis-libdir=#{oprefix("parmetis")}/lib/"
args << "--with-parmetis-incdir=#{oprefix("parmetis")}/include"
args << "--enable-f90interface"
args << "FC=#{ENV["MPIFC"]}"

mkdir "zoltan-build" do
system "../configure", *args
system "make", "everything"
system "make", "check" if build.with? "check"
system "make", "install"
end
end
end

0 comments on commit b939eae

Please sign in to comment.