view inst/generate_makefile.m @ 109:50753c3cb0b6

New function for dealing with form of rank 0. * fem_create_functional: user visible function for the creation of a DLD function which create a Functional from a given .ufl file * generate_fun.cc: writes on the fly the code * generate_makefile: compile also the new function
author gedeone-octave <marcovass89@hotmail.it>
date Thu, 22 Aug 2013 19:01:44 +0200
parents 5a4371f45fc4
children 75780f7dc9f4
line wrap: on
line source


function output = generate_makefile (ufl_name, path)

STRING ="\n\
DIR = @@PATH@@\n\
CPPFLAGS=\n\
LIBS= -ldolfin\n\
MKOCTFILE = mkoctfile\n\
FFC = ffc\n\
\n\
OCTFILES = @@UFL_NAME@@_FunctionSpace.oct @@UFL_NAME@@_BilinearForm.oct @@UFL_NAME@@_LinearForm.oct @@UFL_NAME@@_Functional.oct\n\
\n\
all : $(OCTFILES)\n\
fs : @@UFL_NAME@@_FunctionSpace.oct\n\
rhs : @@UFL_NAME@@_BilinearForm.oct\n\
lhs : @@UFL_NAME@@_LinearForm.oct\n\
fun : @@UFL_NAME@@_Functional.oct\n\
\n\
@@UFL_NAME@@_FunctionSpace.oct: @@UFL_NAME@@.h @@UFL_NAME@@_FunctionSpace.cc\n\
	$(MKOCTFILE) @@UFL_NAME@@_FunctionSpace.cc -I$(DIR) -I. $(LDFLAGS) $(CPPFLAGS) $(LIBS)\n\
\n\
@@UFL_NAME@@_BilinearForm.oct: @@UFL_NAME@@.h @@UFL_NAME@@_BilinearForm.cc\n\
	$(MKOCTFILE) @@UFL_NAME@@_BilinearForm.cc -I$(DIR) -I. $(LDFLAGS) $(CPPFLAGS) $(LIBS)\n\
\n\
@@UFL_NAME@@_LinearForm.oct: @@UFL_NAME@@.h @@UFL_NAME@@_LinearForm.cc\n\
	$(MKOCTFILE) @@UFL_NAME@@_LinearForm.cc -I$(DIR) -I. $(LDFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS)\n\
\n\
@@UFL_NAME@@_Functional.oct: @@UFL_NAME@@.h @@UFL_NAME@@_Functional.cc\n\
	$(MKOCTFILE) @@UFL_NAME@@_Functional.cc -I$(DIR) -I. $(LDFLAGS) $(CPPFLAGS) $(LDFLAGS) $(LIBS)\n\
\n\
@@UFL_NAME@@.h: @@UFL_NAME@@.ufl\n\
	$(FFC) -l dolfin @@UFL_NAME@@.ufl\n\
\n\
.PHONY: clean\n\
\n\
clean:\n\
	 rm -f @@UFL_NAME@@_FunctionSpace.o @@UFL_NAME@@_FunctionSpace.cc @@UFL_NAME@@.h\n\
	 rm -f @@UFL_NAME@@_BilinearForm.o @@UFL_NAME@@_BilinearForm.cc\n\
	 rm -f @@UFL_NAME@@_LinearForm.o @@UFL_NAME@@_LinearForm.cc\n\
	 rm -f @@UFL_NAME@@_Functional.o @@UFL_NAME@@_Functional.cc\n\
	 rm -f Makefile_@@UFL_NAME@@\n\
";

STRING =  strrep (STRING, "@@UFL_NAME@@", ufl_name);
STRING =  strrep (STRING, "@@PATH@@", path);

fid = fopen (sprintf ("Makefile_%s", ufl_name), 'w');
if (fid >= 0)
  fputs (fid, STRING);
  output = fclose (fid);
else
  error ("cannot open file");
  output = 1;
endif

endfunction