You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
3 years ago
|
#! /usr/bin/env python
|
||
|
# encoding: utf-8
|
||
|
# a1batross, mittorn, 2018
|
||
|
|
||
|
def options(opt):
|
||
|
pass
|
||
|
|
||
|
def configure(conf):
|
||
|
if conf.options.BUILD_TYPE != 'sanitize':
|
||
|
conf.fatal('useless without -T sanitize')
|
||
|
|
||
|
if conf.env.COMPILER_CC != 'clang':
|
||
|
conf.fatal('only clang is supported')
|
||
|
|
||
|
conf.env.append_unique('CFLAGS', '-fsanitize=fuzzer')
|
||
|
conf.env.append_unique('LINKFLAGS', '-fsanitize=fuzzer')
|
||
|
|
||
|
def add_runner_target(bld, lib, func):
|
||
|
source = bld.path.ant_glob('*.c')
|
||
|
includes = '.'
|
||
|
libs = [ 'DL' ]
|
||
|
|
||
|
bld(
|
||
|
source = source,
|
||
|
target = 'run-fuzzer-' + func,
|
||
|
features = 'c cprogram',
|
||
|
includes = includes,
|
||
|
use = libs,
|
||
|
defines = ['FUNC="Fuzz_' + func + '"', 'LIB="' + lib + '"'],
|
||
|
install_path = bld.env.BINDIR,
|
||
|
subsystem = bld.env.CONSOLE_SUBSYSTEM
|
||
|
)
|
||
|
|
||
|
def build(bld):
|
||
|
add_runner_target(bld, 'libxash.so', 'Sound_LoadMPG')
|
||
|
add_runner_target(bld, 'libxash.so', 'Sound_LoadWAV')
|
||
|
add_runner_target(bld, 'libxash.so', 'Image_LoadBMP')
|
||
|
add_runner_target(bld, 'libxash.so', 'Image_LoadPNG')
|
||
|
add_runner_target(bld, 'libxash.so', 'Image_LoadDDS')
|
||
|
add_runner_target(bld, 'libxash.so', 'Image_LoadTGA')
|