On Mon, 24 Jun 2013, Jack Poulson wrote: > On Mon, Jun 24, 2013 at 9:39 AM, Satish Balay <[email protected]> wrote: > > > On Sun, 16 Jun 2013, Jack Poulson wrote: > > > > > On Sun, Jun 16, 2013 at 4:37 PM, Jack Poulson <[email protected] > > >wrote: > > > > > > > On Sun, Jun 16, 2013 at 4:09 PM, Satish Balay <[email protected]> > > wrote: > > > > > > > > On Sun, 16 Jun 2013, Jack Poulson wrote: > > > >> > > > >> > I have been experimenting with having Clique checkout both > > pkg-metis and > > > >> > pkg-parmetis as part of its build system and it seems that a few > > things > > > >> > need to be added to the parmetis CMakeLists.txt for it to function > > > >> > correctly (please correct me if I am missing something!). > > > >> > > > > >> > The two main problems are the inclusion of gklib_tls.h and > > gklib_defs.h, > > > >> > where the former is generated by the metis build system, usually in > > > >> > metis/include in the installation directory, and the latter is is in > > > >> > metis/libmetis/ in the source directory. While setting METIS_PATH > > to the > > > >> > metis installation directory would pick up gklib_tls.h since > > > >> > ${METIS_PATH}/include is added to the include directories of the > > > >> parmetis > > > >> > CMakeLists.txt, I do not see any corresponding include_directories > > > >> > statement for the libmetis directory containing gklib_defs.h. > > > >> > > > >> Its also installed in CMAKE_INSTALL_PREFIX/include? > > > >> > > > >> > > > >> > > https://bitbucket.org/petsc/pkg-metis/commits/7352fdb4f3027f2330d69896c938fc4996f66461 > > > >> > > > > > > > > Apparently so. but I am trying to build metis and parmetis as part of > > the > > > > build (my CMakeLists.txt checks out the pkg-metis and pkg-parmetis > > > > repositories). I would prefer to be able to do things this way instead > > of > > > > requiring metis to have been installed previously. I should have been > > more > > > > clear with my previous language: when I said 'installation' directory, > > I > > > > should have said 'build' directory. > > > > > > > > > > > Additionally, pkg-metis does not seem to be iinstalling enough header > > files > > > for parmetis to be successfully built. In particular, it is not > > installing > > > the headers from the GKlib folder: > > > > > > poulson@poulson-ThinkPad-E520:~/Source/External/pkg-metis/build$ make > > > install > > > [100%] Built target metis > > > Install the project... > > > -- Install configuration: "" > > > -- Up-to-date: /home/poulson/Source/Install/include/metis.h > > > -- Up-to-date: /home/poulson/Source/Install/include/gklib_tls.h > > > -- Up-to-date: /home/poulson/Source/Install/lib/libmetis.a > > > -- Up-to-date: /home/poulson/Source/Install/include/gklib_defs.h > > > -- Up-to-date: /home/poulson/Source/Install/include/gklib_rename.h > > > > > > What is the recommended means of coupling pkg-metis and pkg-parmetis? > > > > I don't understand the issue here. > > > > When PETSc is building metis/parmetis - things appear to be installed > > correctly. > > > > Satish > > > > > parmetislib.h internally includes GKlib.h, which is not installed by > pkg-metis. However, there is a GKlib.h header in pkg-parmetis/headers, > though the headers/ directory is not searched by CMake. Perhaps an > 'include_directories(headers)' statement should be added to line 26 of > pkg-parmetis/CMakeLists.txt.
Looks like parmetis.py is using the cmake option '-DGKLIB_PATH=../headers' to set the path to GKlib.h [I'm not sure if this is prefereable to changing pkg-parmetis/CMakeLists.txt as you've indicated] > Is PETSc using these CMakeLists.txt files? I can now build pkg-parmetis on > top of a pkg-metis install if I make the above change (and uncomment out > lines 9-13 of pkg-parmetis/CMakeLists.txt and actually search for MPI). Hm - PETSc configure sets up MPI correctly before building parmetis. So it should't automatically be searching for MPI. Satish
