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);
875 return std::string();
891 return std::string();
931 if (name[0] ==
'/' && name[1] ==
'\0')
934 if ((cp = (
char*)strrchr(name,
'/')))
938 Error(
"BaseName",
"name = 0");
948 return dir[0] ==
'/';
962 if (!name || !name[0])
return kFALSE;
974 while ( incPath.
Index(
" :") != -1 ) {
977 incPath.
Prepend(fileLocation+
":.:");
979 char *actual =
Which(incPath,realname);
998 if (pathname && strchr(pathname,
'/')) {
1002 static char *buf = 0;
1003 int pathlen = strlen(pathname);
1004 if (pathlen > len) {
1007 buf =
new char [len+1];
1009 strcpy(buf, pathname);
1011 char *
r = buf+pathlen-1;
1013 while ( r>buf && *(r)==
'/') { --
r; }
1015 while ( r>buf && *(r)!=
'/') { --
r; }
1018 while ( r>buf && *(r)==
'/') { --
r; }
1021 if (r==buf && *(r)!=
'/') {
1074 TTHREAD_TLS_ARRAY(
char, kBufSize, xname);
1092 char xname[kBufSize];
1107 int n, ier,
iter, lx, ncopy;
1108 char *inp, *
out, *
x, *t, buff[kBufSize*4];
1109 const char *b, *
c, *e;
1112 iter = 0; xname[0] = 0; inp = buff + kBufSize; out = inp + kBufSize;
1113 inp[-1] =
' '; inp[0] = 0; out[-1] =
' ';
1114 c = fname + strspn(fname,
" \t\f\r");
1117 strlcat(inp, c, kBufSize);
1120 iter++; c = inp; ier = 0;
1124 if (c[0] ==
'~' && c[1] ==
'/') {
1129 strlcpy(x, p, kBufSize);
1136 }
else if (c[0] ==
'~' && c[1] !=
'/') {
1137 n = strcspn(c+1,
"/ ");
1139 strncat(buff, c+1, n);
1144 strlcpy(x, p, kBufSize);
1154 for ( ; c[0]; c++) {
1158 if (c[0] ==
'.' && c[1] ==
'/' && c[-1] ==
' ') {
1160 strlcpy(buff, wd.c_str(), kBufSize);
1165 strlcpy(x, p, kBufSize); x += strlen(p); c = e-1;
continue;
1172 if (c[1] ==
'(') b++;
1173 if (c[1] ==
'{') b++;
1177 for (e = b; isalnum(e[0]) || e[0] ==
'_'; e++) ;
1178 buff[0] = 0; strncat(buff, b, e-b);
1181 for (t = buff; (t[0] = toupper(t[0])); t++) ;
1185 for (t = buff; (t[0] = tolower(t[0])); t++) ;
1188 if (!p && !strcmp(buff,
"cwd")) {
1190 strlcpy(buff, wd.c_str(), kBufSize);
1193 if (!p && !strcmp(buff,
"$")) {
1194 snprintf(buff,kBufSize*4,
"%d",
GetPid());
1202 if (c[1] && c[1]!=
'\\' && c[1]!=
';' && c[1]!=
'/')
1210 if (lp >= kBufSize) {
1212 strlcpy(x, p, kBufSize);
1218 c = (b==c+1) ? e-1 : e;
1223 x[0] = 0; lx = x -
out;
1224 if (ier && iter < 3) { strlcpy(inp, out, kBufSize);
goto again; }
1225 ncopy = (lx >= kBufSize) ? kBufSize-1 : lx;
1226 xname[0] = 0; strncat(xname, out, ncopy);
1228 if (ier || ncopy != lx) {
1229 ::Error(
"TSystem::ExpandFileName",
"input: %s, output: %s", fname, xname);
1279 if (strlen(url.
GetHost()) > 0) {
1289 if (strlen(url.
GetUser()) > 0) {
1368 int res =
GetPathInfo(path,
id, &lsize, flags, modtime);
1370 if (res == 0 && size) {
1372 Error(
"GetPathInfo",
"file %s > 2 GB, use GetPathInfo() with Long64_t size", path);
1514 FindFile(search, wfilString, mode);
1515 if (wfilString.
IsNull())
return 0;
1691 Error(
"ShowOutput",
"handle not specified");
1697 Error(
"ShowOutput",
"file '%s' cannot be read", h->
fFile.
Data());
1703 if (!(f = fopen(h->
fFile.
Data(),
"r"))) {
1704 Error(
"ShowOutput",
"file '%s' cannot be open", h->
fFile.
Data());
1709 off_t ltot = lseek(fileno(f), (off_t) 0, SEEK_END);
1711 lseek(fileno(f), (off_t) begin, SEEK_SET);
1712 Int_t left = ltot - begin;
1715 const Int_t kMAXBUF = 16384;
1717 Int_t wanted = (left > kMAXBUF-1) ? kMAXBUF-1 : left;
1720 while ((len =
read(fileno(f), buf, wanted)) < 0 &&
1725 SysError(
"ShowOutput",
"error reading log file");
1731 fprintf(stderr,
"%s", buf);
1735 wanted = (left > kMAXBUF) ? kMAXBUF : left;
1737 }
while (len > 0 && left > 0);
1780 if (left == right)
return kTRUE;
1782 if (left==0 || right==0)
return kFALSE;
1784 if ( (strcmp(right,left)==0) ) {
1790 char leftname[_MAX_PATH];
1791 char rightname[_MAX_PATH];
1792 _fullpath( leftname, left, _MAX_PATH );
1793 _fullpath( rightname, right, _MAX_PATH );
1794 return ((stricmp(leftname, rightname)==0));
1796 struct stat rightBuf;
1797 struct stat leftBuf;
1798 return ( ( 0 == stat( left, & leftBuf ) )
1799 && ( 0 == stat( right, & rightBuf ) )
1800 && ( leftBuf.st_dev == rightBuf.st_dev )
1801 && ( leftBuf.st_ino == rightBuf.st_ino )
1802 && ( leftBuf.st_size == rightBuf.st_size )
1803 && ( leftBuf.st_mtime == rightBuf.st_mtime )
1832 if (idx == 0 || libs[idx-1] ==
'/' || libs[idx-1] ==
'\\') {
1835 if (!l.
EndsWith(
".") && libs[idx]==
'.')
1838 while (idx < len && isdigit(libs[idx])) {
1841 if (libs[idx] ==
'.') {
1845 while (idx < len && libs[idx] !=
'.') {
1846 if (libs[idx] ==
' ' || idx+1 == len) {
1853 if (l[l.
Length()-1] ==
'.') {
1859 if ((idx == 0 || libs[idx-1] ==
' ') &&
1860 (libs[idx+l.
Length()] ==
' ' || libs[idx+l.
Length()] == 0)) {
1874 libmapfilename = path;
1875 idx = libmapfilename.
Last(
'.');
1877 libmapfilename.
Remove(idx);
1879 libmapfilename +=
".rootmap";
1881 if (
gDebug > 0)
Info(
"Load",
"loading %s", libmapfilename.
Data());
1883 deplibs =
gInterpreter->GetSharedLibDeps(moduleBasename);
1890 if (strcmp(module,deplib)==0) {
1894 Info(
"Load",
"loading dependent library %s for library %s",
1896 if ((ret =
Load(deplib,
"", system)) < 0) {
1906 const char *dirname =
DirName(path);
1908 TString rootlibdir = ROOTLIBDIR;
1917 TString rootbindir = ROOTBINDIR;
1926 gLibraryVersionIdx++;
1927 if (gLibraryVersionIdx == gLibraryVersionMax) {
1928 gLibraryVersionMax *= 2;
1929 gLibraryVersion =
TStorage::ReAllocInt(gLibraryVersion, gLibraryVersionMax, gLibraryVersionIdx);
1932 if (ret < 0) ret = -1;
1934 Info(
"Load",
"loaded library %s, status %d", path, ret);
1935 if (ret == 0 && gLibraryVersion[gLibraryVersionIdx]) {
1937 Error(
"Load",
"version mismatch, %s = %d, ROOT = %d",
1938 path, v,
gROOT->GetVersionInt());
1942 gLibraryVersionIdx--;
1946 if (!entry || !entry[0] || ret < 0)
return ret;
2016 Ssiz_t start = 0, index = 0, end = 0;
2020 Printf(
"Loaded shared libraries");
2021 Printf(
"=======================");
2023 while ((start < libs.
Length()) && (index !=
kNPOS)) {
2024 index = libs.
Index(separator, &end, start);
2026 s = libs(index, end);
2040 Printf(
"-----------------------");
2041 Printf(
"%d libraries loaded", i);
2042 Printf(
"=======================");
2050 TTHREAD_TLS_DECL(
TString, gLastErrorString);
2051 return gLastErrorString;
2125 if (libs.
Length() == 0) {
2131 static TString lastAddMissing;
2132 if ( lastLinked != slinked ) {
2135 lastLinked = slinked;
2136 lastAddMissing.
Clear();
2138 Ssiz_t start, index, end;
2139 start = index = end = 0;
2141 while ((start < slinked.
Length()) && (index !=
kNPOS)) {
2142 index = slinked.
Index(separator,&end,start);
2144 TString sub = slinked(index,end);
2145 if (sub[0]==
'-' && sub[1]==
'L') {
2160 }
else if (libs.
Length() != 0) {
2164 Ssiz_t start, index, end;
2165 start = index = end = 0;
2167 while ((start < slinked.
Length()) && (index !=
kNPOS)) {
2168 index = slinked.
Index(separator,&end,start);
2170 TString sub = slinked(index,end);
2171 if (sub[0]!=
'-' && sub[1]!=
'L') {
2181 if (regexp && *regexp) {
2185 Ssiz_t start, index, end;
2186 start = index = end = 0;
2188 while ((start < libs.
Length()) && (index !=
kNPOS)) {
2189 index = libs.
Index(separator,&end,start);
2191 s = libs(index,end);
2192 if ((isRegexp && s.
Index(user_re) !=
kNPOS) ||
2204 #if defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5)
2210 static TRegexp user_so(
"\\.so$");
2212 Ssiz_t start, index, end;
2213 start = index = end = 0;
2215 while ((start < libs2.
Length()) && (index !=
kNPOS)) {
2216 index = libs2.
Index(separator, &end, start);
2220 TString s = libs2(index, end);
2455 target = tobedeleted;
2456 delete [] tobedeleted;
2461 static TString R__Exec(
const char *cmd)
2465 FILE * f = gSystem->
OpenPipe(cmd,
"r");
2472 while ((x = fgetc(f))!=EOF ) {
2473 if (x==
'\n' || x==
'\r')
break;
2481 static void R__FixLink(
TString &cmd)
2487 TString res = R__Exec(
"link 2>&1");
2489 if (res.
Contains(
"Microsoft (R) Incremental Linker"))
2493 res = R__Exec(
"cygpath . 2>&1");
2499 res = R__Exec(
"which cl.exe 2>&1|grep cl|sed 's,cl\\.exe$,link\\.exe,' 2>&1");
2501 res = R__Exec(
Form(
"cygpath -w '%s' 2>&1",res.
Data()));
2515 if (path.
Length() > 2 && path[1]==
':') {
2535 const char * stderrfile =
"/dev/null";
2540 TString bakdepfilename = depfilename +
".bak";
2543 TString touch =
"echo # > "; touch +=
"\"" + depfilename +
"\"";
2545 TString touch =
"echo > "; touch +=
"\"" + depfilename +
"\"";
2548 TString builddep = ROOTBINDIR;
2552 builddep +=
"/rmkdepend \"-f";
2553 builddep += depfilename;
2554 builddep +=
"\" -o_" + extension +
"." + gSystem->
GetSoExt() +
" ";
2557 if ( build_loc.
Length() > (len+1) ) {
2558 builddep +=
" \"-p";
2559 if (build_loc[len] ==
'/' || build_loc[len+1] !=
'\\' ) {
2569 builddep +=
" \"-p";
2573 builddep +=
" -Y -- ";
2576 rootsysInclude +=
"/include";
2578 TString rootsysInclude = ROOTINCDIR;
2580 builddep +=
" \"-I"+rootsysInclude+
"\" ";
2581 builddep += includes;
2582 builddep += defines;
2583 builddep +=
" -- \"";
2589 if ( library.
Length() > (len+1) ) {
2590 if (library[len] ==
'/' || library[len+1] !=
'\\' ) {
2591 targetname = library.
Data() + len + 1;
2593 targetname = library.
Data() + len + 2;
2596 targetname = library;
2599 targetname = library;
2604 builddep +=
"\" > ";
2605 builddep += stderrfile;
2606 builddep +=
" 2>&1 ";
2611 #if defined(R__HAS_CLING_DICTVERSION)
2613 char *clingdictversion = gSystem->
Which(incPath,
"clingdictversion.h");
2614 if (clingdictversion) {
2617 delete [] clingdictversion;
2619 R__AddPath(adddictdep,rootsysInclude+
"/clingdictversion.h ");
2624 const char *dictHeaders[] = {
"RVersion.h",
"RConfig.h",
"TClass.h",
2625 "TDictAttributeMap.h",
"TInterpreter.h",
"TROOT.h",
"TBuffer.h",
2626 "TMemberInspector.h",
"TError.h",
"RtypesImp.h",
"TIsAProxy.h",
2627 "TFileMergeInfo.h",
"TCollectionProxyInfo.h"};
2629 for (
unsigned int h=0;
h <
sizeof(dictHeaders)/
sizeof(dictHeaders[0]); ++
h)
2631 char *rootVersion = gSystem->
Which(incPath,dictHeaders[
h]);
2635 delete [] rootVersion;
2637 R__AddPath(adddictdep,rootsysInclude +
"/" + dictHeaders[h]);
2641 adddictdep +=
" >> \""+depfilename+
"\"";
2643 TString addversiondep(
"echo ");
2644 addversiondep += libname + version_var_prefix +
" \"" +
ROOT_RELEASE +
"\" >> \""+depfilename+
"\"";
2653 if (depbuilt) depbuilt = !gSystem->
Exec(builddep);
2654 if (depbuilt) depbuilt = !gSystem->
Exec(adddictdep);
2655 if (depbuilt) depbuilt = !gSystem->
Exec(addversiondep);
2658 ::Warning(
"ACLiC",
"Failed to generate the dependency file for %s",
2662 gSystem->
Unlink(stderrfile);
2664 gSystem->
Unlink(bakdepfilename);
2789 const char *library_specified,
2790 const char *build_dir,
2793 static const char *version_var_prefix =
"__ROOTBUILDVERSION=";
2804 keep = (strchr(opt,
'k')!=0);
2805 recompile = (strchr(opt,
'f')!=0);
2806 if (strchr(opt,
'O')!=0) {
2809 if (strchr(opt,
'g')!=0) {
2812 if (strchr(opt,
'c')!=0) {
2815 withInfo = strchr(opt,
's') == 0;
2816 verbose = strchr(opt,
'v') != 0;
2817 internalDebug = strchr(opt,
'd') != 0;
2820 TString rootbuild = ROOTBUILD;
2832 if (build_dir && strlen(build_dir)) build_loc = build_dir;
2833 if (build_loc ==
".") {
2846 incPath.
Append(fromConfig);
2849 while ( incPath.
Index(
" :") != -1 ) {
2856 TString expFileName(filename);
2858 TString library = expFileName;
2861 const char *whichlibrary =
Which(incPath,library);
2863 library = whichlibrary;
2864 delete [] whichlibrary;
2866 ::Error(
"ACLiC",
"The file %s can not be found in the include path: %s",filename,incPath.
Data());
2871 ::Error(
"ACLiC",
"The file %s can not be found.",filename);
2881 TString filename_fullpath = library;
2888 if (library.
Length()>1 && isalpha(library[0]) && library[1]==
':') {
2889 file_dirname.
Prepend(library(0,2));
2891 TString file_location( file_dirname );
2892 incPath.
Prepend( file_location +
":" );
2896 extension.
Replace( 0, dot_pos+1, 0 , 0);
2897 TString libname_noext = library;
2898 if (dot_pos>=0) libname_noext.
Remove( dot_pos );
2907 if (library_specified && strlen(library_specified) ) {
2909 libname =
BaseName( library_specified );
2910 library = library_specified;
2918 TString libname_ext ( libname );
2919 libname_ext +=
"." +
fSoExt;
2926 if (library.
Length()>1 && isalpha(library[0]) && library[1]==
':') {
2927 lib_dirname.
Prepend(library(0,2));
2930 if ( strncmp( &(lib_dirname[lib_dirname.
Length()-2]),
"/.", 2) == 0 ) {
2933 if ( strncmp( &(lib_dirname[lib_dirname.
Length()-2]),
"\\.", 2) == 0 ) {
2936 TString lib_location( lib_dirname );
2939 if (build_loc.
Length()==0) {
2940 build_loc = lib_location;
2943 TRegexp disk_finder (
"[A-z]:");
2945 if (pos==0) library.
Remove(pos,3);
2946 pos = lib_location.
Index( disk_finder );
2947 if (pos==0) lib_location.
Remove(pos,3);
2956 TString build_loc_store( build_loc );
2957 if (!flatBuildDir) {
2962 mkdirFailed = (0 !=
mkdir(build_loc,
true));
2963 if (mkdirFailed && !canWriteBuild_loc) {
2966 build_loc = build_loc_store;
2968 }
else if (!mkdirFailed && dirmode!=0) {
2969 Chmod(build_loc,dirmode);
2981 ::Info(
"ACLiC",
"script has already been loaded in interpreted mode");
2982 ::Info(
"ACLiC",
"unloading %s and compiling it", filename);
2997 TRegexp rel_inc(
" -I[^\"/\\$%-][^:-]+");
2999 pos = rel_inc.
Index(includes,&len);
3001 TString sub = includes(pos,len);
3006 includes.
Replace(pos,len,sub);
3007 pos = rel_inc.
Index(includes,&len);
3012 TRegexp rel_inc(
" -I\"[^/\\$%-][^:-]+");
3014 pos = rel_inc.
Index(includes,&len);
3016 TString sub = includes(pos,len);
3020 includes.
Replace(pos,len,sub);
3021 pos = rel_inc.
Index(includes,&len);
3042 TRegexp rel_def(
"-D[^\\s\\t\\n\\r]*");
3044 pos = rel_def.
Index(cmd,&len);
3046 defines += cmd(pos,len);
3048 pos = rel_def.
Index(cmd,&len,pos+1);
3072 depfilename +=
"_" + extension +
".d";
3076 Long_t lib_time, file_time;
3080 (lib_time < file_time))) {
3090 depdir = emergency_loc;
3092 depfilename +=
"_" + extension +
".d";
3094 R__WriteDependencyFile(build_loc, depfilename, filename_fullpath, library, libname, extension, version_var_prefix, includes, defines, incPath);
3101 FILE * depfile = fopen(depfilename.
Data(),
"r");
3110 TString version_var = libname + version_var_prefix;
3113 char *
line =
new char[sz];
3119 Bool_t hasversion =
false;
3121 while ((c = fgetc(depfile)) != EOF) {
3124 while ((c = fgetc(depfile)) != EOF) {
3131 if (current && line[current-1]==
'=' && strncmp(version_var.
Data(),
line,current)==0) {
3137 }
else if (isspace(c) && !nested) {
3139 if (line[current-1]!=
':') {
3148 modified |= ( lib_time <= filetime );
3155 if (current==sz-1) {
3157 char *newline =
new char[sz];
3158 strcpy(newline,line);
3162 if (c==
'"') nested = !nested;
3171 recompile = modified;
3188 && (lib_time>load_time)) {
3193 if ( !recompile && reload ) {
3196 ::Info(
"ACLiC",
"%s has been modified and will be reloaded",
3215 return !gSystem->
Load(library);
3219 ::Info(
"ACLiC",
"%s script has already been compiled and loaded",
3220 modified ?
"modified" :
"unmodified");
3227 ::Info(
"ACLiC",
"it will be regenerated and reloaded!");
3245 libmapfilename +=
".rootmap";
3246 #if (defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5)) || defined(R__WIN32)
3251 Bool_t linkDepLibraries = !produceRootmap;
3253 #if (defined(R__MACOSX) && !defined(MAC_OS_X_VERSION_10_5))
3255 #elif defined(R__WIN32)
3260 produceRootmap = linkLibs & 0x2;
3261 linkDepLibraries = linkLibs & 0x1;
3278 return !gSystem->
Load(library);
3283 if (!canWrite && recompile) {
3286 ::Warning(
"ACLiC",
"Could not create the directory: %s",
3289 ::Warning(
"ACLiC",
"%s is not writable!",
3292 if (emergency_loc == build_dir ) {
3293 ::Error(
"ACLiC",
"%s is the last resort location (i.e. temp location)",build_loc.
Data());
3296 ::Warning(
"ACLiC",
"Output will be written to %s",
3297 emergency_loc.
Data());
3298 return CompileMacro(expFileName, opt, library_specified, emergency_loc, dirmode);
3302 Info(
"ACLiC",
"creating shared library %s",library.
Data());
3305 R__WriteDependencyFile(build_loc, depfilename, filename_fullpath, library, libname, extension, version_var_prefix, includes, defines, incPath);
3308 TString dict = libname +
"_ACLiC_dict";
3312 static const int maxforbidden = 27;
3313 static const char *forbidden_chars[maxforbidden] =
3314 {
"+",
"-",
"*",
"/",
"&",
"%",
"|",
"^",
">",
"<",
3315 "=",
"~",
".",
"(",
")",
"[",
"]",
"!",
",",
"$",
3316 " ",
":",
"'",
"#",
"@",
"\\",
"\"" };
3317 for(
int ic = 0; ic < maxforbidden; ic++ ) {
3332 linkdef +=
"_ACLiC_linkdef.h";
3334 linkdefFile <<
"// File Automatically generated by the ROOT Script Compiler "
3336 linkdefFile << std::endl;
3337 linkdefFile <<
"#ifdef __CINT__" << std::endl;
3338 linkdefFile << std::endl;
3339 linkdefFile <<
"#pragma link C++ nestedclasses;" << std::endl;
3340 linkdefFile <<
"#pragma link C++ nestedtypedefs;" << std::endl;
3341 linkdefFile << std::endl;
3345 const char * extensions[] = {
".h",
".hh",
".hpp",
".hxx",
".hPP",
".hXX" };
3348 for (i = 0; i < 6; i++ ) {
3352 extra_linkdef.
Append(extensions[i]);
3353 name =
Which(incPath,extra_linkdef);
3355 if (verboseLevel>4 && withInfo) {
3356 Info(
"ACLiC",
"including extra linkdef file: %s",name);
3358 linkdefFile <<
"#include \"" << name <<
"\"" << std::endl;
3363 if (verboseLevel>5 && withInfo) {
3364 Info(
"ACLiC",
"looking for header in: %s",incPath.
Data());
3366 for (i = 0; i < 6; i++ ) {
3369 lookup.
Append(extensions[i]);
3370 name =
Which(incPath,lookup);
3372 linkdefFile <<
"#pragma link C++ defined_in "<<name<<
";"<< std::endl;
3376 linkdefFile <<
"#pragma link C++ defined_in \""<<filename_fullpath <<
"\";" << std::endl;
3377 linkdefFile << std::endl;
3378 linkdefFile <<
"#endif" << std::endl;
3379 linkdefFile.close();
3385 mapfile +=
"_ACLiC_map";
3386 TString mapfilein = mapfile +
".in";
3387 TString mapfileout = mapfile +
".out";
3392 needLoadMap =
kTRUE;
3421 mapfileStream << file << std::endl;
3423 mapfileStream << file << std::endl;
3424 mapfileStream << name << std::endl;
3426 for (i = 0; i <
gInterpreter->GetRootMapFiles()->GetEntriesFast(); i++) {
3431 mapfileStream.close();
3436 rcling = gSystem->
Getenv(
"ROOTSYS");
3440 rcling +=
"\\bin\\";
3443 rcling = ROOTBINDIR;
3450 rcling +=
"rootcling -v0 \"--lib-list-prefix=";
3452 rcling +=
"\" -f \"";
3454 if (produceRootmap) {
3455 rcling +=
" -rml " + libname +
" -rmf \"" + libmapfilename +
"\" ";
3458 if (produceRootmap) {
3459 rcling.
Append(
"-DR__ACLIC_ROOTMAP ");
3469 if (verboseLevel>3) {
3470 ::Info(
"ACLiC",
"creating the dictionary files");
3471 if (verboseLevel>4)
::Info(
"ACLiC",
"%s", rcling.
Data());
3475 Int_t dictResult = gSystem->
Exec(rcling);
3477 if (dictResult==139)
::Error(
"ACLiC",
"Dictionary generation failed with a core dump!");
3481 Bool_t result = !dictResult;
3489 std::ifstream liblist(mapfileout);
3491 while ( liblist >> libtoload ) {
3493 if (libtoload ==
"#") {
3495 std::string toskipcomment;
3496 std::getline(liblist,toskipcomment);
3499 if (libtoload != library && libtoload != libname && libtoload != libname_ext) {
3500 if (produceRootmap) {
3501 if (loadLib || linkDepLibraries ) {
3502 result =
gROOT->LoadClass(
"", libtoload) >= 0;
3508 if (!linkedlibs.
Contains(libtoload)) {
3510 depLibraries.
Append(
" ");
3512 depLibraries = depLibraries.
Strip();
3515 gROOT->LoadClass(
"", libtoload);
3518 unsigned char c = liblist.peek();
3519 if (c==
'\n' || c==
'\r') {
3545 for (
auto tokenObj : *linkLibrariesNoQuotes.
Tokenize(
" ")) {
3546 singleLibrary = ((
TObjString*)tokenObj)->GetString();
3548 if (collectingSingleLibraryNameTokens) {
3549 librariesWithQuotes.
Chop();
3550 librariesWithQuotes +=
"\" \"" + singleLibrary +
"\"";
3551 collectingSingleLibraryNameTokens =
kFALSE;
3553 librariesWithQuotes +=
" \"" + singleLibrary +
"\"";
3556 if (collectingSingleLibraryNameTokens) {
3557 librariesWithQuotes += singleLibrary +
" ";
3559 collectingSingleLibraryNameTokens =
kTRUE;
3560 librariesWithQuotes +=
" \"" + singleLibrary +
" ";
3565 linkLibraries.
Prepend(librariesWithQuotes);
3571 cmd.
ReplaceAll(
"$SourceFiles",
"-D__ACLIC__ \"$SourceFiles\"");
3573 cmd.
ReplaceAll(
"$ObjectFiles",
"\"$ObjectFiles\"");
3576 cmd.
ReplaceAll(
"$SharedLib",
"\"$SharedLib\"");
3578 if (linkDepLibraries) {
3579 if (produceRootmap) {
3602 fakeMain +=
"_ACLiC_main";
3605 fakeMainFile <<
"// File Automatically generated by the ROOT Script Compiler "
3607 fakeMainFile <<
"int main(char*argc,char**argvv) {};" << std::endl;
3608 fakeMainFile.close();
3619 exec +=
"_ACLiC_exec";
3620 testcmd.
ReplaceAll(
"$SourceFiles",
"-D__ACLIC__ \"$SourceFiles\"");
3622 testcmd.
ReplaceAll(
"$ObjectFiles",
"\"$ObjectFiles\"");
3626 testcmd.
ReplaceAll(
"$LinkedLibs",linkLibraries);
3634 R__FixLink(testcmd);
3639 if (verboseLevel>3 && withInfo) {
3640 ::Info(
"ACLiC",
"compiling the dictionary and script files");
3641 if (verboseLevel>4)
::Info(
"ACLiC",
"%s", cmd.
Data());
3643 Int_t compilationResult = gSystem->
Exec( cmd );
3644 if (compilationResult) {
3645 if (compilationResult==139)
::Error(
"ACLiC",
"Compilation failed with a core dump!");
3647 if (produceRootmap) {
3648 gSystem->
Unlink(libmapfilename);
3651 result = !compilationResult;
3666 if (verboseLevel>3 && withInfo)
::Info(
"ACLiC",
"loading the shared library");
3667 if (loadLib) result = !gSystem->
Load(library);
3668 else result =
kTRUE;
3671 if (verboseLevel>3 && withInfo) {
3672 ::Info(
"ACLiC",
"testing for missing symbols:");
3673 if (verboseLevel>4)
::Info(
"ACLiC",
"%s", testcmd.
Data());
3675 gSystem->
Exec(testcmd);
3681 if (verboseLevel<=5 && !internalDebug) {
3683 gSystem->
Unlink( dicth );
3684 gSystem->
Unlink( dictObj );
3685 gSystem->
Unlink( linkdef );
3686 gSystem->
Unlink( mapfilein );
3687 gSystem->
Unlink( mapfileout );
3688 gSystem->
Unlink( fakeMain );
3691 if (verboseLevel>6) {
3695 gSystem->
Exec(rcling);
3696 gSystem->
Exec( cmd );
3697 gSystem->
Exec(testcmd);
3750 if (!
gEnv)
return "";
3828 if (!
gEnv)
return "_linkdef";
4074 char *fname =
Strip(filename);
4076 char *arg = strchr(fname,
'(');
4078 while (arg && *arg && (arg > fname && *(arg-1) ==
'$') && *(arg+1))
4079 arg = strchr(arg+1,
'(');
4080 if (arg && arg > fname) {
4093 s2 = strstr(fname,
">>");
4094 if (!s2) s2 = strstr(fname,
"2>");
4095 if (!s2) s2 = strchr(fname,
'>');
4096 s3 = strchr(fname,
'<');
4097 if (s2 && s3) s2 = s2<s3 ? s2 : s3;
4098 if (s3 && !s2) s2 = s3;
4107 while (s2 && *s2 ==
' ') s2--;
4117 int len = strlen(fname);
4120 if (strchr(
"kfgOcsdv-", fname[len - 1])) {
4121 mode += fname[len - 1];
4127 Bool_t compile = len && fname[len - 1] ==
'+';
4128 Bool_t remove = compile && len > 1 && fname[len - 2] ==
'+';
4134 fname[strlen(fname)-2] = 0;
4137 fname[strlen(fname)-1] = 0;
4146 if (arg) arguments += arg;
4147 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.
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...
virtual std::string GetWorkingDirectory() const
Return working directory.
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).
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.
const RooCatType * lookup(Int_t idx) const
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 std::string GetHomeDirectory(const char *userName=0) const
Return the user's home directory.
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.