changeset 80:16ccfaf1476a

The function DEFINE_OCTAVE_ALLOCATOR and DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA are now implemented in the header file. * Makefile.in: the link between different .o file is no longer needed. * *.h: now implement the method described above. * fem_init_env.cc: include the *.h and use the function defined here instead of linking them at compile time
author gedeone-octave <marcovass89@hotmail.it>
date Sat, 03 Aug 2013 14:37:09 +0200
parents 3e49ef16d74a
children 3b01e1bd7420
files src/Makefile.in src/coefficient.h src/fem_init_env.cc src/function.h src/functionspace.h src/mesh.h
diffstat 6 files changed, 44 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile.in	Sat Aug 03 14:32:33 2013 +0200
+++ b/src/Makefile.in	Sat Aug 03 14:37:09 2013 +0200
@@ -3,9 +3,9 @@
 OCTFILES=fem_init_env.oct\
              fem_init_mesh.oct \
              fem_get_mesh.oct \
-             fem_bc.oct \
-             fem_coeff.oct \
-             fem_func.oct \
+             DirichletBC.oct \
+             Expression.oct \
+             Function.oct \
              fem_plot.oct \
              fem_save.oct \
 
@@ -19,47 +19,44 @@
 fem_init_env.o:  fem_init_env.cc mesh.h functionspace.h boundarycondition.h function.h coefficient.h
 	$(MKOCTFILE) $(CPPFLAGS) -c fem_init_env.cc $(LDFLAGS) -o $@ -I.
 
-fem_init_mesh.oct: mesh.o fem_init_mesh.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s mesh.o fem_init_env.o fem_init_mesh.o -o $@ $(LDFLAGS) $(LIBS)
+fem_init_mesh.oct: fem_init_mesh.o
+	$(MKOCTFILE) $(CPPFLAGS) -s fem_init_mesh.o -o $@ $(LDFLAGS) $(LIBS)
 
-mesh.o: mesh.cc mesh.h
-	$(MKOCTFILE) $(CPPFLAGS) -c mesh.cc $(LDFLAGS) -o $@ -I.
-
-fem_init_mesh.o: fem_init_mesh.cc mesh.cc mesh.h
+fem_init_mesh.o: fem_init_mesh.cc mesh.h
 	$(MKOCTFILE) $(CPPFLAGS) -c fem_init_mesh.cc $(LDFLAGS) -o $@ -I.
 
-fem_get_mesh.oct: mesh.o fem_get_mesh.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s mesh.o fem_init_env.o fem_get_mesh.o -o $@ $(LDFLAGS) $(LIBS)
+fem_get_mesh.oct: fem_get_mesh.o
+	$(MKOCTFILE) $(CPPFLAGS) -s fem_get_mesh.o -o $@ $(LDFLAGS) $(LIBS)
 
-fem_get_mesh.o: fem_get_mesh.cc mesh.o
+fem_get_mesh.o: fem_get_mesh.cc
 	$(MKOCTFILE) $(CPPFLAGS) -c fem_get_mesh.cc $(LDFLAGS) -o $@ -I.
 
-fem_bc.oct: fem_bc.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s fem_init_env.o fem_bc.o -o $@ $(LDFLAGS) $(LIBS)
+DirichletBC.oct: DirichletBC.o
+	$(MKOCTFILE) $(CPPFLAGS) -s DirichletBC.o -o $@ $(LDFLAGS) $(LIBS)
 
-fem_bc.o: fem_bc.cc functionspace.h boundarycondition.h expression.h
-	$(MKOCTFILE) $(CPPFLAGS) -c fem_bc.cc $(LDFLAGS) -o $@ -I.
+DirichletBC.o: DirichletBC.cc functionspace.h boundarycondition.h expression.h
+	$(MKOCTFILE) $(CPPFLAGS) -c DirichletBC.cc $(LDFLAGS) -o $@ -I.
 
-fem_coeff.oct: fem_coeff.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s fem_init_env.o fem_coeff.o -o $@ $(LDFLAGS) $(LIBS)
+Expression.oct: Expression.o
+	$(MKOCTFILE) $(CPPFLAGS) -s Expression.o -o $@ $(LDFLAGS) $(LIBS)
 
-fem_coeff.o: fem_coeff.cc expression.h coefficient.h
-	$(MKOCTFILE) $(CPPFLAGS) -c fem_coeff.cc $(LDFLAGS) -o $@ -I.
+Expression.o: Expression.cc expression.h coefficient.h
+	$(MKOCTFILE) $(CPPFLAGS) -c Expression.cc $(LDFLAGS) -o $@ -I.
 
