[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