mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 02:27:39 -04:00
Allow the bin2c output filename stem to contain a path.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23557 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
513a76e14e
commit
992b57324e
1 changed files with 12 additions and 3 deletions
|
@ -34,6 +34,7 @@
|
||||||
#define close _close
|
#define close _close
|
||||||
#define read _read
|
#define read _read
|
||||||
#endif
|
#endif
|
||||||
|
#include <libgen.h>
|
||||||
|
|
||||||
#ifndef O_BINARY
|
#ifndef O_BINARY
|
||||||
#define O_BINARY 0
|
#define O_BINARY 0
|
||||||
|
@ -50,10 +51,14 @@ static off_t filesize(int fd)
|
||||||
static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
|
static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
|
||||||
{
|
{
|
||||||
char filename[256];
|
char filename[256];
|
||||||
|
char filebase[256];
|
||||||
|
char* bn;
|
||||||
FILE* fp;
|
FILE* fp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
snprintf(filename,256,"%s.c",cname);
|
snprintf(filename,256,"%s.c",cname);
|
||||||
|
strncpy(filebase, cname, 256);
|
||||||
|
bn = basename(filebase);
|
||||||
|
|
||||||
fp = fopen(filename,"w+");
|
fp = fopen(filename,"w+");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
|
@ -62,7 +67,7 @@ static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(fp,"/* Generated by bin2c */\n\n");
|
fprintf(fp,"/* Generated by bin2c */\n\n");
|
||||||
fprintf(fp,"unsigned char %s[] = {",cname);
|
fprintf(fp,"unsigned char %s[] = {",bn);
|
||||||
|
|
||||||
for (i=0;i<len;i++) {
|
for (i=0;i<len;i++) {
|
||||||
if ((i % 16) == 0) {
|
if ((i % 16) == 0) {
|
||||||
|
@ -83,9 +88,13 @@ static int write_cfile(const unsigned char* buf, off_t len, const char* cname)
|
||||||
static int write_hfile(off_t len, const char* cname)
|
static int write_hfile(off_t len, const char* cname)
|
||||||
{
|
{
|
||||||
char filename[256];
|
char filename[256];
|
||||||
|
char filebase[256];
|
||||||
|
char* bn;
|
||||||
FILE* fp;
|
FILE* fp;
|
||||||
|
|
||||||
snprintf(filename,256,"%s.h",cname);
|
snprintf(filename,256,"%s.h",cname);
|
||||||
|
strncpy(filebase, cname, 256);
|
||||||
|
bn = basename(filebase);
|
||||||
fp = fopen(filename,"w+");
|
fp = fopen(filename,"w+");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
fprintf(stderr,"Couldn't open %s\n",filename);
|
fprintf(stderr,"Couldn't open %s\n",filename);
|
||||||
|
@ -93,8 +102,8 @@ static int write_hfile(off_t len, const char* cname)
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(fp,"/* Generated by bin2c */\n\n");
|
fprintf(fp,"/* Generated by bin2c */\n\n");
|
||||||
fprintf(fp,"#define LEN_%s %d\n",cname,(int)len);
|
fprintf(fp,"#define LEN_%s %d\n",bn,(int)len);
|
||||||
fprintf(fp,"extern unsigned char %s[];\n",cname);
|
fprintf(fp,"extern unsigned char %s[];\n",bn);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue