mirror of
https://github.com/cc65/cc65.git
synced 2025-01-10 19:29:45 +00:00
Added support for geos resource files
git-svn-id: svn://svn.cc65.org/cc65/trunk@110 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
f09ab689d7
commit
4e647d2d68
@ -78,6 +78,7 @@ struct CmdDesc_ {
|
|||||||
static CmdDesc CC65 = { 0, 0, 0, 0, 0, 0, 0 };
|
static CmdDesc CC65 = { 0, 0, 0, 0, 0, 0, 0 };
|
||||||
static CmdDesc CA65 = { 0, 0, 0, 0, 0, 0, 0 };
|
static CmdDesc CA65 = { 0, 0, 0, 0, 0, 0, 0 };
|
||||||
static CmdDesc LD65 = { 0, 0, 0, 0, 0, 0, 0 };
|
static CmdDesc LD65 = { 0, 0, 0, 0, 0, 0, 0 };
|
||||||
|
static CmdDesc GRC = { 0, 0, 0, 0, 0, 0, 0 };
|
||||||
|
|
||||||
/* File types */
|
/* File types */
|
||||||
enum {
|
enum {
|
||||||
@ -85,7 +86,8 @@ enum {
|
|||||||
FILETYPE_C,
|
FILETYPE_C,
|
||||||
FILETYPE_ASM,
|
FILETYPE_ASM,
|
||||||
FILETYPE_OBJ,
|
FILETYPE_OBJ,
|
||||||
FILETYPE_LIB
|
FILETYPE_LIB,
|
||||||
|
FILETYPE_GR, /* GEOS resource file */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Default file type, used if type unknown */
|
/* Default file type, used if type unknown */
|
||||||
@ -161,11 +163,13 @@ static unsigned GetFileType (const char* File)
|
|||||||
} FileTypes [] = {
|
} FileTypes [] = {
|
||||||
{ ".c", FILETYPE_C },
|
{ ".c", FILETYPE_C },
|
||||||
{ ".s", FILETYPE_ASM },
|
{ ".s", FILETYPE_ASM },
|
||||||
|
{ ".ss", FILETYPE_ASM },
|
||||||
{ ".asm", FILETYPE_ASM },
|
{ ".asm", FILETYPE_ASM },
|
||||||
{ ".o", FILETYPE_OBJ },
|
{ ".o", FILETYPE_OBJ },
|
||||||
{ ".obj", FILETYPE_OBJ },
|
{ ".obj", FILETYPE_OBJ },
|
||||||
{ ".a", FILETYPE_LIB },
|
{ ".a", FILETYPE_LIB },
|
||||||
{ ".lib", FILETYPE_LIB },
|
{ ".lib", FILETYPE_LIB },
|
||||||
|
{ ".grc", FILETYPE_GR },
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned I;
|
unsigned I;
|
||||||
@ -532,6 +536,48 @@ static void Compile (const char* File)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void CompileRes (const char* File)
|
||||||
|
/* Compile the given geos resource file */
|
||||||
|
{
|
||||||
|
char* AsmName = 0;
|
||||||
|
|
||||||
|
/* Remember the current assembler argument count */
|
||||||
|
unsigned ArgCount = GRC.ArgCount;
|
||||||
|
|
||||||
|
/* The assembler file name will be the name of the source file
|
||||||
|
* with .grc replaced by ".ss".
|
||||||
|
*/
|
||||||
|
AsmName = MakeFilename (File, ".ss");
|
||||||
|
|
||||||
|
/* Add the file as argument for the resource compiler */
|
||||||
|
CmdAddArg (&GRC, File);
|
||||||
|
|
||||||
|
/* Add a NULL pointer to terminate the argument list */
|
||||||
|
CmdAddArg (&GRC, 0);
|
||||||
|
|
||||||
|
/* Run the compiler */
|
||||||
|
ExecProgram (&GRC);
|
||||||
|
|
||||||
|
/* Remove the excess arguments */
|
||||||
|
CmdDelArgs (&GRC, ArgCount);
|
||||||
|
|
||||||
|
/* If this is not the final step, assemble the generated file, then
|
||||||
|
* remove it
|
||||||
|
*/
|
||||||
|
if (!DontAssemble) {
|
||||||
|
Assemble (AsmName);
|
||||||
|
if (remove (AsmName) < 0) {
|
||||||
|
Warning ("Cannot remove temporary file `%s': %s",
|
||||||
|
AsmName, strerror (errno));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Free the assembler file name which was allocated from the heap */
|
||||||
|
xfree (AsmName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Code */
|
/* Code */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@ -696,6 +742,7 @@ int main (int argc, char* argv [])
|
|||||||
CmdInit (&CC65, "cc65");
|
CmdInit (&CC65, "cc65");
|
||||||
CmdInit (&CA65, "ca65");
|
CmdInit (&CA65, "ca65");
|
||||||
CmdInit (&LD65, "ld65");
|
CmdInit (&LD65, "ld65");
|
||||||
|
CmdInit (&GRC, "grc");
|
||||||
|
|
||||||
/* Check the parameters */
|
/* Check the parameters */
|
||||||
I = 1;
|
I = 1;
|
||||||
@ -854,6 +901,11 @@ int main (int argc, char* argv [])
|
|||||||
CmdAddFile (&LD65, Arg);
|
CmdAddFile (&LD65, Arg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case FILETYPE_GR:
|
||||||
|
/* Add to the resource compiler files */
|
||||||
|
CompileRes (Arg);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Error ("Don't know what to do with `%s'", Arg);
|
Error ("Don't know what to do with `%s'", Arg);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user