#!/usr/bin/perl -CDS

#
# MetaPost dependency tracer for Tsukurimashou
# Copyright (C) 2011  Matthew Skala
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3.
#
# As a special exception, if you create a document which uses this font, and
# embed this font or unaltered portions of this font into the document, this
# font does not by itself cause the resulting document to be covered by the
# GNU General Public License. This exception does not however invalidate any
# other reasons why the document might be covered by the GNU General Public
# License. If you modify this font, you may extend this exception to your
# version of the font, but you are not obligated to do so. If you do not
# wish to do so, delete this exception statement from your version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Matthew Skala
# http://ansuz.sooke.bc.ca/
# mskala@ansuz.sooke.bc.ca
#

%done=();

$prefix=$0;
$prefix=~s!/mpdep$!!;

$used_serif=0;

$default_family=shift;
$_=shift;
@terms=split(/-/);
$family=shift @terms;

foreach $term (@terms) {
   if (-r "$prefix/mp/$family-$term.mp") {
     push @files,"$family-$term.mp";
   } else {
     push @files,"$default_family-$term.mp";
   }
}

while (@files) {
   $name=shift @files;
   $_="$prefix/mp/$name";
   if ((!$done{$_}) && (-r $_)) {
      $done{$_}=1;
      print "$_ " unless $_ eq "$prefix/mp/serif.mp";
      open(MP,$_);
      while (<MP>) {
         push @files,$1 if /^\s*input\s+(\S+)\s*;/;
         $used_serif=1 if /^\s*bo_serif.*:=/;
      }
      close(MP);
   }
}
print "$prefix/mp/serif.mp " if $used_serif and $done{"$prefix/mp/serif.mp"};
