#! /usr/bin/env python
# encoding: utf-8
# DC 2008
# Thomas Nagy 2010 (ita)

top = '.'
out = 'build'

def options(opt):
	opt.load('compiler_fc')
	opt.load('compiler_c')
	opt.recurse('typemap')

def configure(conf):
	conf.load('compiler_c')
	conf.load('compiler_fc')

	if conf.env.FC_NAME == 'IFORT':
		conf.env.append_unique('FCFLAGS', '-warn')
	elif conf.env.FC_NAME == 'GFORTRAN':
		conf.env.append_unique('FCFLAGS', ['-Wall', '-W'])

	conf.check_fortran()
	conf.recurse('typemap')

def build(bld):

	bld(
		features = 'fc',
		source   = 'hello.f')

	bld(
		features = 'fc fcprogram',
		source   = 'hello.f',
		target   = 'hello',
		use      = 'DEBUG')

	bld(
		features = 'fc fcshlib',
		source   = 'foo.f',
		target   = 'shlib1',
		defs     = 'foo.def',
		vnum     = '2.3.9')

	bld(
		features = 'fc fcstlib',
		source   = 'foo.f',
		target   = 'foo')

	bld(
		features = 'fc fcprogram',
		source   = 'foo_pp.F',
		target   = 'foo',
		defines  = ['USEFOO', 'blah=1'],
		use      = 'shlib1')

	bld.add_group()

	bld(
		features = 'fc fcprogram',
		includes = 'src/include',
		source   = 'src/hello_inc.f',
		target   = 'hello_inc')

	bld(
		features = 'fc',
		source   = 'src/calculator_main.f src/calculator.f',
		target   = 'calc_objs')

	bld(
		features = 'fc fcprogram',
		use      = 'calc_objs',
		target   = 'calculator')

	bld(
		features = 'fc fcstlib',
		source = 'mod/two_mods.f90 mod/uses_two_mods.f90',
		target = 'mod/two_mods')

	bld.recurse('typemap')
	if bld.env.FC_NAME == 'GFORTRAN' and int(bld.env.FC_VERSION[0]) >= 6:
		bld.recurse('submodules')
