[mpich-discuss] using alternate mpi on osx from xcode

Eric A. Borisch eborisch at ieee.org
Fri Jan 23 10:46:59 CST 2009

[I usually avoid cross-posting, but this _is_ relevant to both lists,
so I'm replying to both.]

Your which mpicxx in the terminal is probably picking up a modified
PATH from your .bash_rc [...] file. XCode doesn't have this modified
path, so it's not finding your desired mpicxx.

There are two ways to change this:

1) Change your execution environment for all processes launched by
your user. This is set in ~/.MacOSX/environment.plist --  See
http://developer.apple.com/qa/qa2001/qa1067.html for more info. You'll
need to log out and log back in to see changes. You'll probably want
to make sure (if you set a custom PATH here) that you include
/usr/bin:/bin  and potentially in the listing...

2) Change the environment within XCode for this build. Double-click on
your target in XCODE. In the build settings, add a new variable called
PATH and set it to something like /yourmpichinstall/bin:$(PATH)

Either one should do the trick; I prefer #2 as it is less global, but
#1 may be what you want just want to change it in one place.

This way you can user the mpicc/mpicxx wrapper scripts from your
makefiles the way they were intended to be used. No "hiding" of
various things required.


On Thu, Jan 8, 2009 at 4:45 PM, wrote:
> Hello,
> I'm building a test app via makefile on osx that uses mpich2 (which I compiled from source and whose binaries end up in /usr/local/bin).
> It is a trivial mpi app and builds via this trivial makefile:
> test : main.cpp
>         mpicxx -g  main.cpp -o testmpi
> From a terminal window, I can make and execute it with the expected results, with one or multiple processes.
> --
> If I create an "External Build System" project in Xcode and point to this makefile and try to build the target, XCode tries to use the mpicxx that is located in /Developer/usr/bin despite the fact that from a commad prompt, "which mpicxx" reports /usr/local/bin/mpicxx.
> So one can go to /Developer/usr/bin and mv all the mpi* binaries into mpi_hidden or some such, at which point Xcode will complain that it can't find mpicxx.  So one can create a link from /Developer/usr/bin that references the mpich2 binary /usr/local/bin/mpicxx.  Now things will build and work as desired.
> My question, then...  What is the recommended practice to get Xcode to use the mpicxx I want without all this problematic moving around/hiding of binaries?  One option would be to cleanly remove the openmpi that comes with osx; a better option would be a way to spec the path that Xcode will search for binaries, but I don't know how to do either.
> thanks,
> thomas blom,
> ut austin

Eric A. Borisch
eborisch at ieee.org

More information about the mpich-discuss mailing list