pass LDFLAGS to compiler at link time
[tennix.git] / data / data2csrc.c
blob61223aa2efd445e1f48611c2e9a1ac4cde06ebb0
1 /***
2 * data2csrc.c -- Read data and output c source to stdout
4 * Copyright (c) 2007 Thomas Perl <thpinfo.com/about>
5 * Website: http://thpinfo.com/
7 * License: This code is in the public domain.
8 ***/
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <string.h>
14 int main( int argc, char** argv) {
15 FILE *fp;
16 int c, x = 0, i;
17 char filename[FILENAME_MAX], varname[FILENAME_MAX];
19 if( argc != 3 && argc != 2) {
20 fprintf( stderr, "Usage: %s /path/to/infile.dat [name_of_variable]\n", argv[0]);
21 exit(1);
24 strcpy( filename, argv[1]);
26 if( argc == 2) {
27 /* Determine variable name based on filename */
28 strcpy( varname, argv[1]);
29 for( i=0; i<strlen( varname); i++) {
30 if( varname[i] == '.') varname[i] = '\0';
31 if( varname[i] == '-') varname[i] = '_';
33 } else {
34 strcpy( varname, argv[2]);
37 fp = fopen( filename, "rb");
38 if( fp == NULL) { fprintf( stderr, "Cannot open file: %s\n", argv[1]); exit(1); }
39 printf( "/**\n * Automatically generated from \"%s\" by %s.\n **/\n", filename, argv[0]);
40 printf( "const char %s[] = {", varname);
41 while( (c = fgetc( fp)) != EOF) {
42 if( x > 0) putchar(',');
43 if( x++ % 20 == 0) putchar('\n');
44 printf( "%d", c);
46 printf( "\n};\n\n");
47 fclose( fp);
48 return 0;