aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorschnetter <schnetter@83718e91-0e4f-0410-abf4-91180603181f>2005-05-24 16:36:04 +0000
committerschnetter <schnetter@83718e91-0e4f-0410-abf4-91180603181f>2005-05-24 16:36:04 +0000
commitd99f83734f0ea81db3ad7c465616cb24bde2f4c0 (patch)
treed002b16e8f1274391ecd420d595f34714a119a50 /src/util
parent28ff3a5f5499b2c4c732dfabbb326a5f91271cd7 (diff)
Use C++ for the portal code; that's cleaner.
Store the Cactus source tree in the executable and output it into the output directory. git-svn-id: http://svn.cactuscode.org/arrangements/CactusUtils/Formaline/trunk@5 83718e91-0e4f-0410-abf4-91180603181f
Diffstat (limited to 'src/util')
-rw-r--r--src/util/makeblob.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/util/makeblob.c b/src/util/makeblob.c
new file mode 100644
index 0000000..60de456
--- /dev/null
+++ b/src/util/makeblob.c
@@ -0,0 +1,77 @@
+/* $Header$ */
+
+#include <stdio.h>
+
+int
+main (int argc, char * * argv)
+{
+ FILE * metafile;
+ unsigned long metacount;
+ char filename [100];
+ FILE * file;
+ unsigned long count;
+
+ for (metacount = 0; ; ++ metacount)
+ {
+ sprintf (filename, "cactus-source-%08lu.c", metacount);
+ file = fopen (filename, "w");
+ fprintf (file, "/* This is an auto-generated file -- do not edit */\n");
+ fprintf (file, "#include <stddef.h>\n");
+ fprintf (file, "\n");
+ fprintf (file, "char const cactus_source_%08lu [] = {", metacount);
+ for (count = 0; count < 1000000; ++ count)
+ {
+ int const ch = getc (stdin);
+ if (feof (stdin)) break;
+ if (ferror (stdin)) return 1;
+ if (count != 0) {
+ fprintf (file, ",");
+ }
+ if (count % 16 == 0)
+ {
+ fprintf (file, "\n");
+ }
+ fprintf (file, "%3d", ch);
+ }
+ fprintf (file, "\n");
+ fprintf (file, "};\n");
+ fprintf (file, "size_t const cactus_source_length_%08lu = %lu;\n", metacount, count);
+ fclose (file);
+
+ if (feof (stdin)) break;
+ }
+
+
+
+ metafile = fopen ("cactus-source.c", "w");
+ fprintf (metafile, "/* This is an auto-generated file -- do not edit */\n");
+ fprintf (metafile, "#include <stddef.h>\n");
+ fprintf (metafile, "\n");
+ fprintf (metafile, "struct chunkinfo\n");
+ fprintf (metafile, "{\n");
+ fprintf (metafile, " char const * data;\n");
+ fprintf (metafile, " size_t * length;\n");
+ fprintf (metafile, "};\n");
+ fprintf (metafile, "\n");
+ for (count = 0; count <= metacount; ++ count)
+ {
+ fprintf (metafile, "extern char const cactus_source_%08lu [];\n", count);
+ fprintf (metafile, "extern size_t cactus_source_length_%08lu [];\n", count);
+ }
+ fprintf (metafile, "\n");
+ fprintf (metafile, "struct chunkinfo cactus_source_chunks [] = {");
+ for (count = 0; count < metacount; ++ count)
+ {
+ if (count != 0) {
+ fprintf (metafile, ",");
+ }
+ fprintf (metafile, "\n");
+ fprintf (metafile, "{ cactus_source_%08lu, & cactus_source_length_%08lu }", count, count);
+ }
+ fprintf (metafile, "\n");
+ fprintf (metafile, "};\n");
+ fprintf (metafile, "size_t cactus_source_chunks_length = %lu;\n", metacount + 1);
+ fclose (metafile);
+
+ return 0;
+}