diff options
author | FreeArtMan <dos21h@gmail.com> | 2015-12-19 16:32:12 +0000 |
---|---|---|
committer | FreeArtMan <dos21h@gmail.com> | 2015-12-19 16:32:12 +0000 |
commit | 9381ae971066a42ad00def424c29370ced09eb60 (patch) | |
tree | 93e69c6920579ef0f499a9c79aab67d9aa1bc474 /tools/kconf2h/kconf2h.c | |
parent | 80971b7c44ef1066b6555c5802b1f1d67e20bed2 (diff) | |
download | radiola-9381ae971066a42ad00def424c29370ced09eb60.tar.gz radiola-9381ae971066a42ad00def424c29370ced09eb60.zip |
Added menuconfig support. Added default config files for Linux and NetBSD. Added kconf2h tool. Small fixes to README
Diffstat (limited to 'tools/kconf2h/kconf2h.c')
-rw-r--r-- | tools/kconf2h/kconf2h.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tools/kconf2h/kconf2h.c b/tools/kconf2h/kconf2h.c new file mode 100644 index 0000000..91ef6c7 --- /dev/null +++ b/tools/kconf2h/kconf2h.c @@ -0,0 +1,50 @@ +#include <stdio.h> +#include <stdlib.h> + +#include <sys/stat.h> + +#include "kconf2h.h" + +int main( int argc, char **argv ) +{ + FILE *fin = NULL; + FILE *fout = NULL; + struct stat st; + + char *buf=NULL; + if ( argc == 3 ) + { + fin = fopen( argv[1], "r+" ); + fout = fopen( argv[2], "w+" ); + fseek( fin, 0, SEEK_SET ); + if ( fin && fout ) + { + if ( stat( argv[1], &st ) ) + { + goto error_exit; + } + buf = malloc( st.st_size ); memset( buf, 0, st.st_size ); + size_t r_size = fread( buf, 1, st.st_size, fin ); + if ( r_size > 0 ) + { + int ret = parse_kconf2h( buf, fout ); + printf("Kconfig file parsed %d %d bytes\n", ret, r_size ); + } else + { + printf("ERR: while reading file %s [%d]\n", argv[1], r_size); + } +error_exit: + if ( buf ) free( buf ); + fclose( fin ); + fclose( fout ); + } else + { + printf("ERR: Cannot open file\n"); + } + } else + { + printf("ERR: usage ./kconf2h [conffile] [outputheader]\n"); + return -1; + } + return 0; +} |