aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorschnetter <schnetter@83718e91-0e4f-0410-abf4-91180603181f>2005-05-25 13:18:59 +0000
committerschnetter <schnetter@83718e91-0e4f-0410-abf4-91180603181f>2005-05-25 13:18:59 +0000
commitfe82daa7373a7b1d0347a7f7b2c2cf55c33d83a8 (patch)
treecb3914290b19a5a9fadccf4d2f45abebd3ec4b1e /src/util
parente6127db547407be2e1370b8606292fb1ca02dc47 (diff)
Correct parameter file that outputs that tarball.
Create one tarball per thorn; this scales much better, and is only slightly less convenient. Create the output directory if it does not yet exist. git-svn-id: http://svn.cactuscode.org/arrangements/CactusUtils/Formaline/trunk@9 83718e91-0e4f-0410-abf4-91180603181f
Diffstat (limited to 'src/util')
-rw-r--r--src/util/makeblob.c102
-rw-r--r--src/util/makemetablob.c41
2 files changed, 82 insertions, 61 deletions
diff --git a/src/util/makeblob.c b/src/util/makeblob.c
index 46f3446..a7f94c0 100644
--- a/src/util/makeblob.c
+++ b/src/util/makeblob.c
@@ -1,78 +1,58 @@
/* $Header$ */
+#include <assert.h>
#include <stdio.h>
int
main (int argc, char * * argv)
{
- FILE * metafile;
- unsigned long metacount;
- char filename [100];
- FILE * file;
+ char const * arrangement;
+ char const * thorn;
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;
- }
- ++ metacount;
-
+ assert (argc == 3);
+ arrangement = argv[1];
+ thorn = argv[2];
+ assert (arrangement);
+ assert (thorn);
-
- 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)
+ printf ("/* This is an auto-generated file -- do not edit */\n");
+ printf ("\n");
+ printf ("#include <stddef.h>\n");
+ printf ("\n");
+ printf ("struct sourceinfo\n");
+ printf ("{\n");
+ printf (" char const * data;\n");
+ printf (" size_t length;\n");
+ printf (" char const * arrangement;\n");
+ printf (" char const * thorn;\n");
+ printf ("};\n");
+ printf ("\n");
+ printf ("static char const data [] = {");
+ for (count = 0; ; ++ count)
{
+ int const ch = getc (stdin);
+ if (feof (stdin)) break;
+ if (ferror (stdin)) return 1;
if (count != 0) {
- fprintf (metafile, ",");
+ printf (",");
+ }
+ if (count % 16 == 0)
+ {
+ printf ("\n");
}
- fprintf (metafile, "\n");
- fprintf (metafile, "{ cactus_source_%08lu, & cactus_source_length_%08lu }", count, count);
+ printf ("%3d", ch);
}
- fprintf (metafile, "\n");
- fprintf (metafile, "};\n");
- fprintf (metafile, "size_t cactus_source_chunks_length = %lu;\n", metacount);
- fclose (metafile);
+ printf ("\n");
+ printf ("};\n");
+ printf ("\n");
+ printf ("struct sourceinfo const cactus_source_%s =\n", thorn);
+ printf ("{\n");
+ printf (" data,\n");
+ printf (" %lu,\n", count);
+ printf (" \"%s\",\n", arrangement);
+ printf (" \"%s\"\n", thorn);
+ printf ("};\n");
return 0;
}
diff --git a/src/util/makemetablob.c b/src/util/makemetablob.c
new file mode 100644
index 0000000..bc871a6
--- /dev/null
+++ b/src/util/makemetablob.c
@@ -0,0 +1,41 @@
+/* $Header$ */
+
+#include <stdio.h>
+
+int
+main (int argc, char * * argv)
+{
+ int count;
+
+ printf ("/* This is an auto-generated file -- do not edit */\n");
+ printf ("\n");
+ printf ("#include <stddef.h>\n");
+ printf ("\n");
+ printf ("struct sourceinfo\n");
+ printf ("{\n");
+ printf (" char const * data;\n");
+ printf (" size_t length;\n");
+ printf (" char const * arrangement;\n");
+ printf (" char const * thorn;\n");
+ printf ("};\n");
+ printf ("\n");
+ for (count = 1; count < argc; ++ count)
+ {
+ printf ("extern struct sourceinfo cactus_source_%s;\n", argv[count]);
+ }
+ printf ("\n");
+ printf ("struct sourceinfo const * const cactus_source [] = {");
+ for (count = 1; count < argc; ++ count)
+ {
+ if (count != 1) {
+ printf (",");
+ }
+ printf ("\n");
+ printf (" & cactus_source_%s", argv[count]);
+ }
+ printf ("\n");
+ printf ("};\n");
+ printf ("size_t const cactus_source_length = %d;\n", argc - 1);
+
+ return 0;
+}