q3rally/engine/code/tools/lcc/etc/bytecode.c
zturtleman 1568196e27 ioquake3 resync to revision 6920 from 6893.
Updated to latest recommended build settings, increased deployment target to 10.7
Further tweaks to Xcode project
Now works as well as possible in Xcode 11
Figured out method of referencing GLSL generated C files outside of code directory
Update README.md
Add C syntax highlighting to readme
Simplify glsl -> C stringification
Make LCC path resolution more robust
GitHub Actions setup
Remove old CI system configurations
Add status badge to README
Fix shader stringify
Run apt-get update before installing deps
Avoid platform sed differences
Run actions on pull request too
Use `r_texturemode GL_LINEAR_MIPMAP_LINEAR` by default
[sdl] Turn tentative definition into actual definition.
Add TOOLS_CFLAGS to build preamble
Fix use of TOOLS_CC being reported as CC
Use the correct compiler for tools when cross building under cygwin
Allow using pulseaudio for SDL audio capture
Restore bots crushing unseen player on q3tourney6 in non-CTF
Fix the number of weights in the IQM model calculation
Fixes a crash when compiling the project on windows in 64 bit mode.
2021-06-07 09:11:19 +00:00

75 lines
1.9 KiB
C

/* quake3 bytecode target */
#include <string.h>
#include <stdio.h>
#include "../../../qcommon/q_platform.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;
size_t basepathsz = sizeof( basepath ) - 1;
strncpy( basepath, lccBinary, basepathsz );
basepath[basepathsz] = 0;
p = strrchr( basepath, '/' );
if( !p )
p = strrchr( basepath, '\\' );
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 (strncmp(arg, "-lcppdir=", 9) == 0) {
cpp[0] = concat(&arg[9], "/q3cpp" BINEXT);
} else if (strncmp(arg, "-lrccdir=", 9) == 0) {
com[0] = concat(&arg[9], "/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;
}