use ExtUtils::MakeMaker;

check_for_flex();

$BYACC = "(yapp -o grammar.pm -m 'Camila::grammar' grammar.yp)";

`$BYACC`;

WriteMakefile(
	      'NAME'		=> 'Camila::caller',
	      'VERSION_FROM'	=> 'caller.pm',
	      'PREREQ_PM'	=> {
				    Parse::Yapp::Driver => 1.03
				   },
	      'LIBS'            => ['-lfl'],
	      'clean'           => {FILES => "*~"},
              'MYEXTLIB'        => 'parser.so',
	     );

sub MY::postamble {
  "
\$(MYEXTLIB): lex.p.c
	\$(CC) -c lex.p.c -o lex.p.o
	\$(AR) cr \$(MYEXTLIB) lex.p.o
	ranlib \$(MYEXTLIB)

grammar.pm: grammar.yp
	$BYACC

lex.p.c: tokenizer.lex
	flex -Pp tokenizer.lex
           ";
}


# Check for flex
sub check_for_flex {
  print "Checking for flex...";
  chomp($whereis = `whereis flex`);
  if ($whereis eq "flex:") {
    print " no\n";
    die ("Can't find GNU flex... get it from ftp://ftp.gnu.org");
  }
  print "yes\n";
  # Check for flex -Pp option
  print "Checking for flex -P option...";
  `cd /tmp;echo -e '%%\n a ; \n %%\n' | flex -Pp`;
  unless (-e "/tmp/lex.p.c") {
    print " no\n";
    die ("Get latest version for flex");
  }
  print "yes\n";
}
