summaryrefslogtreecommitdiff
path: root/fc-arch/fc-arch.c
diff options
context:
space:
mode:
Diffstat (limited to 'fc-arch/fc-arch.c')
-rwxr-xr-xfc-arch/fc-arch.c136
1 files changed, 0 insertions, 136 deletions
diff --git a/fc-arch/fc-arch.c b/fc-arch/fc-arch.c
deleted file mode 100755
index 2fa6b18..0000000
--- a/fc-arch/fc-arch.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright © 2006 Keith Packard
- * Copyright © 2005 Patrick Lam
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- */
-
-#include "fcint.h"
-#include <ctype.h>
-
-#define ENDIAN_TEST 0x12345678
-#define MACHINE_SIGNATURE_SIZE (9*21 + 1)
-
-static char *
-FcCacheMachineSignature (void)
-{
- static char buf[MACHINE_SIGNATURE_SIZE];
- int32_t magic = ENDIAN_TEST;
- char * m = (char *)&magic;
-
- sprintf (buf, "%2x%2x%2x%2x_"
- "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x_"
- "%08x_%08x_%08x_%08x_%08x_%08x_%08x_%08x",
- m[0], m[1], m[2], m[3],
- (unsigned int)sizeof (char),
- (unsigned int)sizeof (char *),
- (unsigned int)sizeof (int),
- (unsigned int)sizeof (intptr_t),
- (unsigned int)sizeof (FcPattern),
- (unsigned int)sizeof (FcPatternEltPtr),
- (unsigned int)sizeof (struct FcPatternElt *),
- (unsigned int)sizeof (FcPatternElt),
- (unsigned int)sizeof (FcObject),
- (unsigned int)sizeof (FcValueListPtr),
- (unsigned int)sizeof (FcValue),
- (unsigned int)sizeof (FcValueBinding),
- (unsigned int)sizeof (struct FcValueList *),
- (unsigned int)sizeof (FcCharSet),
- (unsigned int)sizeof (FcCharLeaf **),
- (unsigned int)sizeof (FcChar16 *),
- (unsigned int)sizeof (FcChar16),
- (unsigned int)sizeof (FcCharLeaf),
- (unsigned int)sizeof (FcChar32),
- (unsigned int)sizeof (FcCache));
-
- return buf;
-}
-
-int
-main (int argc, char **argv)
-{
- static char line[1024];
- char *signature;
- int signature_length;
- char *space;
- char *arch = NULL;
- int lineno = 0;
-
- if (argc != 2)
- fprintf (stderr, "Usage: %s <architecture>|auto < fcarch.tmpl.h > fcarch.h\n",
- argv[0]);
- arch = argv[1];
- /*
- * Scan the input until the marker is found
- */
-
- while (fgets (line, sizeof (line), stdin))
- {
- lineno++;
- if (!strncmp (line, "@@@", 3))
- break;
- fputs (line, stdout);
- }
- signature = FcCacheMachineSignature();
- signature_length = strlen (signature);
-
- if (strcmp (arch, "auto") == 0)
- {
- arch = NULL;
- /*
- * Search for signature
- */
- while (fgets (line, sizeof (line), stdin))
- {
- lineno++;
- /*
- * skip comments
- */
- if (!strncmp (line, "@@@", 3))
- continue;
- space = line;
- while (*space && !isspace (*space))
- space++;
- if (!space)
- {
- fprintf (stderr, "%s: malformed input on line %d\n",
- argv[0], lineno);
- exit (1);
- }
- *space++ = '\0';
- while (isspace (*space))
- space++;
- if (!strncmp (space, signature, signature_length))
- {
- arch = line;
- break;
- }
- }
- }
- if (!arch)
- {
- fprintf (stderr, "%s: unknown signature \"%s\"\n", argv[0], signature);
- fprintf (stderr, "\tPlease update fcarch.tmpl.h and rebuild\n");
- exit (1);
- }
- printf ("#define FC_ARCHITECTURE \"%s\"\n", arch);
- fflush (stdout);
- exit (ferror (stdout));
-}
-