env = Environment(CPPPATH = ['src', 'include'],
                  CFLAGS = ARGUMENTS.get('CFLAGS', '-Wall -Wextra -O2 -fomit-frame-pointer'),
                  CXXFLAGS = ARGUMENTS.get('CXXFLAGS', ARGUMENTS.get('CFLAGS', '-Wall -Wextra -O2 -fomit-frame-pointer') + ' -fno-exceptions -fno-rtti'))

sourceFiles = Split('''
			src/cpu.cpp
			src/gambatte.cpp
			src/interrupter.cpp
			src/memory.cpp
			src/rtc.cpp
			src/sound.cpp
			src/video.cpp
			src/sound/channel1.cpp
			src/sound/channel2.cpp
			src/sound/channel3.cpp
			src/sound/channel4.cpp
			src/sound/duty_unit.cpp
			src/sound/envelope_unit.cpp
			src/sound/length_counter.cpp
			src/video/break_event.cpp
			src/video/irq_event.cpp
			src/video/ly_counter.cpp
			src/video/lyc_irq.cpp
			src/video/m3_extra_cycles.cpp
			src/video/mode3_event.cpp
			src/video/mode0_irq.cpp
			src/video/mode1_irq.cpp
			src/video/mode2_irq.cpp
			src/video/sc_reader.cpp
			src/video/scx_reader.cpp
			src/video/sprite_mapper.cpp
			src/video/sprite_size_reader.cpp
			src/video/we_master_checker.cpp
			src/video/we.cpp
			src/video/wx_reader.cpp
			src/video/wy.cpp
			src/video/filters/catrom2x.cpp
			src/video/filters/catrom3x.cpp
			src/video/filters/kreed2xsai.cpp
			src/video/filters/maxsthq2x.cpp
		   ''')

conf = env.Configure()

if conf.CheckHeader('zlib.h') and conf.CheckLib('z'):
	sourceFiles.append('src/file/unzip/unzip.c')
	sourceFiles.append('src/file/unzip/ioapi.c')
	sourceFiles.append('src/file/file_zip.cpp')
else:
	sourceFiles.append('src/file/file.cpp')

conf.Finish()

env.Library('gambatte', sourceFiles)
