From c7d175d90fc8d20aa12dee7f80407764e2410ca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20O=2E=20Sel=C3=A5sdal?= Date: Wed, 20 May 2026 20:07:43 +0200 Subject: [PATCH] Remove scons support --- SConstruct | 177 --------------------------------------------- include/SConscript | 13 ---- src/SConscript | 25 ------- test/SConscript | 42 ----------- 4 files changed, 257 deletions(-) delete mode 100644 SConstruct delete mode 100644 include/SConscript delete mode 100644 src/SConscript delete mode 100644 test/SConscript diff --git a/SConstruct b/SConstruct deleted file mode 100644 index 922222e..0000000 --- a/SConstruct +++ /dev/null @@ -1,177 +0,0 @@ -import os -import platform - -#version info of the library, we use 5 chars from the git hash -revision = os.popen('git describe --abbrev=5 --dirty --always').read()[:-1] - -version_info = { - 'version_major': 1 , - 'version_minor': 0 , - 'version_patch': 0 , - 'version_revision': revision, -#version_abi is the abi version of the shared library. Only bump it when -#backwards compatibility breaks. Strive to not break the ABI. - 'version_abi': '1.0.0' -} -version_info['version_str'] = "%d.%d.%d.%s" % ( - version_info['version_major'], - version_info['version_minor'], - version_info['version_patch'], - version_info['version_revision']) - - -AddOption('--build_type', - dest = 'build_type', - type = 'choice', - nargs = 1, - action='store', - default='debug', - metavar='TYPE', - choices = ['debug', 'release'], - help = 'debug|release - Build a Debug (default) or Release variant' -) -AddOption('--prefix', - dest='prefix', - type='string', - nargs=1, - action='store', - metavar='DIR', - default='/usr', - help='installation prefix' -) - -AddOption('--test_xml', - dest='test_xml', - action='store_true', - help='Create a result.xml when running the testsuite' -) - -AddOption('--coverage', - dest='coverage', - action='store_true', - help='Build with coverage (gcov) support' -) - -AddOption('--without-assertions', - dest='assertions', - action='store_false', - default=True, - help='Build without assertions enabled' -) - -AddOption('--stack-protection', - dest = 'stack_protection', - action='store_true', - default=False, - help = 'Build with stack protection support' -) - -AddOption('--sanitizer', - dest = 'sanitizer', - action='store_true', - default=False, - help = 'Build with gcc sanitizer' -) - -AddOption('--32', - dest='force32bit', - action='store_true', - default=False, - help='Force building for 32 bit architecture' -) - -build_type = GetOption('build_type') -assertions = GetOption('assertions') -stack_protection = GetOption('stack_protection') -test_xml = GetOption('test_xml') -prefix = GetOption('prefix') -lib_suffix = '' -if not (build_type in ['debug', 'release']): - print("Error: expected 'debug' or 'release', found: " + build_type) - Exit(1) - -def InstallPerm(env, dest, files, perm): - obj = env.Install(dest, files) - for i in obj: - env.AddPostAction(i, Chmod(str(i), perm)) - return obj - - -env = Environment(tools = ['default', 'textfile', 'packaging']) - -#allow shell environment to override compiler -if os.environ.get('CC'): - env['CC'] = os.environ['CC'] - -env.AddMethod(InstallPerm) - -env.Append(CFLAGS = ['-std=gnu99','-Wall', '-Wextra', '-Wundef', '-Wcast-qual','-Wshadow' ,'-Wcast-align','-pipe', '-ggdb', '-pthread']) -env.Append(CFLAGS = ['-Wno-unused-parameter', '-Werror=implicit-function-declaration', '-Winit-self']) -env.Append(LINKFLAGS = ['-O2', '-pthread']) -env.Append(CPPDEFINES = ['_FILE_OFFSET_BITS=64']) -env.Append(CPPPATH = ['#include']) -env.Append(SHLIBVERSION = version_info['version_abi']) - -if GetOption('force32bit'): - env.Append(CFLAGS = ['-m32']) - env.Append(LINKFLAGS = ['-m32']) - -if build_type == 'release': - env.Append(CFLAGS = ['-O2']) -elif build_type == 'debug': - lib_suffix = 'D' - env.Append(CPPDEFINES = ['DEBUG']) - -if stack_protection: - env.Append(CFLAGS = ['-fstack-protector', '--param=ssp-buffer-size=4']) - env.Append(CPPDEFINES = ['_FORTIFY_SOURCE=2']) -if not assertions: - #this will turn off assert() - env.Append(CPPDEFINES = ['NDEBUG']) - -if GetOption('coverage'): - env.Append(CFLAGS = ['--coverage']) - env.Append(LINKFLAGS = ['--coverage']) - -if GetOption('sanitizer'): - env.Append(CFLAGS = ['-fsanitize=undefined', '-fsanitize=address']) - env.Append(LINKFLAGS = ['-fsanitize=undefined', '-fsanitize=address']) - -# Generate substitute dictionary -subst_info = dict(('@' + key + '@', version_info[key]) for key in version_info) -subst_info['@prefix@'] = prefix -subst_info['@build_type@'] = build_type - -if assertions: - subst_info['@build_type@'] += '_A' -if stack_protection: - subst_info['@build_type@'] += '_SP' - -subst_info['@build_host@'] = platform.node() - -Export('env', 'build_type', 'prefix', 'lib_suffix', 'version_info', 'test_xml', 'subst_info') - -#put all .sconsign files in one place -env.SConsignFile() - -subdirs = [ -'src', -'include', -'test', -] - -for subdir in subdirs: - env.SConscript(subdir + '/SConscript', variant_dir='#build/' + subdir, src_dir='#'+subdir, duplicate=0) - -env.Package(target = 'libucore-' + version_info['version_str'] + '.tar.gz', - source = env.FindInstalledFiles(), - NAME = 'libucore', - VERSION = version_info['version_str'], - PACKAGEVERSION = 0, - PACKAGETYPE = 'targz', - LICENSE = 'BSD', - SUMMARY = 'libucore is a C library of misc useful stuff including an eventloop, timer support and various data-structures.', - DESCRIPTION = 'libucore is a C library of misc useful stuff including an eventloop, timer support and various data-structures.', - X_RPM_GROUP = 'Development/Libraries' -) - diff --git a/include/SConscript b/include/SConscript deleted file mode 100644 index 641be33..0000000 --- a/include/SConscript +++ /dev/null @@ -1,13 +0,0 @@ -import os - -Import('env', 'build_type', 'prefix', 'version_info') - -ucore_env = env.Clone() - -headers = ucore_env.Glob('ucore/*.h') - -#install targets - -ucore_env.Alias('install', - ucore_env.InstallPerm(os.path.join(prefix, 'include', 'ucore'), headers, 0o0644)) - diff --git a/src/SConscript b/src/SConscript deleted file mode 100644 index ed74ad0..0000000 --- a/src/SConscript +++ /dev/null @@ -1,25 +0,0 @@ -import os - -Import('env', 'build_type', 'prefix', 'lib_suffix', 'subst_info') - -ucore_env = env.Clone() - -ucore_env.Substfile('version.c.in', SUBST_DICT = subst_info) - -sources = ucore_env.Glob('*.c') - -#print 'ucore_env', dir(ucore_env) -#print ucore_env.Dump() -#print 'sources:', sources[len(sources)-2] - -#Build library -ucore_staticlib = ucore_env.StaticLibrary(target='ucore' + lib_suffix , source=sources) -ucore_sharedlib = ucore_env.SharedLibrary(target='ucore' + lib_suffix , source=sources) - -#install targets -ucore_env.Alias('install', - ucore_env.Install(os.path.join(prefix, 'lib'), [ucore_staticlib])) -ucore_env.Alias('install', - ucore_env.InstallVersionedLib(os.path.join(prefix, 'lib'), [ucore_sharedlib])) - -ucore_env.Default([ucore_staticlib, ucore_sharedlib]) diff --git a/test/SConscript b/test/SConscript deleted file mode 100644 index 37b6141..0000000 --- a/test/SConscript +++ /dev/null @@ -1,42 +0,0 @@ -import platform - -Import('env', 'build_type', 'prefix', 'lib_suffix', 'version_info', 'test_xml') - -test_env = env.Clone() -test_env.Append(LIBPATH = ['#build/src']); -test_env.Append(LIBS = ['ucore' + lib_suffix, 'check','m']) - -system = platform.system() - -#NetBSD needs /usr/pkg/... -if 'netbsd' in system.lower(): - test_env.Append(LIBPATH = ['/usr/pkg/lib']) - test_env.Append(LINKFLAGS = ['-Wl,-rpath,/usr/pkg/lib']) - test_env.Append(CPPPATH = ['/usr/pkg/include']) - -if 'darwin' in system.lower(): - test_env.Append(LIBPATH = ['/opt/homebrew/lib']) - test_env.Append(LINKFLAGS = ['-Wl,-rpath,/opt/homebrew/lib']) - test_env.Append(CPPPATH = ['/opt/homebrew/include']) - -if 'darwin' not in system.lower(): - test_env.Append(LIBS = ['rt']) - - -tests = test_env.Glob('test_*.c') - -test_executable = 'test_runner' -#run test_runner --xml to produce an xml result file -if test_xml: - test_executable += ' -x' - -#rpath to shared lib, so test_runner can actually be executed -test_env.Append(LINKFLAGS = ['-Wl,-rpath,\\$$ORIGIN/../src']) - -prog = test_env.Program('test_runner', tests) -cmd = test_env.Command(target='test_phony' , - source = None, - action= test_env.Dir('.').abspath + '/' + test_executable) -test_env.Depends(cmd, prog) -test_env.AlwaysBuild(cmd) -test_env.Default(test_executable)