From c9db365d82513a3aa4993bd0c8d3554caade44b9 Mon Sep 17 00:00:00 2001 From: Joshua Sumali Date: Wed, 2 Jul 2008 13:17:54 +0000 Subject: [PATCH] configure.ac (java-home): new AC_ARG_ENABLE. 2008-06-30 Joshua Sumali Andrew Haley * configure.ac (java-home): new AC_ARG_ENABLE. (aot-compile-rpm): Likewise. (CREATE_JAVA_HOME): new AM_CONDITIONAL. (INSTALL_AOT_RPM): Likewise. (gcc-suffix): new AC_ARG_WITH. (arch-directory): Likewise. (os-directory): Likewise. (origin-name): Likewise. (arch-suffix): Likewise. (jvm-root-dir): Likewise. (jvm-jar-dir): Likewise. (python-dir): Likewise. (AC_CONFIG_FILES): Add contrib/aotcompile.py, contrib/aot-compile, contrib/aot-compile-rpm, contrib/rebuild-gcj-db. (gcjsubdir): New AC_SUBST. * Makefile.am (install-data-local): Install Python modules for aot-compile. Also install an sdk style directory if --enable-java-home is passed to configure. (bin_SCRIPTS): Add contrib/rebuild-gcj-db and contrib/aot-compile. (gcjsubdir): Add. (db_pathtail): Redefine in terms of gcjsubdir. * contrib/aot-compile.in: New file. * contrib/aotcompile.py.in: Likewise. * contrib/aot-compile-rpm.in: Likewise. * contrib/classfile.py: Likewise. * contrib/rebuild-gcj-db.in: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. 2008-06-30 Joshua Sumali * doc/install.texi (--enable-java-home): Document. (--enable-aot-compile-rpm): Likewise. (--with-arch-directory): Likewise. (--with-os-directory): Likewise. (--with-origin-name): Likewise. (--with-arch-suffix): Likewise. (--with-jvm-root-dir): Likewise. (--with-jvm-jar-dir): Likewise. (--with-python-dir): Likewise. 2008-06-30 Joshua Sumali * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and doc/rebuild-gcj-db.1 (java.uninstall): Likewise. (java.maintainer-clean): Likewise. (aot-compile.pod): New rule. (rebuild-gcj-db.pod): New rule. (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1 * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db. Co-Authored-By: Andrew Haley From-SVN: r137353 --- gcc/ChangeLog | 12 ++ gcc/doc/install.texi | 39 ++++ gcc/java/ChangeLog | 11 + gcc/java/Make-lang.in | 19 +- gcc/java/gcj.texi | 91 +++++++- libjava/ChangeLog | 33 +++ libjava/Makefile.am | 146 ++++++++++++- libjava/Makefile.in | 223 +++++++++++++++++--- libjava/configure | 402 +++++++++++++++++++++++++++++++++--- libjava/configure.ac | 206 +++++++++++++++++++ libjava/contrib/aot-compile-rpm.in | 97 +++++++++ libjava/contrib/aot-compile.in | 88 ++++++++ libjava/contrib/aotcompile.py.in | 412 +++++++++++++++++++++++++++++++++++++ libjava/contrib/classfile.py | 221 ++++++++++++++++++++ libjava/contrib/rebuild-gcj-db.in | 27 +++ libjava/gcj/Makefile.in | 27 +++ libjava/include/Makefile.in | 27 +++ libjava/testsuite/Makefile.in | 27 +++ 18 files changed, 2043 insertions(+), 65 deletions(-) create mode 100644 libjava/contrib/aot-compile-rpm.in create mode 100644 libjava/contrib/aot-compile.in create mode 100644 libjava/contrib/aotcompile.py.in create mode 100644 libjava/contrib/classfile.py create mode 100644 libjava/contrib/rebuild-gcj-db.in diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a0c28390ae..f6da145f815 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2008-07-02 Joshua Sumali + + * doc/install.texi (--enable-java-home): Document. + (--enable-aot-compile-rpm): Likewise. + (--with-arch-directory): Likewise. + (--with-os-directory): Likewise. + (--with-origin-name): Likewise. + (--with-arch-suffix): Likewise. + (--with-jvm-root-dir): Likewise. + (--with-jvm-jar-dir): Likewise. + (--with-python-dir): Likewise. + 2008-07-02 Richard Guenther * tree-ssa-forwprop.c (can_propagate_from): Exclude loads diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index b1b896527ba..86c2f46a49e 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -1607,6 +1607,45 @@ Use installed @samp{zlib} rather than that included with GCC@. @item --with-win32-nlsapi=ansi, unicows or unicode Indicates how MinGW @samp{libgcj} translates between UNICODE characters and the Win32 API@. + +@item --enable-java-home +If enabled, this creates a JPackage compatible SDK environment during install. +Note that if --enable-java-home is used, --with-arch-directory=ARCH must also +be specified. + +@item --with-arch-directory=ARCH +Specifies the name to use for the @file{jre/lib/ARCH} directory in the SDK +environment created when --enable-java-home is passed. Typical names for this +directory include i386, amd64, ia64, etc. + +@item --with-os-directory=DIR +Specifies the OS directory for the SDK include directory. This is set to auto +detect, and is typically 'linux'. + +@item --with-origin-name=NAME +Specifies the JPackage origin name. This defaults to the 'gcj' in +java-1.5.0-gcj. + +@item --with-arch-suffix=SUFFIX +Specifies the suffix for the sdk directory. Defaults to the empty string. +Examples include '.x86_64' in 'java-1.5.0-gcj-1.5.0.0.x86_64'. + +@item --with-jvm-root-dir=DIR +Specifies where to install the SDK. Default is $(prefix)/lib/jvm. + +@item --with-jvm-jar-dir=DIR +Specifies where to install jars. Default is $(prefix)/lib/jvm-exports. + +@item --with-python-dir=DIR +Specifies where to install the Python modules used for aot-compile. DIR should +not include the prefix used in installation. For example, if the Python modules +are to be installed in /usr/lib/python2.5/site-packages, then +--with-python-dir=/lib/python2.5/site-packages should be passed. If this is +not specified, then the Python modules are installed in $(prefix)/share/python. + +@item --enable-aot-compile-rpm +Adds aot-compile-rpm to the list of installed scripts. + @table @code @item ansi Use the single-byte @code{char} and the Win32 A functions natively, diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index b5ceb09f1b9..33ac01f7a7c 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,14 @@ +2008-06-30 Joshua Sumali + + * Make-lang.in (JAVA_MANFILES): Add doc/aot-compile.1 and + doc/rebuild-gcj-db.1 + (java.uninstall): Likewise. + (java.maintainer-clean): Likewise. + (aot-compile.pod): New rule. + (rebuild-gcj-db.pod): New rule. + (java.install-man): Install doc/aot-compile.1 and doc/rebuild-gcj-db.1 + * gcj.texi: Add new sections for aot-compile and rebuild-gcj-db. + 2008-06-29 Kaveh R. Ghazi * Make-lang.in (java/jcf-io.o-warn): New. diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in index badbb7fdfbf..cab40afb959 100644 --- a/gcc/java/Make-lang.in +++ b/gcc/java/Make-lang.in @@ -146,8 +146,9 @@ java.pdf: $(JAVA_PDFFILES) java.html: $(build_htmldir)/java/index.html JAVA_MANFILES = doc/gcj.1 doc/jcf-dump.1 doc/gij.1 \ - doc/jv-convert.1 doc/grmic.1\ - doc/gcj-dbtool.1 doc/gc-analyze.1 + doc/jv-convert.1 doc/grmic.1 \ + doc/gcj-dbtool.1 doc/gc-analyze.1 doc/aot-compile.1 \ + doc/rebuild-gcj-db.1 java.man: $(JAVA_MANFILES) @@ -192,6 +193,8 @@ java.uninstall: -rm -rf $(DESTDIR)$(man1dir)/gij$(man1ext) -rm -rf $(DESTDIR)$(man1dir)/jv-convert$(man1ext) -rm -rf $(DESTDIR)$(man1dir)/gcj-dbtool$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/aot-compile$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/rebuild-gcj-db$(man1ext) java.install-info: $(DESTDIR)$(infodir)/gcj.info @@ -226,6 +229,8 @@ java.maintainer-clean: -rm -f $(docobjdir)/grmic.1 -rm -f $(docobjdir)/gcj-dbtool.1 -rm -f $(docobjdir)/gc-analyze.1 + -rm -f $(docobjdir)/aot-compile.1 + -rm -f $(docobjdir)/rebuild-gcj-db.1 # # Stage hooks: # The main makefile has already created stage?/java. @@ -356,15 +361,21 @@ gcj-dbtool.pod: java/gcj.texi -$(TEXI2POD) -D gcj-dbtool < $< > $@ gc-analyze.pod: java/gcj.texi -$(TEXI2POD) -D gc-analyze < $< > $@ +aot-compile.pod: java/gcj.texi + -$(TEXI2POD) -D aot-compile < $< > $@ +rebuild-gcj-db.pod: java/gcj.texi + -$(TEXI2POD) -D rebuild-gcj-db < $< > $@ # Install the man pages. java.install-man: installdirs \ $(DESTDIR)$(man1dir)/$(JAVA_INSTALL_NAME)$(man1ext) \ $(JAVA_TARGET_INDEPENDENT_BIN_TOOLS:%=doc/%.1) \ doc/gij.1 doc/jv-convert.1 doc/grmic.1 \ - doc/gcj-dbtool.1 doc/gc-analyze.1 + doc/gcj-dbtool.1 doc/gc-analyze.1 \ + doc/aot-compile.1 doc/rebuild-gcj-db.1 for tool in $(JAVA_TARGET_INDEPENDENT_BIN_TOOLS) \ - gij jv-convert grmic gcj-dbtool gc-analyze ; do \ + gij jv-convert grmic gcj-dbtool gc-analyze aot-compile \ + rebuild-gcj-db; do \ tool_transformed_name=`echo $$tool|sed '$(program_transform_name)'`; \ man_name=$(DESTDIR)$(man1dir)/$${tool_transformed_name}$(man1ext); \ rm -f $$man_name ; \ diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi index 94172d80b20..179e620f8c9 100644 --- a/gcc/java/gcj.texi +++ b/gcc/java/gcj.texi @@ -72,6 +72,11 @@ man page gfdl(7). Generate stubs for Remote Method Invocation. * gc-analyze: (gcj)Invoking gc-analyze. Analyze Garbage Collector (GC) memory dumps. +* aot-compile: (gcj)Invoking aot-compile. + Compile bytecode to native and generate databases. +* rebuild-gcj-db: (gcj)Invoking rebuild-gcj-db. + Merge the per-solib databases made by aot-compile + into one system-wide database. @end direntry @end format @@ -115,6 +120,9 @@ files and object files, and it can read both Java source code and * Invoking jv-convert:: Converting from one encoding to another * Invoking grmic:: Generate stubs for Remote Method Invocation. * Invoking gc-analyze:: Analyze Garbage Collector (GC) memory dumps. +* Invoking aot-compile:: Compile bytecode to native and generate databases. +* Invoking rebuild-gcj-db:: Merge the per-solib databases made by aot-compile + into one system-wide database. * About CNI:: Description of the Compiled Native Interface * System properties:: Modifying runtime behavior of the libgcj library * Resources:: Where to look for more information @@ -921,7 +929,7 @@ gcj-dbtool [@option{-0}] [@option{-}] [@option{-n}] [@option{-a}] [@option{-f}] [@option{-v}] [@option{-m}] [@option{--version}] [@option{--help}] @c man end -@c man begin SEEALSO gij +@c man begin SEEALSO gcj-dbtool gcc(1), gcj(1), gcjh(1), jcf-dump(1), gfdl(7), and the Info entries for @file{gcj} and @file{gcc}. @c man end @@ -1219,6 +1227,87 @@ Print version information, then exit. @c man end +@node Invoking aot-compile +@chapter Invoking aot-compile + +@c man title aot-compile Compile bytecode to native and generate databases + +@ignore + +@c man begin SYNOPSIS aot-compile +aot-compile [@option{OPTION}] @dots{} @var{SRCDIR} @var{DSTDIR} + +aot-compile [@option{-M, --make}=@var{PATH}] [@option{-C, --gcj}=@var{PATH}] + [@option{-D, --dbtool}=@var{PATH}] [@option{-m, --makeflags}=@var{FLAGS}] + [@option{-c, --gcjflags}=@var{FLAGS}] [@option{-l, --ldflags}=@var{FLAGS}] + [@option{-e, --exclude}=@var{PATH}] +@c man end + +@c man begin SEEALSO aot-compile +gcc(1), gcj(1), gcjh(1), jcf-dump(1), gfdl(7), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end + +@end ignore + +@c man begin DESCRIPTION aot-compile +@code{aot-compile} is a script that searches a directory for Java bytecode +(as class files, or in jars) and uses @code{gcj} to compile it to native +code and generate the databases from it. +@c man end + +@c man begin OPTIONS aot-compile +@table @gcctabopt +@item -M, --make=@var{PATH} +Specify the path to the @code{make} executable to use. + +@item -C, --gcj=@var{PATH} +Specify the path to the @code{gcj} executable to use. + +@item -D, --dbtool=@var{PATH} +Specify the path to the @code{gcj-dbtool} executable to use. + +@item -m, --makeflags=@var{FLAGS} +Specify flags to pass to @code{make} during the build. + +@item -c, --gcjflags=@var{FLAGS} +Specify flags to pass to @code{gcj} during compilation, in addition to +'-fPIC -findirect-dispatch -fjni'. + +@item -l, --ldflags=@var{FLAGS} +Specify flags to pass to @code{gcj} during linking, in addition to +'-Wl,-Bsymbolic'. + +@item -e, --exclude=@var{PATH} +Do not compile @var{PATH}. + +@end table + +@c man end + +@node Invoking rebuild-gcj-db +@chapter Invoking rebuild-gcj-db + +@c man title rebuild-gcj-db Merge the per-solib databases made by aot-compile into one system-wide database. +@ignore + +@c man begin SYNOPSIS rebuild-gcj-db +rebuild-gcj-db +@c man end + +@c man begin SEEALSO rebuild-gcj-db +gcc(1), gcj(1), gcjh(1), jcf-dump(1), gfdl(7), +and the Info entries for @file{gcj} and @file{gcc}. +@c man end + +@end ignore + +@c man begin DESCRIPTION rebuild-gcj-db +@code{rebuild-gcj-db} is a script that merges the per-solib databases made by +@code{aot-compile} into one system-wide database so @code{gij} can find the +solibs. +@c man end + @node About CNI @chapter About CNI diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 01f31a5e50d..d0c1d068dbb 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,36 @@ +2008-06-30 Joshua Sumali + Andrew Haley + + * configure.ac (java-home): new AC_ARG_ENABLE. + (aot-compile-rpm): Likewise. + (CREATE_JAVA_HOME): new AM_CONDITIONAL. + (INSTALL_AOT_RPM): Likewise. + (gcc-suffix): new AC_ARG_WITH. + (arch-directory): Likewise. + (os-directory): Likewise. + (origin-name): Likewise. + (arch-suffix): Likewise. + (jvm-root-dir): Likewise. + (jvm-jar-dir): Likewise. + (python-dir): Likewise. + (AC_CONFIG_FILES): Add contrib/aotcompile.py, contrib/aot-compile, + contrib/aot-compile-rpm, contrib/rebuild-gcj-db. + (gcjsubdir): New AC_SUBST. + * Makefile.am (install-data-local): Install Python modules for + aot-compile. Also install an sdk style directory if + --enable-java-home is passed to configure. + (bin_SCRIPTS): Add + contrib/rebuild-gcj-db and contrib/aot-compile. + (gcjsubdir): Add. + (db_pathtail): Redefine in terms of gcjsubdir. + * contrib/aot-compile.in: New file. + * contrib/aotcompile.py.in: Likewise. + * contrib/aot-compile-rpm.in: Likewise. + * contrib/classfile.py: Likewise. + * contrib/rebuild-gcj-db.in: Likewise. + * configure: Regenerate. + * Makefile.in: Regenerate. + 2008-06-28 Matthias Klose Import GNU Classpath (classpath-0_97_2-release). diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 559f73ab0d9..c074f5752a0 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -74,7 +74,8 @@ endif ## Name of the default .db. db_name = classmap.db ## Compiler specific component of the .db file -db_pathtail = gcj-$(gcc_version)/$(db_name) +gcjsubdir = @gcjsubdir@ +db_pathtail = $(gcjsubdir)/$(db_name) ## For now, only on native systems. FIXME. if NATIVE @@ -85,9 +86,13 @@ bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool \ ## It is convenient to actually build and install the default database ## when gcj-dbtool is available. dbexec_DATA = $(db_name) -endif +endif -bin_SCRIPTS = addr2name.awk +bin_SCRIPTS = addr2name.awk contrib/rebuild-gcj-db contrib/aot-compile + +if INSTALL_AOT_RPM +bin_SCRIPTS += contrib/aot-compile-rpm +endif if BUILD_ECJ1 ## We build ecjx and not ecj1 because in one mode, ecjx will not work @@ -528,7 +533,140 @@ install-data-local: $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ ## Don't install java/nio/DirectByteBufferImpl$$ReadWrite.h here. It's for internal use only. - +## Install Python modules for aot-compile. + $(mkinstalldirs) $(DESTDIR)$(python_mod_dir); \ + $(INSTALL_DATA) $(srcdir)/contrib/classfile.py \ + $(DESTDIR)$(python_mod_dir)/classfile.py; \ + $(INSTALL_DATA) contrib/aotcompile.py \ + $(DESTDIR)$(python_mod_dir)/aotcompile.py; +if CREATE_JAVA_HOME +## Create sdk style directories + $(mkinstalldirs) $(DESTDIR)$(JRE_BIN_DIR) + $(mkinstalldirs) $(DESTDIR)$(SDK_BIN_DIR) + $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR) + $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU) + $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR) + $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/$(OS) + relative() { \ + $(PERL) -e 'use File::Spec; \ + print File::Spec->abs2rel($$ARGV[0], $$ARGV[1])' $$1 $$2; \ + }; \ + RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(SDK_BIN_DIR)); \ + ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/java; \ + ln -sf $$RELATIVE/`echo gjar | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/jar; \ + ln -sf $$RELATIVE/`echo gjdoc | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/javadoc; \ + ln -sf $$RELATIVE/`echo grmic | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/rmic; \ + ln -sf $$RELATIVE/`echo gjavah | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/javah; \ + ln -sf $$RELATIVE/ecj $(DESTDIR)$(SDK_BIN_DIR)/javac; \ + ln -sf $$RELATIVE/`echo gappletviewer | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/appletviewer; \ + ln -sf $$RELATIVE/`echo gjarsigner | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/jarsigner; \ + ln -sf $$RELATIVE/`echo grmiregistry | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/rmiregistry; \ + ln -sf $$RELATIVE/`echo gkeytool | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/keytool; \ + ln -sf $$RELATIVE/`echo gorbd | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/orbd; \ + ln -sf $$RELATIVE/`echo gnative2ascii | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/native2ascii; \ + ln -sf $$RELATIVE/`echo grmid | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/rmid; \ + ln -sf $$RELATIVE/`echo gtnameserv | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/tnameserv; \ + ln -sf $$RELATIVE/`echo gserialver | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(SDK_BIN_DIR)/serialver; \ + RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(JRE_BIN_DIR)); \ + ln -sf $$RELATIVE/`echo grmiregistry | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(JRE_BIN_DIR)/rmiregistry; \ + ln -sf $$RELATIVE/`echo gkeytool | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(JRE_BIN_DIR)/keytool; \ + ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(JRE_BIN_DIR)/java; \ + ln -sf $$RELATIVE/`echo gorbd | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(JRE_BIN_DIR)/orbd; \ + ln -sf $$RELATIVE/`echo grmid | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(JRE_BIN_DIR)/rmid; \ + ln -sf $$RELATIVE/`echo gtnameserv | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ + $(DESTDIR)$(JRE_BIN_DIR)/tnameserv; \ + $(mkinstalldirs) $(DESTDIR)$(JVM_JAR_DIR); \ + version=$(JAVA_VERSION).$(BUILD_VERSION); \ + working_dir=`pwd`; \ + cd $(DESTDIR)$(JVM_JAR_DIR); \ + for jarname in jaas jce jdbc-stdext jndi jndi-cos jndi-dns \ + jndi-ldap jndi-rmi jsse sasl; \ + do \ + ln -s $$RELATIVE/$$jarname.jar $$jarname-$$version.jar; \ + done; \ + for jar in *-$$version.jar; \ + do \ + ln -sf $$jar $$(echo $$jar | sed "s|-$$version.jar|-$(JAVA_VERSION).jar|g"); \ + ln -sf $$jar $$(echo $$jar | sed "s|-$$version.jar|.jar|g"); \ + done; \ + cd $$working_dir; \ + $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/security; \ + RELATIVE=$$(relative $(DESTDIR)$(libdir)/security \ + $(DESTDIR)$(JRE_LIB_DIR)/security); \ + cd $(DESTDIR)$(JRE_LIB_DIR)/security; \ + ln -sf $$RELATIVE/classpath.security java.security; \ + cd $$working_dir; \ + $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/linux; \ + $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client; \ + $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server; \ + $(mkinstalldirs) $(DESTDIR)$(SDK_LIB_DIR); \ + cd $(DESTDIR)$(JRE_LIB_DIR); \ + for jarname in jaas jce jdbc-stdext jndi jndi-cos jndi-dns \ + jndi-ldap jndi-rmi jsse sasl; \ + do \ + ln -s rt.jar $$jarname.jar; \ + done; \ + cd $$working_dir; \ + RELATIVE=$$(relative $(DESTDIR)$(datarootdir)/java \ + $(DESTDIR)$(JRE_LIB_DIR)); \ + ln -sf $$RELATIVE/libgcj-$(gcc_version).jar \ + $(DESTDIR)$(JRE_LIB_DIR)/rt.jar; \ + RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ + $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)); \ + ln -sf $$RELATIVE/libjawt.so \ + $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/libjawt.so; \ + RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ + $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client); \ + ln -sf $$RELATIVE/libjvm.so \ + $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client/libjvm.so; \ + RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ + $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server); \ + ln -sf $$RELATIVE/libjvm.so \ + $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server/libjvm.so; \ + RELATIVE=$$(relative $(DESTDIR)$(datarootdir)/java \ + $(DESTDIR)$(SDK_LIB_DIR)); \ + ln -sf $$RELATIVE/libgcj-tools-$(gcc_version).jar \ + $(DESTDIR)$(SDK_LIB_DIR)/tools.jar; \ + for headername in jawt jni; do \ + DIRECTORY=$$(dirname $$($(DESTDIR)$(bindir)/gcj \ + -print-file-name=include/$$headername.h)); \ + RELATIVE=$$(relative $(DESTDIR)$$DIRECTORY \ + $(DESTDIR)$(SDK_INCLUDE_DIR)); \ + ln -sf $$RELATIVE/$$headername.h \ + $(DESTDIR)$(SDK_INCLUDE_DIR)/$$headername.h; \ + done; \ + for headername in jawt_md jni_md; do \ + DIRECTORY=$$(dirname $$($(DESTDIR)$(bindir)/gcj \ + -print-file-name=include/$$headername.h)); \ + RELATIVE=$$(relative $(DESTDIR)$$DIRECTORY \ + $(DESTDIR)$(SDK_INCLUDE_DIR)/linux); \ + ln -sf $$RELATIVE/$$headername.h \ + $(DESTDIR)$(SDK_INCLUDE_DIR)/linux/$$headername.h; \ + done; \ + RELATIVE=$$(relative $(DESTDIR)$(datarootdir)/java \ + $(DESTDIR)$(JVM_ROOT_DIR)/$(SDK_DIR)); \ + ln -sf $$RELATIVE/src-$(gcc_version).zip \ + $(DESTDIR)$(JVM_ROOT_DIR)/$(SDK_DIR)/src.zip; +endif ## ################################################################ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index c42c692cef7..ba487885efc 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -52,18 +52,19 @@ target_triplet = @target@ @NATIVE_TRUE@ gnative2ascii$(EXEEXT) gorbd$(EXEEXT) \ @NATIVE_TRUE@ grmid$(EXEEXT) gserialver$(EXEEXT) \ @NATIVE_TRUE@ gtnameserv$(EXEEXT) gc-analyze$(EXEEXT) +@INSTALL_AOT_RPM_TRUE@am__append_5 = contrib/aot-compile-rpm @BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT) -@ANONVERSCRIPT_TRUE@am__append_5 = -Wl,--version-script=$(srcdir)/libgcj.ver -@USING_GCC_TRUE@am__append_6 = $(WARNINGS) -@USING_BOEHMGC_TRUE@am__append_7 = boehm.cc -@USING_NOGC_TRUE@am__append_8 = nogc.cc -@USING_POSIX_PLATFORM_TRUE@am__append_9 = posix.cc -@USING_WIN32_PLATFORM_TRUE@am__append_10 = win32.cc -@USING_DARWIN_CRT_TRUE@am__append_11 = darwin.cc -@USING_POSIX_THREADS_TRUE@am__append_12 = posix-threads.cc -@USING_WIN32_THREADS_TRUE@am__append_13 = win32-threads.cc -@USING_NO_THREADS_TRUE@am__append_14 = no-threads.cc -@ANONVERSCRIPT_TRUE@am__append_15 = $(srcdir)/libgcj.ver +@ANONVERSCRIPT_TRUE@am__append_6 = -Wl,--version-script=$(srcdir)/libgcj.ver +@USING_GCC_TRUE@am__append_7 = $(WARNINGS) +@USING_BOEHMGC_TRUE@am__append_8 = boehm.cc +@USING_NOGC_TRUE@am__append_9 = nogc.cc +@USING_POSIX_PLATFORM_TRUE@am__append_10 = posix.cc +@USING_WIN32_PLATFORM_TRUE@am__append_11 = win32.cc +@USING_DARWIN_CRT_TRUE@am__append_12 = darwin.cc +@USING_POSIX_THREADS_TRUE@am__append_13 = posix-threads.cc +@USING_WIN32_THREADS_TRUE@am__append_14 = win32-threads.cc +@USING_NO_THREADS_TRUE@am__append_15 = no-threads.cc +@ANONVERSCRIPT_TRUE@am__append_16 = $(srcdir)/libgcj.ver DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ $(srcdir)/../config.guess $(srcdir)/../config.sub \ $(srcdir)/../depcomp $(srcdir)/../install-sh \ @@ -72,11 +73,15 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ $(srcdir)/Makefile.in $(srcdir)/libgcj-test.spec.in \ $(srcdir)/libgcj.pc.in $(srcdir)/libgcj.spec.in \ $(srcdir)/sources.am $(top_srcdir)/configure \ + $(top_srcdir)/contrib/aot-compile-rpm.in \ + $(top_srcdir)/contrib/aot-compile.in \ + $(top_srcdir)/contrib/aotcompile.py.in \ + $(top_srcdir)/contrib/rebuild-gcj-db.in \ $(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS = \ @MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT) -@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_16 = libgcj_bc.la -@XLIB_AWT_TRUE@am__append_17 = $(xlib_nat_headers) +@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_17 = libgcj_bc.la +@XLIB_AWT_TRUE@am__append_18 = $(xlib_nat_headers) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \ @@ -109,7 +114,9 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ CONFIG_HEADER = $(top_builddir)/include/config.h \ $(top_builddir)/gcj/libgcj-config.h CONFIG_CLEAN_FILES = libgcj.pc libgcj.spec libgcj-test.spec \ - scripts/jar java/io/natFile.cc java/lang/natConcreteProcess.cc \ + contrib/aotcompile.py contrib/aot-compile \ + contrib/aot-compile-rpm contrib/rebuild-gcj-db scripts/jar \ + java/io/natFile.cc java/lang/natConcreteProcess.cc \ java/net/natVMInetAddress.cc java/net/natVMNetworkInterface.cc \ gnu/java/net/natPlainSocketImpl.cc \ gnu/java/net/natPlainDatagramSocketImpl.cc \ @@ -581,6 +588,7 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ +BUILD_VERSION = @BUILD_VERSION@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -588,6 +596,9 @@ CHECKREFSPEC = @CHECKREFSPEC@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPU = @CPU@ +CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@ +CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -617,6 +628,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_BIN_DIR = @GCJ_BIN_DIR@ GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ @@ -629,6 +641,8 @@ GTK_LIBS = @GTK_LIBS@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ +INSTALL_AOT_RPM_FALSE = @INSTALL_AOT_RPM_FALSE@ +INSTALL_AOT_RPM_TRUE = @INSTALL_AOT_RPM_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ @@ -644,13 +658,22 @@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ +JAVA_VERSION = @JAVA_VERSION@ JC1GCSPEC = @JC1GCSPEC@ +JRE_BIN_DIR = @JRE_BIN_DIR@ +JRE_DIR = @JRE_DIR@ +JRE_LIB_DIR = @JRE_LIB_DIR@ +JRE_LNK = @JRE_LNK@ +JVM_JAR_DIR = @JVM_JAR_DIR@ +JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ +JVM_ROOT_DIR = @JVM_ROOT_DIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ LIBART_CFLAGS = @LIBART_CFLAGS@ LIBART_LIBS = @LIBART_LIBS@ +LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ LIBGCJDEBUG = @LIBGCJDEBUG@ @@ -673,6 +696,7 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKE = @MAKE@ MAKEINFO = @MAKEINFO@ NATIVE_FALSE = @NATIVE_FALSE@ NATIVE_TRUE = @NATIVE_TRUE@ @@ -680,6 +704,7 @@ NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@ NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@ NM = nm OBJEXT = @OBJEXT@ +OS = @OS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ @@ -691,6 +716,11 @@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ +SDK_BIN_DIR = @SDK_BIN_DIR@ +SDK_DIR = @SDK_DIR@ +SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@ +SDK_LIB_DIR = @SDK_LIB_DIR@ +SDK_LNK = @SDK_LNK@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -777,7 +807,9 @@ dbexecdir = @dbexecdir@ exec_prefix = @exec_prefix@ extra_gij_ldflags = @extra_gij_ldflags@ extra_ldflags = @extra_ldflags@ -extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_5) +extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_6) +gcc_suffix = @gcc_suffix@ +gcjsubdir = @gcjsubdir@ gxx_include_dir = @gxx_include_dir@ here = @here@ host = @host@ @@ -802,6 +834,8 @@ multi_basedir = @multi_basedir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +python_mod_dir = @python_mod_dir@ +python_mod_dir_expanded = @python_mod_dir_expanded@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ @@ -858,9 +892,10 @@ jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar \ @JAVA_HOME_SET_FALSE@BOOT_CLASS_PATH_DIR = $(jardir)/libgcj-$(gcc_version).jar @JAVA_HOME_SET_TRUE@BOOT_CLASS_PATH_DIR = $(JAVA_HOME)/lib/rt.jar db_name = classmap.db -db_pathtail = gcj-$(gcc_version)/$(db_name) +db_pathtail = $(gcjsubdir)/$(db_name) @NATIVE_TRUE@dbexec_DATA = $(db_name) -bin_SCRIPTS = addr2name.awk +bin_SCRIPTS = addr2name.awk contrib/rebuild-gcj-db contrib/aot-compile \ + $(am__append_5) GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \ $(LDFLAGS) -o $@ @@ -898,7 +933,7 @@ AM_GCJFLAGS = \ --encoding=UTF-8 \ -Wno-deprecated -fbootstrap-classes -AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_6) +AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_7) @SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes @SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS = PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long @@ -923,9 +958,9 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \ @INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \ defineclass.cc verify.cc $(libgcj_interpret_source_files) \ - $(nat_source_files) $(am__append_7) $(am__append_8) \ - $(am__append_9) $(am__append_10) $(am__append_11) \ - $(am__append_12) $(am__append_13) $(am__append_14) + $(nat_source_files) $(am__append_8) $(am__append_9) \ + $(am__append_10) $(am__append_11) $(am__append_12) \ + $(am__append_13) $(am__append_14) $(am__append_15) nat_files = $(nat_source_files:.cc=.lo) xlib_nat_files = $(xlib_nat_source_files:.cc=.lo) @@ -949,7 +984,7 @@ libgcj_la_LIBADD = \ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \ java/lang/Class.lo java/process-$(PLATFORM).lo \ $(all_packages_source_files:.list=.lo) $(LIBLTDL) \ - $(libgcj_la_LIBADD) $(am__append_15) + $(libgcj_la_LIBADD) $(am__append_16) libgcj_la_LINK = $(LIBLINK) EXTRA_libgcj_la_SOURCES = java/lang/Object.java libgcj_tools_la_SOURCES = classpath/tools/tools.zip @@ -8192,7 +8227,7 @@ ECJX_BASE_FLAGS = -findirect-dispatch \ @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs libgcj.la @NATIVE_FALSE@ecjx_DEPENDENCIES = @NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \ -@NATIVE_TRUE@ $(am__append_16) +@NATIVE_TRUE@ $(am__append_17) gappletviewer_SOURCES = gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) @@ -8401,7 +8436,7 @@ gnu/gcj/xlib/natXImage.cc \ gnu/gcj/xlib/natXUnmapEvent.cc sourcesdir = $(jardir) -headers_to_make = $(nat_headers) $(am__append_17) +headers_to_make = $(nat_headers) $(am__append_18) # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and @@ -8500,6 +8535,14 @@ libgcj.spec: $(top_builddir)/config.status $(srcdir)/libgcj.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ libgcj-test.spec: $(top_builddir)/config.status $(srcdir)/libgcj-test.spec.in cd $(top_builddir) && $(SHELL) ./config.status $@ +contrib/aotcompile.py: $(top_builddir)/config.status $(top_srcdir)/contrib/aotcompile.py.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +contrib/aot-compile: $(top_builddir)/config.status $(top_srcdir)/contrib/aot-compile.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +contrib/aot-compile-rpm: $(top_builddir)/config.status $(top_srcdir)/contrib/aot-compile-rpm.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +contrib/rebuild-gcj-db: $(top_builddir)/config.status $(top_srcdir)/contrib/rebuild-gcj-db.in + cd $(top_builddir) && $(SHELL) ./config.status $@ scripts/jar: $(top_builddir)/config.status $(top_srcdir)/scripts/jar.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-dbexecLTLIBRARIES: $(dbexec_LTLIBRARIES) @@ -9972,7 +10015,7 @@ distclean-tags: distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/../config $(distdir)/libltdl $(distdir)/scripts + $(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/../config $(distdir)/contrib $(distdir)/libltdl $(distdir)/scripts @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ @@ -12189,6 +12232,136 @@ install-data-local: $(INSTALL_DATA) $(srcdir)/'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/net/ $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ $(INSTALL_DATA) $(srcdir)/'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(gxx_include_dir)/gnu/java/nio/ + $(mkinstalldirs) $(DESTDIR)$(python_mod_dir); \ + $(INSTALL_DATA) $(srcdir)/contrib/classfile.py \ + $(DESTDIR)$(python_mod_dir)/classfile.py; \ + $(INSTALL_DATA) contrib/aotcompile.py \ + $(DESTDIR)$(python_mod_dir)/aotcompile.py; +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JRE_BIN_DIR) +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(SDK_BIN_DIR) +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR) +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU) +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR) +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/$(OS) +@CREATE_JAVA_HOME_TRUE@ relative() { \ +@CREATE_JAVA_HOME_TRUE@ $(PERL) -e 'use File::Spec; \ +@CREATE_JAVA_HOME_TRUE@ print File::Spec->abs2rel($$ARGV[0], $$ARGV[1])' $$1 $$2; \ +@CREATE_JAVA_HOME_TRUE@ }; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(SDK_BIN_DIR)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/java; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gjar | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/jar; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gjdoc | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/javadoc; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo grmic | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/rmic; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gjavah | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/javah; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/ecj $(DESTDIR)$(SDK_BIN_DIR)/javac; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gappletviewer | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/appletviewer; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gjarsigner | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/jarsigner; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo grmiregistry | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/rmiregistry; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gkeytool | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/keytool; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gorbd | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/orbd; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gnative2ascii | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/native2ascii; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo grmid | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/rmid; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gtnameserv | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/tnameserv; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gserialver | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_BIN_DIR)/serialver; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(bindir) $(DESTDIR)$(JRE_BIN_DIR)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo grmiregistry | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_BIN_DIR)/rmiregistry; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gkeytool | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_BIN_DIR)/keytool; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gij | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_BIN_DIR)/java; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gorbd | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_BIN_DIR)/orbd; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo grmid | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_BIN_DIR)/rmid; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/`echo gtnameserv | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'` \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_BIN_DIR)/tnameserv; \ +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JVM_JAR_DIR); \ +@CREATE_JAVA_HOME_TRUE@ version=$(JAVA_VERSION).$(BUILD_VERSION); \ +@CREATE_JAVA_HOME_TRUE@ working_dir=`pwd`; \ +@CREATE_JAVA_HOME_TRUE@ cd $(DESTDIR)$(JVM_JAR_DIR); \ +@CREATE_JAVA_HOME_TRUE@ for jarname in jaas jce jdbc-stdext jndi jndi-cos jndi-dns \ +@CREATE_JAVA_HOME_TRUE@ jndi-ldap jndi-rmi jsse sasl; \ +@CREATE_JAVA_HOME_TRUE@ do \ +@CREATE_JAVA_HOME_TRUE@ ln -s $$RELATIVE/$$jarname.jar $$jarname-$$version.jar; \ +@CREATE_JAVA_HOME_TRUE@ done; \ +@CREATE_JAVA_HOME_TRUE@ for jar in *-$$version.jar; \ +@CREATE_JAVA_HOME_TRUE@ do \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$jar $$(echo $$jar | sed "s|-$$version.jar|-$(JAVA_VERSION).jar|g"); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$jar $$(echo $$jar | sed "s|-$$version.jar|.jar|g"); \ +@CREATE_JAVA_HOME_TRUE@ done; \ +@CREATE_JAVA_HOME_TRUE@ cd $$working_dir; \ +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/security; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(libdir)/security \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/security); \ +@CREATE_JAVA_HOME_TRUE@ cd $(DESTDIR)$(JRE_LIB_DIR)/security; \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/classpath.security java.security; \ +@CREATE_JAVA_HOME_TRUE@ cd $$working_dir; \ +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(SDK_INCLUDE_DIR)/linux; \ +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client; \ +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server; \ +@CREATE_JAVA_HOME_TRUE@ $(mkinstalldirs) $(DESTDIR)$(SDK_LIB_DIR); \ +@CREATE_JAVA_HOME_TRUE@ cd $(DESTDIR)$(JRE_LIB_DIR); \ +@CREATE_JAVA_HOME_TRUE@ for jarname in jaas jce jdbc-stdext jndi jndi-cos jndi-dns \ +@CREATE_JAVA_HOME_TRUE@ jndi-ldap jndi-rmi jsse sasl; \ +@CREATE_JAVA_HOME_TRUE@ do \ +@CREATE_JAVA_HOME_TRUE@ ln -s rt.jar $$jarname.jar; \ +@CREATE_JAVA_HOME_TRUE@ done; \ +@CREATE_JAVA_HOME_TRUE@ cd $$working_dir; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(datarootdir)/java \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/libgcj-$(gcc_version).jar \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/rt.jar; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/libjawt.so \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/libjawt.so; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/libjvm.so \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/client/libjvm.so; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(dbexecdir) \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/libjvm.so \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JRE_LIB_DIR)/$(CPU)/server/libjvm.so; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(datarootdir)/java \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_LIB_DIR)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/libgcj-tools-$(gcc_version).jar \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_LIB_DIR)/tools.jar; \ +@CREATE_JAVA_HOME_TRUE@ for headername in jawt jni; do \ +@CREATE_JAVA_HOME_TRUE@ DIRECTORY=$$(dirname $$($(DESTDIR)$(bindir)/gcj \ +@CREATE_JAVA_HOME_TRUE@ -print-file-name=include/$$headername.h)); \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$$DIRECTORY \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_INCLUDE_DIR)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/$$headername.h \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_INCLUDE_DIR)/$$headername.h; \ +@CREATE_JAVA_HOME_TRUE@ done; \ +@CREATE_JAVA_HOME_TRUE@ for headername in jawt_md jni_md; do \ +@CREATE_JAVA_HOME_TRUE@ DIRECTORY=$$(dirname $$($(DESTDIR)$(bindir)/gcj \ +@CREATE_JAVA_HOME_TRUE@ -print-file-name=include/$$headername.h)); \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$$DIRECTORY \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_INCLUDE_DIR)/linux); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/$$headername.h \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(SDK_INCLUDE_DIR)/linux/$$headername.h; \ +@CREATE_JAVA_HOME_TRUE@ done; \ +@CREATE_JAVA_HOME_TRUE@ RELATIVE=$$(relative $(DESTDIR)$(datarootdir)/java \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JVM_ROOT_DIR)/$(SDK_DIR)); \ +@CREATE_JAVA_HOME_TRUE@ ln -sf $$RELATIVE/src-$(gcc_version).zip \ +@CREATE_JAVA_HOME_TRUE@ $(DESTDIR)$(JVM_ROOT_DIR)/$(SDK_DIR)/src.zip; maintainer-check: libgcj.la $(NM) .libs/libgcj.a | grep ' T ' \ diff --git a/libjava/configure b/libjava/configure index 03a48114eb3..3547e9d1601 100755 --- a/libjava/configure +++ b/libjava/configure @@ -459,7 +459,7 @@ ac_includes_default="\ #endif" ac_subdirs_all="$ac_subdirs_all classpath libltdl" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM lt_ECHO CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM lt_ECHO CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR SDK_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR LIBOBJS LTLIBOBJS' ac_subst_files='' ac_pwd=`pwd` @@ -1047,6 +1047,10 @@ Optional Features: --enable-java-gc=TYPE choose garbage collector (default is boehm) --disable-rpath do not hardcode runtime library paths --enable-tls Use thread-local storage [default=yes] + --enable-aot-compile-rpm + enable installation of aot-compile-rpm [default=no] + --enable-java-home create a standard JDK-style directory layout in the + install tree [default=no] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1072,6 +1076,20 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-python-dir the location to install Python modules. This path + should NOT include the prefix. + --with-gcc-suffix the GCC tool suffix (defaults to empty string) + --with-arch-directory the arch directory under jre/lib (defaults to + auto-detect) + --with-os-directory the os directory under include (defaults to + auto-detect) + --with-origin-name the JPackage origin name of this package (default is + gcj${gcc_suffix} + --with-arch-suffix the arch directory suffix (default is the empty + string + --with-jvm-root-dir where to install SDK (default is ${prefix}/lib/jvm) + --with-jvm-jar-dir where to install jars (default is + ${prefix}/lib/jvm-exports) Some influential environment variables: CC C compiler command @@ -6003,13 +6021,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:6006: $ac_compile\"" >&5) + (eval echo "\"\$as_me:6024: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6009: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:6027: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:6012: output\"" >&5) + (eval echo "\"\$as_me:6030: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -7053,7 +7071,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 7056 "configure"' > conftest.$ac_ext + echo '#line 7074 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -8754,11 +8772,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8757: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8775: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8761: \$? = $ac_status" >&5 + echo "$as_me:8779: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9076,11 +9094,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9079: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9097: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9083: \$? = $ac_status" >&5 + echo "$as_me:9101: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9181,11 +9199,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9184: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9202: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9188: \$? = $ac_status" >&5 + echo "$as_me:9206: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -9236,11 +9254,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9239: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9257: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9243: \$? = $ac_status" >&5 + echo "$as_me:9261: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12088,7 +12106,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12091 "configure" +#line 12109 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12188,7 +12206,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12191 "configure" +#line 12209 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14226,11 +14244,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14229: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14247: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14233: \$? = $ac_status" >&5 + echo "$as_me:14251: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14325,11 +14343,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14328: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14346: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14332: \$? = $ac_status" >&5 + echo "$as_me:14350: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14377,11 +14395,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14380: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14398: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14384: \$? = $ac_status" >&5 + echo "$as_me:14402: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15765,11 +15783,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15768: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15786: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:15772: \$? = $ac_status" >&5 + echo "$as_me:15790: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16081,11 +16099,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16084: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16102: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16088: \$? = $ac_status" >&5 + echo "$as_me:16106: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16180,11 +16198,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16183: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16201: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16187: \$? = $ac_status" >&5 + echo "$as_me:16205: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -16232,11 +16250,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16235: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16253: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16239: \$? = $ac_status" >&5 + echo "$as_me:16257: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -18588,7 +18606,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : else cat > conftest.$ac_ext << EOF -#line 18591 "configure" +#line 18609 "configure" struct S { ~S(); }; void bar(); void foo() @@ -26299,6 +26317,7 @@ esac + cat >>confdefs.h <<\_ACEOF #define JV_VERSION "1.5.0" _ACEOF @@ -27872,7 +27891,283 @@ here=`${PWDCMD-pwd}` # We get this from the environment. - ac_config_files="$ac_config_files Makefile libgcj.pc libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile" + +# Check whether --with-python-dir or --without-python-dir was given. +if test "${with_python_dir+set}" = set; then + withval="$with_python_dir" + with_python_dir=$withval +else + with_python_dir="" +fi; + +if test "x${with_python_dir}" = "x" +then + # Needed for installing Python modules during make install. + python_mod_dir="\${prefix}/share/python" + # Needed for substituting into aot-compile* + python_mod_dir_expanded="${prefix}/share/python" +else + python_mod_dir="\${prefix}${with_python_dir}" + python_mod_dir_expanded="${prefix}${with_python_dir}" +fi +echo "$as_me:$LINENO: result: Python modules dir: ${python_mod_dir_expanded}" >&5 +echo "${ECHO_T}Python modules dir: ${python_mod_dir_expanded}" >&6; + + + +# needed for aot-compile-rpm +MAKE=`which make` + + +# Check whether --enable-aot-compile-rpm or --disable-aot-compile-rpm was given. +if test "${enable_aot_compile_rpm+set}" = set; then + enableval="$enable_aot_compile_rpm" + case "${enableval}" in + yes) AOT_RPM_ENABLED=yes ;; + no) AOT_RPM_ENABLED=no ;; + *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable aot-compile-rpm" >&5 +echo "$as_me: error: Unknown argument to enable/disable aot-compile-rpm" >&2;} + { (exit 1); exit 1; }; } ;; + esac +else + AOT_RPM_ENABLED=no + +fi; + + +if test "x${AOT_RPM_ENABLED}" == xyes; then + INSTALL_AOT_RPM_TRUE= + INSTALL_AOT_RPM_FALSE='#' +else + INSTALL_AOT_RPM_TRUE='#' + INSTALL_AOT_RPM_FALSE= +fi + + +# Check whether --enable-java-home or --disable-java-home was given. +if test "${enable_java_home+set}" = set; then + enableval="$enable_java_home" + case "${enableval}" in + yes) JAVA_HOME_ENABLED=yes ;; + no) JAVA_HOME_ENABLED=no ;; + *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable java-home" >&5 +echo "$as_me: error: Unknown argument to enable/disable java-home" >&2;} + { (exit 1); exit 1; }; } ;; + esac +else + JAVA_HOME_ENABLED=no + +fi; + + +if test "x${JAVA_HOME_ENABLED}" == xyes; then + CREATE_JAVA_HOME_TRUE= + CREATE_JAVA_HOME_FALSE='#' +else + CREATE_JAVA_HOME_TRUE='#' + CREATE_JAVA_HOME_FALSE= +fi + + +# Only do these checks if java-home above is enabled. +if test "x${JAVA_HOME_ENABLED}" == xyes +then + + +# Check whether --with-gcc-suffix or --without-gcc-suffix was given. +if test "${with_gcc_suffix+set}" = set; then + withval="$with_gcc_suffix" + gcc_suffix=$withval +else + gcc_suffix="" +fi; + echo "$as_me:$LINENO: result: GCC suffix: ${gcc_suffix}" >&5 +echo "${ECHO_T}GCC suffix: ${gcc_suffix}" >&6 + + + +# Check whether --with-arch-directory or --without-arch-directory was given. +if test "${with_arch_directory+set}" = set; then + withval="$with_arch_directory" + host_cpu=$withval +else + host_cpu="" +fi; + + +# Check whether --with-os-directory or --without-os-directory was given. +if test "${with_os_directory+set}" = set; then + withval="$with_os_directory" + host_os=$withval +else + host_os="" +fi; + + +# Check whether --with-origin-name or --without-origin-name was given. +if test "${with_origin_name+set}" = set; then + withval="$with_origin_name" + origin_name=$withval +else + origin_name=gcj${gcc_suffix} +fi; + echo "$as_me:$LINENO: result: JPackage origin name: ${origin_name}" >&5 +echo "${ECHO_T}JPackage origin name: ${origin_name}" >&6 + + +# Check whether --with-arch-suffix or --without-arch-suffix was given. +if test "${with_arch_suffix+set}" = set; then + withval="$with_arch_suffix" + arch_suffix=$withval +else + arch_suffix="" +fi; + echo "$as_me:$LINENO: result: arch suffix: ${arch_suffix}" >&5 +echo "${ECHO_T}arch suffix: ${arch_suffix}" >&6 + + +# Check whether --with-jvm-root-dir or --without-jvm-root-dir was given. +if test "${with_jvm_root_dir+set}" = set; then + withval="$with_jvm_root_dir" + jvm_root_dir=$withval +else + jvm_root_dir="\${prefix}/lib/jvm" +fi; + echo "$as_me:$LINENO: result: JVM root installation directory: ${jvm_root_dir}" >&5 +echo "${ECHO_T}JVM root installation directory: ${jvm_root_dir}" >&6 + + +# Check whether --with-jvm-jar-dir or --without-jvm-jar-dir was given. +if test "${with_jvm_jar_dir+set}" = set; then + withval="$with_jvm_jar_dir" + jvm_jar_dir=$withval +else + jvm_jar_dir=\${prefix}/lib/jvm-exports +fi; + echo "$as_me:$LINENO: result: JAR root installation directory: ${jvm_jar_dir}" >&5 +echo "${ECHO_T}JAR root installation directory: ${jvm_jar_dir}" >&6 + + JAVA_VERSION=1.5.0 + BUILD_VERSION=0 + + + echo "$as_me:$LINENO: result: Java version: ${JAVA_VERSION}" >&5 +echo "${ECHO_T}Java version: ${JAVA_VERSION}" >&6 + + jre_dir=java-${JAVA_VERSION}-${origin_name}-${JAVA_VERSION}.${BUILD_VERSION}${arch_suffix}/jre + sdk_dir=java-${JAVA_VERSION}-${origin_name}-${JAVA_VERSION}.${BUILD_VERSION}${arch_suffix} + jre_lnk=jre-${JAVA_VERSION}-${origin_name} + sdk_lnk=java-${JAVA_VERSION}-${origin_name} + + JVM_ROOT_DIR=${jvm_root_dir} + + echo "$as_me:$LINENO: result: JVM ROOT directory: ${JVM_ROOT_DIR}" >&5 +echo "${ECHO_T}JVM ROOT directory: ${JVM_ROOT_DIR}" >&6 + + JVM_JAR_ROOT_DIR=${jvm_jar_dir} + + echo "$as_me:$LINENO: result: JVM JAR ROOT directory: ${JVM_JAR_ROOT_DIR}" >&5 +echo "${ECHO_T}JVM JAR ROOT directory: ${JVM_JAR_ROOT_DIR}" >&6 + + JVM_JAR_DIR=${jvm_jar_dir}/${sdk_dir} + + echo "$as_me:$LINENO: result: JVM JAR directory: ${JVM_JAR_DIR}" >&5 +echo "${ECHO_T}JVM JAR directory: ${JVM_JAR_DIR}" >&6 + + JRE_DIR=${jre_dir} + + + SDK_DIR=${sdk_dir} + + + JRE_LNK=${jre_lnk} + + + SDK_LNK=${sdk_lnk} + + + SDK_BIN_DIR=${jvm_root_dir}/${sdk_dir}/bin + + echo "$as_me:$LINENO: result: SDK tools directory: ${SDK_BIN_DIR}" >&5 +echo "${ECHO_T}SDK tools directory: ${SDK_BIN_DIR}" >&6 + + SDK_LIB_DIR=${jvm_root_dir}/${sdk_dir}/lib + + echo "$as_me:$LINENO: result: SDK jar directory: ${SDK_LIB_DIR}" >&5 +echo "${ECHO_T}SDK jar directory: ${SDK_LIB_DIR}" >&6 + + SDK_INCLUDE_DIR=${jvm_root_dir}/${sdk_dir}/include + + echo "$as_me:$LINENO: result: SDK include directory: ${SDK_INCLUDE_DIR}" >&5 +echo "${ECHO_T}SDK include directory: ${SDK_INCLUDE_DIR}" >&6 + + JRE_BIN_DIR=${jvm_root_dir}/${jre_dir}/bin + + echo "$as_me:$LINENO: result: JRE tools directory: ${JRE_BIN_DIR}" >&5 +echo "${ECHO_T}JRE tools directory: ${JRE_BIN_DIR}" >&6 + + JRE_LIB_DIR=${jvm_root_dir}/${jre_dir}/lib + + echo "$as_me:$LINENO: result: JRE lib directory: ${JRE_LIB_DIR}" >&5 +echo "${ECHO_T}JRE lib directory: ${JRE_LIB_DIR}" >&6 + + # Find gcj prefix using gcj found in PATH. + gcj_prefix=`which gcj${gcc_suffix} | sed "s%/bin/gcj${gcc_suffix}%%"` + + # Where do the gcj binaries live? + # For jhbuild based builds, they all live in a sibling of bin called + # gcj-bin. Check for gcj-bin first, and use bin otherwise. + GCJ_BIN_DIR=`if test -d ${gcj_prefix}/gcj-bin; then echo ${gcj_prefix}/gcj-bin; else echo ${gcj_prefix}/bin; fi` + + echo "$as_me:$LINENO: result: GCJ tools directory: ${GCJ_BIN_DIR}" >&5 +echo "${ECHO_T}GCJ tools directory: ${GCJ_BIN_DIR}" >&6 + + echo host is ${host} + if test "x${host_cpu}" = "x" + then + case ${host} in + *-mingw* | *-cygwin*) + host_cpu=x86;; + i486-* | i586-* | i686-*) + host_cpu=i386;; + *) + host_cpu=${host_cpu};; + esac + fi + echo "$as_me:$LINENO: result: arch directory: ${host_cpu}" >&5 +echo "${ECHO_T}arch directory: ${host_cpu}" >&6 + CPU=${host_cpu} + + + if test "x${host_os}" = "x" + then + case ${host} in + *-mingw* | *-cygwin*) + host_os=win32;; + *-linux*) + host_os=linux;; + *) + host_os=${host_os};; + esac + fi + echo os directory: ${host_os} + OS=${host_os} + + + # make an expanded $libdir, for substituting into + # scripts (and other non-Makefile things). + LIBDIR=$libdir + if test "x${exec_prefix}" = "xNONE" + then + lib_exec_prefix=$prefix + else + lib_exec_prefix=$exec_prefix + fi + LIBDIR=`echo $libdir | sed "s:\\\${exec_prefix}:$lib_exec_prefix:g"` + +fi + + ac_config_files="$ac_config_files Makefile libgcj.pc libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile contrib/aotcompile.py contrib/aot-compile contrib/aot-compile-rpm contrib/rebuild-gcj-db" if test ${multilib} = yes; then @@ -28184,6 +28479,20 @@ echo "$as_me: error: conditional \"ANONVERSCRIPT\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${INSTALL_AOT_RPM_TRUE}" && test -z "${INSTALL_AOT_RPM_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"INSTALL_AOT_RPM\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"INSTALL_AOT_RPM\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${CREATE_JAVA_HOME_TRUE}" && test -z "${CREATE_JAVA_HOME_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"CREATE_JAVA_HOME\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"CREATE_JAVA_HOME\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files @@ -29064,6 +29373,10 @@ do "gcj/Makefile" ) CONFIG_FILES="$CONFIG_FILES gcj/Makefile" ;; "include/Makefile" ) CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "testsuite/Makefile" ) CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;; + "contrib/aotcompile.py" ) CONFIG_FILES="$CONFIG_FILES contrib/aotcompile.py" ;; + "contrib/aot-compile" ) CONFIG_FILES="$CONFIG_FILES contrib/aot-compile" ;; + "contrib/aot-compile-rpm" ) CONFIG_FILES="$CONFIG_FILES contrib/aot-compile-rpm" ;; + "contrib/rebuild-gcj-db" ) CONFIG_FILES="$CONFIG_FILES contrib/rebuild-gcj-db" ;; "scripts/jar" ) CONFIG_FILES="$CONFIG_FILES scripts/jar" ;; "include/platform.h" ) CONFIG_LINKS="$CONFIG_LINKS include/platform.h:include/$PLATFORMH" ;; "java/io/natFile.cc" ) CONFIG_LINKS="$CONFIG_LINKS java/io/natFile.cc:java/io/natFile${FILE-${PLATFORM}}.cc" ;; @@ -29383,6 +29696,7 @@ s,@toolexecmainlibdir@,$toolexecmainlibdir,;t t s,@toolexeclibdir@,$toolexeclibdir,;t t s,@GCJVERSION@,$GCJVERSION,;t t s,@dbexecdir@,$dbexecdir,;t t +s,@gcjsubdir@,$gcjsubdir,;t t s,@gxx_include_dir@,$gxx_include_dir,;t t s,@libstdcxx_incdir@,$libstdcxx_incdir,;t t s,@PERL@,$PERL,;t t @@ -29392,6 +29706,32 @@ s,@ANONVERSCRIPT_FALSE@,$ANONVERSCRIPT_FALSE,;t t s,@LD_START_STATIC_SPEC@,$LD_START_STATIC_SPEC,;t t s,@LD_FINISH_STATIC_SPEC@,$LD_FINISH_STATIC_SPEC,;t t s,@here@,$here,;t t +s,@python_mod_dir@,$python_mod_dir,;t t +s,@python_mod_dir_expanded@,$python_mod_dir_expanded,;t t +s,@MAKE@,$MAKE,;t t +s,@INSTALL_AOT_RPM_TRUE@,$INSTALL_AOT_RPM_TRUE,;t t +s,@INSTALL_AOT_RPM_FALSE@,$INSTALL_AOT_RPM_FALSE,;t t +s,@CREATE_JAVA_HOME_TRUE@,$CREATE_JAVA_HOME_TRUE,;t t +s,@CREATE_JAVA_HOME_FALSE@,$CREATE_JAVA_HOME_FALSE,;t t +s,@gcc_suffix@,$gcc_suffix,;t t +s,@JAVA_VERSION@,$JAVA_VERSION,;t t +s,@BUILD_VERSION@,$BUILD_VERSION,;t t +s,@JVM_ROOT_DIR@,$JVM_ROOT_DIR,;t t +s,@JVM_JAR_ROOT_DIR@,$JVM_JAR_ROOT_DIR,;t t +s,@JVM_JAR_DIR@,$JVM_JAR_DIR,;t t +s,@JRE_DIR@,$JRE_DIR,;t t +s,@SDK_DIR@,$SDK_DIR,;t t +s,@JRE_LNK@,$JRE_LNK,;t t +s,@SDK_LNK@,$SDK_LNK,;t t +s,@SDK_BIN_DIR@,$SDK_BIN_DIR,;t t +s,@SDK_LIB_DIR@,$SDK_LIB_DIR,;t t +s,@SDK_INCLUDE_DIR@,$SDK_INCLUDE_DIR,;t t +s,@JRE_BIN_DIR@,$JRE_BIN_DIR,;t t +s,@JRE_LIB_DIR@,$JRE_LIB_DIR,;t t +s,@GCJ_BIN_DIR@,$GCJ_BIN_DIR,;t t +s,@CPU@,$CPU,;t t +s,@OS@,$OS,;t t +s,@LIBDIR@,$LIBDIR,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF diff --git a/libjava/configure.ac b/libjava/configure.ac index 9d86cd831fb..6b7949f689f 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -1416,6 +1416,7 @@ case $multi_os_directory in ;; esac AC_SUBST(dbexecdir) +AC_SUBST(gcjsubdir) AC_DEFINE(JV_VERSION, "1.5.0", [Compatibility version string]) AC_DEFINE(JV_API_VERSION, "1.5", [API compatibility version string]) @@ -1628,6 +1629,207 @@ AC_SUBST(here) # We get this from the environment. AC_SUBST(GCJFLAGS) +AC_ARG_WITH([python-dir], + AS_HELP_STRING([--with-python-dir], + [the location to install Python modules. This path should NOT include the prefix.]), + [with_python_dir=$withval], [with_python_dir=""]) + +if test "x${with_python_dir}" = "x" +then + # Needed for installing Python modules during make install. + python_mod_dir="\${prefix}/share/python" + # Needed for substituting into aot-compile* + python_mod_dir_expanded="${prefix}/share/python" +else + python_mod_dir="\${prefix}${with_python_dir}" + python_mod_dir_expanded="${prefix}${with_python_dir}" +fi +AC_MSG_RESULT(Python modules dir: ${python_mod_dir_expanded}); +AC_SUBST(python_mod_dir) +AC_SUBST(python_mod_dir_expanded) + +# needed for aot-compile-rpm +MAKE=`which make` +AC_SUBST(MAKE) + +AC_ARG_ENABLE([aot-compile-rpm], + [AS_HELP_STRING([--enable-aot-compile-rpm], + [enable installation of aot-compile-rpm [default=no]])], + [case "${enableval}" in + yes) AOT_RPM_ENABLED=yes ;; + no) AOT_RPM_ENABLED=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable aot-compile-rpm]) ;; + esac], + [AOT_RPM_ENABLED=no] +) +AM_CONDITIONAL(INSTALL_AOT_RPM, test "x${AOT_RPM_ENABLED}" == xyes) + +AC_ARG_ENABLE([java-home], + [AS_HELP_STRING([--enable-java-home], + [create a standard JDK-style directory layout in the install tree [default=no]])], + [case "${enableval}" in + yes) JAVA_HOME_ENABLED=yes ;; + no) JAVA_HOME_ENABLED=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable java-home]) ;; + esac], + [JAVA_HOME_ENABLED=no] +) +AM_CONDITIONAL(CREATE_JAVA_HOME, test "x${JAVA_HOME_ENABLED}" == xyes) + +# Only do these checks if java-home above is enabled. +if test "x${JAVA_HOME_ENABLED}" == xyes +then + + AC_ARG_WITH([gcc-suffix], + AS_HELP_STRING([--with-gcc-suffix], + [the GCC tool suffix (defaults to empty string)]), + [gcc_suffix=$withval], [gcc_suffix=""]) + AC_MSG_RESULT(GCC suffix: ${gcc_suffix}) + AC_SUBST(gcc_suffix) + + AC_ARG_WITH([arch-directory], + AS_HELP_STRING([--with-arch-directory], + [the arch directory under jre/lib (defaults to auto-detect)]), + [host_cpu=$withval], [host_cpu=""]) + + AC_ARG_WITH([os-directory], + AS_HELP_STRING([--with-os-directory], + [the os directory under include (defaults to auto-detect)]), + [host_os=$withval], [host_os=""]) + + AC_ARG_WITH([origin-name], + AS_HELP_STRING([--with-origin-name], + [the JPackage origin name of this package (default is gcj${gcc_suffix}]), + [origin_name=$withval], [origin_name=gcj${gcc_suffix}]) + AC_MSG_RESULT(JPackage origin name: ${origin_name}) + + AC_ARG_WITH([arch-suffix], + AS_HELP_STRING([--with-arch-suffix], + [the arch directory suffix (default is the empty string]), + [arch_suffix=$withval], [arch_suffix=""]) + AC_MSG_RESULT(arch suffix: ${arch_suffix}) + + AC_ARG_WITH([jvm-root-dir], + AS_HELP_STRING([--with-jvm-root-dir], + [where to install SDK (default is ${prefix}/lib/jvm)]), + [jvm_root_dir=$withval], [jvm_root_dir="\${prefix}/lib/jvm"]) + AC_MSG_RESULT(JVM root installation directory: ${jvm_root_dir}) + + AC_ARG_WITH([jvm-jar-dir], + AS_HELP_STRING([--with-jvm-jar-dir], + [where to install jars (default is ${prefix}/lib/jvm-exports)]), + [jvm_jar_dir=$withval], [jvm_jar_dir=\${prefix}/lib/jvm-exports]) + AC_MSG_RESULT(JAR root installation directory: ${jvm_jar_dir}) + + JAVA_VERSION=1.5.0 + BUILD_VERSION=0 + AC_SUBST(JAVA_VERSION) + AC_SUBST(BUILD_VERSION) + AC_MSG_RESULT(Java version: ${JAVA_VERSION}) + + jre_dir=java-${JAVA_VERSION}-${origin_name}-${JAVA_VERSION}.${BUILD_VERSION}${arch_suffix}/jre + sdk_dir=java-${JAVA_VERSION}-${origin_name}-${JAVA_VERSION}.${BUILD_VERSION}${arch_suffix} + jre_lnk=jre-${JAVA_VERSION}-${origin_name} + sdk_lnk=java-${JAVA_VERSION}-${origin_name} + + JVM_ROOT_DIR=${jvm_root_dir} + AC_SUBST(JVM_ROOT_DIR) + AC_MSG_RESULT(JVM ROOT directory: ${JVM_ROOT_DIR}) + + JVM_JAR_ROOT_DIR=${jvm_jar_dir} + AC_SUBST(JVM_JAR_ROOT_DIR) + AC_MSG_RESULT(JVM JAR ROOT directory: ${JVM_JAR_ROOT_DIR}) + + JVM_JAR_DIR=${jvm_jar_dir}/${sdk_dir} + AC_SUBST(JVM_JAR_DIR) + AC_MSG_RESULT(JVM JAR directory: ${JVM_JAR_DIR}) + + JRE_DIR=${jre_dir} + AC_SUBST(JRE_DIR) + + SDK_DIR=${sdk_dir} + AC_SUBST(SDK_DIR) + + JRE_LNK=${jre_lnk} + AC_SUBST(JRE_LNK) + + SDK_LNK=${sdk_lnk} + AC_SUBST(SDK_LNK) + + SDK_BIN_DIR=${jvm_root_dir}/${sdk_dir}/bin + AC_SUBST(SDK_BIN_DIR) + AC_MSG_RESULT(SDK tools directory: ${SDK_BIN_DIR}) + + SDK_LIB_DIR=${jvm_root_dir}/${sdk_dir}/lib + AC_SUBST(SDK_LIB_DIR) + AC_MSG_RESULT(SDK jar directory: ${SDK_LIB_DIR}) + + SDK_INCLUDE_DIR=${jvm_root_dir}/${sdk_dir}/include + AC_SUBST(SDK_INCLUDE_DIR) + AC_MSG_RESULT(SDK include directory: ${SDK_INCLUDE_DIR}) + + JRE_BIN_DIR=${jvm_root_dir}/${jre_dir}/bin + AC_SUBST(JRE_BIN_DIR) + AC_MSG_RESULT(JRE tools directory: ${JRE_BIN_DIR}) + + JRE_LIB_DIR=${jvm_root_dir}/${jre_dir}/lib + AC_SUBST(JRE_LIB_DIR) + AC_MSG_RESULT(JRE lib directory: ${JRE_LIB_DIR}) + + # Find gcj prefix using gcj found in PATH. + gcj_prefix=`which gcj${gcc_suffix} | sed "s%/bin/gcj${gcc_suffix}%%"` + + # Where do the gcj binaries live? + # For jhbuild based builds, they all live in a sibling of bin called + # gcj-bin. Check for gcj-bin first, and use bin otherwise. + GCJ_BIN_DIR=`if test -d ${gcj_prefix}/gcj-bin; then echo ${gcj_prefix}/gcj-bin; else echo ${gcj_prefix}/bin; fi` + AC_SUBST(GCJ_BIN_DIR) + AC_MSG_RESULT(GCJ tools directory: ${GCJ_BIN_DIR}) + + echo host is ${host} + if test "x${host_cpu}" = "x" + then + case ${host} in + *-mingw* | *-cygwin*) + host_cpu=x86;; + i486-* | i586-* | i686-*) + host_cpu=i386;; + *) + host_cpu=${host_cpu};; + esac + fi + AC_MSG_RESULT(arch directory: ${host_cpu}) + CPU=${host_cpu} + AC_SUBST(CPU) + + if test "x${host_os}" = "x" + then + case ${host} in + *-mingw* | *-cygwin*) + host_os=win32;; + *-linux*) + host_os=linux;; + *) + host_os=${host_os};; + esac + fi + echo os directory: ${host_os} + OS=${host_os} + AC_SUBST(OS) + + # make an expanded $libdir, for substituting into + # scripts (and other non-Makefile things). + LIBDIR=$libdir + if test "x${exec_prefix}" = "xNONE" + then + lib_exec_prefix=$prefix + else + lib_exec_prefix=$exec_prefix + fi + LIBDIR=`echo $libdir | sed "s:\\\${exec_prefix}:$lib_exec_prefix:g"` + AC_SUBST(LIBDIR) +fi + AC_CONFIG_FILES([ Makefile libgcj.pc @@ -1636,6 +1838,10 @@ libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile +contrib/aotcompile.py +contrib/aot-compile +contrib/aot-compile-rpm +contrib/rebuild-gcj-db ]) if test ${multilib} = yes; then diff --git a/libjava/contrib/aot-compile-rpm.in b/libjava/contrib/aot-compile-rpm.in new file mode 100644 index 00000000000..c3bdb165096 --- /dev/null +++ b/libjava/contrib/aot-compile-rpm.in @@ -0,0 +1,97 @@ +#!/usr/bin/env python + +## Copyright (C) 2005, 2006, 2007 Free Software Foundation +## Written by Gary Benson +## +## This program 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. +## +## This program 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. + +import sys +sys.path.append("@python_mod_dir_expanded@") +import aotcompile +import os + +def libdir(): + cmd = "%s -p" % aotcompile.PATHS["dbtool"] + dir = os.path.abspath(os.popen(cmd, "r").readline().rstrip()) + dir, base = os.path.split(dir) + if base != "classmap.db": + raise aotcompile.Error, "%s: unexpected output" % cmd + dir, base = os.path.split(dir) + if not base.startswith("gcj-"): + raise aotcompile.Error, "%s: unexpected output" % cmd + return dir + +def writeSourceList(srcdir, dstpath): + def visit(fp, dir, items): + for item in items: + path = os.path.join(dir, item) + if os.path.isfile(path): + print >>fp, path + dstdir = os.path.dirname(dstpath) + if not os.path.isdir(dstdir): + os.makedirs(dstdir) + os.path.walk(srcdir, visit, open(dstpath, "w")) + +def copy(srcdir, dstdir, suffix): + srcdir = os.path.join(srcdir, suffix.lstrip(os.sep)) + dstdir = os.path.join(dstdir, suffix.lstrip(os.sep)) + os.makedirs(os.path.dirname(dstdir)) + aotcompile.system(("/bin/cp", "-a", srcdir, dstdir)) + +try: + name = os.environ.get("RPM_PACKAGE_NAME") + if name is None: + raise aotcompile.Error, "not for use outside rpm specfiles" + arch = os.environ.get("RPM_ARCH") + if arch == "noarch": + raise aotcompile.Error, "cannot be used on noarch packages" + srcdir = os.environ.get("RPM_BUILD_ROOT") + if srcdir in (None, "/"): + raise aotcompile.Error, "bad $RPM_BUILD_ROOT" + tmpdir = os.path.join(os.getcwd(), "aot-compile-rpm") + if os.path.exists(tmpdir): + raise aotcompile.Error, "%s exists" % tmpdir + dstdir = os.path.join(libdir(), "gcj", name) + + compiler = aotcompile.Compiler(srcdir, dstdir, tmpdir) + compiler.gcjflags[0:0] = os.environ.get("RPM_OPT_FLAGS", "").split() + + # XXX: This script should not accept options, because having + # them it cannot be integrated into rpm. But, gcj cannot + # build each and every jarfile yet, so we must be able to + # exclude until it can. + # XXX --exclude is also used in the jonas rpm to stop + # everything being made a subset of the mammoth client + # jarfile. Should adjust the subset checker's bias to + # favour many small jarfiles over one big one. + try: + options, exclusions = sys.argv[1:], [] + while options: + if options.pop(0) != "--exclude": + raise ValueError + compiler.exclusions.append( + os.path.join(srcdir, options.pop(0).lstrip(os.sep))) + except: + print >>sys.stderr, "usage: %s [--exclude PATH]..." % ( + os.path.basename(sys.argv[0])) + sys.exit(1) + + sourcelist = os.path.join(tmpdir, "sources.list") + writeSourceList(os.getcwd(), sourcelist) + compiler.gcjflags.append("-fsource-filename=" + sourcelist) + + compiler.compile() + copy(tmpdir, srcdir, dstdir) + +except aotcompile.Error, e: + print >>sys.stderr, "%s: error: %s" % ( + os.path.basename(sys.argv[0]), e) + sys.exit(1) diff --git a/libjava/contrib/aot-compile.in b/libjava/contrib/aot-compile.in new file mode 100644 index 00000000000..b891f20b85f --- /dev/null +++ b/libjava/contrib/aot-compile.in @@ -0,0 +1,88 @@ +#!/usr/bin/env python + +## Copyright (C) 2006 Free Software Foundation +## Written by Gary Benson +## +## This program 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. +## +## This program 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. + +import sys +sys.path.append("@python_mod_dir_expanded@") +import aotcompile +import getopt +import os + +usage = """\ +Usage: %s [OPTION...] SRCDIR DSTDIR +AOT-compile all Java bytecode in SRCDIR into DSTDIR. + +Options: + -M, --make=PATH make executable to use (%s) + -C, --gcj=PATH gcj executable to use (%s) + -D, --dbtool=PATH gcj-dbtool executable to use (%s) + -m, --makeflags=FLAGS flags to pass to make during build + -c, --gcjflags=FLAGS flags to pass to gcj during compilation + in addition to %s + -l, --ldflags=FLAGS flags to pass to gcj during linking + in addition to %s + -e, --exclude=PATH do not compile PATH + +Extra flags may also be passed using the AOT_MAKEFLAGS, AOT_GCJFLAGS +and AOT_LDFLAGS environment variables.""" % ( + os.path.basename(sys.argv[0]), + aotcompile.PATHS["make"], + aotcompile.PATHS["gcj"], + aotcompile.PATHS["dbtool"], + repr(" ".join(aotcompile.GCJFLAGS)), + repr(" ".join(aotcompile.LDFLAGS))) + +try: + if os.environ.has_key("RPM_PACKAGE_NAME"): + raise aotcompile.Error, "not for use within rpm specfiles" + + try: + opts, args = getopt.getopt( + sys.argv[1:], + "M:C:D:m:c:l:e:", + ["make=", "gcj=", "dbtool=", + "makeflags=" "gcjflags=", "ldflags=", + "exclude="]) + srcdir, dstdir = args + except: + print >>sys.stderr, usage + sys.exit(1) + + compiler = aotcompile.Compiler(srcdir, dstdir) + for o, a in opts: + if o in ("-M", "--make"): + aotcompile.PATHS["make"] = a + if o in ("-C", "--gcj"): + aotcompile.PATHS["gcj"] = a + if o in ("-D", "--dbtool"): + aotcompile.PATHS["dbtool"] = a + if o in ("-m", "--makeflags"): + compiler.makeflags[0:0] = a.split() + if o in ("-c", "--gcjflags"): + compiler.gcjflags[0:0] = a.split() + if o in ("-l", "--ldflags"): + compiler.ldflags[0:0] = a.split() + if o in ("-e", "--exclude"): + compiler.exclusions.append(a) + + compiler.makeflags[0:0] = os.environ.get("AOT_MAKEFLAGS", "").split() + compiler.gcjflags[0:0] = os.environ.get("AOT_GCJFLAGS", "").split() + compiler.ldflags[0:0] = os.environ.get("AOT_LDFLAGS", "").split() + + compiler.compile() + +except aotcompile.Error, e: + print >>sys.stderr, "%s: error: %s" % ( + os.path.basename(sys.argv[0]), e) + sys.exit(1) diff --git a/libjava/contrib/aotcompile.py.in b/libjava/contrib/aotcompile.py.in new file mode 100644 index 00000000000..9e25c9061a1 --- /dev/null +++ b/libjava/contrib/aotcompile.py.in @@ -0,0 +1,412 @@ +# -*- python -*- + +## Copyright (C) 2005, 2006, 2008 Free Software Foundation +## Written by Gary Benson +## +## This program 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. +## +## This program 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. + +import classfile +import copy +import md5 +import operator +import os +import sys +import cStringIO as StringIO +import zipfile + +PATHS = {"make": "@MAKE@", + "gcj": "@prefix@/bin/gcj@gcc_suffix@", + "dbtool": "@prefix@/bin/gcj-dbtool@gcc_suffix@"} + +MAKEFLAGS = [] +GCJFLAGS = ["-fPIC", "-findirect-dispatch", "-fjni"] +LDFLAGS = ["-Wl,-Bsymbolic"] + +MAX_CLASSES_PER_JAR = 1024 +MAX_BYTES_PER_JAR = 1048576 + +MAKEFILE = "Makefile" + +MAKEFILE_HEADER = '''\ +GCJ = %(gcj)s +DBTOOL = %(dbtool)s +GCJFLAGS = %(gcjflags)s +LDFLAGS = %(ldflags)s + +%%.o: %%.jar + $(GCJ) -c $(GCJFLAGS) $< -o $@ + +TARGETS = \\ +%(targets)s + +all: $(TARGETS)''' + +MAKEFILE_JOB = ''' +%(base)s_SOURCES = \\ +%(jars)s + +%(base)s_OBJECTS = \\ +$(%(base)s_SOURCES:.jar=.o) + +%(dso)s: $(%(base)s_OBJECTS) + $(GCJ) -shared $(GCJFLAGS) $(LDFLAGS) $^ -o $@ + +%(db)s: $(%(base)s_SOURCES) + $(DBTOOL) -n $@ 64 + for jar in $^; do \\ + $(DBTOOL) -f $@ $$jar \\ + %(libdir)s/%(dso)s; \\ + done''' + +ZIPMAGIC, CLASSMAGIC = "PK\x03\x04", "\xca\xfe\xba\xbe" + +class Error(Exception): + pass + +class Compiler: + def __init__(self, srcdir, libdir, prefix = None): + self.srcdir = os.path.abspath(srcdir) + self.libdir = os.path.abspath(libdir) + if prefix is None: + self.dstdir = self.libdir + else: + self.dstdir = os.path.join(prefix, self.libdir.lstrip(os.sep)) + + # Calling code may modify these parameters + self.gcjflags = copy.copy(GCJFLAGS) + self.ldflags = copy.copy(LDFLAGS) + self.makeflags = copy.copy(MAKEFLAGS) + self.exclusions = [] + + def compile(self): + """Search srcdir for classes and jarfiles, then generate + solibs and mappings databases for them all in libdir.""" + if not os.path.isdir(self.dstdir): + os.makedirs(self.dstdir) + oldcwd = os.getcwd() + os.chdir(self.dstdir) + try: + jobs = self.getJobList() + if not jobs: + raise Error, "nothing to do" + self.writeMakefile(MAKEFILE, jobs) + for job in jobs: + job.writeJars() + system([PATHS["make"]] + self.makeflags) + for job in jobs: + job.clean() + os.unlink(MAKEFILE) + finally: + os.chdir(oldcwd) + + def getJobList(self): + """Return all jarfiles and class collections in srcdir.""" + jobs = weed_jobs(find_jobs(self.srcdir, self.exclusions)) + set_basenames(jobs) + return jobs + + def writeMakefile(self, path, jobs): + """Generate a makefile to build the solibs and mappings + databases for the specified list of jobs.""" + fp = open(path, "w") + print >>fp, MAKEFILE_HEADER % { + "gcj": PATHS["gcj"], + "dbtool": PATHS["dbtool"], + "gcjflags": " ".join(self.gcjflags), + "ldflags": " ".join(self.ldflags), + "targets": " \\\n".join(reduce(operator.add, [ + (job.dsoName(), job.dbName()) for job in jobs]))} + for job in jobs: + values = job.ruleArguments() + values["libdir"] = self.libdir + print >>fp, MAKEFILE_JOB % values + fp.close() + +def find_jobs(dir, exclusions = ()): + """Scan a directory and find things to compile: jarfiles (zips, + wars, ears, rars, etc: we go by magic rather than file extension) + and directories of classes.""" + def visit((classes, zips), dir, items): + for item in items: + path = os.path.join(dir, item) + if os.path.islink(path) or not os.path.isfile(path): + continue + magic = open(path, "r").read(4) + if magic == ZIPMAGIC: + zips.append(path) + elif magic == CLASSMAGIC: + classes.append(path) + classes, paths = [], [] + os.path.walk(dir, visit, (classes, paths)) + # Convert the list of classes into a list of directories + while classes: + # XXX this requires the class to be correctly located in its heirachy. + path = classes[0][:-len(os.sep + classname(classes[0]) + ".class")] + paths.append(path) + classes = [cls for cls in classes if not cls.startswith(path)] + # Handle exclusions. We're really strict about them because the + # option is temporary in aot-compile-rpm and dead options left in + # specfiles will hinder its removal. + for path in exclusions: + if path in paths: + paths.remove(path) + else: + raise Error, "%s: path does not exist or is not a job" % path + # Build the list of jobs + jobs = [] + paths.sort() + for path in paths: + if os.path.isfile(path): + job = JarJob(path) + else: + job = DirJob(path) + if len(job.classes): + jobs.append(job) + return jobs + +class Job: + """A collection of classes that will be compiled as a unit.""" + + def __init__(self, path): + self.path, self.classes, self.blocks = path, {}, None + + def addClass(self, bytes): + """Subclasses call this from their __init__ method for + every class they find.""" + self.classes[md5.new(bytes).digest()] = bytes + + def __makeBlocks(self): + """Split self.classes into chunks that can be compiled to + native code by gcj. In the majority of cases this is not + necessary -- the job will have come from a jarfile which will + be equivalent to the one we generate -- but this only happens + _if_ the job was a jarfile and _if_ the jarfile isn't too big + and _if_ the jarfile has the correct extension and _if_ all + classes are correctly named and _if_ the jarfile has no + embedded jarfiles. Fitting a special case around all these + conditions is tricky to say the least. + + Note that this could be called at the end of each subclass's + __init__ method. The reason this is not done is because we + need to parse every class file. This is slow, and unnecessary + if the job is subsetted.""" + names = {} + for hash, bytes in self.classes.items(): + name = classname(bytes) + if not names.has_key(name): + names[name] = [] + names[name].append(hash) + names = names.items() + # We have to sort somehow, or the jars we generate + # We sort by name in a simplistic attempt to keep related + # classes together so inter-class optimisation can happen. + names.sort() + self.blocks, bytes = [[]], 0 + for name, hashes in names: + for hash in hashes: + if len(self.blocks[-1]) >= MAX_CLASSES_PER_JAR \ + or bytes >= MAX_BYTES_PER_JAR: + self.blocks.append([]) + bytes = 0 + self.blocks[-1].append((name, hash)) + bytes += len(self.classes[hash]) + + # From Archit Shah: + # The implementation and the documentation don't seem to match. + # + # [a, b].isSubsetOf([a]) => True + # + # Identical copies of all classes this collection do not exist + # in the other. I think the method should be named isSupersetOf + # and the documentation should swap uses of "this" and "other" + # + # XXX think about this when I've had more sleep... + def isSubsetOf(self, other): + """Returns True if identical copies of all classes in this + collection exist in the other.""" + for item in other.classes.keys(): + if not self.classes.has_key(item): + return False + return True + + def __targetName(self, ext): + return self.basename + ext + + def tempJarName(self, num): + return self.__targetName(".%d.jar" % (num + 1)) + + def tempObjName(self, num): + return self.__targetName(".%d.o" % (num + 1)) + + def dsoName(self): + """Return the filename of the shared library that will be + built from this job.""" + return self.__targetName(".so") + + def dbName(self): + """Return the filename of the mapping database that will be + built from this job.""" + return self.__targetName(".db") + + def ruleArguments(self): + """Return a dictionary of values that when substituted + into MAKEFILE_JOB will create the rules required to build + the shared library and mapping database for this job.""" + if self.blocks is None: + self.__makeBlocks() + return { + "base": "".join( + [c.isalnum() and c or "_" for c in self.dsoName()]), + "jars": " \\\n".join( + [self.tempJarName(i) for i in xrange(len(self.blocks))]), + "dso": self.dsoName(), + "db": self.dbName()} + + def writeJars(self): + """Generate jarfiles that can be native compiled by gcj.""" + if self.blocks is None: + self.__makeBlocks() + for block, i in zip(self.blocks, xrange(len(self.blocks))): + jar = zipfile.ZipFile(self.tempJarName(i), "w", zipfile.ZIP_STORED) + for name, hash in block: + jar.writestr( + zipfile.ZipInfo("%s.class" % name), self.classes[hash]) + jar.close() + + def clean(self): + """Delete all temporary files created during this job's build.""" + if self.blocks is None: + self.__makeBlocks() + for i in xrange(len(self.blocks)): + os.unlink(self.tempJarName(i)) + os.unlink(self.tempObjName(i)) + +class JarJob(Job): + """A Job whose origin was a jarfile.""" + + def __init__(self, path): + Job.__init__(self, path) + self._walk(zipfile.ZipFile(path, "r")) + + def _walk(self, zf): + for name in zf.namelist(): + bytes = zf.read(name) + if bytes.startswith(ZIPMAGIC): + self._walk(zipfile.ZipFile(StringIO.StringIO(bytes))) + elif bytes.startswith(CLASSMAGIC): + self.addClass(bytes) + +class DirJob(Job): + """A Job whose origin was a directory of classfiles.""" + + def __init__(self, path): + Job.__init__(self, path) + os.path.walk(path, DirJob._visit, self) + + def _visit(self, dir, items): + for item in items: + path = os.path.join(dir, item) + if os.path.islink(path) or not os.path.isfile(path): + continue + fp = open(path, "r") + magic = fp.read(4) + if magic == CLASSMAGIC: + self.addClass(magic + fp.read()) + +def weed_jobs(jobs): + """Remove any jarfiles that are completely contained within + another. This is more common than you'd think, and we only + need one nativified copy of each class after all.""" + jobs = copy.copy(jobs) + while True: + for job1 in jobs: + for job2 in jobs: + if job1 is job2: + continue + if job1.isSubsetOf(job2): + msg = "subsetted %s" % job2.path + if job2.isSubsetOf(job1): + if (isinstance(job1, DirJob) and + isinstance(job2, JarJob)): + # In the braindead case where a package + # contains an expanded copy of a jarfile + # the jarfile takes precedence. + continue + msg += " (identical)" + warn(msg) + jobs.remove(job2) + break + else: + continue + break + else: + break + continue + return jobs + +def set_basenames(jobs): + """Ensure that each jarfile has a different basename.""" + names = {} + for job in jobs: + name = os.path.basename(job.path) + if not names.has_key(name): + names[name] = [] + names[name].append(job) + for name, set in names.items(): + if len(set) == 1: + set[0].basename = name + continue + # prefix the jar filenames to make them unique + # XXX will not work in most cases -- needs generalising + set = [(job.path.split(os.sep), job) for job in set] + minlen = min([len(bits) for bits, job in set]) + set = [(bits[-minlen:], job) for bits, job in set] + bits = apply(zip, [bits for bits, job in set]) + while True: + row = bits[-2] + for bit in row[1:]: + if bit != row[0]: + break + else: + del bits[-2] + continue + break + set = zip( + ["_".join(name) for name in apply(zip, bits[-2:])], + [job for bits, job in set]) + for name, job in set: + warn("building %s as %s" % (job.path, name)) + job.basename = name + # XXX keep this check until we're properly general + names = {} + for job in jobs: + name = job.basename + if names.has_key(name): + raise Error, "%s: duplicate jobname" % name + names[name] = 1 + +def system(command): + """Execute a command.""" + status = os.spawnv(os.P_WAIT, command[0], command) + if status > 0: + raise Error, "%s exited with code %d" % (command[0], status) + elif status < 0: + raise Error, "%s killed by signal %d" % (command[0], -status) + +def warn(msg): + """Print a warning message.""" + print >>sys.stderr, "%s: warning: %s" % ( + os.path.basename(sys.argv[0]), msg) + +def classname(bytes): + """Extract the class name from the bytes of a class file.""" + klass = classfile.Class(bytes) + return klass.constants[klass.constants[klass.name][1]][1] diff --git a/libjava/contrib/classfile.py b/libjava/contrib/classfile.py new file mode 100644 index 00000000000..a8bb14c0b8f --- /dev/null +++ b/libjava/contrib/classfile.py @@ -0,0 +1,221 @@ +## Copyright (C) 2004, 2005 Free Software Foundation +## Written by Gary Benson +## +## This program 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. +## +## This program 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. + +"""Read Java(TM) class files.""" + +import cStringIO as StringIO +import struct + +class Class: + def __init__(self, arg): + if hasattr(arg, "read"): + self.fp = arg + elif type(arg) == type(""): + if arg.startswith("\xca\xfe\xba\xbe"): + self.fp = StringIO.StringIO(arg) + else: + self.fp = open(arg, "r") + else: + raise TypeError, type(arg) + + magic = self._read_int() + assert magic == 0xcafebabeL + minor, major = self._read(">HH") + self.version = (major, minor) + + self.pool_integrity_checks = None + try: + assert False + except AssertionError: + self.pool_integrity_checks = [] + + self._read_constants_pool() + + self.access_flags = self._read_short() + self.name = self._read_reference_Class() + self.super = self._read_reference_Class() + + self.interfaces = self._read_interfaces() + self.fields = self._read_fieldsormethods() + self.methods = self._read_fieldsormethods() + self.attributes = self._read_attributes() + + if self.pool_integrity_checks is not None: + for index, tag in self.pool_integrity_checks: + assert self.constants[index][0] == tag + + del self.fp, self.pool_integrity_checks + + def __repr__(self): + result = [] + attrs = [attr for attr in dir(self) + if not attr.startswith("_") and attr != "Member"] + attrs.sort() + for attr in attrs: + result.append("%-13s %s" % ( + attr + ":", attr == "constants" and + "" or repr(getattr(self, attr)))) + return "\n".join(result) + + def _read_constants_pool(self): + self.constants = {} + skip = False + for i in xrange(1, self._read_short()): + if skip: + skip = False + continue + tag = { + 1: "Utf8", 3: "Integer", 4: "Float", 5: "Long", + 6: "Double", 7: "Class", 8: "String", 9: "Fieldref", + 10: "Methodref", 11: "InterfaceMethodref", + 12: "NameAndType"}[self._read_byte()] + skip = tag in ("Long", "Double") # crack crack crack! + self.constants[i] = (tag, getattr(self, "_read_constant_" + tag)()) + + def _read_interfaces(self): + result = [] + for i in xrange(self._read_short()): + result.append(self._read_reference_Class()) + return result + + def _read_fieldsormethods(self): + result = [] + for i in xrange(self._read_short()): + result.append(self.Member(self)) + return result + + class Member: + def __init__(self, source): + self.access_flags = source._read_short() + self.name = source._read_reference_Utf8() + self.descriptor = source._read_reference_Utf8() + self.attributes = source._read_attributes() + + def __repr__(self): + result = [] + attrs = [attr for attr in dir(self) if not attr.startswith("_")] + attrs.sort() + for attr in attrs: + value = getattr(self, attr) + if attr == "attributes" and value.has_key("Code"): + value = value.copy() + value.update({"Code": ""}) + result.append("%-13s %s" % ( + attr + ":", repr(value).replace( + "'Code': ''", "'Code': "))) + return ("\n%s" % (15 * " ")).join(result) + + def _read_attributes(self): + result = {} + for i in xrange(self._read_short()): + name = self._read_reference_Utf8() + data = self.fp.read(self._read_int()) + assert not result.has_key(name) + result[name] = data + return result + + # Constants pool reference reader convenience functions + + def _read_reference_Utf8(self): + return self._read_references("Utf8")[0] + + def _read_reference_Class(self): + return self._read_references("Class")[0] + + def _read_reference_Class_NameAndType(self): + return self._read_references("Class", "NameAndType") + + def _read_references(self, *args): + result = [] + for arg in args: + index = self._read_short() + if self.pool_integrity_checks is not None: + self.pool_integrity_checks.append((index, arg)) + result.append(index) + return result + + # Constants pool constant reader functions + + def _read_constant_Utf8(self): + constant = self.fp.read(self._read_short()) + try: + constant = constant.decode("utf-8") + except UnicodeError: + constant = _bork_utf8_decode(constant) + try: + constant = constant.encode("us-ascii") + except UnicodeError: + pass + return constant + + def _read_constant_Integer(self): + return self._read_int() + + def _read_constant_Float(self): + return self._read(">f")[0] + + def _read_constant_Long(self): + return self._read(">q")[0] + + def _read_constant_Double(self): + return self._read(">d")[0] + + _read_constant_Class = _read_reference_Utf8 + _read_constant_String = _read_reference_Utf8 + _read_constant_Fieldref = _read_reference_Class_NameAndType + _read_constant_Methodref = _read_reference_Class_NameAndType + _read_constant_InterfaceMethodref = _read_reference_Class_NameAndType + + def _read_constant_NameAndType(self): + return self._read_reference_Utf8(), self._read_reference_Utf8() + + # Generic reader functions + + def _read_int(self): + # XXX how else to read 32 bits on a 64-bit box? + h, l = map(long, self._read(">HH")) + return (h << 16) + l + + def _read_short(self): + return self._read(">H")[0] + + def _read_byte(self): + return self._read("B")[0] + + def _read(self, fmt): + return struct.unpack(fmt, self.fp.read(struct.calcsize(fmt))) + +def _bork_utf8_decode(data): + # more crack! + bytes, unicode = map(ord, data), "" + while bytes: + b1 = bytes.pop(0) + if b1 & 0x80: + assert b1 & 0x40 + b2 = bytes.pop(0) + assert b2 & 0xC0 == 0x80 + if b1 & 0x20: + assert not b1 & 0x10 + b3 = bytes.pop(0) + assert b3 & 0xC0 == 0x80 + unicode += unichr( + ((b1 & 0x0f) << 12) + ((b2 & 0x3f) << 6) + (b3 & 0x3f)) + else: + unicode += unichr(((b1 & 0x1f) << 6) + (b2 & 0x3f)) + else: + unicode += unichr(b1) + return unicode + +if __name__ == "__main__": + print Class("/usr/share/katana/build/ListDependentClasses.class") + diff --git a/libjava/contrib/rebuild-gcj-db.in b/libjava/contrib/rebuild-gcj-db.in new file mode 100644 index 00000000000..39861ff55f9 --- /dev/null +++ b/libjava/contrib/rebuild-gcj-db.in @@ -0,0 +1,27 @@ +#!/bin/bash +# rebuild-gcj-db + +## Copyright (C) 2000, 2002, 2003, 2008 Free Software Foundation +## +## This file is part of libgcj. +## +## This software is copyrighted work licensed under the terms of the +## Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +## details. + +# Rebuild all the standard databases. +for i in `@prefix@/bin/gcc --print-multi-lib 2>/dev/null`; do + multilib=`echo $i | sed -e 's/^.*;//' | sed -e 's/\@/ -/g'` + dirname=`@prefix@/bin/gcc -print-multi-os-directory $multilib 2>/dev/null` + base=@prefix@/lib/$dirname + dbLocation=`@prefix@/bin/gcj-dbtool -p $base` + libdir=$base/gcj + if ! test -d $libdir; then + # No shared libraries here. + continue + fi + dirname $dbLocation | xargs mkdir -p + @prefix@/bin/gcj-dbtool -n $dbLocation 64 + find $libdir -follow -name '*.db' -print0 | \ + @prefix@/bin/gcj-dbtool -0 -m $dbLocation $dbLocation +done diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in index b5b98364c8d..3a1c18f4a76 100644 --- a/libjava/gcj/Makefile.in +++ b/libjava/gcj/Makefile.in @@ -99,6 +99,7 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ +BUILD_VERSION = @BUILD_VERSION@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -106,6 +107,9 @@ CHECKREFSPEC = @CHECKREFSPEC@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPU = @CPU@ +CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@ +CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -135,6 +139,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_BIN_DIR = @GCJ_BIN_DIR@ GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ @@ -147,6 +152,8 @@ GTK_LIBS = @GTK_LIBS@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ +INSTALL_AOT_RPM_FALSE = @INSTALL_AOT_RPM_FALSE@ +INSTALL_AOT_RPM_TRUE = @INSTALL_AOT_RPM_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ @@ -162,13 +169,22 @@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ +JAVA_VERSION = @JAVA_VERSION@ JC1GCSPEC = @JC1GCSPEC@ +JRE_BIN_DIR = @JRE_BIN_DIR@ +JRE_DIR = @JRE_DIR@ +JRE_LIB_DIR = @JRE_LIB_DIR@ +JRE_LNK = @JRE_LNK@ +JVM_JAR_DIR = @JVM_JAR_DIR@ +JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ +JVM_ROOT_DIR = @JVM_ROOT_DIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ LIBART_CFLAGS = @LIBART_CFLAGS@ LIBART_LIBS = @LIBART_LIBS@ +LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ LIBGCJDEBUG = @LIBGCJDEBUG@ @@ -191,6 +207,7 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKE = @MAKE@ MAKEINFO = @MAKEINFO@ NATIVE_FALSE = @NATIVE_FALSE@ NATIVE_TRUE = @NATIVE_TRUE@ @@ -198,6 +215,7 @@ NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@ NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@ NM = @NM@ OBJEXT = @OBJEXT@ +OS = @OS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ @@ -209,6 +227,11 @@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ +SDK_BIN_DIR = @SDK_BIN_DIR@ +SDK_DIR = @SDK_DIR@ +SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@ +SDK_LIB_DIR = @SDK_LIB_DIR@ +SDK_LNK = @SDK_LNK@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -296,6 +319,8 @@ exec_prefix = @exec_prefix@ extra_gij_ldflags = @extra_gij_ldflags@ extra_ldflags = @extra_ldflags@ extra_ldflags_libjava = @extra_ldflags_libjava@ +gcc_suffix = @gcc_suffix@ +gcjsubdir = @gcjsubdir@ gxx_include_dir = @gxx_include_dir@ here = @here@ host = @host@ @@ -320,6 +345,8 @@ multi_basedir = @multi_basedir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +python_mod_dir = @python_mod_dir@ +python_mod_dir_expanded = @python_mod_dir_expanded@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index 5ab2321b155..765b9d8ac7d 100644 --- a/libjava/include/Makefile.in +++ b/libjava/include/Makefile.in @@ -98,6 +98,7 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ +BUILD_VERSION = @BUILD_VERSION@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -105,6 +106,9 @@ CHECKREFSPEC = @CHECKREFSPEC@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPU = @CPU@ +CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@ +CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -134,6 +138,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_BIN_DIR = @GCJ_BIN_DIR@ GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ @@ -146,6 +151,8 @@ GTK_LIBS = @GTK_LIBS@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ +INSTALL_AOT_RPM_FALSE = @INSTALL_AOT_RPM_FALSE@ +INSTALL_AOT_RPM_TRUE = @INSTALL_AOT_RPM_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ @@ -161,13 +168,22 @@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ +JAVA_VERSION = @JAVA_VERSION@ JC1GCSPEC = @JC1GCSPEC@ +JRE_BIN_DIR = @JRE_BIN_DIR@ +JRE_DIR = @JRE_DIR@ +JRE_LIB_DIR = @JRE_LIB_DIR@ +JRE_LNK = @JRE_LNK@ +JVM_JAR_DIR = @JVM_JAR_DIR@ +JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ +JVM_ROOT_DIR = @JVM_ROOT_DIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ LIBART_CFLAGS = @LIBART_CFLAGS@ LIBART_LIBS = @LIBART_LIBS@ +LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ LIBGCJDEBUG = @LIBGCJDEBUG@ @@ -190,6 +206,7 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKE = @MAKE@ MAKEINFO = @MAKEINFO@ NATIVE_FALSE = @NATIVE_FALSE@ NATIVE_TRUE = @NATIVE_TRUE@ @@ -197,6 +214,7 @@ NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@ NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@ NM = @NM@ OBJEXT = @OBJEXT@ +OS = @OS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ @@ -208,6 +226,11 @@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ +SDK_BIN_DIR = @SDK_BIN_DIR@ +SDK_DIR = @SDK_DIR@ +SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@ +SDK_LIB_DIR = @SDK_LIB_DIR@ +SDK_LNK = @SDK_LNK@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -295,6 +318,8 @@ exec_prefix = @exec_prefix@ extra_gij_ldflags = @extra_gij_ldflags@ extra_ldflags = @extra_ldflags@ extra_ldflags_libjava = @extra_ldflags_libjava@ +gcc_suffix = @gcc_suffix@ +gcjsubdir = @gcjsubdir@ gxx_include_dir = @gxx_include_dir@ here = @here@ host = @host@ @@ -319,6 +344,8 @@ multi_basedir = @multi_basedir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +python_mod_dir = @python_mod_dir@ +python_mod_dir_expanded = @python_mod_dir_expanded@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in index 8d42a626c80..ba058d6c4ea 100644 --- a/libjava/testsuite/Makefile.in +++ b/libjava/testsuite/Makefile.in @@ -87,6 +87,7 @@ AWK = @AWK@ BACKTRACESPEC = @BACKTRACESPEC@ BUILD_ECJ1_FALSE = @BUILD_ECJ1_FALSE@ BUILD_ECJ1_TRUE = @BUILD_ECJ1_TRUE@ +BUILD_VERSION = @BUILD_VERSION@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ @@ -94,6 +95,9 @@ CHECKREFSPEC = @CHECKREFSPEC@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ +CPU = @CPU@ +CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@ +CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ @@ -123,6 +127,7 @@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GCJH = @GCJH@ GCJVERSION = @GCJVERSION@ +GCJ_BIN_DIR = @GCJ_BIN_DIR@ GCJ_FOR_ECJX = @GCJ_FOR_ECJX@ GCLIBS = @GCLIBS@ GCSPEC = @GCSPEC@ @@ -135,6 +140,8 @@ GTK_LIBS = @GTK_LIBS@ HASH_SYNC_SPEC = @HASH_SYNC_SPEC@ IEEESPEC = @IEEESPEC@ INCLTDL = @INCLTDL@ +INSTALL_AOT_RPM_FALSE = @INSTALL_AOT_RPM_FALSE@ +INSTALL_AOT_RPM_TRUE = @INSTALL_AOT_RPM_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_ECJ_JAR_FALSE = @INSTALL_ECJ_JAR_FALSE@ INSTALL_ECJ_JAR_TRUE = @INSTALL_ECJ_JAR_TRUE@ @@ -150,13 +157,22 @@ JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@ JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ +JAVA_VERSION = @JAVA_VERSION@ JC1GCSPEC = @JC1GCSPEC@ +JRE_BIN_DIR = @JRE_BIN_DIR@ +JRE_DIR = @JRE_DIR@ +JRE_LIB_DIR = @JRE_LIB_DIR@ +JRE_LNK = @JRE_LNK@ +JVM_JAR_DIR = @JVM_JAR_DIR@ +JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@ +JVM_ROOT_DIR = @JVM_ROOT_DIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@ LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@ LIBART_CFLAGS = @LIBART_CFLAGS@ LIBART_LIBS = @LIBART_LIBS@ +LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ LIBGCJDEBUG = @LIBGCJDEBUG@ @@ -179,6 +195,7 @@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKE = @MAKE@ MAKEINFO = @MAKEINFO@ NATIVE_FALSE = @NATIVE_FALSE@ NATIVE_TRUE = @NATIVE_TRUE@ @@ -186,6 +203,7 @@ NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@ NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@ NM = @NM@ OBJEXT = @OBJEXT@ +OS = @OS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ @@ -197,6 +215,11 @@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PLATFORM = @PLATFORM@ RANLIB = @RANLIB@ +SDK_BIN_DIR = @SDK_BIN_DIR@ +SDK_DIR = @SDK_DIR@ +SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@ +SDK_LIB_DIR = @SDK_LIB_DIR@ +SDK_LNK = @SDK_LNK@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -284,6 +307,8 @@ exec_prefix = @exec_prefix@ extra_gij_ldflags = @extra_gij_ldflags@ extra_ldflags = @extra_ldflags@ extra_ldflags_libjava = @extra_ldflags_libjava@ +gcc_suffix = @gcc_suffix@ +gcjsubdir = @gcjsubdir@ gxx_include_dir = @gxx_include_dir@ here = @here@ host = @host@ @@ -308,6 +333,8 @@ multi_basedir = @multi_basedir@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +python_mod_dir = @python_mod_dir@ +python_mod_dir_expanded = @python_mod_dir_expanded@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ -- 2.11.4.GIT