Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build system #69

Merged
merged 7 commits into from
May 29, 2016
Merged

Build system #69

merged 7 commits into from
May 29, 2016

Conversation

JaredCrean2
Copy link
Contributor

This updates the build system to allow a couple of things:

  • Tell the build system to use an existing PETSc installation for any of the 3 versions of PETSc
  • Tell the build system to not build a version of PETSc
  • Pass flags to the PETSc configure for any version of PETSc that is built

The readme describes what environmental variables to set to do the various operations. All the variables are prefixed with JULIA_PETSC, which I hope will make them unique.

Ref #68 #67 #55

@codecov-io
Copy link

codecov-io commented May 11, 2016

Current coverage is 7.11%

Merging #69 into master will decrease coverage by 0.38%

@@            master       #69   diff @@
========================================
  Files           22        22          
  Lines        21803     21804     +1   
  Methods          0         0          
  Messages         0         0          
  Branches         0         0          
========================================
- Hits          1637      1551    -86   
- Misses       20166     20253    +87   
  Partials         0         0          

Powered by Codecov. Last updated by 8516be6...f74a0aa

@kshyatt
Copy link
Contributor

kshyatt commented May 11, 2016

This is a totally minor point, and I'm sure it can be done with the flags to configure, but can PETSc.jl detect if julia was built against MKL, and if so, inherit that?

@JaredCrean2
Copy link
Contributor Author

pinging @stevengj, because IIRC he was working on a patch to PETSc to enable using the Julia OpenBlas build.

build_any = false # whether or not to build anything
have_petsc = Array(Bool, 3) # whether or not each version of Petsc is usable
for (i, name) in enumerate(build_names)
if haskey(ENV, string("JULIA_PETSC_", name, "_DIR")) || haskey(ENV, string("JULIA_PETSC_", name, "_ARCH"))
Copy link
Contributor

@stevengj stevengj May 16, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a good idea to make Pkg.build "remember" these environment variable names, so that if you do Pkg.update() then it will automatically rebuild with the same options unless you explicitly set them.

In PyCall and IJulia, I do this just by saving the relevant env var (PYTHON, in that case) in a file. See https://github.com/stevengj/PyCall.jl/blob/93560fb06affbc02acc237023e1b6a85580b3416/deps/build.jl#L126 and https://github.com/stevengj/PyCall.jl/blob/93560fb06affbc02acc237023e1b6a85580b3416/deps/build.jl#L224-L227

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a `buildopts.conf' file to do this.

@JaredCrean2
Copy link
Contributor Author

I think the linking to Julia's Blas is a separate issue, so I'm going to merge this and close #68 and #55 but leave open #16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants