diff options
Diffstat (limited to 'code/tools/lcc/etc')
-rw-r--r-- | code/tools/lcc/etc/lcc.c | 25 | ||||
-rw-r--r-- | code/tools/lcc/etc/linux.c | 10 |
2 files changed, 33 insertions, 2 deletions
diff --git a/code/tools/lcc/etc/lcc.c b/code/tools/lcc/etc/lcc.c index 89706df..4a6d0f6 100644 --- a/code/tools/lcc/etc/lcc.c +++ b/code/tools/lcc/etc/lcc.c @@ -74,6 +74,31 @@ static List lccinputs; /* list of input directories */ int main(int argc, char *argv[]) { int i, j, nf; +#ifdef _WIN32 + // Tim Angus <tim@ngus.net> 05/09/05 + // Append the base path of this file to the PATH + // There are probably (much) cleaner ways of doing this, but + // IANAWD (Windows Developer) + { + char basepath[ 1024 ]; + char path[ 4096 ]; + char *p; + + strncpy( basepath, argv[ 0 ], 1024 ); + p = strrchr( basepath, '\\' ); + + if( p ) + { + *p = '\0'; + strncpy( path, "PATH=", 4096 ); + strncat( path, getenv( "PATH" ), 4096 ); + strncat( path, ";", 4096 ); + strncat( path, basepath, 4096 ); + _putenv( path ); + } + } +#endif + progname = argv[0]; ac = argc + 50; av = alloc(ac*sizeof(char *)); diff --git a/code/tools/lcc/etc/linux.c b/code/tools/lcc/etc/linux.c index bf50025..f93a0ee 100644 --- a/code/tools/lcc/etc/linux.c +++ b/code/tools/lcc/etc/linux.c @@ -14,17 +14,23 @@ removed __linux__ preprocessor define (confuses the preprocessor, we are doing b //#define LCCDIR "/usr/local/lib/lcc/" #endif +#ifdef _WIN32 +#define BINEXT ".exe" +#else +#define BINEXT "" +#endif + char *suffixes[] = { ".c", ".i", ".asm", ".o", ".out", 0 }; char inputs[256] = ""; // TTimo experimental: do not compile with the __linux__ define, we are doing bytecode! -char *cpp[] = { LCCDIR "q3cpp", +char *cpp[] = { LCCDIR "q3cpp" BINEXT, "-U__GNUC__", "-D_POSIX_SOURCE", "-D__STDC__=1", "-D__STRICT_ANSI__", "-Dunix", "-Di386", "-Dlinux", "-D__unix__", "-D__i386__", "-D__signed__=signed", "$1", "$2", "$3", 0 }; char *include[] = {"-I" LCCDIR "include", "-I" LCCDIR "gcc/include", "-I/usr/include", "-I" SYSTEM "include", 0 }; -char *com[] = {LCCDIR "q3rcc", "-target=bytecode", "$1", "$2", "$3", 0 }; +char *com[] = {LCCDIR "q3rcc" BINEXT, "-target=bytecode", "$1", "$2", "$3", 0 }; char *as[] = { "/usr/bin/as", "-o", "$3", "$1", "$2", 0 }; // NOTE TTimo I don't think we have any use with the native linkage // our target is always bytecode.. |