#! /usr/bin/env python
# encoding: utf-8

def options(opt):
	pass

def configure(conf):
	if not conf.path.find_dir('libogg') or not conf.path.find_dir('libogg/src'):
		conf.fatal('Can\'t find libogg submodule. Run `git submodule update --init --recursive`.')
		return

	conf.env.INCLUDE_INTTYPES_H = 0
	conf.env.INCLUDE_SYS_TYPES_H = 0
	conf.env.INCLUDE_STDINT_H = 0

	if conf.check_cc(header_name='inttypes.h', mandatory = False):
		conf.env.INCLUDE_INTTYPES_H = 1
	elif conf.check_cc(header_name='sys/types.h', mandatory = False):
		conf.env.INCLUDE_SYS_TYPES_H = 1
	elif conf.check_cc(header_name='stdint.h', mandatory = False):
		conf.env.INCLUDE_STDINT_H = 1

def build(bld):
	sources = bld.path.ant_glob([
		'libogg/src/*.c'
	])

	bld(
		features = 'subst',
		name = 'libogg_config_types',
		source = 'libogg/include/ogg/config_types.h.in',
		target = 'libogg/include/ogg/config_types.h',
		INCLUDE_INTTYPES_H = bld.env.INCLUDE_INTTYPES_H,
		INCLUDE_SYS_TYPES_H = bld.env.INCLUDE_SYS_TYPES_H,
		INCLUDE_STDINT_H = bld.env.INCLUDE_STDINT_H,
		SIZE16 = 'int16_t',
		USIZE16 = 'uint16_t',
		SIZE32 = 'int32_t',
		USIZE32 = 'uint32_t',
		SIZE64 = 'int64_t',
		USIZE64 = 'uint64_t'
	)

	bld.stlib(
		source = sources,
		target = 'ogg',
		use = 'libogg_config_types',
		includes = 'libogg/include/',
		export_includes = 'libogg/include/'
	)
