From d383f2bcdb6ff13cc562fce1ff55d826035debad Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Mon, 6 Mar 2023 17:36:31 +0100 Subject: Simplify source tree Now just use make in the root directory to build. --- AT91SAM7S256/armdebug/SConstruct | 182 --------------------------------------- 1 file changed, 182 deletions(-) delete mode 100644 AT91SAM7S256/armdebug/SConstruct (limited to 'AT91SAM7S256/armdebug/SConstruct') diff --git a/AT91SAM7S256/armdebug/SConstruct b/AT91SAM7S256/armdebug/SConstruct deleted file mode 100644 index fa88d7a..0000000 --- a/AT91SAM7S256/armdebug/SConstruct +++ /dev/null @@ -1,182 +0,0 @@ -# -*- mode: python -*- -############################################################### -# This scons build script is used to check the armdebug project -# code for syntax errors. It does not build working executable -# code since it links to external routines. -############################################################### - -import os -import os.path -import new -from glob import glob - -############################################################### -# Utility functions. -############################################################### - -# Similar to env.WhereIs, but always searches os.environ. -def find_on_path(filename): - paths = os.environ.get('PATH') - if not paths: - return None - for p in paths.split(':'): - path = os.path.abspath(os.path.join(p, filename)) - if os.path.isfile(path): - return p - return None - -# Run the given gcc binary, and parses its output to work out the gcc -# version. -def determine_gcc_version(gcc_binary): - stdout = os.popen('%s --version' % gcc_binary) - gcc_output = stdout.read().split() - stdout.close() - grab_next = False - for token in gcc_output: - if grab_next: - return token - elif token[-1] == ')': - grab_next = True - return None - -# Check that a given cross-compiler tool exists. If it does, the path is -# added to the build environment, and the given environment variable is -# set to the tool name. -# -# This is used to check for the presence of a working cross-compiler -# toolchain, and to properly set up the environment to do it. See below -# in the configuration section for details. -def CheckTool(context, envname, toolname=None, hostprefix=None): - toolname = toolname or envname.lower() - if hostprefix is None: - hostprefix = '%s-' % context.env['CROSS_COMPILE_HOST'] - toolname = '%s%s' % (hostprefix, toolname) - context.Message("Checking for %s..." % toolname) - toolpath = find_on_path(toolname) - if not toolpath: - context.Result('not found') - return False - else: - context.Result('ok') - context.env[envname] = toolname - context.env.AppendENVPath('PATH', toolpath) - return True - -# Find the correct variant and version of libgcc.a in the cross-compiler -# toolchain. -def CheckLibGcc(context, gccname): - context.Message("Locating a cross-compiled libgcc...") - toolpath = find_on_path(gccname) - if not toolpath: - context.Result("%s not found" % toolname) - return False - gcc_version = determine_gcc_version(gccname) - if not gcc_version: - context.Result("Could not determine gcc version") - return False - gcc_install_dir = os.path.split(os.path.normpath(toolpath))[0] - for libdir in ['interwork', 'thumb', '']: - libgcc_path = os.path.join(gcc_install_dir, 'lib', 'gcc', - context.env['CROSS_COMPILE_HOST'], - gcc_version, libdir, 'libgcc.a') - if os.path.isfile(libgcc_path): - break - if not os.path.isfile(libgcc_path): - context.Result("libgcc.a not found") - return False - context.Result("ok - " + libgcc_path) - context.env.Append(LIBGCC=libgcc_path) - return True - -def CheckDoxygen(context): - context.Message("Looking for Doxygen...") - doxypath = find_on_path('doxygen') - if doxypath: - context.Result("ok") - context.env.AppendENVPath('PATH', doxypath) - context.env['WITH_DOXYGEN'] = True - else: - context.Result("not found") - context.env['WITH_DOXYGEN'] = False - - - -############################################################### -# Options that can be provided on the commandline -############################################################### - -opts = Variables('scons.options', ARGUMENTS) - -opts.Add(PathVariable('gccprefix', - 'Prefix of the cross-gcc to use (by default arm-none-eabi)', - 'arm-none-eabi', PathVariable.PathAccept)) - -Help(''' -Type: 'scons' to build object files. - - - To use another cross-gcc than arm-none-eabi-gcc: - scons gccprefix=arm-softfloat-eabi - -Options are saved persistent in the file 'scons.options'. That means -after you have called e.g. 'scons gccprefix=arm-softfloat-eabi' it's enough -to call only 'scons' to build both using the new gcc version again. -''') - -############################################################### -# Construct and configure a cross-compiler environment -############################################################### -env = Environment(options = opts, - tools = ['gcc', 'as', 'gnulink', 'ar'], - toolpath = ['scons_tools'], - LIBGCC = [], CPPPATH = '#', - WITH_DOXYGEN = False) -opts.Update(env) -opts.Save('scons.options', env) - -if not env.GetOption('clean'): - conf = Configure(env, custom_tests = {'CheckTool': CheckTool, - 'CheckLibGcc': CheckLibGcc, - 'CheckDoxygen': CheckDoxygen}) - conf.env['CROSS_COMPILE_HOST'] = env['gccprefix'] - if not (conf.CheckTool('CC', 'gcc') and conf.CheckTool('AR') and - conf.CheckTool('OBJCOPY') and conf.CheckTool('LINK', 'ld') and - conf.CheckLibGcc(conf.env['CC'])): - print "Missing or incomplete arm-elf toolchain, cannot continue!" - Exit(1) - env = conf.Finish() - -mycflags = ['-mcpu=arm7tdmi', '-Os', '-Wextra', '-Wall', '-Werror', - '-Wno-div-by-zero', '-Wfloat-equal', '-Wshadow', - '-Wpointer-arith', '-Wbad-function-cast', - '-Wmissing-prototypes', '-ffreestanding', - '-fsigned-char', '-ffunction-sections', '-std=gnu99', - '-fdata-sections', '-fomit-frame-pointer', '-msoft-float'] -myasflags = ['-Wall', '-Werror', '-Os']; -if str(env['LIBGCC']).find('interwork') != -1: - mycflags.append('-mthumb-interwork') - myasflags.append('-Wa,-mcpu=arm7tdmi,-mfpu=softfpa,-mthumb-interwork') -elif str(env['LIBGCC']).find('thumb') != -1: - mycflags.append('-mthumb') - myasflags.append('-Wa,-mcpu=arm7tdmi,-mfpu=softfpa,-mthumb') -else: - myasflags.append('-Wa,-mcpu=arm7tdmi,-mfpu=softfpa') -mycflags.append('-g') -mycflags.append('-ggdb') -# Big Endian Output (disabled by default) -#mycflags.append('-D__BIG_ENDIAN__') -# Test build for NxOS (Comment out for NXT Firmware) -mycflags.append('-D__NXOS__') - -myasflags.append('-g') -myasflags.append('-ggdb') -# Big Endian Output (disabled by default) -#mycflags.append('-D__BIG_ENDIAN__') -# Test build for NxOS (Comment out for NXT Firmware) -myasflags.append('-D__NXOS__') - -env.Replace(CCFLAGS = mycflags, ASFLAGS = myasflags ) - -# Build the baseplate, and all selected application kernels. - -numProcs = os.sysconf('SC_NPROCESSORS_ONLN') -SConscript(['SConscript'], 'numProcs env CheckTool') -- cgit v1.2.3