aboutsummaryrefslogtreecommitdiff
path: root/Tools/CodeGen/CodeGenStartup.m
diff options
context:
space:
mode:
authorIan Hinder <ian.hinder@aei.mpg.de>2013-09-09 12:06:15 +0200
committerIan Hinder <ian.hinder@aei.mpg.de>2013-09-09 12:06:15 +0200
commit64416193c6b2c6f8aa776985f30969c86c0e567b (patch)
treee92538ead6715531fdd627046f8271774e1cb7ad /Tools/CodeGen/CodeGenStartup.m
parent4586ffb419881f05f398d46ef1c74b1478f328cc (diff)
Thorn.m: Move startup file generation to new CodeGenStartup.m
Diffstat (limited to 'Tools/CodeGen/CodeGenStartup.m')
-rw-r--r--Tools/CodeGen/CodeGenStartup.m54
1 files changed, 54 insertions, 0 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[];