diff --git a/src/interpreter.c b/src/interpreter.c index d08f44b..f08d3af 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -1586,26 +1586,29 @@ GroundValue interpretGroundInstruction(GroundInstruction inst, GroundScope* scop char* libName = in->args.args[0].value.value.data.stringVal; char path[1024]; int found = 0; + + // care about mac and windows later + char* extension = "so"; char* envPath = getenv("GROUND_LIBS"); if (envPath) { - snprintf(path, sizeof(path), "%s/%s", envPath, libName); + snprintf(path, sizeof(path), "%s/%s.%s", envPath, libName, extension); if (access(path, F_OK) == 0) found = 1; } if (!found) { - snprintf(path, sizeof(path), "/usr/lib/ground/%s", libName); + snprintf(path, sizeof(path), "/usr/lib/ground/%s.%s", libName, extension); if (access(path, F_OK) == 0) found = 1; } if (!found) { - snprintf(path, sizeof(path), "./%s", libName); + snprintf(path, sizeof(path), "./%s.%s", libName, extension); if (access(path, F_OK) == 0) found = 1; } if (!found) { char errorMsg[1100]; - snprintf(errorMsg, sizeof(errorMsg), "Could not find external library: %s", libName); + snprintf(errorMsg, sizeof(errorMsg), "Could not find external library: %s, in path: %s", libName, path); runtimeError(FIXME, errorMsg, in, currentInstruction); }