forked from ahmadia/homebrew-science
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscotch.rb
70 lines (59 loc) · 2.85 KB
/
scotch.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class Scotch < Formula
desc "Graph/mesh/hypergraph partitioning, clustering, and ordering"
homepage "https://gforge.inria.fr/projects/scotch"
url "https://gforge.inria.fr/frs/download.php/file/34618/scotch_6.0.4.tar.gz"
sha256 "f53f4d71a8345ba15e2dd4e102a35fd83915abf50ea73e1bf6efe1bc2b4220c7"
revision 5
bottle :disable, "needs to be rebuilt with latest open-mpi"
option "without-test", "skip build-time tests (not recommended)"
deprecated_option "without-check" => "without-test"
depends_on :mpi => :cc
depends_on "xz" => :optional # Provides lzma compression.
def install
ENV.deparallelize if MacOS.version >= :sierra
cd "src" do
ln_s "Make.inc/Makefile.inc.i686_mac_darwin10", "Makefile.inc"
# default CFLAGS: -O3 -Drestrict=__restrict -DCOMMON_FILE_COMPRESS_GZ -DCOMMON_PTHREAD -DCOMMON_PTHREAD_BARRIER -DCOMMON_RANDOM_FIXED_SEED -DCOMMON_TIMING_OLD -DSCOTCH_PTHREAD -DSCOTCH_RENAME
# MPI implementation is not threadsafe, do not use DSCOTCH_PTHREAD
cflags = %w[-O3 -fPIC -Drestrict=__restrict -DCOMMON_PTHREAD_BARRIER
-DCOMMON_PTHREAD
-DSCOTCH_CHECK_AUTO -DCOMMON_RANDOM_FIXED_SEED
-DCOMMON_TIMING_OLD -DSCOTCH_RENAME
-DCOMMON_FILE_COMPRESS_BZ2 -DCOMMON_FILE_COMPRESS_GZ]
ldflags = %w[-lm -lz -lpthread -lbz2]
cflags += %w[-DCOMMON_FILE_COMPRESS_LZMA] if build.with? "xz"
ldflags += %W[-L#{Formula["xz"].lib} -llzma] if build.with? "xz"
make_args = ["CCS=#{ENV["CC"]}",
"CCP=#{ENV["MPICC"]}",
"CCD=#{ENV["MPICC"]}",
"RANLIB=echo",
"CFLAGS=#{cflags.join(" ")}",
"LDFLAGS=#{ldflags.join(" ")}"]
if OS.mac?
make_args << "LIB=.dylib"
make_args << "AR=libtool"
arflags = ldflags.join(" ") + " -dynamic -install_name #{lib}/$(notdir $@) -undefined dynamic_lookup -o"
make_args << "ARFLAGS=#{arflags}"
else
make_args << "LIB=.so"
make_args << "ARCH=ar"
make_args << "ARCHFLAGS=-ruv"
end
system "make", "scotch", "VERBOSE=ON", *make_args
system "make", "ptscotch", "VERBOSE=ON", *make_args
system "make", "install", "prefix=#{prefix}", *make_args
system "make", "check", "ptcheck", "EXECP=mpirun -np 2", *make_args if build.with? "test"
end
# Install documentation + sample graphs and grids.
doc.install Dir["doc/*.pdf"]
pkgshare.install Dir["doc/*.f"], Dir["doc/*.txt"]
pkgshare.install "grf", "tgt"
end
test do
mktemp do
system "echo cmplt 7 | #{bin}/gmap #{pkgshare}/grf/bump.grf.gz - bump.map"
system "#{bin}/gmk_m2 32 32 | #{bin}/gmap - #{pkgshare}/tgt/h8.tgt brol.map"
system "#{bin}/gout", "-Mn", "-Oi", "#{pkgshare}/grf/4elt.grf.gz", "#{pkgshare}/grf/4elt.xyz.gz", "-", "graph.iv"
end
end
end