Mercurial > fem-fenics-eugenio
comparison inst/private/generate_mf_makefile.m @ 261:f22588ae37af
Improve template meshfunction implementation
* inst/import_meshfunction_type.m: provide to the auxiliary functions a type name and
a valid identifier
* inst/private/generate_mf_*.m: add space before closing angle bracket to avoid parse
errors
author | Eugenio Gianniti <eugenio.gianniti@mail.polimi.it> |
---|---|
date | Thu, 07 Aug 2014 11:13:54 +0200 |
parents | 1e2a9be8083a |
children | 897e312cb440 |
comparison
equal
deleted
inserted
replaced
260:1e2a9be8083a | 261:f22588ae37af |
---|---|
16 | 16 |
17 ## -*- texinfo -*- | 17 ## -*- texinfo -*- |
18 ## function for internal usage only | 18 ## function for internal usage only |
19 ## @end deftypefn | 19 ## @end deftypefn |
20 | 20 |
21 function output = generate_mf_makefile (typename, path) | 21 function output = generate_mf_makefile (label, path) |
22 | 22 |
23 STRING ="\n\ | 23 STRING ="\n\ |
24 DIR = @@PATH@@\n\ | 24 DIR = @@PATH@@\n\ |
25 CPPFLAGS+=@@FF_CPPFLAGS@@ -g\n\ | 25 CPPFLAGS+=@@FF_CPPFLAGS@@ -g\n\ |
26 LIBS+=@@FF_LIBS@@\n\ | 26 LIBS+=@@FF_LIBS@@\n\ |
27 MKOCTFILE = mkoctfile\n\ | 27 MKOCTFILE = mkoctfile\n\ |
28 FFC = ffc\n\ | 28 FFC = ffc\n\ |
29 \n\ | 29 \n\ |
30 OCTFILES = MeshFunction_@@TYPENAME@@.oct save_@@TYPENAME@@.oct\n\ | 30 OCTFILES = MeshFunction_@@LABEL@@.oct save_@@LABEL@@.oct\n\ |
31 \n\ | 31 \n\ |
32 all : $(OCTFILES)\n\ | 32 all : $(OCTFILES)\n\ |
33 \n\ | 33 \n\ |
34 MeshFunction_@@TYPENAME@@.oct: MeshFunction_@@TYPENAME@@.cc \ | 34 MeshFunction_@@LABEL@@.oct: MeshFunction_@@LABEL@@.cc \ |
35 meshfunction_@@TYPENAME@@.h\n\ | 35 meshfunction_@@LABEL@@.h\n\ |
36 CPPFLAGS='$(CPPFLAGS)' $(MKOCTFILE) $< -o $@ -I$(DIR) -I. $(LDFLAGS) $(LIBS)\n\ | 36 CPPFLAGS='$(CPPFLAGS)' $(MKOCTFILE) $< -o $@ -I$(DIR) -I. $(LDFLAGS) $(LIBS)\n\ |
37 \n\ | 37 \n\ |
38 save_@@TYPENAME@@.oct: save_@@TYPENAME@@.cc meshfunction_@@TYPENAME@@.h mkmfdir\n\ | 38 save_@@LABEL@@.oct: save_@@LABEL@@.cc meshfunction_@@LABEL@@.h mkmfdir\n\ |
39 CPPFLAGS='$(CPPFLAGS)' $(MKOCTFILE) $< -o @meshfunction_@@TYPENAME@@/save.oct\ | 39 CPPFLAGS='$(CPPFLAGS)' $(MKOCTFILE) $< -o @meshfunction_@@LABEL@@/save.oct\ |
40 -I$(DIR) -I. $(LDFLAGS) $(LIBS)\n\ | 40 -I$(DIR) -I. $(LDFLAGS) $(LIBS)\n\ |
41 \n\ | 41 \n\ |
42 mkmfdir:\n\ | 42 mkmfdir:\n\ |
43 mkdir -p @meshfunction_@@TYPENAME@@\n\ | 43 mkdir -p @meshfunction_@@LABEL@@\n\ |
44 \n\ | 44 \n\ |
45 .PHONY: clean\n\ | 45 .PHONY: clean\n\ |
46 \n\ | 46 \n\ |
47 clean:\n\ | 47 clean:\n\ |
48 $(RM) meshfunction_@@TYPENAME@@.h save_@@TYPENAME@@.o\n\ | 48 $(RM) meshfunction_@@LABEL@@.h save_@@LABEL@@.o\n\ |
49 $(RM) MeshFunction_@@TYPENAME@@.o MeshFunction_@@TYPENAME@@.cc\n\ | 49 $(RM) MeshFunction_@@LABEL@@.o MeshFunction_@@LABEL@@.cc\n\ |
50 $(RM) save_@@TYPENAME@@.cc\n\ | 50 $(RM) save_@@LABEL@@.cc\n\ |
51 $(RM) Makefile_@@TYPENAME@@\n\ | 51 $(RM) Makefile_@@LABEL@@\n\ |
52 "; | 52 "; |
53 | 53 |
54 STRING = strrep (STRING, "@@TYPENAME@@", typename); | 54 STRING = strrep (STRING, "@@LABEL@@", label); |
55 STRING = strrep (STRING, "@@PATH@@", path); | 55 STRING = strrep (STRING, "@@PATH@@", path); |
56 STRING = strrep (STRING, "@@FF_CPPFLAGS@@", get_vars ("CPPFLAGS")); | 56 STRING = strrep (STRING, "@@FF_CPPFLAGS@@", get_vars ("CPPFLAGS")); |
57 STRING = strrep (STRING, "@@FF_LIBS@@", get_vars ("LIBS")); | 57 STRING = strrep (STRING, "@@FF_LIBS@@", get_vars ("LIBS")); |
58 | 58 |
59 fid = fopen (["Makefile_", typename], "w"); | 59 fid = fopen (["Makefile_", label], "w"); |
60 if (is_valid_file_id (fid)) | 60 if (is_valid_file_id (fid)) |
61 fputs (fid, STRING); | 61 fputs (fid, STRING); |
62 output = fclose (fid); | 62 output = fclose (fid); |
63 else | 63 else |
64 error ("cannot open file"); | 64 error ("cannot open file"); |