From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28235 invoked by alias); 9 May 2008 19:31:49 -0000 Received: (qmail 28209 invoked by uid 367); 9 May 2008 19:31:49 -0000 Date: Fri, 09 May 2008 19:31:00 -0000 Message-ID: <20080509193149.28194.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Include generated jni.hxx in jni.cxx. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 57fc116cd48ffb2388ccc34c8319f61eaa9c01e0 X-Git-Newrev: 3a67b7fb24ac50fc6ad63b2672084c5691526fb6 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q2/txt/msg00218.txt.bz2 The branch, master has been updated via 3a67b7fb24ac50fc6ad63b2672084c5691526fb6 (commit) from 57fc116cd48ffb2388ccc34c8319f61eaa9c01e0 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 3a67b7fb24ac50fc6ad63b2672084c5691526fb6 Author: Andrew Cagney Date: Fri May 9 15:30:55 2008 -0400 Include generated jni.hxx in jni.cxx. frysk-common/ChangeLog 2008-05-09 Andrew Cagney * Makefile.gen.sh (jni.cxx, jni.hxx): Pass header name to jnixx. (jni.o): Explicitly specify dependencies. frysk-sys/frysk/jnixx/ChangeLog 2008-05-09 Andrew Cagney * Main.java: Add a header filename parameter; in .cxx file, generate #include of header, instead of header contents. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 5 +++++ frysk-common/Makefile.gen.sh | 9 +++++---- frysk-sys/frysk/jnixx/ChangeLog | 3 +++ frysk-sys/frysk/jnixx/Main.java | 33 +++++++++++++++++++++------------ 4 files changed, 34 insertions(+), 16 deletions(-) First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index 1650286..938763a 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,3 +1,8 @@ +2008-05-09 Andrew Cagney + + * Makefile.gen.sh (jni.cxx, jni.hxx): Pass header name to jnixx. + (jni.o): Explicitly specify dependencies. + 2008-05-07 Andrew Cagney * Makefile.gen.sh (JNIXX_CLASSES): Generate list of classes. diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index 42f509f..5fb1b41 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -673,7 +673,7 @@ generate_jnixx_class() { local j=$(echo $(dirname $dir)/$base) if has_java_source $j ; then automake_variable JNIXX_CLASSES += $(echo $j | tr '[/]' '[.]') - echo "${dir}/${base}.o: $j.java" + echo "${dir}/${base}.o: $j.java | jni.hxx.gch" fi } @@ -901,15 +901,16 @@ CLEANFILES += jni.hxx jni.cxx jni.hxx.gch \$(lib${GEN_MAKENAME}_jni_a_SOURCES): | jni.hxx jni.hxx.gch jni.hxx: \$(jnixx_sources) | ${GEN_DIRNAME}.jar CLASSPATH=\$(GEN_DIRNAME).jar:\$(CLASSPATH) \ - \$(JAVA) frysk.jnixx.Main hxx \$(JNIXX_CLASSES) \ + \$(JAVA) frysk.jnixx.Main hxx jni.hxx \$(JNIXX_CLASSES) \ > \$@.tmp mv \$@.tmp \$@ jni.hxx.gch: jni.hxx \$(CXXCOMPILE) -c -x c++-header jni.hxx -jni.cxx: \$(jnixx_sources) | ${GEN_DIRNAME}.jar jni.hxx.gch +jni.cxx: \$(jnixx_sources) | ${GEN_DIRNAME}.jar CLASSPATH=\$(GEN_DIRNAME).jar:\$(CLASSPATH) \ - \$(JAVA) frysk.jnixx.Main cxx \$(JNIXX_CLASSES) \ + \$(JAVA) frysk.jnixx.Main cxx jni.hxx \$(JNIXX_CLASSES) \ > \$@.tmp mv \$@.tmp \$@ +jni.o: jni.hxx | jni.hxx.gch EOF fi diff --git a/frysk-sys/frysk/jnixx/ChangeLog b/frysk-sys/frysk/jnixx/ChangeLog index 9590e1b..720b855 100644 --- a/frysk-sys/frysk/jnixx/ChangeLog +++ b/frysk-sys/frysk/jnixx/ChangeLog @@ -1,5 +1,8 @@ 2008-05-09 Andrew Cagney + * Main.java: Add a header filename parameter; in .cxx file, + generate #include of header, instead of header contents. + * PrintDeclarations.java: Generate a protected constructor; and a static Cast method. * jnixx.hxx (jnixx::array): Add Cast method. diff --git a/frysk-sys/frysk/jnixx/Main.java b/frysk-sys/frysk/jnixx/Main.java index aeb1b19..7146d51 100644 --- a/frysk-sys/frysk/jnixx/Main.java +++ b/frysk-sys/frysk/jnixx/Main.java @@ -79,37 +79,46 @@ class Main { return false; } - private static void printHxxFile(Printer p, Class[] classes) { + private static void printHxxFile(Printer p, String headerFile, + Class[] classes) { p.println("#include \"frysk/jnixx/jnixx.hxx\""); new PrintNamespaces(p).walk(classes); + p.println(); + p.println("\f"); new PrintDeclarations(p).walk(classes); + p.println(); + p.println("\f"); new PrintHxxDefinitions(p).walk(classes); } - private static void printCxxFile(Printer p, Class[] classes) { - printHxxFile(p, classes); // #include - p.println(); - p.println("\f"); + private static void printCxxFile(Printer p, String headerFile, + Class[] classes) { + p.print("#include \""); + p.print(headerFile); + p.println("\""); p.println(); new PrintCxxDefinitions(p).walk(classes); } public static void main(String[] args) throws ClassNotFoundException { - if (args.length < 2) { - throw new RuntimeException("Usage: jnixx cxx}hxx ..."); + if (args.length < 3) { + throw new RuntimeException("Usage: jnixx cxx|hxx ..."); } - Class[] classes = new Class[args.length - 1]; + boolean generateHeader = args[0].equals("hxx"); + String headerFile = args[1]; + final int firstClass = 2; + Class[] classes = new Class[args.length - firstClass]; for (int i = 0; i < classes.length; i++) { - classes[i] = Class.forName(args[i + 1], false, + classes[i] = Class.forName(args[i + firstClass], false, Main.class.getClassLoader()); } Printer p = new Printer(new PrintWriter(System.out)); - if (args[0].equals("hxx")) - printHxxFile(p, classes); + if (generateHeader) + printHxxFile(p, headerFile, classes); else - printCxxFile(p, classes); + printCxxFile(p, headerFile, classes); p.flush(); } } hooks/post-receive -- frysk system monitor/debugger