summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicolson%netscape.com <devnull@localhost>2001-06-21 00:56:29 +0000
committernicolson%netscape.com <devnull@localhost>2001-06-21 00:56:29 +0000
commitcdc958d562948b2d5086c4be159f97bb3e6dd517 (patch)
tree3241f278900aa2cb13db80502d20e7b9111e52bc
parent4474632247e4ec271e34dc4fadaaa860435f9b8d (diff)
downloadnss-hg-cdc958d562948b2d5086c4be159f97bb3e6dd517.tar.gz
Make JSS buildable with shmsdos.exe.
-rwxr-xr-xsecurity/coreconf/jniregen.pl50
-rw-r--r--security/coreconf/rules.mk17
2 files changed, 41 insertions, 26 deletions
diff --git a/security/coreconf/jniregen.pl b/security/coreconf/jniregen.pl
index 607eaf68b..05774cff7 100755
--- a/security/coreconf/jniregen.pl
+++ b/security/coreconf/jniregen.pl
@@ -32,28 +32,39 @@
# GPL.
#
-# Input: -d dir foo1 foo2 . . .
+# Input: -d dir -j javahcmd foo1 foo2 . . .
# Compares generated "_jni/foo1.h" file with "foo1.class", and
# generated "_jni/foo2.h" file with "foo2.class", etc.
# (NOTE: unlike its closely related cousin, outofdate.pl,
# the "-d dir" must always be specified)
+# Runs the javahcmd on all files that are different.
#
# Returns: list of headers which are OLDER than corresponding class
# files (non-existant class files are considered to be real old :-)
-$found = 1;
+my $javah = "";
+my $classdir = "";
-if ($ARGV[0] eq '-d')
-{
- $classdir = $ARGV[1];
- $classdir .= "/";
- shift;
- shift;
+while(1) {
+ if ($ARGV[0] eq '-d') {
+ $classdir = $ARGV[1];
+ $classdir .= "/";
+ shift;
+ shift;
+ } elsif($ARGV[0] eq '-j') {
+ $javah = $ARGV[1];
+ shift;
+ shift;
+ } else {
+ last;
+ }
}
-else
-{
- print STDERR "Usage: perl ", $0, " -d dir foo1 foo2 . . .\n";
- exit -1;
+
+if( $javah eq "") {
+ die "Must specify -j <javah command>";
+}
+if( $classdir eq "") {
+ die "Must specify -d <classdir>";
}
foreach $filename (@ARGV)
@@ -81,12 +92,15 @@ foreach $filename (@ARGV)
# NOTE: Since this is used by "javah", and "javah" refuses to overwrite
# an existing file, we force an unlink from this script, since
# we actually want to regenerate the header file at this time.
- unlink $headerfilename;
- print $filename, " ";
- $found = 0;
+ unlink $headerfilename;
+ push @filelist, $filename;
}
}
-print "\n";
-exit 0;
-
+if( @filelist ) {
+ $cmd = "$javah " . join(" ",@filelist);
+ print "$cmd\n";
+ system("$cmd");
+} else {
+ print "All JNI header files up to date.\n"
+}
diff --git a/security/coreconf/rules.mk b/security/coreconf/rules.mk
index cac070109..49e637e39 100644
--- a/security/coreconf/rules.mk
+++ b/security/coreconf/rules.mk
@@ -567,7 +567,14 @@ ifdef NETLIBDEPTH
CORE_DEPTH := $(NETLIBDEPTH)
endif
+# !!!!! THIS WILL CRASH SHMSDOS.EXE !!!!!
+# shmsdos does not support shell variables. It will crash when it tries
+# to parse the '=' character. A solution is to rewrite outofdate.pl so it
+# takes the Javac command as an argument and executes the command itself,
+# instead of returning a list of files.
export:: $(JAVA_DESTPATH) $(JAVA_DESTPATH)/$(PACKAGE)
+ @echo "!!! THIS COMMAND IS BROKEN ON WINDOWS--SEE rules.mk FOR DETAILS !!!"
+ return -1
@for d in $(JDIRS); do \
if test -d $$d; then \
set $(EXIT_ON_ERROR); \
@@ -701,14 +708,8 @@ export::
$(JAVAH) -jni -d $(JNI_GEN_DIR) $(JNI_GEN); \
else \
echo "Checking for out of date header files" ; \
- cmd="perl $(CORE_DEPTH)/coreconf/jniregen.pl $(PERLARG) \
- -d $(JAVA_DESTPATH) $(JNI_GEN)"; \
- echo $$cmd; \
- list=`$$cmd`; \
- if test "$${list}x" != "x"; then \
- echo $(JAVAH) -jni -d $(JNI_GEN_DIR) $$list; \
- $(JAVAH) -jni -d $(JNI_GEN_DIR) $$list; \
- fi \
+ perl $(CORE_DEPTH)/coreconf/jniregen.pl $(PERLARG) \
+ -d $(JAVA_DESTPATH) -j "$(JAVAH) -jni -d $(JNI_GEN_DIR)" $(JNI_GEN);\
fi
endif
endif