1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#!/usr/bin/perl -w
#
# Starts the GNU Java header generator.
#
# Command-line arguments should be in the style of Sun's javah command;
# these will be converted to gcjh arguments before being passed to the
# gcjh itself.
#
# Copyright (C) 2003 by Peter Hawkins <peterh@debian.org>
# Haphazardly hacked up based on the gcj-wrapper perl script.
# Copyright (C) 2002-2003 by Ben Burton <bab@debian.org>
# Based on the original gcj-wrapper-3.2 shell script.
use strict;
# The real Java header generator:
my $javaHeaderGen = '/usr/bin/gcjh-@BV@';
# The command-line arguments to pass to the real Java compiler:
my @commandLine;
# Build the command-line from the arguments given.
my $parsingOptions = 1;
my $copyNextArg = 0;
my $ignoreNextArg = 0;
my $appendNextArg = '';
foreach my $arg (@ARGV) {
# See if we already know what to do with this argument.
if ($ignoreNextArg) {
# Throw it away.
$ignoreNextArg = 0;
next;
} elsif ($copyNextArg or not $parsingOptions) {
# Copy it directly.
push @commandLine, $arg;
$copyNextArg = 0;
next;
} elsif ($appendNextArg) {
# Append it to $appendNextArg and then copy directly.
push @commandLine, ($appendNextArg . $arg);
$appendNextArg = '';
next;
}
# Try to interpret Sun-style options.
if ($arg eq '-version') {
push @commandLine, '--version';
} elsif ($arg eq '-h' or $arg eq '-help') {
push @commandLine, '--help';
} elsif ($arg eq '-verbose') {
push @commandLine, '--verbose';
} elsif ($arg eq '-classpath' or $arg eq '--classpath' or $arg eq '--cp') {
$appendNextArg = '--classpath=';
} elsif ($arg eq '-encoding' or $arg eq '-bootclasspath' or
$arg eq '-extdirs') {
$appendNextArg = "-".$arg . '=';
} elsif ($arg eq '-d') {
push @commandLine, '-d';
$copyNextArg = 1;
} elsif ($arg eq '-o') {
push @commandLine, '-o';
$copyNextArg = 1;
} elsif ($arg eq '-stubs') {
push @commandLine, '-stubs';
} elsif ($arg eq '-jni') {
push @commandLine, '-jni';
} elsif ($arg =~ /^-old/) {
# An extended Sun option (which we don't support).
push @commandLine, '--help' if ($arg eq '-old');
} elsif ($arg =~ /^-/) {
# An unsupported standalone option.
} else {
# Some non-option argument has been given.
# Stop parsing options at this point.
push @commandLine, $arg;
$parsingOptions = 0;
}
}
# Was there a partial argument that was never completed?
push @commandLine, $appendNextArg if ($appendNextArg);
# Call the real Java header generator.
my @fullCommandLine = ( $javaHeaderGen );
push @fullCommandLine, @commandLine;
exec @fullCommandLine or exit(1);
|