#!/usr/bin/perl -w

# use strict;

unless (@ARGV == 1) {
    print <<EOD;
Usage:
  make-dylan-app appname
EOD
    exit 1;
}

$appname = $ARGV[0];

mkdir $appname, 0777 or die "Can't create directory $appname: $!";
chdir $appname or die "Can't chdir to directory $appname: $!";

&write_file("$appname.lid", <<"EOD");
library: $appname
executable: $appname
files: $appname-exports
  $appname
EOD

&write_file("$appname-exports.dylan", <<"EOD");
module: dylan-user

define library $appname
  use common-dylan;
  use io;
end library;

define module $appname
  use common-dylan;
  use format-out;
end module;
EOD

&write_file("$appname.dylan", <<"EOD");
module: $appname
synopsis: 
author: 
copyright: 

define function main(name, arguments)
  format-out("Hello, world!\\n");
  exit-application(0);
end function main;

// Invoke our main() function.
main(application-name(), application-arguments());
EOD

&write_file("Makefile", <<"EOD");
$appname: $appname.lid $appname.dylan $appname-exports.dylan
\td2c $appname.lid

clean:
\t-rm -f *.o *.s *.a *.c *.mak *~ $appname
EOD
		 
sub write_file {
    local ($filename, $contents) = @_;
    open(OUTPUT, ">$filename") or die "Can't create $filename: $!";
    print OUTPUT $contents;
    close OUTPUT;
}
