configure.ac (java-home): new AC_ARG_ENABLE.

2008-06-30  Joshua Sumali  <jsumali@redhat.com>
        Andrew Haley  <aph@redhat.com>

        * 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  <jsumali@redhat.com>

        * 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  <jsumali@redhat.com>

	* 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 <aph@redhat.com>

From-SVN: r137353
This commit is contained in:
Joshua Sumali 2008-07-02 13:17:54 +00:00 committed by Andrew Haley
parent 9e11641d11
commit c9db365d82
18 changed files with 2043 additions and 65 deletions

View File

@ -1,3 +1,15 @@
2008-07-02 Joshua Sumali <jsumali@redhat.com>
* 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 <rguenther@suse.de>
* tree-ssa-forwprop.c (can_propagate_from): Exclude loads

View File

@ -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,

View File

@ -1,3 +1,14 @@
2008-06-30 Joshua Sumali <jsumali@redhat.com>
* 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 <ghazi@caip.rutgers.edu>
* Make-lang.in (java/jcf-io.o-warn): New.

View File

@ -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 ; \

View File

@ -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

View File

@ -1,3 +1,36 @@
2008-06-30 Joshua Sumali <jsumali@redhat.com>
Andrew Haley <aph@redhat.com>
* 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 <doko@ubuntu.com>
Import GNU Classpath (classpath-0_97_2-release).

View File

@ -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
## ################################################################

View File

@ -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 ' \

402
libjava/configure vendored
View File

@ -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

View File

@ -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

View File

@ -0,0 +1,97 @@
#!/usr/bin/env python
## Copyright (C) 2005, 2006, 2007 Free Software Foundation
## Written by Gary Benson <gbenson@redhat.com>
##
## 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)

View File

@ -0,0 +1,88 @@
#!/usr/bin/env python
## Copyright (C) 2006 Free Software Foundation
## Written by Gary Benson <gbenson@redhat.com>
##
## 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)

View File

@ -0,0 +1,412 @@
# -*- python -*-
## Copyright (C) 2005, 2006, 2008 Free Software Foundation
## Written by Gary Benson <gbenson@redhat.com>
##
## 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]

View File

@ -0,0 +1,221 @@
## Copyright (C) 2004, 2005 Free Software Foundation
## Written by Gary Benson <gbenson@redhat.com>
##
## 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
"<ELIDED>" 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": "<ELIDED>"})
result.append("%-13s %s" % (
attr + ":", repr(value).replace(
"'Code': '<ELIDED>'", "'Code': <ELIDED>")))
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")

View File

@ -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

View File

@ -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@

View File

@ -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@

View File

@ -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@