|
|
|
#! /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_ParseID3Tag')
|
|
|
|
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')
|