Skip to content

Commit

Permalink
Xcode project for building q3lcc, q3rcc and q3cpp.
Browse files Browse the repository at this point in the history
made use of bytecode.c from ioquake3 for q3lcc.
generated the various platform files for q3rcc and placed them in 'out' directory.
appears to compile and generate 'asm' files, but during testing, q3asm complains about missing symbols from the C standard library.
  • Loading branch information
jeremiah-sypult committed May 10, 2013
1 parent da6fe0e commit 3722496
Show file tree
Hide file tree
Showing 9 changed files with 30,263 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lcc/cpp/unix.c
Expand Up @@ -89,7 +89,8 @@ setup(int argc, char **argv)
}



#if defined(memmove) && !defined(__MACH__)
#undef memmove
/* memmove is defined here because some vendors don't provide it at
all and others do a terrible job (like calling malloc) */
void *
Expand All @@ -114,3 +115,4 @@ memmove(void *dp, const void *sp, size_t n)
}
return 0;
}
#endif
66 changes: 66 additions & 0 deletions lcc/etc/bytecode.c
@@ -0,0 +1,66 @@
/* quake3 bytecode target */

#include <string.h>
#include <stdio.h>
#include "../../code/game/q_shared.h"

#ifdef _WIN32
#define BINEXT ".exe"
#else
#define BINEXT ""
#endif

char *suffixes[] = { ".c", ".i", ".asm", ".o", ".out", 0 };
char inputs[256] = "";
char *cpp[] = { "q3cpp" BINEXT,
"-D__STDC__=1", "-D__STRICT_ANSI__", "-D__signed__=signed", "-DQ3_VM",
"$1", "$2", "$3", 0 };
char *include[] = { 0 };
char *com[] = { "q3rcc" BINEXT, "-target=bytecode", "$1", "$2", "$3", 0 };
char *ld[] = { 0 };
char *as[] = { 0 };

extern char *concat(char *, char *);

/*
===============
UpdatePaths
Updates the paths to q3cpp and q3rcc based on
the directory that contains q3lcc
===============
*/
void UpdatePaths( const char *lccBinary )
{
char basepath[ 1024 ];
char *p;

strncpy( basepath, lccBinary, 1024 );
p = strrchr( basepath, PATH_SEP );

if( p )
{
*( p + 1 ) = '\0';

cpp[ 0 ] = concat( basepath, "q3cpp" BINEXT );
com[ 0 ] = concat( basepath, "q3rcc" BINEXT );
}
}

int option(char *arg) {
if (strncmp(arg, "-lccdir=", 8) == 0) {
cpp[0] = concat(&arg[8], "/q3cpp" BINEXT);
include[0] = concat("-I", concat(&arg[8], "/include"));
com[0] = concat(&arg[8], "/q3rcc" BINEXT);
} else if (strcmp(arg, "-p") == 0 || strcmp(arg, "-pg") == 0) {
fprintf( stderr, "no profiling supported, %s ignored.\n", arg);
} else if (strcmp(arg, "-b") == 0)
;
else if (strcmp(arg, "-g") == 0)
fprintf( stderr, "no debugging supported, %s ignored.\n", arg);
else if (strncmp(arg, "-ld=", 4) == 0 || strcmp(arg, "-static") == 0) {
fprintf( stderr, "no linking supported, %s ignored.\n", arg);
} else
return 0;
return 1;
}

0 comments on commit 3722496

Please sign in to comment.