From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8918 invoked by alias); 11 Apr 2008 21:06:37 -0000 Received: (qmail 8882 invoked by uid 367); 11 Apr 2008 21:06:36 -0000 Date: Fri, 11 Apr 2008 21:06:00 -0000 Message-ID: <20080411210636.8865.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Add JNI stubs to frysk-sys. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 40fbefd8950ef47a338fd60e10ab6ed234330fc2 X-Git-Newrev: 19a5ebfc9ff217e1c1215190c1bf8f11f9631136 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/msg00083.txt.bz2 The branch, master has been updated via 19a5ebfc9ff217e1c1215190c1bf8f11f9631136 (commit) via a19d93630d1c02ded844c5156cf1aa3fb53dcdf2 (commit) via 918a0c362b0f1f9e394c44caddfc94bda0f0cd29 (commit) via 6ebb1f0fb6f2a3cfb1f004694562b6c71934529b (commit) via d2efaf531bea09c027c86bc5ec0c1c8f558378a7 (commit) via 0ab0892cc40c5e55d4bcb23c0c0813beec7e1a3e (commit) via 1689c38b330f1459e465f868a6cf9642e75661b1 (commit) via aa03aeaec49e9026614ff9b7d201de14628bc10e (commit) via 0236e57b6beabcd3ac7137a5898d5e412486b1d8 (commit) from 40fbefd8950ef47a338fd60e10ab6ed234330fc2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 19a5ebfc9ff217e1c1215190c1bf8f11f9631136 Author: Andrew Cagney Date: Fri Apr 11 17:02:15 2008 -0400 Add JNI stubs to frysk-sys. frysk-sys/frysk/config/ChangeLog 2008-04-11 Andrew Cagney * jni/BuildCompiler.cxx: New. * jni/Config.cxx: New. * jni/jni/FryskVersion.cxx: New. frysk-sys/frysk/sys/ChangeLog 2008-04-11 Andrew Cagney * jni/AuditLibs.cxx: New. * jni/ChildFactory.cxx: New. * jni/DaemonFactory.cxx: New. * jni/Exec.cxx: New. * jni/FileDescriptor.cxx: New. * jni/Fork.cxx: New. * jni/Itimer.cxx: New. * jni/Pid.cxx: New. * jni/Pipe.cxx: New. * jni/Poll.cxx: New. * jni/PseudoTerminal.cxx: New. * jni/Signal.cxx: New. * jni/SignalSet.cxx: New. * jni/StatelessFile.cxx: New. * jni/Tid.cxx: New. * jni/Uname.cxx: New. * jni/Wait.cxx: New. frysk-sys/frysk/sys/proc/ChangeLog 2008-04-11 Andrew Cagney * jni/AuxvBuilder.cxx: New. * jni/CmdLineBuilder.cxx: New. * jni/Exe.cxx: New. * jni/MapsBuilder.cxx: New. * jni/ProcBuilder.cxx: New. * jni/Stat.cxx: New. * jni/Status.cxx: New. frysk-sys/frysk/sys/ptrace/ChangeLog 2008-04-11 Andrew Cagney * jni/AddressSpace.cxx: New. * jni/Ptrace.cxx: New. * jni/RegisterSet.cxx: New. * jni/Utrace.cxx: New. frysk-sys/frysk/sys/termios/ChangeLog 2008-04-11 Andrew Cagney * jni/Control.cxx: New. * jni/Flow.cxx: New. * jni/Flush.cxx: New. * jni/Input.cxx: New. * jni/Local.cxx: New. * jni/Output.cxx: New. * jni/Special.cxx: New. * jni/Speed.cxx: New. * jni/Termios.cxx: New. frysk-sys/frysk/testbed/ChangeLog 2008-04-11 Andrew Cagney * jni/LocalMemory.cxx: New. * jni/Tee.cxx: New. frysk-sys/inua/ChangeLog 2008-04-11 Andrew Cagney * jni/MmapByteBuffer.cxx: New. frysk-sys/lib/dwfl/ChangeLog 2008-04-11 Andrew Cagney * jni/DwException.cxx: New. * jni/Dwarf.cxx: New. * jni/DwarfDie.cxx: New. * jni/Dwfl.cxx: New. * jni/DwflLine.cxx: New. * jni/DwflModule.cxx: New. * jni/Elf.cxx: New. * jni/ElfArchiveSymbol.cxx: New. * jni/ElfData.cxx: New. * jni/ElfDynamic.cxx: New. * jni/ElfNhdr.cxx: New. * jni/ElfPrAuxv.cxx: New. * jni/ElfPrFPRegSet.cxx: New. * jni/ElfPrXFPRegSet.cxx: New. * jni/ElfPrpsinfo.cxx: New. * jni/ElfPrstatus.cxx: New. * jni/ElfRel.cxx: New. * jni/ElfSection.cxx: New. * jni/ElfSymbol.cxx: New. frysk-sys/lib/opcodes/ChangeLog 2008-04-11 Andrew Cagney * jni/Disassembler.cxx: New. frysk-sys/lib/stdcpp/ChangeLog 2008-04-11 Andrew Cagney * jni/Demangler.cxx: New. frysk-sys/lib/unwind/ChangeLog 2008-04-11 Andrew Cagney * jni/ElfImage.cxx: New. * jni/UnwindPPC32.cxx: New. * jni/UnwindPPC64.cxx: New. * jni/UnwindX86.cxx: New. * jni/UnwindX8664.cxx: New. commit a19d93630d1c02ded844c5156cf1aa3fb53dcdf2 Author: Andrew Cagney Date: Fri Apr 11 16:48:09 2008 -0400 frysk-sys/ChangeLog 2008-04-11 Andrew Cagney * Makefile.am (JniRunner.jar): Force frysk-sys.jar into JAVAC's classpath. commit 918a0c362b0f1f9e394c44caddfc94bda0f0cd29 Author: Andrew Cagney Date: Fri Apr 11 16:03:30 2008 -0400 Add a Jni TestRunner. frysk-common/ChangeLog 2008-04-11 Andrew Cagney * Makefile.gen.sh (solib_PROGRAMS): Fix typo; Use GEN_DIRNAME not GEN_MAKENAME. frysk-sys/ChangeLog 2008-04-11 Andrew Cagney * Makefile.am (JniRunner.java, JniRunner.jar, JniRunner): New targets. commit 6ebb1f0fb6f2a3cfb1f004694562b6c71934529b Author: Andrew Cagney Date: Fri Apr 11 14:38:42 2008 -0400 Build jni .solib. frysk-common/ChangeLog 2008-04-11 Andrew Cagney * Makefile.rules (SUBST_SED): Substitute GEN_DIRNAME. * Makefile.gen.sh (solib_PROGRAMS): Add lib${GEN_MAKENAME}-jni.so. commit d2efaf531bea09c027c86bc5ec0c1c8f558378a7 Author: Andrew Cagney Date: Fri Apr 11 12:38:11 2008 -0400 Fix stray non-arch32 reference to arch32 sysroot in all-local. frysk-core/ChangeLog 2008-04-11 Andrew Cagney * Makefile.am (all-local) [DO_ARCH32_TEST]: Conditionally add frysk/pkglibdir/arch32/test-sysroot to all-local's dependencies. (TEST_SYSROOT, TEST32_SYSROOT): Define. commit 0ab0892cc40c5e55d4bcb23c0c0813beec7e1a3e Author: Andrew Cagney Date: Fri Apr 11 12:30:22 2008 -0400 Fix compiling of non-cni/jni .cxx et.al. files. frysk-common/ChangeLog 2008-04-11 Andrew Cagney * Makefile.gen.sh: Re-include non-cni/jni .cxx et.al. lost by below. commit 1689c38b330f1459e465f868a6cf9642e75661b1 Author: Andrew Cagney Date: Fri Apr 11 11:32:56 2008 -0400 Ignore files.base. frysk-core/ChangeLog 2008-04-11 Andrew Cagney * .gitignore: Ignore files.base. frysk-gtk/ChangeLog 2008-04-11 Andrew Cagney * .gitignore: Ignore files.base. frysk-gui/ChangeLog 2008-04-11 Andrew Cagney * .gitignore: Ignore files.base. frysk-sys/ChangeLog 2008-04-11 Andrew Cagney * .gitignore: Ignore files.base. commit aa03aeaec49e9026614ff9b7d201de14628bc10e Author: Andrew Cagney Date: Fri Apr 11 11:30:19 2008 -0400 Compile */jni/*.cxx files. frysk-common/ChangeLog 2008-04-11 Andrew Cagney * Makefile.gen.sh (automake_variable_defined): New. (automake_variable): Use. (has_generated_java_source): New. (has_java_source): New; use has_generated_java_source. (sources): Pass to automake_variable. (generate_compile): New; replace .cxx pass. commit 0236e57b6beabcd3ac7137a5898d5e412486b1d8 Author: Andrew Cagney Date: Fri Apr 11 09:47:05 2008 -0400 Generate JNI headers when requested. frysk-common/ChangeLog 2008-04-11 Andrew Cagney * Makefile.rules (JAVAH_CNI_BUILT): Replace JAVAH_BUILT. * Makefile.gen.sh (generate_cni_header): New. (generate_jni_header): New. (automake_variable): Replace set_variable. frysk-sys/ChangeLog 2008-04-11 Andrew Cagney * bootstrap.sh: Pass both --cni and --jni to Makefile.gen.sh. ----------------------------------------------------------------------- Summary of changes: frysk-common/ChangeLog | 21 + frysk-common/Makefile.gen.sh | 331 +++++++++++----- frysk-common/Makefile.rules | 5 +- frysk-core/.gitignore | 1 + frysk-core/ChangeLog | 8 + frysk-core/Makefile.am | 13 +- frysk-gtk/.gitignore | 1 + frysk-gtk/ChangeLog | 4 + frysk-gui/.gitignore | 1 + frysk-gui/ChangeLog | 4 + frysk-sys/.gitignore | 1 + frysk-sys/ChangeLog | 14 + frysk-sys/Makefile.am | 33 ++ frysk-sys/bootstrap.sh | 4 +- frysk-sys/frysk/config/ChangeLog | 6 + frysk-sys/frysk/config/jni/BuildCompiler.cxx | 81 ++++ frysk-sys/frysk/config/jni/Config.cxx | 141 +++++++ frysk-sys/frysk/config/jni/FryskVersion.cxx | 51 +++ frysk-sys/frysk/sys/ChangeLog | 20 + frysk-sys/frysk/sys/jni/AuditLibs.cxx | 61 +++ frysk-sys/frysk/sys/jni/ChildFactory.cxx | 51 +++ frysk-sys/frysk/sys/jni/DaemonFactory.cxx | 51 +++ frysk-sys/frysk/sys/jni/Exec.cxx | 51 +++ frysk-sys/frysk/sys/jni/FileDescriptor.cxx | 171 ++++++++ frysk-sys/frysk/sys/jni/Fork.cxx | 61 +++ frysk-sys/frysk/sys/jni/Itimer.cxx | 61 +++ frysk-sys/frysk/sys/jni/Pid.cxx | 61 +++ frysk-sys/frysk/sys/jni/Pipe.cxx | 51 +++ frysk-sys/frysk/sys/jni/Poll.cxx | 61 +++ frysk-sys/frysk/sys/jni/PseudoTerminal.cxx | 61 +++ frysk-sys/frysk/sys/jni/Signal.cxx | 481 +++++++++++++++++++++++ frysk-sys/frysk/sys/jni/SignalSet.cxx | 171 ++++++++ frysk-sys/frysk/sys/jni/StatelessFile.cxx | 61 +++ frysk-sys/frysk/sys/jni/Tid.cxx | 51 +++ frysk-sys/frysk/sys/jni/Uname.cxx | 51 +++ frysk-sys/frysk/sys/jni/Wait.cxx | 111 ++++++ frysk-sys/frysk/sys/proc/ChangeLog | 10 + frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx | 61 +++ frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx | 61 +++ frysk-sys/frysk/sys/proc/jni/Exe.cxx | 51 +++ frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx | 61 +++ frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx | 71 ++++ frysk-sys/frysk/sys/proc/jni/Stat.cxx | 71 ++++ frysk-sys/frysk/sys/proc/jni/Status.cxx | 61 +++ frysk-sys/frysk/sys/ptrace/ChangeLog | 7 + frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx | 101 +++++ frysk-sys/frysk/sys/ptrace/jni/Ptrace.cxx | 161 ++++++++ frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx | 81 ++++ frysk-sys/frysk/sys/ptrace/jni/Utrace.cxx | 111 ++++++ frysk-sys/frysk/sys/termios/ChangeLog | 12 + frysk-sys/frysk/sys/termios/jni/Control.cxx | 61 +++ frysk-sys/frysk/sys/termios/jni/Flow.cxx | 51 +++ frysk-sys/frysk/sys/termios/jni/Flush.cxx | 51 +++ frysk-sys/frysk/sys/termios/jni/Input.cxx | 61 +++ frysk-sys/frysk/sys/termios/jni/Local.cxx | 61 +++ frysk-sys/frysk/sys/termios/jni/Output.cxx | 61 +++ frysk-sys/frysk/sys/termios/jni/Special.cxx | 61 +++ frysk-sys/frysk/sys/termios/jni/Speed.cxx | 71 ++++ frysk-sys/frysk/sys/termios/jni/Termios.cxx | 101 +++++ frysk-sys/frysk/testbed/ChangeLog | 5 + frysk-sys/frysk/testbed/jni/LocalMemory.cxx | 141 +++++++ frysk-sys/frysk/testbed/jni/Tee.cxx | 51 +++ frysk-sys/inua/ChangeLog | 4 + frysk-sys/inua/eio/jni/MmapByteBuffer.cxx | 71 ++++ frysk-sys/lib/dwfl/ChangeLog | 22 + frysk-sys/lib/dwfl/jni/DwException.cxx | 61 +++ frysk-sys/lib/dwfl/jni/Dwarf.cxx | 81 ++++ frysk-sys/lib/dwfl/jni/DwarfDie.cxx | 351 +++++++++++++++++ frysk-sys/lib/dwfl/jni/Dwfl.cxx | 161 ++++++++ frysk-sys/lib/dwfl/jni/DwflLine.cxx | 91 +++++ frysk-sys/lib/dwfl/jni/DwflModule.cxx | 151 +++++++ frysk-sys/lib/dwfl/jni/Elf.cxx | 371 +++++++++++++++++ frysk-sys/lib/dwfl/jni/ElfArchiveSymbol.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfData.cxx | 221 +++++++++++ frysk-sys/lib/dwfl/jni/ElfDynamic.cxx | 51 +++ frysk-sys/lib/dwfl/jni/ElfNhdr.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfPrAuxv.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfPrpsinfo.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx | 71 ++++ frysk-sys/lib/dwfl/jni/ElfRel.cxx | 51 +++ frysk-sys/lib/dwfl/jni/ElfSection.cxx | 121 ++++++ frysk-sys/lib/dwfl/jni/ElfSymbol.cxx | 81 ++++ frysk-sys/lib/opcodes/ChangeLog | 4 + frysk-sys/lib/opcodes/jni/Disassembler.cxx | 71 ++++ frysk-sys/lib/stdcpp/ChangeLog | 6 +- frysk-sys/lib/stdcpp/jni/Demangler.cxx | 51 +++ frysk-sys/lib/unwind/ChangeLog | 8 + frysk-sys/lib/unwind/jni/ElfImage.cxx | 61 +++ frysk-sys/lib/unwind/jni/UnwindPPC32.cxx | 291 ++++++++++++++ frysk-sys/lib/unwind/jni/UnwindPPC64.cxx | 291 ++++++++++++++ frysk-sys/lib/unwind/jni/UnwindX86.cxx | 291 ++++++++++++++ frysk-sys/lib/unwind/jni/UnwindX8664.cxx | 291 ++++++++++++++ 94 files changed, 7747 insertions(+), 107 deletions(-) create mode 100644 frysk-sys/frysk/config/jni/BuildCompiler.cxx create mode 100644 frysk-sys/frysk/config/jni/Config.cxx create mode 100644 frysk-sys/frysk/config/jni/FryskVersion.cxx create mode 100644 frysk-sys/frysk/sys/jni/AuditLibs.cxx create mode 100644 frysk-sys/frysk/sys/jni/ChildFactory.cxx create mode 100644 frysk-sys/frysk/sys/jni/DaemonFactory.cxx create mode 100644 frysk-sys/frysk/sys/jni/Exec.cxx create mode 100644 frysk-sys/frysk/sys/jni/FileDescriptor.cxx create mode 100644 frysk-sys/frysk/sys/jni/Fork.cxx create mode 100644 frysk-sys/frysk/sys/jni/Itimer.cxx create mode 100644 frysk-sys/frysk/sys/jni/Pid.cxx create mode 100644 frysk-sys/frysk/sys/jni/Pipe.cxx create mode 100644 frysk-sys/frysk/sys/jni/Poll.cxx create mode 100644 frysk-sys/frysk/sys/jni/PseudoTerminal.cxx create mode 100644 frysk-sys/frysk/sys/jni/Signal.cxx create mode 100644 frysk-sys/frysk/sys/jni/SignalSet.cxx create mode 100644 frysk-sys/frysk/sys/jni/StatelessFile.cxx create mode 100644 frysk-sys/frysk/sys/jni/Tid.cxx create mode 100644 frysk-sys/frysk/sys/jni/Uname.cxx create mode 100644 frysk-sys/frysk/sys/jni/Wait.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/AuxvBuilder.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/CmdLineBuilder.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/Exe.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/MapsBuilder.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/ProcBuilder.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/Stat.cxx create mode 100644 frysk-sys/frysk/sys/proc/jni/Status.cxx create mode 100644 frysk-sys/frysk/sys/ptrace/jni/AddressSpace.cxx create mode 100644 frysk-sys/frysk/sys/ptrace/jni/Ptrace.cxx create mode 100644 frysk-sys/frysk/sys/ptrace/jni/RegisterSet.cxx create mode 100644 frysk-sys/frysk/sys/ptrace/jni/Utrace.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Control.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Flow.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Flush.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Input.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Local.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Output.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Special.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Speed.cxx create mode 100644 frysk-sys/frysk/sys/termios/jni/Termios.cxx create mode 100644 frysk-sys/frysk/testbed/jni/LocalMemory.cxx create mode 100644 frysk-sys/frysk/testbed/jni/Tee.cxx create mode 100644 frysk-sys/inua/eio/jni/MmapByteBuffer.cxx create mode 100644 frysk-sys/lib/dwfl/jni/DwException.cxx create mode 100644 frysk-sys/lib/dwfl/jni/Dwarf.cxx create mode 100644 frysk-sys/lib/dwfl/jni/DwarfDie.cxx create mode 100644 frysk-sys/lib/dwfl/jni/Dwfl.cxx create mode 100644 frysk-sys/lib/dwfl/jni/DwflLine.cxx create mode 100644 frysk-sys/lib/dwfl/jni/DwflModule.cxx create mode 100644 frysk-sys/lib/dwfl/jni/Elf.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfArchiveSymbol.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfData.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfDynamic.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfNhdr.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfPrAuxv.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfPrFPRegSet.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfPrXFPRegSet.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfPrpsinfo.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfPrstatus.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfRel.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfSection.cxx create mode 100644 frysk-sys/lib/dwfl/jni/ElfSymbol.cxx create mode 100644 frysk-sys/lib/opcodes/jni/Disassembler.cxx create mode 100644 frysk-sys/lib/stdcpp/jni/Demangler.cxx create mode 100644 frysk-sys/lib/unwind/jni/ElfImage.cxx create mode 100644 frysk-sys/lib/unwind/jni/UnwindPPC32.cxx create mode 100644 frysk-sys/lib/unwind/jni/UnwindPPC64.cxx create mode 100644 frysk-sys/lib/unwind/jni/UnwindX86.cxx create mode 100644 frysk-sys/lib/unwind/jni/UnwindX8664.cxx First 500 lines of diff: diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog index d8e9f32..c4c20e9 100644 --- a/frysk-common/ChangeLog +++ b/frysk-common/ChangeLog @@ -1,5 +1,26 @@ 2008-04-11 Andrew Cagney + * Makefile.gen.sh (solib_PROGRAMS): Fix typo; Use GEN_DIRNAME not + GEN_MAKENAME. + + * Makefile.rules (SUBST_SED): Substitute GEN_DIRNAME. + * Makefile.gen.sh (solib_PROGRAMS): Add lib${GEN_MAKENAME}-jni.so. + + * Makefile.gen.sh: Re-include non-cni/jni .cxx et.al. lost by + below. + + * Makefile.gen.sh (automake_variable_defined): New. + (automake_variable): Use. + (has_generated_java_source): New. + (has_java_source): New; use has_generated_java_source. + (sources): Pass to automake_variable. + (generate_compile): New; replace .cxx pass. + + * Makefile.rules (JAVAH_CNI_BUILT): Replace JAVAH_BUILT. + * Makefile.gen.sh (generate_cni_header): New. + (generate_jni_header): New. + (automake_variable): Replace set_variable. + * frysk.xml-in: Include version. 2008-04-08 Andrew Cagney diff --git a/frysk-common/Makefile.gen.sh b/frysk-common/Makefile.gen.sh index a144827..f5b93fe 100755 --- a/frysk-common/Makefile.gen.sh +++ b/frysk-common/Makefile.gen.sh @@ -75,8 +75,8 @@ GEN_ARGS="$@" while test $# -gt 0 do case "$1" in - --cni ) cni=true ; jni=false ;; - --jni ) jni=true ; cni=false ;; + --cni ) cni=true ;; + --jni ) jni=true ;; *.jar ) jars="${jars} $1" ;; *_JAR ) JARS="${JARS} $1" ;; * ) dirs="${dirs} $1" ;; @@ -156,15 +156,36 @@ EOF echo "$@" 1>&2 } -# Called as: set_variable foodir = '$(datadir)/foo' -# set variable $1 to value $3, if this is the fist time called: -set_variable () +# Does the automake variable exist (as in did this file define it). + +automake_variable_defined () +{ + local name=$1 + local variable=variable_${name}_set + eval test -n \"\${${variable}:-}\" +} + +# Called as: variable NAME = [VALUE] or variable NAME += VALUE sets or +# appends variable $1 to value $3, if this is the fist time called. +# The only GOT-YA is that all invocations of this function must occure +# in the same process; which means ``a | while read ... '' can't be +# used. + +automake_variable () { - if eval test -z "\${${1}_set:-}"; then - eval ${1}_set=true - echo "$@" + local name=$1 ; shift + local op=$1 ; shift + if automake_variable_defined $name ; then + # Append only; ignore duplicate assigns + if test "x$op" = "x+=" ; then + echo "$name" += "$@" + fi + else + local variable=variable_${name}_set + eval $variable=\'$name $op "$*"\' + echo "$name" = "$@" fi -} +} check_MANS () { @@ -232,8 +253,9 @@ echo_arch32_PROGRAMS() ;; esac - echo "if DO_ARCH32_TEST" cat < /dev/null 2>&1 @@ -402,14 +442,14 @@ print_header "... the lib${GEN_DIRNAME}.a skeleton" sources=lib${GEN_MAKENAME}_a_SOURCES -cat < /dev/null 2>&1 ; then - echo "${name_}_LDADD = -lpthread" - fi - # Generate the rules for arch32 test - echo_arch32_PROGRAMS ${name} ${name}${s} - else - echo "${sources} += ${file}" - fi - case "${suffix}" in - *-in | *-sh) - echo "BUILT_SOURCES += ${name}${s}" - echo "SCRIPT_BUILT += ${name}${s}" - ;; - esac +generate_compile () +{ + local file=$1 + local d=$2 + local b=$3 + local suffix=$4 + local sources=$5 + local name=${d}/${b} + local name_=`echo ${name} | sed -e 'y,-/,__,'` + if has_main ${file} ; then + echo "${name_}_SOURCES = ${name}.${suffix}" case "${suffix}" in - # Hardwire assembler dependency on include/frysk-asm.h; - # automake doesn't generate this :-( FIXME: ARCH-32 case? - .S|.s) - echo "${name}.\$(OBJEXT): \$(top_srcdir)/../frysk-imports/include/frysk-asm.h" - echo "if DO_ARCH32_TEST" - echo "${d}/arch32/${b}.\$(OBJEXT): \$(top_srcdir)/../frysk-imports/include/frysk-asm.h" - echo "endif" + cxx ) echo "${name_}_LINK = \$(CXXLINK)" ;; esac - done -done + echo_PROGRAMS ${name} + check_MANS ${name} + if grep 'pthread\.h' ${file} > /dev/null 2>&1 ; then + echo "${name_}_LDADD = -lpthread" + fi + # Generate the rules for 32-bit compile + echo_arch32_PROGRAMS ${name} ${name}.${suffix} + else + automake_variable ${sources} += ${file} + fi + case "${file}" in + *-in | *-sh) + echo "BUILT_SOURCES += ${name}.${suffix}" + echo "SCRIPT_BUILT += ${name}.${suffix}" + ;; + esac + case "${file}" in + *.S | *.s) + # Hardwire assembler dependency on include/frysk-asm.h; + # automake doesn't generate this :-( + echo "${name}.\$(OBJEXT): \$(top_srcdir)/../frysk-imports/include/frysk-asm.h" + echo "if DO_ARCH32_TEST" + echo "${d}/arch32/${b}.\$(OBJEXT): \$(top_srcdir)/../frysk-imports/include/frysk-asm.h" + echo "endif" + esac +} # What type of build? if $cni ; then @@ -568,45 +605,88 @@ else : default fi -# Grep the cni/*.cxx files forming a list of included files. Assume -# these are all generated from .class files found in the master .jar. - -# This matches both: -# #include "a/file/dot.h" -# and -# #define A_FILE "a/file/dot.h" - -print_header "... *.{hxx,cxx}=.h" -grep -e '/cni/' -e '/jni/' files.list \ - | xargs -r grep -H \ - -e '#include ".*.h"' \ - -e '#define [A-Z_]* ".*.h"' \ - | sed \ - -e 's/\.\(.\).*:#define [A-Z_]* "/ \1 /' \ - -e 's/\.\(.\).*:#include "/ \1 /' \ - -e 's/\.h".*$//' \ - -e 's/$.*//' \ - | while read o c h -do - if test \ - -r ${h}.java -o \ - -r ${h}.shenum -o \ - -r ${h}.mkenum -o \ - -r ${h}.java-sh -o \ - -r ${h}.java-in \ - ; then - case "$c" in - # Do not know what includes the header; just build early - h) - echo "BUILT_SOURCES += ${h}.h" - echo "JAVAH_BUILT += ${h}.h" - ;; - c) echo "${o}.o: ${h}.h" ;; - esac - echo "CLEANFILES += ${h}.h" - echo "CLEANFILES += ${h}\\\$\$*.h" - fi -done | sort -u +# Grep the *.cxx and *.hxx files forming a list of included files. +# Assume these are all generated from .class files found in the master +# .jar. + +generate_cni_header () { + local file=$1 + local d=$2 + local b=$3 + local suffix=$4 + local _file=`echo $file | tr '[/.]' '[__]'` + sed -n \ + -e 's,#include "\(.*\)\.h".*,include - \1,p' \ + -e 's,#include \([A-Z][A-Z0-9_]*\).*,minclude \1 -,p' \ + -e 's,#define \([A-Z0-9_]*\) "\(.*\)\.h".*,define \1 \2,p' \ + < $file > $$.tmp + while read action m h j; do + echo "# file=$file action=$action m=$m h=$h" + if test "$action" = "minclude" ; then + # Assume file defining macro depends on this file + automake_variable $m = \$\($_file\) + elif has_java_source ${h} ; then + echo "JAVAH_CNI_BUILT += ${h}.h" + echo "CLEANFILES += ${h}.h" + echo "CLEANFILES += ${h}\\\$\$*.h" + j=`echo ${h} | tr '[_]' '[/]'` + echo "${h}.h: $j.java | ${GEN_DIRNAME}.jar" + case $action in + include) + case "$suffix" in + cxx) echo "$d/$b.o: ${h}.h" ;; + hxx) # remember what this file includes + automake_variable $_file += ${h}.h ;; + esac + ;; + define) + echo "$d/$b.o: ${h}.h" + # Assume file using this macro is a dependency. + echo "$d/$b.o: \$($m)" + ;; + esac + fi + done < $$.tmp + rm -f $$.tmp +} + +# For any java file that contains "native" declarations, generate a +# jni header. + +echo 'all-local: $(JAVAH_JNI_BUILT)' +generate_jni_header () +{ + local file=$1 + local d=$2 + local b=$3 + local suffix=$4 + if grep ' native ' $file > /dev/null ; then + local h=`echo $d/$b | tr '[/]' '[_]'` + local c=`echo $d/$b | tr '[/]' '[.]'` + automake_variable JAVAH_JNI_BUILT += ${h}.h + echo "CLEANFILES += ${h}.h" + echo "${h}.h: $file | ${GEN_DIRNAME}.jar" + echo " @echo \"$c => ${h}.h\"" + echo ' $(GCJH) $(GCJHFLAGS) -jni -classpath=$(CLASSPATH):'${GEN_DIRNAME}.jar $c + fi +} + +# For JNI .cxx files, generate an explict depend on what should be the +# corresponding JNI header. What about .cxx files that are not jni? + +generate_jni_dependency() +{ + local file=$1 + local d=$2 # contains /jni + local b=$3 + local suffix=$4 + local j=`dirname $d` # drop /jni + if has_java_source $j/$b ; then + # A corresponding .java source file. + local h=`echo $j/$b | tr '[/]' '[_]'` + echo "$d/$b.o: $h.h" + fi +} # Generate rules for all .xml-in files, assume that they are converted @@ -753,10 +833,9 @@ sed -n -e '/dir\// { ;; esac if test -n "${d2}"; then - set_variable "${dir}dir" = "\$(${d1}dir)/${d2}" + automake_variable "${dir}dir" = "\$(${d1}dir)/${d2}" fi - set_variable "${dir}_DATA" = - echo "${dir}_DATA += $data" + automake_variable "${dir}_DATA" += $data done @@ -779,3 +858,59 @@ EOF printf "\tmv \$@.tmp \$@\n" done done + + +# Iterate through all the files in file.list; applying all applicable +# generation rules to each file type. There are no smarts, each file +# type gets all operations listed explicitly. + +# It is assumed that each file is of the form DIRNAME/BASENAME.SUFFIX, +# pre-process each into: FILE DIRNAME BASENAME SUFFIX + +sed -e 's,^\(\(.*\)/\([^/]*\)\.\([a-z-]*\)\),\1 \2 \3 \4,' \ + -e 's,-in$,,' \ + -e 's,-sh$,,' \ + < files.list \ + > files.base + +print_header "bulk processing" + +while read file dir base suffix ; do + + echo "" + echo "# file=$file" + echo "# dir=$dir" + echo "# base=$base" + echo "# suffix=$suffix" + echo "" + + case $file in + */cni/*.cxx | */cni/*.cxx-in | */cni/*.cxx-sh | */cni/*.hxx) + generate_cni_header $file $dir $base $suffix + generate_compile $file $dir $base $suffix ${sources} + ;; + */jni/*.cxx | */jni/*.cxx-in | */jni/*.cxx-sh) + generate_jni_dependency $file $dir $base $suffix + generate_compile $file $dir $base $suffix \ + lib${GEN_MAKENAME}_jni_a_SOURCES + ;; + *.java | *.java-in | *.java-sh ) + generate_jni_header $file $dir $base $suffix + ;; + *.cxx | *.S | *.c ) + # Non-cni/jni source. + generate_compile $file $dir $base $suffix ${sources} + ;; + esac + +done < files.base + + +if automake_variable_defined lib${GEN_MAKENAME}_jni_a_SOURCES ; then + cat < + + * Makefile.am (all-local) [DO_ARCH32_TEST]: Conditionally add + frysk/pkglibdir/arch32/test-sysroot to all-local's dependencies. + (TEST_SYSROOT, TEST32_SYSROOT): Define. hooks/post-receive -- frysk system monitor/debugger