[petsc-dev] Cleaning with gnumake

Satish Balay balay at mcs.anl.gov
Tue Oct 22 10:31:48 CDT 2013


On Tue, 22 Oct 2013, Satish Balay wrote:

> On Tue, 22 Oct 2013, Satish Balay wrote:
> 
> > On Tue, 22 Oct 2013, Jed Brown wrote:
> > 
> > > The gnumake target deletes the object directories and libraries, but
> > > it's not reachable through the front-end makefile.  Which target should
> > > we put it under?  I don't want to need "make allclean" because that
> > > takes several seconds to walk through the entire tree.
> > 
> > We hardly use it now - but I think 'make allclean' should be modified
> > to do the appropriate thing for for each of the builds:
> > legacy/cmake/gmake [similar to 'make all']
> 
> perhaps the following change?

this should work for all cases.. [assuming 'clean' is the appropriate cmake target aswell]

Satish

-------

$ git diff
diff --git a/makefile b/makefile
index a83e810..97e674b 100644
--- a/makefile
+++ b/makefile
@@ -216,8 +216,21 @@ deletemods: chk_makej
        -${RM} -f ${PETSC_DIR}/${PETSC_ARCH}/include/petsc*.mod
 
 # Cleans up build
-allclean: deletelibs deletemods
+allclean-legacy: deletelibs deletemods
        -@${OMAKE} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} ACTION=clean tree
+allclean-cmake:
+       - at cd ${PETSC_ARCH} && ${OMAKE} clean
+allclean-gnumake:
+       -@${OMAKE} -f gmakefile clean
+
+allclean:
+       @if [ "${MAKE_IS_GNUMAKE}" != "" ]; then \
+          ${OMAKE} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} allclean-gnumake; \
+       elif [ "${PETSC_BUILD_USING_CMAKE}" != "" ]; then \
+          ${OMAKE} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} allclean-cmake; \
+       else \
+          ${OMAKE} PETSC_ARCH=${PETSC_ARCH} PETSC_DIR=${PETSC_DIR} allclean-legacy; \
+       fi
 #
 reconfigure:
        @${PYTHON} ${PETSC_ARCH}/conf/reconfigure-${PETSC_ARCH}.py



More information about the petsc-dev mailing list