From 759cd546ec6316aa63d9f6081489f64d7fb42684 Mon Sep 17 00:00:00 2001 From: Edward Brash <brash@jlab.org> Date: Fri, 24 Jan 2014 09:26:55 -0500 Subject: [PATCH] Remove soft link called SConstruct, and rename SConstruct.py to SConstruct --- SConstruct | 168 +++++++++++++++++++++++++++++++++++++++++++++++++- SConstruct.py | 167 ------------------------------------------------- 2 files changed, 167 insertions(+), 168 deletions(-) mode change 120000 => 100644 SConstruct delete mode 100644 SConstruct.py diff --git a/SConstruct b/SConstruct deleted file mode 120000 index 0fe1cae..0000000 --- a/SConstruct +++ /dev/null @@ -1 +0,0 @@ -SConstruct.py \ No newline at end of file diff --git a/SConstruct b/SConstruct new file mode 100644 index 0000000..6d89421 --- /dev/null +++ b/SConstruct @@ -0,0 +1,167 @@ +###### 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.py b/SConstruct.py deleted file mode 100644 index 6d89421..0000000 --- a/SConstruct.py +++ /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 ######### -- GitLab