// load_dial.cxx // // David Adams // May 2004 // // Script to load the DIAL libraries. #include #include #include #include "TSystem.h" #include "TROOT.h" using std::string; using std::vector; using std::cout; using std::endl; string env(string name) { const char* cval = gSystem->Getenv(name.c_str()); if ( cval == 0 ) return ""; return cval; } typedef vector NameList; int load_dial() { // Flag indicating that ATLAS classes are accesible. bool use_atlas = true; // Check environment. vector envnames; envnames.push_back("DIAL_HEADER_DIR"); envnames.push_back("DIAL_INSTALL_DIR"); envnames.push_back("DIAL_ROOT_DIR"); for (NameList::const_iterator inam=envnames.begin(); inam!=envnames.end(); ++inam ) { string name = *inam; cout << name << " = " << env(name) << endl; if ( env(name).size() == 0 ) { cout << "Environmental variable " << name << " must be defined." << endl; return 1; } } // Build list of external, dataset and dial packages. vector pkgs; pkgs.push_back("gsoap"); pkgs.push_back("gsoap_gsi"); pkgs.push_back("dataset_util"); pkgs.push_back("dataset_sql"); pkgs.push_back("dataset_file"); pkgs.push_back("dataset_magda"); pkgs.push_back("dataset_id"); pkgs.push_back("dataset_catalog"); pkgs.push_back("dataset_credential"); pkgs.push_back("dataset_base"); pkgs.push_back("dataset_mysqlpp"); pkgs.push_back("dataset_split"); pkgs.push_back("dataset_xml"); pkgs.push_back("dataset_CBNT"); if ( use_atlas ) pkgs.push_back("dataset_atlaspool"); pkgs.push_back("dataset_root"); pkgs.push_back("dial_app"); pkgs.push_back("dial_task"); pkgs.push_back("dial_job"); pkgs.push_back("dial_lsf"); pkgs.push_back("dial_condor"); pkgs.push_back("dial_ws"); pkgs.push_back("dial_ws_file"); pkgs.push_back("dial_ws_uid"); pkgs.push_back("dial_ws_srm"); pkgs.push_back("dial_ws_sched"); pkgs.push_back("dial_ws_repository"); pkgs.push_back("dial_root"); // Build list of libraries. vector libs; // ...externals. if ( use_atlas ) { libs.push_back("liblcg_DataSvc.so"); libs.push_back("liblcg_CollectionBase.so"); libs.push_back("libGaudiKernel.so"); libs.push_back("libPathResolver"); libs.push_back("libAthenaKernel"); libs.push_back("libCLIDSvcLib.so"); libs.push_back("libEventInfo.so"); } libs.push_back("libglobus_io_gcc32dbg.so"); libs.push_back("libxerces-c.so"); libs.push_back("libmysqlpp_dial.so"); //libs.push_back("libmysqlclient.so"); //libs.push_back("libTable.so"); libs.push_back("libcernlib.so"); // Set macro path. string platdir = env("DIAL_INSTALL_DIR"); string macpath = TROOT::GetMacroPath(); macpath += ":" + platdir + "/root"; //TROOT::SetMacroPath(macpath.c_str()); string libdir = platdir + "/lib"; for ( unsigned int i=0; iLoad(lib.c_str()); if ( stat != 0 ) return stat; } // Set compiler flags. string cppflags = "-DDEFECT_GCC_2_95 -DDEFECT_ROOT_3_01"; cppflags += " -I" + env("DIAL_HEADER_DIR"); gSystem->SetIncludePath(cppflags.c_str()); return 0; }