diff --git a/SConstruct b/SConstruct deleted file mode 100644 index 6d89421a9253a794b3dfcaaca6f1cac10d911a52..0000000000000000000000000000000000000000 --- a/SConstruct +++ /dev/null @@ -1,167 +0,0 @@ -###### Hall C Software Main SConstruct Build File ##### -###### Author: Edward Brash (brash@jlab.org) June 2013 - -import os -import sys -import platform -import commands -import SCons - -def rootcint(target,source,env): - """Executes the ROOT dictionary generator over a list of headers.""" - dictname = target[0] - headers = "" - cpppath = env.subst('$_CCCOMCOM') - ccflags = env.subst('$CCFLAGS') - rootcint = env.subst('$ROOTCINT') - print "Doing rootcint call now ..." - for f in source: - headers += str(f) + " " - command = rootcint + " -f %s -c -pthread -fPIC %s %s" % (dictname,cpppath,headers) - print ('RootCint Command = %s\n' % command) - ok = os.system(command) - return ok - -baseenv = Environment(ENV = os.environ) -#dict = baseenv.Dictionary() -#keys = dict.keys() -#keys.sort() -#for key in keys: -# print "Construction variable = '%s', value = '%s'" % (key, dict[key]) - -####### Check SCons version ################## -print('!!! Building the Hall C analyzer and libraries with SCons requires') -print('!!! SCons version 2.1.0 or newer.') -EnsureSConsVersion(2,1,0) - -####### Hall A Build Environment ############# -# -baseenv.Append(MAIN_DIR= Dir('.').abspath) -baseenv.Append(HC_DIR= baseenv.subst('$MAIN_DIR')) -baseenv.Append(HC_SRC= baseenv.subst('$HC_DIR')+'/src ') -baseenv.Append(HA_DIR= baseenv.subst('$HC_DIR')+'/podd ') -baseenv.Append(HA_SRC= baseenv.subst('$HA_DIR')+'/src ') -baseenv.Append(HA_DC= baseenv.subst('$HA_DIR')+'/hana_decode ') -baseenv.Append(HA_SCALER= baseenv.subst('$HA_DIR')+'/hana_scaler ') -baseenv.Append(MAJORVERSION = '1') -baseenv.Append(MINORVERSION = '5') -baseenv.Append(PATCH = '25') -baseenv.Append(SOVERSION = baseenv.subst('$MAJORVERSION')+'.'+baseenv.subst('$MINORVERSION')) -baseenv.Append(VERSION = baseenv.subst('$SOVERSION')+'.'+baseenv.subst('$PATCH')) -baseenv.Append(EXTVERS = '') -baseenv.Append(HA_VERSION = baseenv.subst('$VERSION')+baseenv.subst('$EXTVERS')) -print "Hall C Main Directory = %s" % baseenv.subst('$HC_DIR') -print "Hall C Source Directory = %s" % baseenv.subst('$HC_SRC') -print "Hall A Main Directory = %s" % baseenv.subst('$HA_DIR') -print "Software Version = %s" % baseenv.subst('$VERSION') -ivercode = 65536*int(float(baseenv.subst('$SOVERSION')))+ 256*int(10*(float(baseenv.subst('$SOVERSION'))-int(float(baseenv.subst('$SOVERSION')))))+ int(float(baseenv.subst('$PATCH'))) -baseenv.Append(VERCODE = ivercode) -baseenv.Append(CPPPATH = ['$HC_SRC','$HA_SRC','$HA_DC','$HA_SCALER']) - -proceed = "1" or "y" or "yes" or "Yes" or "Y" -######## Configure Section ####### - -import configure -configure.config(baseenv,ARGUMENTS) - -Export('baseenv') - -conf = Configure(baseenv) - -if not conf.CheckCXX(): - print('!!! Your compiler and/or environment is not correctly configured.') - Exit(0) - -if not conf.CheckFunc('printf'): - print('!! Your compiler and/or environment is not correctly configured.') - Exit(0) - -if baseenv.subst('$CHECKHEADERS')==proceed: - system_header_list = ['arpa/inet.h','errno.h','assert.h','netdb.h','netinet/in.h','pthread.h','signal.h','stddef.h','stdio.h','stdlib.h','string.h','strings.h','sys/ioctl.h','sys/socket.h','sys/time.h','sys/types.h','time.h','unistd.h','memory.h','math.h','limits.h'] - - for header_file in system_header_list: - if not conf.CheckHeader(header_file): - print('!! Header file %s not found.' % header_file) - Exit(0) - -baseenv = conf.Finish() - -######## ROOT Dictionaries ######### -baseenv.Append(ROOTCONFIG = 'root-config') -baseenv.Append(ROOTCINT = 'rootcint') - -try: - baseenv.ParseConfig('$ROOTCONFIG --cflags') - baseenv.ParseConfig('$ROOTCONFIG --libs') - baseenv.MergeFlags('-fPIC') -except OSError: - try: - baseenv.Replace(ROOTCONFIG = baseenv['ENV']['ROOTSYS'] + '/bin/root-config') - baseenv.Replace(ROOTCINT = baseenv['ENV']['ROOTSYS'] + '/bin/rootcint') - baseenv.ParseConfig('$ROOTCONFIG --cflags') - baseenv.ParseConfig('$ROOTCONFIG --libs') - baseenv.MergeFlags('-fPIC') - except KeyError: - print('!!! Cannot find ROOT. Check if root-config is in your PATH.') - Exit(1) - -bld = Builder(action=rootcint) -baseenv.Append(BUILDERS = {'RootCint': bld}) - -######## cppcheck ########################### - -def which(program): - import os - def is_exe(fpath): - return os.path.isfile(fpath) and os.access(fpath, os.X_OK) - - fpath, fname = os.path.split(program) - if fpath: - if is_exe(program): - return program - else: - for path in os.environ["PATH"].split(os.pathsep): - path = path.strip('"') - exe_file = os.path.join(path, program) - if is_exe(exe_file): - return exe_file - return None - -if baseenv.subst('$CPPCHECK')==proceed: - is_cppcheck = which('cppcheck') - print "Path to cppcheck is %s\n" % is_cppcheck - - if(is_cppcheck == None): - print('!!! cppcheck not found on this system. Check if cppcheck is installed and in your PATH.') - Exit(1) - else: - cppcheck_command = baseenv.Command('cppcheck_report.txt',[],"cppcheck --quiet --enable=all src/ 2> $TARGET") - baseenv.AlwaysBuild(cppcheck_command) - -####### Start of main SConstruct ############ - -hallclib = 'HallC' -hallalib = 'HallA' -dclib = 'dc' -scalerlib = 'scaler' - -baseenv.Append(LIBPATH=['$HC_DIR','$HA_DIR','$HC_SRC','$HA_SRC','$HA_DC','$HA_SCALER']) -baseenv.Replace(SHLIBSUFFIX = '.so') -baseenv.Append(CPPDEFINES = '-DHALLC_MODS') - -directorylist = ['./','src','podd','podd/src','podd/hana_decode','podd/hana_scaler'] - -baseenv.Append(SHLIBSUFFIX ='.'+baseenv.subst('$VERSION')) -pbaseenv=baseenv.Clone() -pbaseenv.Append(LIBS=[hallclib,hallalib,dclib,scalerlib]) -baseenv.Append(LIBS=[hallalib,dclib,scalerlib]) -Export('pbaseenv') - -#SConscript('podd/SConscript.py',exports='baseenv') -#SConscript('podd/hana_scaler/SConscript.py',exports='baseenv') -#SConscript('podd/hana_decode/SConscript.py',exports='baseenv') -#SConscript('src/SConscript.py',exports='baseenv') -#SConscript('./SConscript.py',exports='baseenv') -SConscript(dirs = directorylist,name='SConscript.py',exports='baseenv') - -####### End of SConstruct ######### diff --git a/SConstruct b/SConstruct new file mode 120000 index 0000000000000000000000000000000000000000..0fe1cae2e2aaa80a9dbba1a7c62ed71003c29aeb --- /dev/null +++ b/SConstruct @@ -0,0 +1 @@ +SConstruct.py \ No newline at end of file