blob: c0242d3e50b6ddc7c03a1f018aa3abf3ec5625bd [file] [log] [blame]
#! /usr/bin/perl
use Getopt::Long;
use strict;
my @optlist = ("h|help!","v|verbose!","cp|classpath=s","C=s");
my $result = GetOptions @optlist;
our ($opt_h, $opt_v, $opt_cp, $opt_C);
# -h option || check the number of arguments
if ($opt_h || @ARGV < 1 ) {
usage();
exit 1;
}
# local variables
my $javac = "javac";
my $classpath;
my $opts;
my $files;
# set $classpath
$classpath = "\$PLCAFEDIR/plcafe.jar:\$CLASSPATH";
#$classpath = "\$PLCAFEDIR/lang.jar:\$PLCAFEDIR/builtin.jar:\$PLCAFEDIR/compiler.jar:\$CLASSPATH";
if ($opt_cp) { # -cp option
$classpath = ".:$opt_cp:$classpath";
}
# set $opts
if ($opt_C) { # -C option
if ($opt_C =~ /(-cp|-classpath)\s+/) {
&error("can not use $1 in -C option");
}
$opts .= $opt_C;
}
# set $files
$files = "@ARGV";
$files =~ s/(\$)/\\$1/g;
my $cmd = "$javac $opts -classpath $classpath $files";
&message($cmd);
system($cmd) && error("$cmd fails");
exit 0;
sub usage {
print "\nUsage: $0 [-options] [source files]\n";
print "\n";
print "where options support:\n\n";
print "\t-h -help : print this help\n";
print "\t-v -verbose : enable verbose output\n";
print "\t-cp -classpath <class search path of directories and zip/jar files>\n";
print "\t : A : separated list of directories and zip/jar files.\n";
print "\t-C option : option must be enclosed by '.\n";
print "\t : pass option to the Java Compiler\n";
print "\t : (ex. -C '-deprecation')\n";
print "\n";
}
sub message {
my ($x) = @_;
if ($opt_v) { # check -v option
print "\% $x\n";
}
}
sub error {
my ($x) = @_;
print "\% ERROR: $x: $0\n";
exit(1);
}