Skip to content
Snippets Groups Projects
Commit ce7cf5ed authored by Christian Engwer's avatar Christian Engwer
Browse files

changed configure and headers, so that DIM and DIM_OF_WORLD are local

to albertagrid. This fixes task #33.

[[Imported from SVN: r2987]]
parent 5acf6cc2
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,9 @@
#include <assert.h>
#include <algorithm>
#define DIM DUNE_PROBLEM_DIM
#define DIM_OF_WORLD DUNE_WORLD_DIM
// Dune includes
#include <dune/common/misc.hh>
#include <dune/common/interfaces.hh>
......@@ -1858,4 +1861,9 @@ namespace Dune
#include <dune/io/file/asciiparser.hh>
#include "albertagrid/albertagrid.cc"
// undef all dangerous defines
#undef DIM
#undef DIM_OF_WORLD
#include "albertagrid/alberta_undefs.hh"
#endif
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
/** \file
* \brief Contains <tt>#undef</tt>s for all preprocessor macros
* defined by alberta.
*
* This file is created automatically by the perl script <tt>undefAllMacros.pl</tt>.
*/
#ifdef _ALBERTA_H_
#undef _ALBERTA_H_
#endif // _ALBERTA_H_
#ifdef ALBERTA_VERSION
#undef ALBERTA_VERSION
#endif // ALBERTA_VERSION
#ifdef NEIGH_IN_EL
#undef NEIGH_IN_EL
#endif // NEIGH_IN_EL
#ifdef N_VERTICES_1D
#undef N_VERTICES_1D
#endif // N_VERTICES_1D
#ifdef N_NEIGH_1D
#undef N_NEIGH_1D
#endif // N_NEIGH_1D
#ifdef N_VERTICES
#undef N_VERTICES
#endif // N_VERTICES
#ifdef N_NEIGH
#undef N_NEIGH
#endif // N_NEIGH
#ifdef N_VERTICES_2D
#undef N_VERTICES_2D
#endif // N_VERTICES_2D
#ifdef N_EDGES_2D
#undef N_EDGES_2D
#endif // N_EDGES_2D
#ifdef N_NEIGH_2D
#undef N_NEIGH_2D
#endif // N_NEIGH_2D
#ifdef N_VERTICES
#undef N_VERTICES
#endif // N_VERTICES
#ifdef N_EDGES
#undef N_EDGES
#endif // N_EDGES
#ifdef N_NEIGH
#undef N_NEIGH
#endif // N_NEIGH
#ifdef N_VERTICES_3D
#undef N_VERTICES_3D
#endif // N_VERTICES_3D
#ifdef N_EDGES_3D
#undef N_EDGES_3D
#endif // N_EDGES_3D
#ifdef N_FACES_3D
#undef N_FACES_3D
#endif // N_FACES_3D
#ifdef N_NEIGH_3D
#undef N_NEIGH_3D
#endif // N_NEIGH_3D
#ifdef N_VERTICES
#undef N_VERTICES
#endif // N_VERTICES
#ifdef N_EDGES
#undef N_EDGES
#endif // N_EDGES
#ifdef N_FACES
#undef N_FACES
#endif // N_FACES
#ifdef N_NEIGH
#undef N_NEIGH
#endif // N_NEIGH
#ifdef COPY_DOW
#undef COPY_DOW
#endif // COPY_DOW
#ifdef SCP_DOW
#undef SCP_DOW
#endif // SCP_DOW
#ifdef SET_DOW
#undef SET_DOW
#endif // SET_DOW
#ifdef SCAL_DOW
#undef SCAL_DOW
#endif // SCAL_DOW
#ifdef DIST_DOW
#undef DIST_DOW
#endif // DIST_DOW
#ifdef COPY_DOW
#undef COPY_DOW
#endif // COPY_DOW
#ifdef SCP_DOW
#undef SCP_DOW
#endif // SCP_DOW
#ifdef SET_DOW
#undef SET_DOW
#endif // SET_DOW
#ifdef SCAL_DOW
#undef SCAL_DOW
#endif // SCAL_DOW
#ifdef DIST_DOW
#undef DIST_DOW
#endif // DIST_DOW
#ifdef COPY_DOW
#undef COPY_DOW
#endif // COPY_DOW
#ifdef SCP_DOW
#undef SCP_DOW
#endif // SCP_DOW
#ifdef SET_DOW
#undef SET_DOW
#endif // SET_DOW
#ifdef SCAL_DOW
#undef SCAL_DOW
#endif // SCAL_DOW
#ifdef DIST_DOW
#undef DIST_DOW
#endif // DIST_DOW
#ifdef NORM_DOW
#undef NORM_DOW
#endif // NORM_DOW
#ifdef NEIGH
#undef NEIGH
#endif // NEIGH
#ifdef OPP_VERTEX
#undef OPP_VERTEX
#endif // OPP_VERTEX
#ifdef EL_TYPE
#undef EL_TYPE
#endif // EL_TYPE
#ifdef NEIGH
#undef NEIGH
#endif // NEIGH
#ifdef OPP_VERTEX
#undef OPP_VERTEX
#endif // OPP_VERTEX
#ifdef EL_TYPE
#undef EL_TYPE
#endif // EL_TYPE
#ifdef INDEX
#undef INDEX
#endif // INDEX
#ifdef INDEX
#undef INDEX
#endif // INDEX
#ifdef IS_LEAF_EL
#undef IS_LEAF_EL
#endif // IS_LEAF_EL
#ifdef LEAF_DATA
#undef LEAF_DATA
#endif // LEAF_DATA
#ifdef INTERIOR
#undef INTERIOR
#endif // INTERIOR
#ifdef DIRICHLET
#undef DIRICHLET
#endif // DIRICHLET
#ifdef NEUMANN
#undef NEUMANN
#endif // NEUMANN
#ifdef VERTEX
#undef VERTEX
#endif // VERTEX
#ifdef CENTER
#undef CENTER
#endif // CENTER
#ifdef VERTEX
#undef VERTEX
#endif // VERTEX
#ifdef EDGE
#undef EDGE
#endif // EDGE
#ifdef CENTER
#undef CENTER
#endif // CENTER
#ifdef VERTEX
#undef VERTEX
#endif // VERTEX
#ifdef EDGE
#undef EDGE
#endif // EDGE
#ifdef FACE
#undef FACE
#endif // FACE
#ifdef CENTER
#undef CENTER
#endif // CENTER
#ifdef IS_INTERIOR
#undef IS_INTERIOR
#endif // IS_INTERIOR
#ifdef IS_DIRICHLET
#undef IS_DIRICHLET
#endif // IS_DIRICHLET
#ifdef IS_NEUMANN
#undef IS_NEUMANN
#endif // IS_NEUMANN
#ifdef GET_BOUND
#undef GET_BOUND
#endif // GET_BOUND
#ifdef FILL_NOTHING
#undef FILL_NOTHING
#endif // FILL_NOTHING
#ifdef FILL_COORDS
#undef FILL_COORDS
#endif // FILL_COORDS
#ifdef FILL_BOUND
#undef FILL_BOUND
#endif // FILL_BOUND
#ifdef FILL_NEIGH
#undef FILL_NEIGH
#endif // FILL_NEIGH
#ifdef FILL_OPP_COORDS
#undef FILL_OPP_COORDS
#endif // FILL_OPP_COORDS
#ifdef FILL_ORIENTATION
#undef FILL_ORIENTATION
#endif // FILL_ORIENTATION
#ifdef FILL_EL_TYPE
#undef FILL_EL_TYPE
#endif // FILL_EL_TYPE
#ifdef FILL_ANY_2D
#undef FILL_ANY_2D
#endif // FILL_ANY_2D
#ifdef FILL_ANY
#undef FILL_ANY
#endif // FILL_ANY
#ifdef FILL_ANY_3D
#undef FILL_ANY_3D
#endif // FILL_ANY_3D
#ifdef FILL_ANY
#undef FILL_ANY
#endif // FILL_ANY
#ifdef CALL_EVERY_EL_PREORDER
#undef CALL_EVERY_EL_PREORDER
#endif // CALL_EVERY_EL_PREORDER
#ifdef CALL_EVERY_EL_INORDER
#undef CALL_EVERY_EL_INORDER
#endif // CALL_EVERY_EL_INORDER
#ifdef CALL_EVERY_EL_POSTORDER
#undef CALL_EVERY_EL_POSTORDER
#endif // CALL_EVERY_EL_POSTORDER
#ifdef CALL_LEAF_EL
#undef CALL_LEAF_EL
#endif // CALL_LEAF_EL
#ifdef CALL_LEAF_EL_LEVEL
#undef CALL_LEAF_EL_LEVEL
#endif // CALL_LEAF_EL_LEVEL
#ifdef CALL_EL_LEVEL
#undef CALL_EL_LEVEL
#endif // CALL_EL_LEVEL
#ifdef CALL_MG_LEVEL
#undef CALL_MG_LEVEL
#endif // CALL_MG_LEVEL
#ifdef TEST_FLAG
#undef TEST_FLAG
#endif // TEST_FLAG
#ifdef DOF_ADMIN_DEF
#undef DOF_ADMIN_DEF
#endif // DOF_ADMIN_DEF
#ifdef DOF_FREE_SIZE
#undef DOF_FREE_SIZE
#endif // DOF_FREE_SIZE
#ifdef DOF_UNIT_ALL_FREE
#undef DOF_UNIT_ALL_FREE
#endif // DOF_UNIT_ALL_FREE
#ifdef FOR_ALL_DOFS
#undef FOR_ALL_DOFS
#endif // FOR_ALL_DOFS
#ifdef FOR_ALL_FREE_DOFS
#undef FOR_ALL_FREE_DOFS
#endif // FOR_ALL_FREE_DOFS
#ifdef ROW_LENGTH
#undef ROW_LENGTH
#endif // ROW_LENGTH
#ifdef ENTRY_USED
#undef ENTRY_USED
#endif // ENTRY_USED
#ifdef ENTRY_NOT_USED
#undef ENTRY_NOT_USED
#endif // ENTRY_NOT_USED
#ifdef UNUSED_ENTRY
#undef UNUSED_ENTRY
#endif // UNUSED_ENTRY
#ifdef NO_MORE_ENTRIES
#undef NO_MORE_ENTRIES
#endif // NO_MORE_ENTRIES
#ifdef MAX_N_QUAD_POINTS
#undef MAX_N_QUAD_POINTS
#endif // MAX_N_QUAD_POINTS
#ifdef MAX_N_QUAD_POINTS
#undef MAX_N_QUAD_POINTS
#endif // MAX_N_QUAD_POINTS
#ifdef MAX_N_QUAD_POINTS
#undef MAX_N_QUAD_POINTS
#endif // MAX_N_QUAD_POINTS
#ifdef INIT_PHI
#undef INIT_PHI
#endif // INIT_PHI
#ifdef INIT_GRD_PHI
#undef INIT_GRD_PHI
#endif // INIT_GRD_PHI
#ifdef INIT_D2_PHI
#undef INIT_D2_PHI
#endif // INIT_D2_PHI
#ifdef MESH_REFINED
#undef MESH_REFINED
#endif // MESH_REFINED
#ifdef MESH_COARSENED
#undef MESH_COARSENED
#endif // MESH_COARSENED
#ifdef H1_NORM
#undef H1_NORM
#endif // H1_NORM
#ifdef L2_NORM
#undef L2_NORM
#endif // L2_NORM
#ifdef GRAPH_MESH_BOUNDARY
#undef GRAPH_MESH_BOUNDARY
#endif // GRAPH_MESH_BOUNDARY
#ifdef GRAPH_MESH_ELEMENT_MARK
#undef GRAPH_MESH_ELEMENT_MARK
#endif // GRAPH_MESH_ELEMENT_MARK
#ifdef GRAPH_MESH_VERTEX_DOF
#undef GRAPH_MESH_VERTEX_DOF
#endif // GRAPH_MESH_VERTEX_DOF
#ifdef GRAPH_MESH_ELEMENT_INDEX
#undef GRAPH_MESH_ELEMENT_INDEX
#endif // GRAPH_MESH_ELEMENT_INDEX
#ifdef GET_MESH
#undef GET_MESH
#endif // GET_MESH
#ifdef GET_DOF_VEC
#undef GET_DOF_VEC
#endif // GET_DOF_VEC
#ifdef INIT_UH
#undef INIT_UH
#endif // INIT_UH
#ifdef INIT_GRD_UH
#undef INIT_GRD_UH
#endif // INIT_GRD_UH
#!/usr/bin/perl -w
use strict;
# configuration
my $packagename = 'alberta';
my $outfilename = $packagename."_undefs.hh";
my $cppflagname = 'ALBERTA_CPPFLAGS';
# Detect location of Package
open MAKEFILE, "> Makefile.undef";
print MAKEFILE <<END_MAKE;
include Makefile
Y:
@ for i in \$($cppflagname); do echo \$\$i; done | \\
grep '^-I' | sed -e 's/^-I/-Y/'
END_MAKE
close MAKEFILE;
my $Yinclude = `make -f Makefile.undef Y`;
# print $Yinclude;
unlink 'Makefile.undef';
# Counts the total number of #undefs emitted
my $counter = 0;
# open output file
unless (open OUTFILE, ">$outfilename") {
die "Couldn't open $outfilename for writing!\n";
}
# Loop over all the files given in the command line and
# recursively parse them for macro definitions.
foreach my $file (@ARGV) {
# Write header comment
print OUTFILE "/** \\file\n";
print OUTFILE "* \\brief Contains <tt>#undef</tt>s for all preprocessor macros\n";
print OUTFILE "* defined by $packagename.\n";
print OUTFILE "*\n";
print OUTFILE "* This file is created automatically by the perl script <tt>undefAllMacros.pl</tt>.\n";
print OUTFILE "*/\n\n";
# Parse the file itself
emitUndefs($file);
# Makedepend recursively searches for more included headers.
# Warnings appear because the system headers will not be found.
# Those warnings get piped to /dev/null.
foreach $_ (`makedepend -f- -w 20 $Yinclude $file 2>/dev/null`) {
# The output of makedepend has the form
# file.o: header.h
# We look for the ".o:" Everything that follows must be a header file
if (/\.o\:\s(\S+\.h)/) {
emitUndefs($1);
}
}
}
print "Undef'ed $counter #defines!\n";
close(OUTFILE);
##############################################################
# This subroutine reads the file given as the first argument
# and issues an #undef for each macro found.
##############################################################
sub emitUndefs {
print "Parsing $_[0]\n";
unless (open INFILE, "$_[0]") {
die "Couldn't open $_[0] for reading!\n";
}
while(<INFILE>) {
# looks for lines that define a C macro
if (/\#define\s+(\w+)/) {
print OUTFILE "#ifdef $1\n";
print OUTFILE " #undef $1\n";
print OUTFILE "#endif // $1\n\n";
$counter = $counter + 1;
}
}
close (INFILE);
}
......@@ -51,23 +51,20 @@ if test x$with_alberta != x && test x$with_alberta != xno ; then
ALBERTA_LIB_PATH="$ALBERTAROOT/lib"
ALBERTA_INCLUDE_PATH="$ALBERTAROOT/include"
# Alberta needs special defined symbols
ALBERTADEF="-DDIM=$with_problem_dim -DDIM_OF_WORLD=$with_world_dim"
# set variables so that tests can use them
REM_CPPFLAGS=$CPPFLAGS
LDFLAGS="$LDFLAGS -L$ALBERTA_LIB_PATH"
CPPFLAGS="$CPPFLAGS $ALBERTADEF -DEL_INDEX=0 -I$ALBERTA_INCLUDE_PATH"
ALBERTADIM="-DDIM=$with_problem_dim -DDIM_OF_WORLD=$with_world_dim"
CPPFLAGS="$CPPFLAGS $ALBERTADIM -DEL_INDEX=0 -I$ALBERTA_INCLUDE_PATH"
# check for header
AC_CHECK_HEADER([alberta.h],
[ALBERTA_CPPFLAGS="$ALBERTADEF -I$ALBERTA_INCLUDE_PATH"
[ALBERTA_CPPFLAGS="-I$ALBERTA_INCLUDE_PATH"
HAVE_ALBERTA="1"],
AC_MSG_WARN([alberta.h not found in $ALBERTA_INCLUDE_PATH]))
CPPFLAGS="$REM_CPPFLAGS $ALBERTADEF -I$ALBERTA_INCLUDE_PATH"
CPPFLAGS="$REM_CPPFLAGS -I$ALBERTA_INCLUDE_PATH"
REM_CPPFLAGS=
REM_LDFLAGS=$LDFLAGS
......
......@@ -7,12 +7,16 @@ AC_DEFUN([DUNE_DIMENSION],[
AC_ARG_WITH(problem_dim,
AC_HELP_STRING([--with-problem-dim=2|3],
[which dimension of the problem]),,with_problem_dim=2)
AC_SUBST(PROBLEMDIM, $with_problem_dim)
AC_SUBST(DUNE_PROBLEM_DIM, $with_problem_dim)
AC_DEFINE_UNQUOTED(DUNE_PROBLEM_DIM, $with_problem_dim,
[Dimension of grid])
# default dimension of the world coordinates is 2
AC_ARG_WITH(world_dim,
AC_HELP_STRING([--with-world-dim=2|3],
[which dimension of the world coordinates]),,with_world_dim=2)
AC_SUBST(PROBLEMDIM, $with_world_dim)
AC_SUBST(DUNE_WORLD_DIM, $with_world_dim)
AC_DEFINE_UNQUOTED(DUNE_WORLD_DIM, $with_world_dim,
[Dimension of world])
])
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment