From 64416193c6b2c6f8aa776985f30969c86c0e567b Mon Sep 17 00:00:00 2001 From: Ian Hinder Date: Mon, 9 Sep 2013 12:06:15 +0200 Subject: Thorn.m: Move startup file generation to new CodeGenStartup.m --- Tools/CodeGen/CodeGenStartup.m | 54 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Tools/CodeGen/CodeGenStartup.m (limited to 'Tools/CodeGen/CodeGenStartup.m') 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[]; -- cgit v1.2.3