diff options
author | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-09-09 12:06:15 +0200 |
---|---|---|
committer | Ian Hinder <ian.hinder@aei.mpg.de> | 2013-09-09 12:06:15 +0200 |
commit | 64416193c6b2c6f8aa776985f30969c86c0e567b (patch) | |
tree | e92538ead6715531fdd627046f8271774e1cb7ad /Tools/CodeGen | |
parent | 4586ffb419881f05f398d46ef1c74b1478f328cc (diff) |
Thorn.m: Move startup file generation to new CodeGenStartup.m
Diffstat (limited to 'Tools/CodeGen')
-rw-r--r-- | Tools/CodeGen/CodeGenStartup.m | 54 | ||||
-rw-r--r-- | Tools/CodeGen/KrancThorn.m | 3 | ||||
-rw-r--r-- | Tools/CodeGen/Thorn.m | 24 |
3 files changed, 56 insertions, 25 deletions
diff --git a/Tools/CodeGen/CodeGenStartup.m b/Tools/CodeGen/CodeGenStartup.m new file mode 100644 index 0000000..598a459 --- /dev/null +++ b/Tools/CodeGen/CodeGenStartup.m @@ -0,0 +1,54 @@ + +(* Copyright 2004-2013 Sascha Husa, Ian Hinder, Christiane Lechner + + This file is part of Kranc. + + Kranc is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + Kranc is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Kranc; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*) + +BeginPackage[ + "CodeGenStartup`", + {"Errors`", "Helpers`", "Kranc`", "CodeGenKranc`", "CodeGenC`", "CodeGen`"}]; + +CreateStartupFile::usage = ""; + +Begin["`Private`"]; + +(* ------------------------------------------------------------------------ + Startup file + ------------------------------------------------------------------------ *) + +CreateStartupFile[thornName_, bannerText_] := + Module[{tmp, lang}, + + lang = CodeGenC`SOURCELANGUAGE; + CodeGenC`SOURCELANGUAGE = "C"; + + tmp = {FileHeader["C"], + + IncludeFile["cctk.h"], + DefineFunction[thornName <> "_Startup", "extern \"C\" int", "void", + {DefineVariable["banner", "const char*", Quote[bannerText]], + "CCTK_RegisterBanner(banner);\n", + "return 0;\n"}]}; + + CodeGenC`SOURCELANGUAGE = lang; + + tmp + ]; + +End[]; + +EndPackage[]; diff --git a/Tools/CodeGen/KrancThorn.m b/Tools/CodeGen/KrancThorn.m index 75fa6f2..8e5a195 100644 --- a/Tools/CodeGen/KrancThorn.m +++ b/Tools/CodeGen/KrancThorn.m @@ -30,7 +30,8 @@ BeginPackage["KrancThorn`", {"CodeGen`", "Thorn`", "CalculationFunction`", "Errors`", "Helpers`", "CactusBoundary`", "KrancTensor`", "Param`", "Schedule`", "Interface`", "Kranc`", "Jacobian`", "ConservationCalculation`", "CaKernel`", "Calculation`", "ParamCheck`", - "OpenCL`", "CodeGenConfiguration`", "CodeGenMakefile`", "CodeGenSymmetries`", "MoL`"}]; + "OpenCL`", "CodeGenConfiguration`", "CodeGenMakefile`", "CodeGenSymmetries`", "MoL`", + "CodeGenStartup`"}]; CreateKrancThorn::usage = "Construct a Kranc thorn"; diff --git a/Tools/CodeGen/Thorn.m b/Tools/CodeGen/Thorn.m index d241ee7..61a3097 100644 --- a/Tools/CodeGen/Thorn.m +++ b/Tools/CodeGen/Thorn.m @@ -32,7 +32,6 @@ BeginPackage["Thorn`", "CodeGen`", "CodeGenC`", "CodeGenCactus`", "CodeGenKranc` CreateThorn::usage = "Create a general Cactus thorn from a thorn specification structure"; CreateSetterSource::usage = ""; -CreateStartupFile::usage = ""; Begin["`Private`"]; @@ -110,29 +109,6 @@ CreateSetterSource[calcs_, debug_, include_, CreateCalculationFunction[calc, opts]}]; (* ------------------------------------------------------------------------ - Startup file - ------------------------------------------------------------------------ *) - -CreateStartupFile[thornName_, bannerText_] := - Module[{tmp, lang}, - - lang = CodeGenC`SOURCELANGUAGE; - CodeGenC`SOURCELANGUAGE = "C"; - - tmp = {FileHeader["C"], - - IncludeFile["cctk.h"], - DefineFunction[thornName <> "_Startup", "extern \"C\" int", "void", - {DefineVariable["banner", "const char*", Quote[bannerText]], - "CCTK_RegisterBanner(banner);\n", - "return 0;\n"}]}; - - CodeGenC`SOURCELANGUAGE = lang; - - tmp - ]; - -(* ------------------------------------------------------------------------ Thorn creation ------------------------------------------------------------------------ *) |