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. 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). Jack
