37 Generation of List of .as Files

This Perl script is intended to generate the files src/Makefile.asfiles and test/Makefile.asfiles. These files are generated via the call

perl asfiles.pl PROJECTROOT projectname directory > Makefile.asfiles

where PROJECTROOT is set to the full path of the root directory of the project, projectname is set to myalps (as specified in Makefile.def.nw) and directory is either src or test.

Convention 25 For simplicity we assume that there is at most one sourcefile command per line.

If the character % appears as the first non-whitespace character on the line then sourcefile then is not considered.

503* 21+   499  507
#------------------------------------------------------------------
#---
#--- ALLPROSE
#--- Copyright (C) Ralf Hemmecke (ralf@hemmecke.de)
#--- http://www.hemmecke.de/aldor
#---
#------------------------------------------------------------------

# The main loop
if (scalar(@ARGV) < 3) {
  die "Usage: $0 PROJECTROOT projectname directory\n";
}
$PROJECTROOT=$ARGV[0];
$projectname=$ARGV[1];
$directory  =$ARGV[2];

# do not write duplicate lines
%ASFILES=();

open(SF, "$PROJECTROOT/$projectname.tex.nw");
while (<SF>) {
    if (/\s*%/) {next;}
    if (/\\sourcefile{$directory\/([^}]+)\.as/) {$ASFILES{$1}=1;}
}
close(SF);
print "# Generated via\n# ".join(" \\\n#   ", $0, @ARGV)."\n";
print "ASFILES=\\\n  " . join("\\\n  ", sort keys %ASFILES) . "\n";

Uses ASFILES 466, loop 360, projectname 127, and PROJECTROOT 350.