/* DOS */

#ifndef LCCDIR
#define LCCDIR "GBDK:"
#endif

#include <string.h>

char *suffixes[] = { ".c", ".i", ".s;.asm", ".o;.obj", ".gb", 0 };
char inputs[256] = "";
char *cpp[] = { LCCDIR "bin/cpp",
	"-DINT_8_BITS", "-D__STDC__=1", "-DZ80", "-DGB", "$1", "$2", "$3", 0 };
char *include[] = { "-I" LCCDIR "include", 0 };
char *com[] = { LCCDIR "bin/rcc", "-target=z80/gb8",
	"-optimize", "$1", "$2", "$3", 0 };
char *as[] = { LCCDIR "bin/asGB", "-o", "$1", "$3", "$2", 0 };
char *ld[] = { LCCDIR "bin/linkGB", "-n", "--", "-z", "$1",
	"-k" LCCDIR "lib", "-lgb.lib", "$3", LCCDIR "lib/crt0.o", "$2", 0 };

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

int option(char *arg) {
	if(strncmp(arg, "-lccdir=", 8) == 0) {
		int lastchar;
		char *path;
		lastchar = strlen(arg) - 1;
		if((arg[lastchar] == ':') ||
		   (arg[lastchar] == '/'))
			path = &arg[8];
		else
			path = concat(&arg[8], "/");

		cpp[0] = concat(path, "bin/cpp");
		include[0] = concat("-I", concat(path, "include"));
		com[0] = concat(path, "bin/rcc");
		as[0] = concat(path, "bin/asGB");
		ld[0] = concat(path, "bin/linkGB");
		ld[5] = concat("-k", concat(path, "lib"));
		ld[8] = concat(path, "lib/crt0.o");
	} else if(strcmp(arg, "-int8") == 0) {
		cpp[1] = "-DINT_8_BITS";
		com[2] = "-target=z80/gb8";
	} else if(strcmp(arg, "-int16") == 0) {
		cpp[1] = "-DINT_16_BITS";
		com[2] = "-target=z80/gb16";
	} else
		return 0;
	return 1;
}
