[petsc-dev] __SDIR__ as string or not
    Jed Brown 
    jed at 59A2.org
       
    Tue Mar  2 16:34:15 CST 2010
    
    
  
On Wed, 24 Feb 2010 16:16:43 -0600, Barry Smith <bsmith at mcs.anl.gov> wrote:
>    Lisandro suggested changing the model to use -D__INSDIR__=directory  
> with no quotes and then in petscerror.h have
> #define PetscStringize(a) #a
> #define __SDIR__ PetscStringize(__INSDIR__)
Did you notice that all the error messages read like this now?
  [0]PETSC ERROR: ISSetPermutation() line 141 in __INSDIR__index.c
Quoting from C99 6.10.3.4 Rescanning and further replacement:
 1  After all parameters in the replacement list have been substituted and # and ##
    processing has taken place, all placemarker preprocessing tokens are removed. Then, the
    resulting preprocessing token sequence is rescanned, along with all subsequent
    preprocessing tokens of the source file, for more macro names to replace.
As far as I know, there is no way to get the preprocessor to stringize
the expansion of __INSDIR__.
Note that a possible alternative to __SDIR__ is to send the full path
name to the compiler, as in `pwd`/source, in which case __FILE__ would
have the full path.
Jed
    
    
More information about the petsc-dev
mailing list