I'm rebasing balay/remove-sdir [over master] and merging to next now. Satish
On Wed, 29 May 2013, Satish Balay wrote: > ok - pushed this commit - and the removal of __SDIR__ to > 'balay/remove-sdir' [which is branched off 'jed/gnumake'] > > The SDIR removal affects quiet a few routines - and a few > structures. And its probable I missed fixed something [or fixed > something incorrectly that the compiler didn't catch] > > Basic builds run fine. > > >>>>>> > commit 4a020275677b3c7c915947a9a8df98db6a86b95d > Author: Satish Balay <[email protected]> > Date: Wed May 29 00:11:17 2013 -0500 > > __SDIR__: remove usage of __SDIR__ from PETSc sources. > > commit ef9cb020c7e6703c909e2bfcf036c7598315ce88 > Author: Satish Balay <[email protected]> > Date: Wed May 29 00:09:35 2013 -0500 > > __SDIR__: fix all-legacy targets to use ${PWD} instead of LOCDIR/__INSDIR > in compiles > <<<<< > > Satish > > > On Tue, 28 May 2013, Satish Balay wrote: > > > On Thu, 23 May 2013, Jed Brown wrote: > > > > > Satish Balay <[email protected]> writes: > > > > > > > __SDIR__ is primarily needed by 'all-legacy'. cmake/gmake builds are > > > > using the full paths at compile time - so they don't need it [and are > > > > using empty LOCDIR] > > > > > > This should take care of all-legacy: > > > > > > diff --git i/conf/rules w/conf/rules > > > index 0fc01dc..f8b70ad 100644 > > > --- i/conf/rules > > > +++ w/conf/rules > > > @@ -391,7 +391,7 @@ getautoconfargs: > > > if [ $${mypwd} != $${newpwd} ]; then \ > > > ${OMAKE} PETSC_ARCH=${PETSC_ARCH} chk_petscdir;\ > > > fi > > > - ${PETSC_COMPILE_SINGLE} $< > > > + ${PETSC_COMPILE_SINGLE} ${PWD}/$< > > > @if [ "${PETSCPORTABLE}" != "" ]; then \ > > > ${PYTHON} ${PETSC_DIR}/bin/portabilitycheck.py $*.o ; \ > > > fi > > > > I guess fortran sources don't need __SDIR__ - so the corresponding > > targets don't need changes. > > > > And we can use the following to get libfast working [This works with > > solaris-make & bsd-make aswell] > > > > PSOURCEC = $(SOURCEC:%=${PWD}/%) > > > > > > I did a basic buid withe the following [checked on > > linux,solaris,windows] - and it appears to work fine [assuming > > "unknowndirectory/" stuff will be removed with other __SDIR__ changes] > > > > 2 Differences are [these should be ok]: > > > > - full path listed in error messages. > > '/export/home/petsc/petsc.clone/src/ksp/pc/interface/pcset.c' > > [ vs previous message with 'src/ksp/pc/interface/pcset.c'] > > > > - The compilers now spit out the full file names. [as thats what we pass to > > them] > > > > libfast in: /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/view.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/flush.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/viewregall.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/viewreg.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/viewa.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/dlregispetsc.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/viewers.c: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/dupl.c: > > libfast in: > > /export/home/petsc/petsc.clone/src/sys/classes/viewer/interface/ftn-auto > > > > > > Satish > > > > ---------------- > > petsc@n-gage:~/petsc.clone/src/ksp/ksp/examples/tutorials$ ./ex2 -pc_type > > foobar > > [0]PETSC ERROR: --------------------- Error Message > > ------------------------------------ > > [0]PETSC ERROR: Unknown type. Check for miss-spelling or missing external > > package needed for type: > > see http://www.mcs.anl.gov/petsc/documentation/installation.html#external! > > [0]PETSC ERROR: Unable to find requested PC type foobar! > > [0]PETSC ERROR: > > ------------------------------------------------------------------------ > > [0]PETSC ERROR: Petsc Release Version 3.4.0, unknown > > [0]PETSC ERROR: See docs/changes/index.html for recent updates. > > [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting. > > [0]PETSC ERROR: See docs/index.html for manual pages. > > [0]PETSC ERROR: > > ------------------------------------------------------------------------ > > [0]PETSC ERROR: ./ex2 on a arch-opensolaris-pkgs-opt named n-gage by petsc > > Tue May 28 20:37:00 2013 > > [0]PETSC ERROR: Libraries linked from > > /export/home/petsc/petsc.clone/arch-opensolaris-pkgs-opt/lib > > [0]PETSC ERROR: Configure run at Tue May 28 13:25:16 2013 > > [0]PETSC ERROR: Configure options --with-debugger=/bin/true > > --with-debugging=0 --download-mpich=1 --with-c2html=0 --download-cmake=1 > > --download-metis=1 --download-parmetis=1 --download-triangle=1 > > --download-superlu=1 --download-superlu_dist=1 --download-f-blas-lapack=1 > > --download-scalapack=1 --download-mumps=1 --download-sundials=1 > > --download-hypre=1 --download-umfpack=1 --download-chaco=1 > > --download-spai=1 --with-no-output -PETSC_ARCH=arch-opensolaris-pkgs-opt > > -PETSC_DIR=/export/home/petsc/petsc.clone > > [0]PETSC ERROR: > > ------------------------------------------------------------------------ > > [0]PETSC ERROR: PCSetType() line 68 in > > "unknowndirectory/"/export/home/petsc/petsc.clone/src/ksp/pc/interface/pcset.c > > [0]PETSC ERROR: PCSetFromOptions() line 163 in > > "unknowndirectory/"/export/home/petsc/petsc.clone/src/ksp/pc/interface/pcset.c > > [0]PETSC ERROR: KSPSetFromOptions() line 357 in > > "unknowndirectory/"/export/home/petsc/petsc.clone/src/ksp/ksp/interface/itcl.c > > [0]PETSC ERROR: main() line 192 in > > "unknowndirectory/"/export/home/petsc/petsc.clone/src/ksp/ksp/examples/tutorials/ex2.c > > application called MPI_Abort(MPI_COMM_WORLD, 86) - process 0 > > [unset]: aborting job: > > application called MPI_Abort(MPI_COMM_WORLD, 86) - process 0 > > petsc@n-gage:~/petsc.clone/src/ksp/ksp/examples/tutorials$ > > > > ----- > > diff --git a/conf/rules b/conf/rules > > index 0fc01dc..64ff8d8 100644 > > --- a/conf/rules > > +++ b/conf/rules > > @@ -391,7 +391,7 @@ getautoconfargs: > > if [ $${mypwd} != $${newpwd} ]; then \ > > ${OMAKE} PETSC_ARCH=${PETSC_ARCH} chk_petscdir;\ > > fi > > - ${PETSC_COMPILE_SINGLE} $< > > + ${PETSC_COMPILE_SINGLE} ${PWD}/$< > > @if [ "${PETSCPORTABLE}" != "" ]; then \ > > ${PYTHON} ${PETSC_DIR}/bin/portabilitycheck.py $*.o ; \ > > fi > > @@ -399,16 +399,16 @@ getautoconfargs: > > # > > # Compiles CUDA code > > .cu.o: > > - ${PETSC_CUCOMPILE_SINGLE} $< > > + ${PETSC_CUCOMPILE_SINGLE} ${PWD}/$< > > > > .cu.a: > > - ${PETSC_CUCOMPILE_SINGLE} $< > > + ${PETSC_CUCOMPILE_SINGLE} ${PWD}/$< > > -${AR} ${AR_FLAGS} ${LIBNAME} $*.o > > -if test -n "${LIBTOOL}"; then ${AR} ${AR_FLAGS} ${LT_LIBNAME} $*.lo; fi > > -${RM} $*.o $*.lo > > > > .c.a .cpp.a .cc.a .C.a: > > - -${PETSC_COMPILE_SINGLE} $< > > + -${PETSC_COMPILE_SINGLE} ${PWD}/$< > > -${AR} ${AR_FLAGS} ${LIBNAME} $*.o > > -if test -n "${LIBTOOL}"; then ${AR} ${AR_FLAGS} ${LT_LIBNAME} $*.lo; fi > > -${RM} $*.o $*.lo > > diff --git a/conf/variables b/conf/variables > > index 79ce8ba..bd65385 100644 > > --- a/conf/variables > > +++ b/conf/variables > > @@ -10,7 +10,7 @@ > > # > > PETSC_LIB_DIR = ${PETSC_DIR}/${PETSC_ARCH}/lib > > > > -PETSC_CCPPFLAGS = ${PETSC_CC_INCLUDES} ${PETSCFLAGS} ${CPP_FLAGS} > > ${CPPFLAGS} -D__INSDIR__=${LOCDIR} > > +PETSC_CCPPFLAGS = ${PETSC_CC_INCLUDES} ${PETSCFLAGS} ${CPP_FLAGS} > > ${CPPFLAGS} > > PETSC_FCPPFLAGS = ${PETSC_FC_INCLUDES} ${PETSCFLAGS} ${FPP_FLAGS} > > ${FPPFLAGS} > > PETSC_C_SH_LIB_PATH = ${CC_LINKER_SLFLAG}${PETSC_LIB_DIR} > > PETSC_F_SH_LIB_PATH = ${FC_LINKER_SLFLAG}${PETSC_LIB_DIR} > > @@ -30,10 +30,12 @@ F_SH_LIB_PATH = ${PETSC_F_SH_LIB_PATH} > > # > > # The following variables define PETSc compile procedures > > # > > -PETSC_COMPILE = ${PCC} -c ${PCC_FLAGS} ${CFLAGS} ${CCPPFLAGS} > > ${SOURCEC} > > +PSOURCEC = $(SOURCEC:%=${PWD}/%) > > +PSOURCECU = $(SOURCECU:%=${PWD}/%) > > +PETSC_COMPILE = ${PCC} -c ${PCC_FLAGS} ${CFLAGS} ${CCPPFLAGS} > > ${PSOURCEC} > > PETSC_COMPILE_SINGLE = ${PCC} -o $*.o -c ${PCC_FLAGS} ${CFLAGS} > > ${CCPPFLAGS} > > PETSC_FCOMPILE = ${FC} -c ${FC_FLAGS} ${FFLAGS} ${FCPPFLAGS} > > ${SOURCEF} > > -PETSC_CUCOMPILE = ${CUDAC} ${CUDAC_FLAGS} -c > > --compiler-options="${PCC_FLAGS} ${CFLAGS} ${CCPPFLAGS}" ${SOURCECU} > > +PETSC_CUCOMPILE = ${CUDAC} ${CUDAC_FLAGS} -c > > --compiler-options="${PCC_FLAGS} ${CFLAGS} ${CCPPFLAGS}" ${PSOURCECU} > > PETSC_CUCOMPILE_SINGLE= ${CUDAC} -o $*.o ${CUDAC_FLAGS} -c > > --compiler-options="${PCC_FLAGS} ${CFLAGS} ${CCPPFLAGS}" > > # > > # define OBJSC and OBJSF OBJSCU > > > >
