diff --git a/SConstruct b/SConstruct
deleted file mode 120000
index 0fe1cae2e2aaa80a9dbba1a7c62ed71003c29aeb..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..6d89421a9253a794b3dfcaaca6f1cac10d911a52
--- /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 6d89421a9253a794b3dfcaaca6f1cac10d911a52..0000000000000000000000000000000000000000
--- 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 #########