diff options
author | schnetter <schnetter@83718e91-0e4f-0410-abf4-91180603181f> | 2005-05-24 16:36:04 +0000 |
---|---|---|
committer | schnetter <schnetter@83718e91-0e4f-0410-abf4-91180603181f> | 2005-05-24 16:36:04 +0000 |
commit | d99f83734f0ea81db3ad7c465616cb24bde2f4c0 (patch) | |
tree | d002b16e8f1274391ecd420d595f34714a119a50 /src/util | |
parent | 28ff3a5f5499b2c4c732dfabbb326a5f91271cd7 (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.c | 77 |
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; +} |