hello there, following my previous patch re. the above, here is a more serious, and working version --tested with jamvm:
* a jarsigner.sh.in template is used by...
* configure.ac to generate a jarsigner.sh. this is a plain shell script
that (a) attempts to locate a suitable java executable and launches it
with the correct options to invoke the jarsigner main class.
* the Makefile, generated from the Makefile.am in the tools folder will
copy+customize the jarsigner.sh into ${bindir}/jarsigner.
as Michael Koch suggested, no BASH is looked up, instead the shell
template has the /bin/sh hard-wired. the search for a JAVA executable
is nevertheless done in the script instead of configure.ac.
comments are welcome.
the ChangeLog entry will look like so:
2006-03-28 Raif S. Naffah <[EMAIL PROTECTED]>
* configure.ac: Generate tools/jarsigner.sh from tools/jarsigner.sh.in
* tools/gnu/classpath/tools/jarsigner.sh.in: New file
* tools/Makefile.am: Generate jarsigner in $(bindir)
cheers;
rsn
Index: jarsigner.sh.in
===================================================================
RCS file: jarsigner.sh.in
diff -N jarsigner.sh.in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ jarsigner.sh.in 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+## Copyright 2006 Free Software Foundation, Inc.
+##
+## This file is a part of GNU Classpath.
+##
+## GNU Classpath is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or (at
+## your option) any later version.
+##
+## GNU Classpath is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with GNU Classpath; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+## USA
+##
+## Linking this library statically or dynamically with other modules is
+## making a combined work based on this library. Thus, the terms and
+## conditions of the GNU General Public License cover the whole
+## combination.
+##
+## As a special exception, the copyright holders of this library give you
+## permission to link this library with independent modules to produce an
+## executable, regardless of the license terms of these independent
+## modules, and to copy and distribute the resulting executable under
+## terms of your choice, provided that you also meet, for each linked
+## independent module, the terms and conditions of the license of that
+## module. An independent module is a module which is not derived from
+## or based on this library. If you modify this library, you may extend
+## this exception to your version of the library, but you are not
+## obligated to do so. If you do not wish to do so, delete this
+## exception statement from your version.
+##
+##
+## A simple script to launch the GNU Classpath jarsigner tool.
+##
+
[EMAIL PROTECTED]@
[EMAIL PROTECTED]@/@PACKAGE@
+tools_cp=${tools_dir}/tools.zip
+
+# find the java executable...
+if [ -z "${JAVA}" ] ; then
+ if [ -n "${JAVA_HOME}" ] ; then
+ if [ -x "${JAVA_HOME}/jre/sh/java" ] ; then
+ JAVA="${JAVA_HOME}/jre/sh/java"
+ else
+ JAVA="${JAVA_HOME}/bin/java"
+ fi
+ else
+ JAVA=`which java 2> /dev/null `
+ if [ -z "${JAVA}" ] ; then
+ JAVA=java
+ fi
+ fi
+fi
+
+exec "${JAVA}" -cp "${tools_cp}" gnu.classpath.tools.jarsigner.Main $@
Index: Makefile.am
===================================================================
RCS file: /cvsroot/classpath/classpath/tools/Makefile.am,v
retrieving revision 1.7
diff -u -r1.7 Makefile.am
--- Makefile.am 10 Mar 2006 01:49:42 -0000 1.7
+++ Makefile.am 27 Mar 2006 13:39:50 -0000
@@ -19,6 +19,15 @@
endif
endif
+bin_SCRIPTS = jarsigner
+CLEANFILES = $(bin_SCRIPTS)
+EXTRA_DIST = jarsigner.sh.in
+
+jarsigner: $(srcdir)/jarsigner.sh
+ rm -f $(bindir)/jarsigner
+ cat $(srcdir)/jarsigner.sh > $(bindir)/jarsigner
+ chmod ugo+x $(bindir)/jarsigner
+
# All our example java source files
TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*.java $(srcdir)/gnu/classpath/tools/*/*.java $(srcdir)/gnu/classpath/tools/*/*/*.java
@@ -30,7 +39,7 @@
BUILT_SOURCES = $(TOOLS_ZIP)
# The templates that must be included into the generated zip file.
-GRMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/giop/grmic/templates/*.jav
+GRMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/giop/grmic/templates/*.jav
RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmi/rmic/templates/*.jav
TOOLS_TEMPLATES = $(GRMIC_TEMPLATES) $(RMIC_TEMPLATES)
@@ -38,8 +47,9 @@
# This covers the built-in help texts, both for giop and rmic subpackages.
GIOP_HELPS = $(srcdir)/gnu/classpath/tools/giop/*.txt
RMI_HELPS = $(srcdir)/gnu/classpath/tools/rmi/*.txt
+SECURITY_HELPS = $(srcdir)/gnu/classpath/tools/jarsigner/*.txt
-TOOLS_HELPS = $(GIOP_HELPS) $(RMI_HELPS)
+TOOLS_HELPS = $(GIOP_HELPS) $(RMI_HELPS) $(SECURITY_HELPS)
# The tool specific README files.
READMES = $(srcdir)/gnu/classpath/tools/giop/README
@@ -74,11 +84,13 @@
$(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
mkdir -p classes/gnu/classpath/tools/giop/grmic/templates
mkdir -p classes/gnu/classpath/tools/rmi/rmic/templates
+ mkdir -p classes/gnu/classpath/tools/jarsigner
cp $(RMIC_TEMPLATES) classes/gnu/classpath/tools/rmi/rmic/templates
- cp $(GRMIC_TEMPLATES) classes/gnu/classpath/tools/giop/grmic/templates
+ cp $(GRMIC_TEMPLATES) classes/gnu/classpath/tools/giop/grmic/templates
cp $(RMI_HELPS) classes/gnu/classpath/tools/rmi/
cp $(GIOP_HELPS) classes/gnu/classpath/tools/giop/
- $(JCOMPILER) -d classes $(TOOLS_JAVA_FILES)
+ cp $(SECURITY_HELPS) classes/gnu/classpath/tools/jarsigner/
+ $(JCOMPILER) -d classes $(TOOLS_JAVA_FILES)
(cd classes; \
if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \
Index: configure.ac
===================================================================
RCS file: /cvsroot/classpath/classpath/configure.ac,v
retrieving revision 1.139
diff -u -r1.139 configure.ac
--- configure.ac 10 Mar 2006 01:36:10 -0000 1.139
+++ configure.ac 27 Mar 2006 13:40:38 -0000
@@ -621,6 +621,7 @@
lib/gen-classlist.sh
lib/copy-vmresources.sh
tools/Makefile
+tools/jarsigner.sh
examples/Makefile
examples/Makefile.jawt])
AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh])
pgpj4BK3wANcD.pgp
Description: PGP signature
