X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=cint%2Fginaccint.cpp;h=cd875e90879a58004a855e9427274b5cd4fbe4a4;hp=0c6e1c1ed5cd30f68b97d9bce49f71a4528590a7;hb=7cad9b41c97f0b042ba4af8080e82c8ad4804560;hpb=bd2d7351b89743eb68ce7d3bfa7ab62c331f9522 diff --git a/cint/ginaccint.cpp b/cint/ginaccint.cpp index 0c6e1c1e..cd875e90 100644 --- a/cint/ginaccint.cpp +++ b/cint/ginaccint.cpp @@ -14,30 +14,33 @@ extern char **environ; int main(int argc, char * *argv) { - // manually "expand" autoconf-style variables - if (exec_prefix=="${prefix}") - exec_prefix = prefix; - if (bindir=="${exec_prefix}/bin") - bindir = exec_prefix + "/bin"; - if (libdir=="${exec_prefix}/lib") - libdir = exec_prefix + "/lib"; - // now we can guess what to start - std::string binprog = bindir + "/ginaccint.bin"; - - // extend LD_LIBRARY_PATH by libdir, so ginaccint.bin really finds libginac - const char * LD_LIBRARY_PATH = getenv("LD_LIBRARY_PATH"); - if (LD_LIBRARY_PATH == NULL) - setenv("LD_LIBRARY_PATH", libdir.c_str(), 1); - else - setenv("LD_LIBRARY_PATH", (std::string(LD_LIBRARY_PATH)+':'+libdir).c_str(), 1); - - // hard-wire CINTSYSDIR, inherited from configure, if it is not set - setenv("CINTSYSDIR", CINTSYSDIR.c_str(), 0); - - // execute the real thing - int error = execve(binprog.c_str(), argv, environ); - - // only gets here on error - std::cerr << argv[0] << ": cannot exec " << binprog << std::endl; - return error; + // manually "expand" autoconf-style variables + if (exec_prefix=="${prefix}") + exec_prefix = prefix; + if (bindir=="${exec_prefix}/bin") + bindir = exec_prefix + "/bin"; + if (libdir=="${exec_prefix}/lib") + libdir = exec_prefix + "/lib"; + // now we can guess what to start + std::string binprog = bindir + "/ginaccint.bin"; + + // extend LD_LIBRARY_PATH by libdir, so ginaccint.bin really finds libginac + const char * LD_LIBRARY_PATH = getenv("LD_LIBRARY_PATH"); + if (LD_LIBRARY_PATH == NULL) + setenv("LD_LIBRARY_PATH", libdir.c_str(), 1); + else + setenv("LD_LIBRARY_PATH", (std::string(LD_LIBRARY_PATH)+':'+libdir).c_str(), 1); + + // hard-wire CINTSYSDIR, inherited from configure, but only if it has + // been set therein (to allow for system-wide installations of cint) + // and without overriding it if the user has specified it. + if (CINTSYSDIR != "@CINTSYSDIR@") + setenv("CINTSYSDIR", CINTSYSDIR.c_str(), 0); + + // execute the real thing + int error = execve(binprog.c_str(), argv, environ); + + // only gets here on error + std::cerr << argv[0] << ": cannot exec " << binprog << std::endl; + return error; }