50 #include "compiledata.h"
51 #include "RConfigure.h"
72 gROOT->SetInterrupt(kFALSE);
106 if (gSystem && name[0] !=
'-' && strcmp(name,
"Generic"))
107 Error(
"TSystem",
"only one instance of TSystem allowed");
112 fStdExceptionHandler = 0;
133 if (!gLibraryVersion) {
135 memset(gLibraryVersion, 0, gLibraryVersionMax*
sizeof(
Int_t));
269 #ifdef R__SOLARIS_CC50
285 #ifdef R__SOLARIS_CC50
362 catch (std::exception& exc) {
374 Warning(
"Run",
"instructed to abort");
381 catch (
const char *str) {
386 Warning(
"Run",
"handle uncaugth exception, terminating");
427 return gROOT->IsInterrupted();
508 if (t->
IsSync() == mode) {
522 if (to && to->
IsAsync() && timeout > 0) {
688 FILE *pipe =
OpenPipe(command,
"r");
690 SysError(
"GetFromPipe",
"cannot run command \"%s\"", command);
695 while (line.
Gets(pipe)) {
703 Error(
"GetFromPipe",
"command \"%s\" returned %d", command, r);
777 if ((h =
gROOT->GetPluginManager()->FindHandler(
"TSystem", path))) {
782 }
else if ((h =
gROOT->GetPluginManager()->FindHandler(
"TSystem", path))) {
813 return (checkproto || checkdir);
915 if (name[0] ==
'/' && name[1] ==
'\0')
918 if ((cp = (
char*)strrchr(name,
'/')))
922 Error(
"BaseName",
"name = 0");
932 return dir[0] ==
'/';
946 if (!name || !name[0])
return kFALSE;
958 while ( incPath.
Index(
" :") != -1 ) {
961 incPath.
Prepend(fileLocation+
":.:");
963 char *actual =
Which(incPath,realname);
982 if (pathname && strchr(pathname,
'/')) {
986 static char *buf = 0;
987 int pathlen = strlen(pathname);
991 buf =
new char [len+1];
993 strcpy(buf, pathname);
995 char *
r = buf+pathlen-1;
997 while ( r>buf && *(r)==
'/') { --
r; }
999 while ( r>buf && *(r)!=
'/') { --
r; }
1002 while ( r>buf && *(r)==
'/') { --
r; }
1005 if (r==buf && *(r)!=
'/') {
1058 int n, ier,
iter, lx, ncopy;
1059 char *inp, *
out, *
x, *
t, buff[kBufSize*4];
1060 const char *b, *
c, *e;
1062 static char xname[kBufSize];
1066 iter = 0; xname[0] = 0; inp = buff + kBufSize; out = inp + kBufSize;
1067 inp[-1] =
' '; inp[0] = 0; out[-1] =
' ';
1068 c = fname + strspn(fname,
" \t\f\r");
1071 strlcat(inp, c, kBufSize);
1074 iter++; c = inp; ier = 0;
1078 if (c[0] ==
'~' && c[1] ==
'/') {
1082 strlcpy(x, p, kBufSize);
1089 }
else if (c[0] ==
'~' && c[1] !=
'/') {
1090 n = strcspn(c+1,
"/ ");
1092 strncat(buff, c+1, n);
1096 strlcpy(x, p, kBufSize);
1105 for ( ; c[0]; c++) {
1109 if (c[0] ==
'.' && c[1] ==
'/' && c[-1] ==
' ') {
1115 strlcpy(x, p, kBufSize); x += strlen(p); c = e-1;
continue;
1122 if (c[1] ==
'(') b++;
1123 if (c[1] ==
'{') b++;
1127 for (e = b; isalnum(e[0]) || e[0] ==
'_'; e++) ;
1128 buff[0] = 0; strncat(buff, b, e-b);
1131 for (t = buff; (t[0] = toupper(t[0])); t++) ;
1135 for (t = buff; (t[0] = tolower(t[0])); t++) ;
1138 if (!p && !strcmp(buff,
"cwd")) {
1142 if (!p && !strcmp(buff,
"$")) {
1143 snprintf(buff,kBufSize*4,
"%d",
GetPid());
1151 if (c[1] && c[1]!=
'\\' && c[1]!=
';' && c[1]!=
'/')
1159 if (lp >= kBufSize) {
1161 strlcpy(x, p, kBufSize);
1167 c = (b==c+1) ? e-1 : e;
1172 x[0] = 0; lx = x -
out;
1173 if (ier && iter < 3) { strlcpy(inp, out, kBufSize);
goto again; }
1174 ncopy = (lx >= kBufSize) ? kBufSize-1 : lx;
1175 xname[0] = 0; strncat(xname, out, ncopy);
1177 if (ier || ncopy != lx) {
1178 ::Error(
"TSystem::ExpandFileName",
"input: %s, output: %s", fname, xname);
1227 if (strlen(url.
GetHost()) > 0) {
1237 if (strlen(url.
GetUser()) > 0) {
1316 int res =
GetPathInfo(path,
id, &lsize, flags, modtime);
1318 if (res == 0 && size) {
1320 Error(
"GetPathInfo",
"file %s > 2 GB, use GetPathInfo() with Long64_t size", path);
1462 FindFile(search, wfilString, mode);
1463 if (wfilString.
IsNull())
return 0;
1639 Error(
"ShowOutput",
"handle not specified");
1645 Error(
"ShowOutput",
"file '%s' cannot be read", h->
fFile.
Data());
1651 if (!(f = fopen(h->
fFile.
Data(),
"r"))) {
1652 Error(
"ShowOutput",
"file '%s' cannot be open", h->
fFile.
Data());
1657 off_t ltot = lseek(fileno(f), (off_t) 0, SEEK_END);
1659 lseek(fileno(f), (off_t) begin, SEEK_SET);
1660 Int_t left = ltot - begin;
1663 const Int_t kMAXBUF = 16384;
1665 Int_t wanted = (left > kMAXBUF-1) ? kMAXBUF-1 : left;
1668 while ((len =
read(fileno(f), buf, wanted)) < 0 &&
1673 SysError(
"ShowOutput",
"error reading log file");
1679 fprintf(stderr,
"%s", buf);
1683 wanted = (left > kMAXBUF) ? kMAXBUF : left;
1685 }
while (len > 0 && left > 0);
1728 if (left == right)
return kTRUE;
1730 if (left==0 || right==0)
return kFALSE;
1732 if ( (strcmp(right,left)==0) ) {
1738 char leftname[_MAX_PATH];
1739 char rightname[_MAX_PATH];
1740 _fullpath( leftname, left, _MAX_PATH );
1741 _fullpath( rightname, right, _MAX_PATH );
1742 return ((stricmp(leftname, rightname)==0));
1744 struct stat rightBuf;
1745 struct stat leftBuf;
1746 return ( ( 0 == stat( left, & leftBuf ) )
1747 && ( 0 == stat( right, & rightBuf ) )
1748 && ( leftBuf.st_dev == rightBuf.st_dev )
1749 && ( leftBuf.st_ino == rightBuf.st_ino )
1750 && ( leftBuf.st_size == rightBuf.st_size )
1751 && ( leftBuf.st_mtime == rightBuf.st_mtime )
1780 if (idx == 0 || libs[idx-1] ==
'/' || libs[idx-1] ==
'\\') {
1783 if (!l.
EndsWith(
".") && libs[idx]==
'.')
1786 while (idx < len && isdigit(libs[idx])) {
1789 if (libs[idx] ==
'.') {
1793 while (idx < len && libs[idx] !=
'.') {
1794 if (libs[idx] ==
' ' || idx+1 == len) {
1801 if (l[l.
Length()-1] ==
'.') {
1807 if ((idx == 0 || libs[idx-1] ==
' ') &&
1808 (libs[idx+l.
Length()] ==
' ' || libs[idx+l.
Length()] == 0)) {
1822 libmapfilename = path;
1823 idx = libmapfilename.
Last(
'.');
1825 libmapfilename.
Remove(idx);
1827 libmapfilename +=
".rootmap";
1829 if (
gDebug > 0)
Info(
"Load",
"loading %s", libmapfilename.
Data());
1831 deplibs =
gInterpreter->GetSharedLibDeps(moduleBasename);
1838 if (strcmp(module,deplib)==0) {
1842 Info(
"Load",
"loading dependent library %s for library %s",
1844 if ((ret =
Load(deplib,
"", system)) < 0) {
1854 const char *dirname =
DirName(path);
1856 TString rootlibdir = ROOTLIBDIR;
1865 TString rootbindir = ROOTBINDIR;
1874 gLibraryVersionIdx++;
1875 if (gLibraryVersionIdx == gLibraryVersionMax) {
1876 gLibraryVersionMax *= 2;
1877 gLibraryVersion =
TStorage::ReAllocInt(gLibraryVersion, gLibraryVersionMax, gLibraryVersionIdx);
1880 if (ret < 0) ret = -1;
1882 Info(
"Load",
"loaded library %s, status %d", path, ret);
1883 if (ret == 0 && gLibraryVersion[gLibraryVersionIdx]) {
1885 Error(
"Load",
"version mismatch, %s = %d, ROOT = %d",
1886 path, v,
gROOT->GetVersionInt());
1890 gLibraryVersionIdx--;
1894 if (!entry || !entry[0] || ret < 0)
return ret;
1968 Printf(
"Loaded shared libraries");
1969 Printf(
"=======================");
1971 while ((start < libs.
Length()) && (index !=
kNPOS)) {
1972 index = libs.
Index(separator, &end, start);
1974 s = libs(index, end);
1988 Printf(
"-----------------------");
1989 Printf(
"%d libraries loaded", i);
1990 Printf(
"=======================");
1998 TTHREAD_TLS_DECL(
TString, gLastErrorString);
1999 return gLastErrorString;
2073 if (libs.
Length() == 0) {
2079 static TString lastAddMissing;
2080 if ( lastLinked != slinked ) {
2083 lastLinked = slinked;
2084 lastAddMissing.
Clear();
2087 start = index = end = 0;
2089 while ((start < slinked.
Length()) && (index !=
kNPOS)) {
2090 index = slinked.
Index(separator,&end,start);
2092 TString sub = slinked(index,end);
2093 if (sub[0]==
'-' && sub[1]==
'L') {
2108 }
else if (libs.
Length() != 0) {
2113 start = index = end = 0;
2115 while ((start < slinked.
Length()) && (index !=
kNPOS)) {
2116 index = slinked.
Index(separator,&end,start);
2118 TString sub = slinked(index,end);
2119 if (sub[0]!=
'-' && sub[1]!=
'L') {
2129 if (regexp && *regexp) {
2134 start = index = end = 0;
2136 while ((start < libs.
Length()) && (index !=
kNPOS)) {
2137 index = libs.
Index(separator,&end,start);
2139 s = libs(index,end);
2140 if ((isRegexp && s.
Index(user_re) !=
kNPOS) ||
2152 #if defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5)
2158 static TRegexp user_so(
"\\.so$");
2161 start = index = end = 0;
2163 while ((start < libs2.
Length()) && (index !=
kNPOS)) {
2164 index = libs2.
Index(separator, &end, start);
2168 TString s = libs2(index, end);
2403 target = tobedeleted;
2404 delete [] tobedeleted;
2409 static TString R__Exec(
const char *cmd)
2413 FILE * f = gSystem->
OpenPipe(cmd,
"r");
2420 while ((x = fgetc(f))!=EOF ) {
2421 if (x==
'\n' || x==
'\r')
break;
2429 static void R__FixLink(
TString &cmd)
2435 TString res = R__Exec(
"link 2>&1");
2437 if (res.
Contains(
"Microsoft (R) Incremental Linker"))
2441 res = R__Exec(
"cygpath . 2>&1");
2447 res = R__Exec(
"which cl.exe 2>&1|grep cl|sed 's,cl\\.exe$,link\\.exe,' 2>&1");
2449 res = R__Exec(
Form(
"cygpath -w '%s' 2>&1",res.
Data()));
2463 if (path.
Length() > 2 && path[1]==
':') {
2483 const char * stderrfile =
"/dev/null";
2488 TString bakdepfilename = depfilename +
".bak";
2491 TString touch =
"echo # > "; touch +=
"\"" + depfilename +
"\"";
2493 TString touch =
"echo > "; touch +=
"\"" + depfilename +
"\"";
2496 TString builddep = ROOTBINDIR;
2500 builddep +=
"/rmkdepend \"-f";
2501 builddep += depfilename;
2502 builddep +=
"\" -o_" + extension +
"." + gSystem->
GetSoExt() +
" ";
2505 if ( build_loc.
Length() > (len+1) ) {
2506 builddep +=
" \"-p";
2507 if (build_loc[len] ==
'/' || build_loc[len+1] !=
'\\' ) {
2517 builddep +=
" \"-p";
2521 builddep +=
" -Y -- ";
2524 rootsysInclude +=
"/include";
2526 TString rootsysInclude = ROOTINCDIR;
2528 builddep +=
" \"-I"+rootsysInclude+
"\" ";
2529 builddep += includes;
2530 builddep += defines;
2531 builddep +=
" -- \"";
2537 if ( library.
Length() > (len+1) ) {
2538 if (library[len] ==
'/' || library[len+1] !=
'\\' ) {
2539 targetname = library.
Data() + len + 1;
2541 targetname = library.
Data() + len + 2;
2544 targetname = library;
2547 targetname = library;
2552 builddep +=
"\" > ";
2553 builddep += stderrfile;
2554 builddep +=
" 2>&1 ";
2559 #if defined(R__HAS_CLING_DICTVERSION)
2561 char *clingdictversion = gSystem->
Which(incPath,
"clingdictversion.h");
2562 if (clingdictversion) {
2565 delete [] clingdictversion;
2567 R__AddPath(adddictdep,rootsysInclude+
"/clingdictversion.h ");
2572 const char *dictHeaders[] = {
"RVersion.h",
"RConfig.h",
"TClass.h",
2573 "TDictAttributeMap.h",
"TInterpreter.h",
"TROOT.h",
"TBuffer.h",
2574 "TMemberInspector.h",
"TError.h",
"RtypesImp.h",
"TIsAProxy.h",
2575 "TFileMergeInfo.h",
"TCollectionProxyInfo.h"};
2577 for (
unsigned int h=0;
h <
sizeof(dictHeaders)/
sizeof(dictHeaders[0]); ++
h)
2579 char *rootVersion = gSystem->
Which(incPath,dictHeaders[
h]);
2583 delete [] rootVersion;
2585 R__AddPath(adddictdep,rootsysInclude +
"/" + dictHeaders[h]);
2589 adddictdep +=
" >> \""+depfilename+
"\"";
2591 TString addversiondep(
"echo ");
2592 addversiondep += libname + version_var_prefix +
" \"" +
ROOT_RELEASE +
"\" >> \""+depfilename+
"\"";
2601 if (depbuilt) depbuilt = !gSystem->
Exec(builddep);
2602 if (depbuilt) depbuilt = !gSystem->
Exec(adddictdep);
2603 if (depbuilt) depbuilt = !gSystem->
Exec(addversiondep);
2606 ::Warning(
"ACLiC",
"Failed to generate the dependency file for %s",
2610 gSystem->
Unlink(stderrfile);
2612 gSystem->
Unlink(bakdepfilename);
2737 const char *library_specified,
2738 const char *build_dir,
2741 static const char *version_var_prefix =
"__ROOTBUILDVERSION=";
2752 keep = (strchr(opt,
'k')!=0);
2753 recompile = (strchr(opt,
'f')!=0);
2754 if (strchr(opt,
'O')!=0) {
2757 if (strchr(opt,
'g')!=0) {
2760 if (strchr(opt,
'c')!=0) {
2763 withInfo = strchr(opt,
's') == 0;
2764 verbose = strchr(opt,
'v') != 0;
2765 internalDebug = strchr(opt,
'd') != 0;
2768 TString rootbuild = ROOTBUILD;
2780 if (build_dir && strlen(build_dir)) build_loc = build_dir;
2781 if (build_loc ==
".") {
2794 incPath.
Append(fromConfig);
2797 while ( incPath.
Index(
" :") != -1 ) {
2804 TString expFileName(filename);
2806 TString library = expFileName;
2809 const char *whichlibrary =
Which(incPath,library);
2811 library = whichlibrary;
2812 delete [] whichlibrary;
2814 ::Error(
"ACLiC",
"The file %s can not be found in the include path: %s",filename,incPath.
Data());
2819 ::Error(
"ACLiC",
"The file %s can not be found.",filename);
2829 TString filename_fullpath = library;
2836 if (library.
Length()>1 && isalpha(library[0]) && library[1]==
':') {
2837 file_dirname.
Prepend(library(0,2));
2839 TString file_location( file_dirname );
2840 incPath.
Prepend( file_location +
":" );
2844 extension.
Replace( 0, dot_pos+1, 0 , 0);
2845 TString libname_noext = library;
2846 if (dot_pos>=0) libname_noext.
Remove( dot_pos );
2855 if (library_specified && strlen(library_specified) ) {
2857 libname =
BaseName( library_specified );
2858 library = library_specified;
2866 TString libname_ext ( libname );
2867 libname_ext +=
"." +
fSoExt;
2874 if (library.
Length()>1 && isalpha(library[0]) && library[1]==
':') {
2875 lib_dirname.
Prepend(library(0,2));
2878 if ( strncmp( &(lib_dirname[lib_dirname.
Length()-2]),
"/.", 2) == 0 ) {
2881 if ( strncmp( &(lib_dirname[lib_dirname.
Length()-2]),
"\\.", 2) == 0 ) {
2884 TString lib_location( lib_dirname );
2887 if (build_loc.
Length()==0) {
2888 build_loc = lib_location;
2891 TRegexp disk_finder (
"[A-z]:");
2893 if (pos==0) library.
Remove(pos,3);
2894 pos = lib_location.
Index( disk_finder );
2895 if (pos==0) lib_location.
Remove(pos,3);
2904 TString build_loc_store( build_loc );
2905 if (!flatBuildDir) {
2910 mkdirFailed = (0 !=
mkdir(build_loc,
true));
2911 if (mkdirFailed && !canWriteBuild_loc) {
2914 build_loc = build_loc_store;
2916 }
else if (!mkdirFailed && dirmode!=0) {
2917 Chmod(build_loc,dirmode);
2929 ::Info(
"ACLiC",
"script has already been loaded in interpreted mode");
2930 ::Info(
"ACLiC",
"unloading %s and compiling it", filename);
2945 TRegexp rel_inc(
" -I[^\"/\\$%-][^:-]+");
2947 pos = rel_inc.
Index(includes,&len);
2949 TString sub = includes(pos,len);
2954 includes.
Replace(pos,len,sub);
2955 pos = rel_inc.
Index(includes,&len);
2960 TRegexp rel_inc(
" -I\"[^/\\$%-][^:-]+");
2962 pos = rel_inc.
Index(includes,&len);
2964 TString sub = includes(pos,len);
2968 includes.
Replace(pos,len,sub);
2969 pos = rel_inc.
Index(includes,&len);
2990 TRegexp rel_def(
"-D[^\\s\\t\\n\\r]*");
2992 pos = rel_def.
Index(cmd,&len);
2994 defines += cmd(pos,len);
2996 pos = rel_def.
Index(cmd,&len,pos+1);
3020 depfilename +=
"_" + extension +
".d";
3024 Long_t lib_time, file_time;
3028 (lib_time < file_time))) {
3038 depdir = emergency_loc;
3040 depfilename +=
"_" + extension +
".d";
3042 R__WriteDependencyFile(build_loc, depfilename, filename_fullpath, library, libname, extension, version_var_prefix, includes, defines, incPath);
3049 FILE * depfile = fopen(depfilename.
Data(),
"r");
3058 TString version_var = libname + version_var_prefix;
3061 char *
line =
new char[sz];
3067 Bool_t hasversion =
false;
3069 while ((c = fgetc(depfile)) != EOF) {
3072 while ((c = fgetc(depfile)) != EOF) {
3079 if (current && line[current-1]==
'=' && strncmp(version_var.
Data(),
line,
current)==0) {
3085 }
else if (isspace(c) && !nested) {
3087 if (line[current-1]!=
':') {
3096 modified |= ( lib_time <= filetime );
3103 if (current==sz-1) {
3105 char *newline =
new char[sz];
3106 strcpy(newline,line);
3110 if (c==
'"') nested = !nested;
3119 recompile = modified;
3136 && (lib_time>load_time)) {
3141 if ( !recompile && reload ) {
3144 ::Info(
"ACLiC",
"%s has been modified and will be reloaded",
3163 return !gSystem->
Load(library);
3167 ::Info(
"ACLiC",
"%s script has already been compiled and loaded",
3168 modified ?
"modified" :
"unmodified");
3175 ::Info(
"ACLiC",
"it will be regenerated and reloaded!");
3193 libmapfilename +=
".rootmap";
3194 #if (defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5)) || defined(R__WIN32)
3199 Bool_t linkDepLibraries = !produceRootmap;
3201 #if (defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5))
3203 #elif defined(R__WIN32)
3208 produceRootmap = linkLibs & 0x2;
3209 linkDepLibraries = linkLibs & 0x1;
3226 return !gSystem->
Load(library);
3231 if (!canWrite && recompile) {
3234 ::Warning(
"ACLiC",
"Could not create the directory: %s",
3237 ::Warning(
"ACLiC",
"%s is not writable!",
3240 if (emergency_loc == build_dir ) {
3241 ::Error(
"ACLiC",
"%s is the last resort location (i.e. temp location)",build_loc.
Data());
3244 ::Warning(
"ACLiC",
"Output will be written to %s",
3245 emergency_loc.
Data());
3246 return CompileMacro(expFileName, opt, library_specified, emergency_loc, dirmode);
3250 Info(
"ACLiC",
"creating shared library %s",library.
Data());
3253 R__WriteDependencyFile(build_loc, depfilename, filename_fullpath, library, libname, extension, version_var_prefix, includes, defines, incPath);
3260 static const int maxforbidden = 27;
3261 static const char *forbidden_chars[maxforbidden] =
3262 {
"+",
"-",
"*",
"/",
"&",
"%",
"|",
"^",
">",
"<",
3263 "=",
"~",
".",
"(",
")",
"[",
"]",
"!",
",",
"$",
3264 " ",
":",
"'",
"#",
"@",
"\\",
"\"" };
3265 for(
int ic = 0; ic < maxforbidden; ic++ ) {
3280 linkdef +=
"_ACLiC_linkdef.h";
3282 linkdefFile <<
"// File Automatically generated by the ROOT Script Compiler "
3284 linkdefFile << std::endl;
3285 linkdefFile <<
"#ifdef __CINT__" << std::endl;
3286 linkdefFile << std::endl;
3287 linkdefFile <<
"#pragma link C++ nestedclasses;" << std::endl;
3288 linkdefFile <<
"#pragma link C++ nestedtypedefs;" << std::endl;
3289 linkdefFile << std::endl;
3293 const char * extensions[] = {
".h",
".hh",
".hpp",
".hxx",
".hPP",
".hXX" };
3296 for (i = 0; i < 6; i++ ) {
3300 extra_linkdef.
Append(extensions[i]);
3301 name =
Which(incPath,extra_linkdef);
3303 if (verboseLevel>4 && withInfo) {
3304 Info(
"ACLiC",
"including extra linkdef file: %s",name);
3306 linkdefFile <<
"#include \"" << name <<
"\"" << std::endl;
3311 if (verboseLevel>5 && withInfo) {
3312 Info(
"ACLiC",
"looking for header in: %s",incPath.
Data());
3314 for (i = 0; i < 6; i++ ) {
3317 lookup.
Append(extensions[i]);
3318 name =
Which(incPath,lookup);
3320 linkdefFile <<
"#pragma link C++ defined_in "<<name<<
";"<< std::endl;
3324 linkdefFile <<
"#pragma link C++ defined_in \""<<filename_fullpath <<
"\";" << std::endl;
3325 linkdefFile << std::endl;
3326 linkdefFile <<
"#endif" << std::endl;
3327 linkdefFile.close();
3333 mapfile +=
"_ACLiC_map";
3334 TString mapfilein = mapfile +
".in";
3335 TString mapfileout = mapfile +
".out";
3340 needLoadMap =
kTRUE;
3369 mapfileStream << file << std::endl;
3371 mapfileStream << file << std::endl;
3372 mapfileStream << name << std::endl;
3374 for (i = 0; i <
gInterpreter->GetRootMapFiles()->GetEntriesFast(); i++) {
3379 mapfileStream.close();
3384 rcling = gSystem->
Getenv(
"ROOTSYS");
3388 rcling +=
"\\bin\\";
3391 rcling = ROOTBINDIR;
3398 rcling +=
"rootcling -v0 \"--lib-list-prefix=";
3400 rcling +=
"\" -f \"";
3402 if (produceRootmap) {
3403 rcling +=
" -rml " + libname +
" -rmf \"" + libmapfilename +
"\" ";
3406 if (produceRootmap) {
3407 rcling.
Append(
"-DR__ACLIC_ROOTMAP ");
3417 if (verboseLevel>3) {
3418 ::Info(
"ACLiC",
"creating the dictionary files");
3419 if (verboseLevel>4)
::Info(
"ACLiC",
"%s", rcling.
Data());
3423 Int_t dictResult = gSystem->
Exec(rcling);
3425 if (dictResult==139)
::Error(
"ACLiC",
"Dictionary generation failed with a core dump!");
3429 Bool_t result = !dictResult;
3437 std::ifstream liblist(mapfileout);
3439 while ( liblist >> libtoload ) {
3441 if (libtoload ==
"#") {
3443 std::string toskipcomment;
3444 std::getline(liblist,toskipcomment);
3447 if (libtoload != library && libtoload != libname && libtoload != libname_ext) {
3448 if (produceRootmap) {
3449 if (loadLib || linkDepLibraries ) {
3450 result =
gROOT->LoadClass(
"", libtoload) >= 0;
3456 if (!linkedlibs.
Contains(libtoload)) {
3458 depLibraries.
Append(
" ");
3460 depLibraries = depLibraries.
Strip();
3463 gROOT->LoadClass(
"", libtoload);
3466 unsigned char c = liblist.peek();
3467 if (c==
'\n' || c==
'\r') {
3494 cmd.
ReplaceAll(
"$SourceFiles",
"-D__ACLIC__ \"$SourceFiles\"");
3496 cmd.
ReplaceAll(
"$ObjectFiles",
"\"$ObjectFiles\"");
3499 cmd.
ReplaceAll(
"$SharedLib",
"\"$SharedLib\"");
3501 if (linkDepLibraries) {
3502 if (produceRootmap) {
3525 fakeMain +=
"_ACLiC_main";
3528 fakeMainFile <<
"// File Automatically generated by the ROOT Script Compiler "
3530 fakeMainFile <<
"int main(char*argc,char**argvv) {};" << std::endl;
3531 fakeMainFile.close();
3542 exec +=
"_ACLiC_exec";
3543 testcmd.
ReplaceAll(
"$SourceFiles",
"-D__ACLIC__ \"$SourceFiles\"");
3545 testcmd.
ReplaceAll(
"$ObjectFiles",
"\"$ObjectFiles\"");
3549 testcmd.
ReplaceAll(
"$LinkedLibs",linkLibraries);
3557 R__FixLink(testcmd);
3562 if (verboseLevel>3 && withInfo) {
3563 ::Info(
"ACLiC",
"compiling the dictionary and script files");
3564 if (verboseLevel>4)
::Info(
"ACLiC",
"%s", cmd.
Data());
3566 Int_t compilationResult = gSystem->
Exec( cmd );
3567 if (compilationResult) {
3568 if (compilationResult==139)
::Error(
"ACLiC",
"Compilation failed with a core dump!");
3570 if (produceRootmap) {
3571 gSystem->
Unlink(libmapfilename);
3574 result = !compilationResult;
3589 if (verboseLevel>3 && withInfo)
::Info(
"ACLiC",
"loading the shared library");
3590 if (loadLib) result = !gSystem->
Load(library);
3591 else result =
kTRUE;
3594 if (verboseLevel>3 && withInfo) {
3595 ::Info(
"ACLiC",
"testing for missing symbols:");
3596 if (verboseLevel>4)
::Info(
"ACLiC",
"%s", testcmd.
Data());
3598 gSystem->
Exec(testcmd);
3604 if (verboseLevel<=5 && !internalDebug) {
3606 gSystem->
Unlink( dicth );
3607 gSystem->
Unlink( dictObj );
3608 gSystem->
Unlink( linkdef );
3609 gSystem->
Unlink( mapfilein );
3610 gSystem->
Unlink( mapfileout );
3611 gSystem->
Unlink( fakeMain );
3614 if (verboseLevel>6) {
3618 gSystem->
Exec(rcling);
3619 gSystem->
Exec( cmd );
3620 gSystem->
Exec(testcmd);
3673 if (!
gEnv)
return "";
3751 if (!
gEnv)
return "_linkdef";
3997 char *fname =
Strip(filename);
3999 char *arg = strchr(fname,
'(');
4001 while (arg && *arg && (arg > fname && *(arg-1) ==
'$') && *(arg+1))
4002 arg = strchr(arg+1,
'(');
4003 if (arg && arg > fname) {
4016 s2 = strstr(fname,
">>");
4017 if (!s2) s2 = strstr(fname,
"2>");
4018 if (!s2) s2 = strchr(fname,
'>');
4019 s3 = strchr(fname,
'<');
4020 if (s2 && s3) s2 = s2<s3 ? s2 : s3;
4021 if (s3 && !s2) s2 = s3;
4030 while (s2 && *s2 ==
' ') s2--;
4040 int len = strlen(fname);
4043 if (strchr(
"kfgOcsdv-", fname[len - 1])) {
4044 mode += fname[len - 1];
4050 Bool_t compile = len && fname[len - 1] ==
'+';
4051 Bool_t remove = compile && len > 1 && fname[len - 2] ==
'+';
4057 fname[strlen(fname)-2] = 0;
4060 fname[strlen(fname)-1] = 0;
4069 if (arg) arguments += arg;
4070 else arguments =
"";
const char * GetHost() const
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
virtual const char * GetTitle() const
Returns title of object.
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
virtual TObject * Remove(TObject *obj)=0
virtual void Add(TObject *obj)
ClassImp(TProcessEventTimer) TProcessEventTimer
Create async event processor timer. Delay is in milliseconds.
TSeqCollection * fCompiled
double read(const std::string &file_name)
reading
Ssiz_t Last(char c) const
Find last occurrence of a character c.
virtual Bool_t IsAbsoluteFileName(const char *dir)
Return true if dir is an absolute pathname.
virtual TString SplitAclicMode(const char *filename, TString &mode, TString &args, TString &io) const
This method split a filename of the form: ~~~ {.cpp} [path/]macro.C[+|++[k|f|g|O|c|s|d|v|-]][(args)]...
virtual int GetPid()
Get process id.
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
virtual void Syslog(ELogLevel level, const char *mess)
Send mess to syslog daemon.
const char * GetHostName() const
virtual Bool_t IsPathLocal(const char *path)
Returns TRUE if the url in 'path' points to the local file system.
Bool_t ProcessEvents()
Process events if timer did time out.
virtual const char * WorkingDirectory()
Return working directory.
virtual void StackTrace()
Print a stack trace.
void Reset()
Reset the timer.
virtual TObject * FindObject(const char *name) const
Find an object in this collection using its name.
virtual const char * GetBuildCompiler() const
Return the build compiler.
virtual void SigAlarmInterruptsSyscalls(Bool_t)
virtual void SetFlagsDebug(const char *)
FlagsDebug should contain the options to pass to the C++ compiler in order to compile the library in ...
virtual void NotifyApplicationCreated()
Hook to tell TSystem that the TApplication object has been created.
ClassImp(TSeqCollection) Int_t TSeqCollection TIter next(this)
Return index of object in collection.
R__EXTERN TVirtualMutex * gSystemMutex
Collectable string class.
virtual const char * GetLinkdefSuffix() const
Return the linkdef suffix chosen by the user for ACLiC.
virtual int Link(const char *from, const char *to)
Create a link from file1 to file2.
virtual const char * GetBuildArch() const
Return the build architecture.
virtual void SetFlagsOpt(const char *)
FlagsOpt should contain the options to pass to the C++ compiler in order to compile the library in op...
virtual const char * GetLinkedLibraries()
Get list of shared libraries loaded at the start of the executable.
TSeqCollection * fOnExitList
void RemoveOnExit(TObject *obj)
Objects that should be deleted on exit of the OS interface.
virtual Int_t SetFPEMask(Int_t mask=kDefaultMask)
Set which conditions trigger a floating point exception.
This class represents a WWW compatible URL.
TString & ReplaceAll(const TString &s1, const TString &s2)
int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime)
Get info about a file: id, size, flags, modification time.
TString fBuildCompilerVersion
static Int_t RootVersionCode()
Return ROOT version code as defined in RVersion.h.
const char * GetProtocol() const
virtual TString GetFromPipe(const char *command)
Execute command and return output in TString.
Ssiz_t Index(const TString &str, Ssiz_t *len, Ssiz_t start=0) const
Find the first occurrence of the regexp in string and return the position, or -1 if there is no match...
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
This class represents an Internet Protocol (IP) address.
virtual int MakeDirectory(const char *name)
Make a directory.
virtual void AddSignalHandler(TSignalHandler *sh)
Add a signal handler to list of system signal handlers.
virtual const char * HomeDirectory(const char *userName=0)
Return the user's home directory.
virtual void CloseConnection(int sock, Bool_t force=kFALSE)
Close socket connection.
Regular expression class.
This class implements a mutex interface.
virtual Bool_t ChangeDirectory(const char *path)
Change directory.
static const char * filename()
TVersionCheck(int versionCode)
Register version of plugin library.
virtual UserGroup_t * GetGroupInfo(Int_t gid)
Returns all group info in the UserGroup_t structure.
virtual int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree)
Get info about a file system: fs type, block size, number of blocks, number of free blocks...
virtual void SetMakeExe(const char *directives)
Directives has the same syntax as the argument of SetMakeSharedLib but is used to create an executabl...
Int_t LoadPlugin()
Load the plugin library for this handler.
virtual int Load(const char *module, const char *entry="", Bool_t system=kFALSE)
Load a shared library.
virtual void AddStdExceptionHandler(TStdExceptionHandler *eh)
Add an exception handler to list of system exception handlers.
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
TSeqCollection * fSignalHandler
virtual void ResetSignal(ESignals sig, Bool_t reset=kTRUE)
If reset is true reset the signal handler for the specified signal to the default handler...
static void R__AddPath(TString &target, const TString &path)
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
virtual TTimer * RemoveTimer(TTimer *t)
Remove timer from list of system timers.
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.
virtual void SetMakeSharedLib(const char *directives)
Directives should contain the description on how to compile and link a shared lib.
virtual int AnnounceUdpService(int port, int backlog)
Announce UDP service.
virtual FILE * OpenPipe(const char *command, const char *mode)
Open a pipe.
Int_t GetEntriesFast() const
TString & Prepend(const char *cs)
R__EXTERN TApplication * gApplication
virtual void ResetSignals()
Reset signals handlers to previous behaviour.
virtual void IgnoreInterrupt(Bool_t ignore=kTRUE)
If ignore is true ignore the interrupt signal, else restore previous behaviour.
Basic time type with millisecond precision.
static bool R__MatchFilename(const char *left, const char *right)
Figure out if left and right points to the same object in the file system.
Long_t ExecPlugin(int nargs, const T &...params)
virtual TInetAddress GetPeerName(int sock)
Get Internet Protocol (IP) address of remote host and port #.
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
virtual EAclicMode GetAclicMode() const
AclicMode indicates whether the library should be built in debug mode or optimized.
virtual int GetProcInfo(ProcInfo_t *info) const
Returns cpu and memory used by this process into the ProcInfo_t structure.
virtual int SendRaw(int sock, const void *buffer, int length, int flag)
Send exactly length bytes from buffer.
virtual TFileHandler * RemoveFileHandler(TFileHandler *fh)
Remove a file handler from the list of file handlers.
Bool_t R_ISREG(Int_t mode)
virtual char * GetServiceByPort(int port)
Get name of internet service.
virtual int mkdir(const char *name, Bool_t recursive=kFALSE)
Make a file system directory.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual const char * FindFile(const char *search, TString &file, EAccessMode mode=kFileExists)
Find location of file in a search path.
virtual const char * UnixPathName(const char *unixpathname)
Convert from a Unix pathname to a local pathname.
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
static Int_t GetErrno()
Static function returning system error number.
TSeqCollection * fStdExceptionHandler
virtual int Rename(const char *from, const char *to)
Rename a file.
const char * Data() const
virtual void Delete(Option_t *option="")=0
Delete this object.
virtual void * GetDirPtr() const
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
virtual int Unlink(const char *name)
Unlink, i.e. remove, a file.
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
virtual FILE * TempFileName(TString &base, const char *dir=0)
Create a secure temporary file by appending a unique 6 letter string to base.
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
Bool_t IsInterruptingSyscalls() const
The TNamed class is the base class for all named ROOT classes.
TSeqCollection * fHelpers
virtual const char * GetLinkedLibs() const
Return the list of library linked to this executable.
UChar_t mod R__LOCKGUARD2(gSrvAuthenticateMutex)
TObject * Next()
Return next object in collection.
Int_t fNfd
Signals that were trapped.
virtual const char * GetDynamicPath()
Return the dynamic path (used to find shared libraries).
std::map< std::string, std::string >::const_iterator iter
void Clear()
Clear string without changing its capacity.
virtual int CompileMacro(const char *filename, Option_t *opt="", const char *library_name="", const char *build_dir="", UInt_t dirmode=0)
This method compiles and loads a shared library containing the code from the file "filename"...
virtual const char * Getenv(const char *env)
Get environment variable.
virtual void ListLibraries(const char *regexp="")
List all loaded shared libraries.
if(pyself &&pyself!=Py_None)
virtual const char * GetMakeSharedLib() const
Return the command line use to make a shared library.
void Info(const char *location, const char *msgfmt,...)
virtual void SetDisplay()
Set DISPLAY environment variable based on utmp entry. Only for UNIX.
TString & Append(const char *cs)
virtual const char * PrependPathName(const char *dir, TString &name)
Concatenate a directory and a file name.
virtual void ExitLoop()
Exit from event loop.
virtual UserGroup_t * GetUserInfo(Int_t uid)
Returns all user info in the UserGroup_t structure.
virtual int RecvRaw(int sock, void *buffer, int length, int flag)
Receive exactly length bytes into buffer.
virtual ~TSystem()
Delete the OS interface.
virtual void Unload(const char *module)
Unload a shared library.
static Int_t gLibraryVersionMax
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual Bool_t ConsistentWith(const char *path, void *dirptr=0)
Check consistency of this helper with the one required by 'path' or 'dirptr'.
virtual TInetAddress GetHostByName(const char *server)
Get Internet Protocol (IP) address of host.
void Error(const char *location, const char *msgfmt,...)
virtual void Closelog()
Close connection to system log daemon.
virtual const char * GetFlagsDebug() const
Return the debug flags.
TSeqCollection * fFileHandler
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
TString & GetLastErrorString()
Return the thread local storage for the custom last error message.
static Int_t * gLibraryVersion
virtual EStatus Handle(std::exception &exc)=0
virtual const char * GetSoExt() const
Get the shared library extension.
virtual void AddDynamicPath(const char *pathname)
Add a new directory to the dynamic path.
virtual TTime Now()
Get current time in milliseconds since 0:00 Jan 1 1995.
virtual void Setenv(const char *name, const char *value)
Set environment variable.
virtual TStdExceptionHandler * RemoveStdExceptionHandler(TStdExceptionHandler *eh)
Remove an exception handler from list of exception handlers.
static void R__WriteDependencyFile(const TString &build_loc, const TString &depfilename, const TString &filename, const TString &library, const TString &libname, const TString &extension, const char *version_var_prefix, const TString &includes, const TString &defines, const TString &incPath)
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
virtual Bool_t Init()
Initialize the OS interface.
virtual const char * GetBuildNode() const
Return the build node name.
TPaveLabel title(3, 27.1, 15, 28.7,"ROOT Environment and Tools")
virtual const char * GetLibraries(const char *regexp="", const char *option="", Bool_t isRegexp=kTRUE)
Return a space separated list of loaded shared libraries.
virtual Int_t GetValue(const char *name, Int_t dflt)
Returns the integer value for a resource.
virtual int AcceptConnection(int sock)
Accept a connection.
Bool_t Gets(FILE *fp, Bool_t chop=kTRUE)
Read one line from the stream, including the , or until EOF.
void AssignAndDelete(TString &target, char *tobedeleted)
char * Strip(const char *str, char c= ' ')
Strip leading and trailing c (blanks by default) from a string.
virtual void SetDynamicPath(const char *pathname)
Set the dynamic path to a new value.
virtual int AnnounceTcpService(int port, Bool_t reuse, int backlog, int tcpwindowsize=-1)
Announce TCP/IP service.
virtual Long_t NextTimeOut(Bool_t mode)
Time when next timer of mode (synchronous=kTRUE or asynchronous=kFALSE) will time-out (in ms)...
static Int_t ConvertVersionCode2Int(Int_t code)
Convert version code to an integer, i.e. 331527 -> 51507.
Bool_t TestBit(UInt_t f) const
char * Form(const char *fmt,...)
virtual int Umask(Int_t mask)
Set the process file creation mode mask.
virtual void SetBuildDir(const char *build_dir, Bool_t isflat=kFALSE)
Set the location where ACLiC will create libraries and use as a scratch area.
virtual int SendBuf(int sock, const void *buffer, int length)
Send a buffer headed by a length indicator.
void AbstractMethod(const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract...
Handles synchronous and a-synchronous timer events.
virtual const char * GetBuildDir() const
Return the path of the build directory.
virtual const char * GetName() const
Returns name of object.
virtual void ListSymbols(const char *module, const char *re="")
List symbols in a shared library.
virtual const char * GetMakeExe() const
Return the command line use to make an executable.
TSubString Strip(EStripType s=kTrailing, char c= ' ') const
Return a substring of self stripped at beginning and/or end.
virtual Int_t Exec(const char *shellcmd)
Execute a command.
virtual void StopIdleing()
Called when system stops idleing.
virtual int Utime(const char *file, Long_t modtime, Long_t actime)
Set the a files modification and access times.
virtual void Abort(int code=0)
Abort the application.
virtual void InnerLoop()
Inner event loop.
virtual void SetSoExt(const char *soExt)
Set shared library extension, should be either .so, .sl, .a, .dll, etc.
virtual const char * GetBuildCompilerVersion() const
Return the build compiler version.
virtual int GetCpuInfo(CpuInfo_t *info, Int_t sampleTime=1000) const
Returns cpu load average and load info into the CpuInfo_t structure.
void Warning(const char *location, const char *msgfmt,...)
virtual void Unsetenv(const char *name)
Unset environment variable.
virtual void FreeDirectory(void *dirp)
Free a directory.
virtual int ClosePipe(FILE *pipe)
Close the pipe.
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
virtual void Run()
System event loop.
char * StrDup(const char *str)
Duplicate the string str.
virtual int OpenConnection(const char *server, int port, int tcpwindowsize=-1, const char *protocol="tcp")
Open a connection to another host.
virtual int SetSockOpt(int sock, int kind, int val)
Set socket option.
virtual Int_t Select(TList *active, Long_t timeout)
Select on active file descriptors (called by TMonitor).
TEllipse dict(9, 20, 3, 1.5)
virtual const char * FindDynamicLibrary(TString &lib, Bool_t quiet=kFALSE)
Find a dynamic library using the system search paths.
virtual Int_t RedirectOutput(const char *name, const char *mode="a", RedirectHandle_t *h=0)
Redirect standard output (stdout, stderr) to the specified file.
TString & Remove(Ssiz_t pos)
virtual int Chmod(const char *file, UInt_t mode)
Set the file permission bits. Returns -1 in case or error, 0 otherwise.
virtual void SysError(const char *method, const char *msgfmt,...) const
Issue system error message.
virtual TSignalHandler * RemoveSignalHandler(TSignalHandler *sh)
Remove a signal handler from list of signal handlers.
virtual void StartIdleing()
Called when system starts idleing.
virtual Int_t GetEffectiveUid()
Returns the effective user id.
virtual const char * GetIncludePath()
Get the list of include path.
virtual const char * GetFlagsOpt() const
Return the optimization flags.
virtual Func_t DynFindSymbol(const char *module, const char *entry)
Find specific entry point in specified library.
virtual const char * HostName()
Return the system's host name.
virtual int Symlink(const char *from, const char *to)
Create a symbolic link from file1 to file2.
char * DynamicPathName(const char *lib, Bool_t quiet=kFALSE)
Find a dynamic library called lib using the system search paths.
virtual const char * ExpandFileName(const char *fname)
Expand a pathname getting rid of special shell characters like ~.
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
virtual void SetProgname(const char *name)
Set the application name (from command line, argv[0]) and copy it in gProgName.
virtual Int_t GetGid(const char *group=0)
Returns the group's id. If group = 0, returns current user's group.
void Beep(Int_t freq=-1, Int_t duration=-1, Bool_t setDefault=kFALSE)
Beep for duration milliseconds with a tone of frequency freq.
virtual void DispatchOneEvent(Bool_t pendingOnly=kFALSE)
Dispatch a single event.
virtual void CleanCompiledMacros()
Remove the shared libs produced by the CompileMacro() function.
virtual TInetAddress GetSockName(int sock)
Get Internet Protocol (IP) address of host and port #.
virtual Int_t GetUid(const char *user=0)
Returns the user's id. If user = 0, returns current user's id.
virtual void AddLinkedLibs(const char *linkedLib)
Add linkedLib to already set linked libs.
virtual UInt_t GetUniqueID() const
Return the unique object id.
virtual void SetAclicMode(EAclicMode mode)
AclicMode indicates whether the library should be built in debug mode or optimized.
Mother of all ROOT objects.
virtual void SetObjExt(const char *objExt)
Set object files extension, should be either .o, .obj, etc.
virtual Bool_t IsFileInIncludePath(const char *name, char **fullpath=0)
Return true if 'name' is a file that can be found in the ROOT include path or the current directory...
virtual Int_t GetAclicProperties() const
Return the ACLiC properties field.
virtual int RecvBuf(int sock, void *buffer, int length)
Receive a buffer headed by a length indicator.
virtual void Openlog(const char *name, Int_t options, ELogFacility facility)
Open connection to system log daemon.
Bool_t R_ISDIR(Int_t mode)
virtual int GetServiceByName(const char *service)
Get port # of internet service.
virtual int AnnounceUnixService(int port, int backlog)
Announce unix domain service.
virtual void AddTimer(TTimer *t)
Add timer to list of system timers.
virtual void ShowOutput(RedirectHandle_t *h)
Display the content associated with the redirection described by the opaque handle 'h'...
virtual void SetLinkedLibs(const char *linkedLibs)
LinkedLibs should contain the library directory and list of libraries needed to recreate the current ...
virtual Int_t GetEffectiveGid()
Returns the effective group id.
virtual void Exit(int code, Bool_t mode=kTRUE)
Exit the application.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
virtual const char * GetObjExt() const
Get the object file extension.
virtual int CopyFile(const char *from, const char *to, Bool_t overwrite=kFALSE)
Copy a file.
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
Iterator of ordered collection.
virtual void AddIncludePath(const char *includePath)
Add includePath to the already set include path.
TSystem * FindHelper(const char *path, void *dirptr=0)
Create helper TSystem to handle file and directory operations that might be special for remote file a...
virtual void AddFileHandler(TFileHandler *fh)
Add a file handler to the list of system file handlers.
static void ResetErrno()
Static function resetting system error number.
virtual int GetMemInfo(MemInfo_t *info) const
Returns ram and swap memory usage info into the MemInfo_t structure.
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
TObject * At(Int_t idx) const
void SetErrorStr(const char *errstr)
Set the system error string.
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
virtual int GetSockOpt(int sock, int kind, int *val)
Get socket option.
Abstract base class defining a generic interface to the underlying Operating System.
virtual void SetLinkdefSuffix(const char *suffix)
The 'suffix' will be appended to the name of a script loaded by ACLiC and used to locate any eventual...
virtual Int_t GetFPEMask()
Return the bitmap of conditions that trigger a floating point exception.
static Int_t gLibraryVersionIdx
virtual char * ConcatFileName(const char *dir, const char *name)
Concatenate a directory and a file name. User must delete returned string.
const char * GetUser() const
virtual const char * GetError()
Return system error string.
Ssiz_t First(char c) const
Find first occurrence of a character c.
virtual int GetSysInfo(SysInfo_t *info) const
Returns static system info, like OS type, CPU type, number of CPUs RAM size, etc into the SysInfo_t s...
int CompareTo(const char *cs, ECaseCompare cmp=kExact) const
Compare a string to char *cs2.
virtual void DoBeep(Int_t=-1, Int_t=-1) const
static Int_t * ReAllocInt(Int_t *vp, size_t size, size_t oldsize)
Reallocate (i.e.
virtual void SetIncludePath(const char *includePath)
IncludePath should contain the list of compiler flags to indicate where to find user defined header f...
virtual void IgnoreSignal(ESignals sig, Bool_t ignore=kTRUE)
If ignore is true ignore the specified signal, else restore previous behaviour.
const char * GetHostAddress() const
Returns the IP address string "%d.%d.%d.%d".
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.