import	rkBuilder
import	rkConfig

rkBuilder.setCommandLine (COMMAND_LINE_TARGETS, ARGUMENTS)


sources	= \
	  [
		'compile.cpp',
		'syn.cpp',
		'print.cpp',
		'cogen.cpp',
		'input.cpp',
		'unix.cpp',
		'parser.cpp',
		'interp.cpp',
		'load.cpp',
		'findfile.cpp',
		'trace.cpp',
		'ellib1.cpp',
		'error.cpp',
		'escstr.cpp',
		'types.cpp',
		'io.cpp',
		'string.cpp',
		'vec.cpp',
		'hash.cpp'
	  ]


rb	= rkBuilder.rkBuilder ('el32')
rb.winDefine  ('LIBEL32_EXPORTS')
rb.winDefine  ('_WIN32')

if rkConfig.mode == 'win' :
    rb.addInclude ('support/windows')


env	= rb.environment ()

if   rkConfig.mode != 'win' :

    env.Append	(LEXFLAGS  = '-Pel_yy')
    env.Append	(YACCFLAGS = '-pel_yy')
    env.CFile 	('lex.el_yy.c', 'el.l')
    env.CFile 	('el.tab.cpp',  'el.y')

elif rkConfig.cygdir is not None :

    flexBuilder = Builder \
    (
	action = rkConfig.cygdir + '\\bin\\' + 'flex  -Pel_yy -o$TARGET $SOURCES' 
    )
    yaccBuilder = Builder \
    (
	action = rkConfig.cygdir + '\\bin\\' + 'bison -pel_yy -o$TARGET $SOURCES'
    )

    env.Append \
          (
		BUILDERS =
		{	'FlexBuilder'	: flexBuilder,
			'YaccBuilder'	: yaccBuilder
		}
	  )

    env.FlexBuilder (target = 'lex.el_yy.c', source = 'el.l')
    env.YaccBuilder (target = 'el.tab.cpp',  source = 'el.y')


rb.build  (sources)