-fem_func.oct: fem_func.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s fem_init_env.o fem_func.o -o $@ $(LDFLAGS) $(LIBS)
+Function.oct: Function.o
+	$(MKOCTFILE) $(CPPFLAGS) -s Function.o -o $@ $(LDFLAGS) $(LIBS)
 
-fem_func.o: fem_func.cc function.h
-	$(MKOCTFILE) $(CPPFLAGS) -c fem_func.cc $(LDFLAGS) -o $@ -I.
+Function.o: Function.cc function.h
+	$(MKOCTFILE) $(CPPFLAGS) -c Function.cc $(LDFLAGS) -o $@ -I.
 
-fem_plot.oct: fem_plot.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s fem_init_env.o fem_plot.o -o $@ $(LDFLAGS) $(LIBS)
+fem_plot.oct: fem_plot.o
+	$(MKOCTFILE) $(CPPFLAGS) -s fem_plot.o -o $@ $(LDFLAGS) $(LIBS)
 
 fem_plot.o: fem_plot.cc 
 	$(MKOCTFILE) $(CPPFLAGS) -c fem_plot.cc $(LDFLAGS) -o $@ -I.
 
-fem_save.oct: fem_save.o fem_init_env.o
-	$(MKOCTFILE) $(CPPFLAGS) -s fem_init_env.o fem_save.o -o $@ $(LDFLAGS) $(LIBS)
+fem_save.oct: fem_save.o
+	$(MKOCTFILE) $(CPPFLAGS) -s fem_save.o -o $@ $(LDFLAGS) $(LIBS)
 
 fem_save.o: fem_save.cc 
 	$(MKOCTFILE) $(CPPFLAGS) -c fem_save.cc $(LDFLAGS) -o $@ -I.
--- a/src/coefficient.h	Sat Aug 03 14:32:33 2013 +0200
+++ b/src/coefficient.h	Sat Aug 03 14:37:09 2013 +0200
@@ -56,5 +56,9 @@
   DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
 
 };
-  static bool coefficient_type_loaded = false;
+static bool coefficient_type_loaded = false;
+
+DEFINE_OCTAVE_ALLOCATOR (coefficient);
+DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (coefficient, "coefficient", "coefficient");
+
 #endif
--- a/src/fem_init_env.cc	Sat Aug 03 14:32:33 2013 +0200
+++ b/src/fem_init_env.cc	Sat Aug 03 14:37:09 2013 +0200
@@ -22,21 +22,6 @@
 #include "coefficient.h"
 #include "function.h"
 
-DEFINE_OCTAVE_ALLOCATOR (mesh);
-DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (mesh, "mesh", "mesh");
-
-DEFINE_OCTAVE_ALLOCATOR (functionspace);
-DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (functionspace, "functionspace", "functionspace");
-
-DEFINE_OCTAVE_ALLOCATOR (boundarycondition);
-DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (boundarycondition, "boundarycondition", "boundarycondition");
-
-DEFINE_OCTAVE_ALLOCATOR (coefficient);
-DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (coefficient, "coefficient", "coefficient");
-
-DEFINE_OCTAVE_ALLOCATOR (function);
-DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (function, "function", "function");
-
 DEFUN_DLD (fem_init_env, args, , "-*- texinfo -*-\n\
 @deftypefn {Function File} {[]} = \
 fem_init_env ( ) \n\
--- a/src/function.h	Sat Aug 03 14:32:33 2013 +0200
+++ b/src/function.h	Sat Aug 03 14:37:09 2013 +0200
@@ -64,5 +64,8 @@
   DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
 
 };
-  static bool function_type_loaded = false;
+static bool function_type_loaded = false;
+
+DEFINE_OCTAVE_ALLOCATOR (function);
+DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (function, "function", "function");
 #endif
--- a/src/functionspace.h	Sat Aug 03 14:32:33 2013 +0200
+++ b/src/functionspace.h	Sat Aug 03 14:37:09 2013 +0200
@@ -60,5 +60,10 @@
   DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
 
 };
-  static bool functionspace_type_loaded = false;
+
+static bool functionspace_type_loaded = false;
+
+DEFINE_OCTAVE_ALLOCATOR (functionspace);
+DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (functionspace, "functionspace", "functionspace");
+
 #endif
--- a/src/mesh.h	Sat Aug 03 14:32:33 2013 +0200
+++ b/src/mesh.h	Sat Aug 03 14:37:09 2013 +0200
@@ -61,5 +61,8 @@
   DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
 
 };
-  static bool mesh_type_loaded = false;
+static bool mesh_type_loaded = false;
+
+DEFINE_OCTAVE_ALLOCATOR (mesh);
+DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (mesh, "mesh", "mesh");
 #endif