Mercurial > fem-fenics-eugenio
diff inst/generate_makefile.m @ 68:4ef8dbafcdfc
New octave script for creation of function on the fly
author | gedeone-octave <marco.vassallo@outlook.com> |
---|---|
date | Sat, 27 Jul 2013 17:21:03 +0200 |
parents | |
children | 5a4371f45fc4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inst/generate_makefile.m Sat Jul 27 17:21:03 2013 +0200 @@ -0,0 +1,60 @@ + +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 = fem_fs_@@UFL_NAME@@.oct fem_rhs_@@UFL_NAME@@.oct fem_lhs_@@UFL_NAME@@.oct\n\ +\n\ +all : $(OCTFILES)\n\ +fs : fem_fs_@@UFL_NAME@@.oct\n\ +rhs : fem_rhs_@@UFL_NAME@@.oct\n\ +lhs : fem_lhs_@@UFL_NAME@@.oct\n\ +\n\ +fem_fs_@@UFL_NAME@@.o: fem_fs_@@UFL_NAME@@.cc\n\ + $(MKOCTFILE) -I$(DIR) -I. $(CPPFLAGS) $(LDFLAGS) $< -c $@\n\ +\n\ +fem_fs_@@UFL_NAME@@.oct: @@UFL_NAME@@.h fem_fs_@@UFL_NAME@@.o\n\ + $(MKOCTFILE) -s fem_fs_@@UFL_NAME@@.o $(DIR)fem_init_env.o $(LDFLAGS) $(LIBS) -o $@\n\ +\n\ +fem_rhs_@@UFL_NAME@@.o: fem_rhs_@@UFL_NAME@@.cc\n\ + $(MKOCTFILE) -I$(DIR) -I. $(LDFLAGS) $(CPPFLAGS) $< -c $@\n\ +\n\ +fem_rhs_@@UFL_NAME@@.oct: @@UFL_NAME@@.h fem_rhs_@@UFL_NAME@@.o\n\ + $(MKOCTFILE) -s fem_rhs_@@UFL_NAME@@.o $(DIR)fem_init_env.o $(LDFLAGS) $(LIBS) -o $@\n\ +\n\ +fem_lhs_@@UFL_NAME@@.o: fem_lhs_@@UFL_NAME@@.cc\n\ + $(MKOCTFILE) -I$(DIR) -I. $(LDFLAGS) $(CPPFLAGS) $< -c $@\n\ +\n\ +fem_lhs_@@UFL_NAME@@.oct: @@UFL_NAME@@.h fem_lhs_@@UFL_NAME@@.o\n\ + $(MKOCTFILE) -s fem_lhs_@@UFL_NAME@@.o $(DIR)fem_init_env.o $(LDFLAGS) $(LIBS) -o $@\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 fem_fs_@@UFL_NAME@@.o fem_fs_@@UFL_NAME@@.cc @@UFL_NAME@@.h\n\ + rm -f fem_rhs_@@UFL_NAME@@.o fem_rhs_@@UFL_NAME@@.cc\n\ + rm -f fem_lhs_@@UFL_NAME@@.o fem_lhs_@@UFL_NAME@@.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