x_javao_files = $(x_java_source_files:.java=.lo)
libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \
- resolve.cc defineclass.cc interpret.cc name-finder.cc \
+ resolve.cc defineclass.cc interpret.cc name-finder.cc verify.cc \
$(nat_source_files)
EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
$(c_source_files) $(java_source_files) $(built_java_source_files)
## is a bug in automake), and it also won't put the .o files into
## subdirs. FIXME.
$(nat_files) $(x_nat_files): %.lo: %.cc
- @echo '$(LTCXXCOMPILE) -c -o $@ $<'; \
- $(LTCXXCOMPILE) -Wp,-MD,.deps/$(*F).pp -c -o $@ $<
- @-sed -e 's/^\([^:]*\)\.o[ ]*:/\1.lo \1.o :/' \
- < .deps/$(*F).pp > .deps/$(*F).P; \
- tr ' ' '\012' < .deps/$(*F).pp \
- | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
- >> .deps/$(*F).P; \
- rm -f .deps/$(*F).pp
+ @echo '$(LTCXXCOMPILE) -MD -MT $@ -MF $(@:.lo=.pp) -c -o $@ $<'; \
+ $(LTCXXCOMPILE) -MD -MT $@ -MF $(@:.lo=.pp) -c -o $@ $<
+ @-mv $(@:.lo=.pp) $(@:.lo=.d)
## FIXME: GNU make.
$(c_files): %.lo: %.c
$(GCJH) -classpath $(top_builddir) $(basename $<)
## Header files used when compiling some of the nat* files.
-nat_headers = $(ordinary_java_source_files:.java=.h) \
- $(built_java_source_files:.java=.h) \
- java/io/ObjectOutputStream$$PutField.h \
+ordinary_nat_headers = $(ordinary_java_source_files:.java=.h) \
+ $(built_java_source_files:.java=.h)
+
+inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \
java/io/ObjectInputStream$$GetField.h
+nat_headers = $(ordinary_nat_headers) $(inner_nat_headers)
+
x_nat_headers = $(x_java_source_files:.java=.h)
-$(nat_headers) $(x_nat_headers): libgcj.jar
+$(ordinary_nat_headers) $(x_nat_headers): %.h: %.class
-java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.jar
+java/lang/ClassLoader.h: java/lang/ClassLoader.class
$(GCJH) -classpath $(top_builddir) \
-friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \
-friend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \
$(basename $<)
-## Our internal main program needs to be able to create a FirstThread.
-gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.jar
- $(GCJH) -classpath $(top_builddir) \
- -friend 'void JvRunMain (jclass, int, const char **);' \
- -friend 'void _Jv_RunMain (const char*, int, const char **);' \
- $(basename $<)
-
-java/lang/Thread.h: java/lang/Thread.class libgcj.jar
+java/lang/Thread.h: java/lang/Thread.class
$(GCJH) -classpath $(top_builddir) \
-prepend 'class _Jv_JNIEnv;' \
-prepend '#define _JV_NOT_OWNER 1' \
-friend 'jint _Jv_DetachCurrentThread ();' \
$(basename $<)
-java/lang/String.h: java/lang/String.class libgcj.jar
+java/lang/String.h: java/lang/String.class
$(GCJH) -classpath $(top_builddir) \
-friend 'jchar* _Jv_GetStringChars (jstring str);' \
-friend 'jstring* _Jv_StringFindSlot (jchar*, jint, jint);' \
-friend 'jstring _Jv_AllocString (jsize);' \
$(basename $<)
-java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class libgcj.jar
+java/lang/reflect/Constructor.h: java/lang/reflect/Constructor.class
$(GCJH) -classpath $(top_builddir) \
-friend 'jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);' \
-friend 'class java::lang::Class;' \
-friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
$(basename $<)
-java/lang/reflect/Field.h: java/lang/reflect/Field.class libgcj.jar
+java/lang/reflect/Field.h: java/lang/reflect/Field.class
$(GCJH) -classpath $(top_builddir) \
-friend 'jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);' \
-friend 'jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);' \
-friend 'class java::lang::Class;' \
$(basename $<)
-java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.jar
+java/lang/reflect/Method.h: java/lang/reflect/Method.class
$(GCJH) -classpath $(top_builddir) \
-friend 'jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);' \
-friend 'class java::lang::Class;' \
+ -friend 'class java::io::ObjectInputStream;' \
-friend 'jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);' \
$(basename $<)
-gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class libgcj.jar
+gnu/gcj/runtime/VMClassLoader.h: gnu/gcj/runtime/VMClassLoader.class
$(GCJH) -classpath $(top_builddir) \
- -friend 'class java::lang::ClassLoader;' \
+ -friend 'class ::java::lang::ClassLoader;' \
$(basename $<)
-java/io/ObjectInputStream$$GetField.h: libgcj.jar
+java/io/ObjectInputStream$$GetField.h: java/io/ObjectInputStream.class
$(GCJH) -classpath $(top_builddir) \
'java/io/ObjectInputStream$$GetField'
-java/io/ObjectOutputStream$$PutField.h: libgcj.jar
+java/io/ObjectOutputStream$$PutField.h: java/io/ObjectOutputStream.class
$(GCJH) -classpath $(top_builddir) \
'java/io/ObjectOutputStream$$PutField'
## system libraries we need (via the specs file).
## We need the -L so that gcj can find libgcj with `-lgcj'.
## FIXME: should be _libs on some systems.
-jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \
- $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
+jv_convert_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs
## Depend on the spec file to make sure it is up to date before
## linking this program.
jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \
gnu/awt/j2d/Graphics2DImpl.java \
gnu/awt/j2d/IntegerGraphicsState.java \
gnu/awt/j2d/MappedRaster.java \
-gnu/gcj/awt/BitMaskExtent.java \
-gnu/gcj/awt/Buffers.java \
-gnu/gcj/awt/ComponentDataBlitOp.java \
-gnu/gcj/awt/GLightweightPeer.java \
+gnu/java/awt/BitMaskExtent.java \
+gnu/java/awt/Buffers.java \
+gnu/java/awt/ComponentDataBlitOp.java \
+gnu/java/awt/GLightweightPeer.java \
gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \
java/awt/Point.java \
java/awt/Polygon.java \
java/awt/PopupMenu.java \
+java/awt/PrintGraphics.java \
+java/awt/PrintJob.java \
java/awt/Rectangle.java \
java/awt/RenderingHints.java \
java/awt/ScrollPane.java \
java/awt/color/ICC_ColorSpace.java \
java/awt/color/ICC_Profile.java \
java/awt/datatransfer/Clipboard.java \
+java/awt/datatransfer/ClipboardOwner.java \
+java/awt/datatransfer/DataFlavor.java \
+java/awt/datatransfer/FlavorMap.java \
+java/awt/datatransfer/MimeTypeParseException.java \
+java/awt/datatransfer/StringSelection.java \
+java/awt/datatransfer/SystemFlavorMap.java \
+java/awt/datatransfer/Transferable.java \
+java/awt/datatransfer/UnsupportedFlavorException.java \
java/awt/event/AWTEventListener.java \
java/awt/event/ActionEvent.java \
java/awt/event/ActionListener.java \
java/awt/geom/Rectangle2D.java \
java/awt/geom/RectangularShape.java \
java/awt/geom/RoundRectangle2D.java \
+java/awt/image/AreaAveragingScaleFilter.java \
java/awt/image/BufferedImage.java \
java/awt/image/ColorModel.java \
java/awt/image/ComponentColorModel.java \
java/awt/image/ComponentSampleModel.java \
+java/awt/image/CropImageFilter.java \
java/awt/image/DataBuffer.java \
java/awt/image/DataBufferByte.java \
java/awt/image/DataBufferInt.java \
java/awt/image/DataBufferUShort.java \
java/awt/image/DirectColorModel.java \
+java/awt/image/FilteredImageSource.java \
java/awt/image/ImageConsumer.java \
+java/awt/image/ImageFilter.java \
java/awt/image/ImageObserver.java \
java/awt/image/ImageProducer.java \
java/awt/image/IndexColorModel.java \
+java/awt/image/MemoryImageSource.java \
java/awt/image/PackedColorModel.java \
+java/awt/image/PixelGrabber.java \
+java/awt/image/RGBImageFilter.java \
java/awt/image/Raster.java \
java/awt/image/RasterOp.java \
+java/awt/image/ReplicateScaleFilter.java \
java/awt/image/SampleModel.java \
java/awt/image/SinglePixelPackedSampleModel.java \
java/awt/image/WritableRaster.java \
java/util/Iterator.java \
java/util/LinkedList.java \
java/util/LinkedHashMap.java \
+java/util/LinkedHashSet.java \
java/util/List.java \
java/util/ListIterator.java \
java/util/ListResourceBundle.java \
gnu/gcj/io/DefaultMimeTypes.java \
gnu/gcj/io/MimeTypes.java \
gnu/gcj/io/SimpleSHSStream.java \
-gnu/gcj/math/MPN.java \
gnu/gcj/protocol/core/Connection.java \
gnu/gcj/protocol/core/Handler.java \
gnu/gcj/protocol/core/CoreInputStream.java \
gnu/gcj/runtime/FileDeleter.java \
gnu/gcj/runtime/FinalizerThread.java \
gnu/gcj/runtime/FirstThread.java \
+gnu/gcj/runtime/JNIWeakRef.java \
gnu/gcj/runtime/SharedLibLoader.java \
+gnu/gcj/runtime/StringBuffer.java \
gnu/gcj/runtime/VMClassLoader.java \
gnu/java/io/ClassLoaderObjectInputStream.java \
gnu/java/io/NullOutputStream.java \
gnu/java/locale/Calendar_en.java \
gnu/java/locale/Calendar_nl.java \
gnu/java/locale/LocaleInformation.java \
+gnu/java/locale/LocaleInformation_af_ZA.java \
+gnu/java/locale/LocaleInformation_ar_AE.java \
+gnu/java/locale/LocaleInformation_ar_BH.java \
+gnu/java/locale/LocaleInformation_ar_DZ.java \
+gnu/java/locale/LocaleInformation_ar_EG.java \
+gnu/java/locale/LocaleInformation_ar_IN.java \
+gnu/java/locale/LocaleInformation_ar_IQ.java \
+gnu/java/locale/LocaleInformation_ar_JO.java \
+gnu/java/locale/LocaleInformation_ar_KW.java \
+gnu/java/locale/LocaleInformation_ar_LB.java \
+gnu/java/locale/LocaleInformation_ar_LY.java \
+gnu/java/locale/LocaleInformation_ar_MA.java \
+gnu/java/locale/LocaleInformation_ar_OM.java \
+gnu/java/locale/LocaleInformation_ar_QA.java \
+gnu/java/locale/LocaleInformation_ar_SD.java \
+gnu/java/locale/LocaleInformation_ar_SY.java \
+gnu/java/locale/LocaleInformation_ar_TN.java \
+gnu/java/locale/LocaleInformation_ar_YE.java \
+gnu/java/locale/LocaleInformation_be_BY.java \
+gnu/java/locale/LocaleInformation_bn_IN.java \
+gnu/java/locale/LocaleInformation_br_FR.java \
+gnu/java/locale/LocaleInformation_bs_BA.java \
+gnu/java/locale/LocaleInformation_ca_ES.java \
+gnu/java/locale/LocaleInformation_cs_CZ.java \
+gnu/java/locale/LocaleInformation_cy_GB.java \
+gnu/java/locale/LocaleInformation_da_DK.java \
gnu/java/locale/LocaleInformation_de.java \
+gnu/java/locale/LocaleInformation_de_AT.java \
+gnu/java/locale/LocaleInformation_de_BE.java \
+gnu/java/locale/LocaleInformation_de_CH.java \
+gnu/java/locale/LocaleInformation_de_DE.java \
+gnu/java/locale/LocaleInformation_de_LU.java \
+gnu/java/locale/LocaleInformation_el_GR.java \
gnu/java/locale/LocaleInformation_en.java \
+gnu/java/locale/LocaleInformation_en_AU.java \
+gnu/java/locale/LocaleInformation_en_BW.java \
+gnu/java/locale/LocaleInformation_en_CA.java \
+gnu/java/locale/LocaleInformation_en_DK.java \
+gnu/java/locale/LocaleInformation_en_GB.java \
+gnu/java/locale/LocaleInformation_en_HK.java \
+gnu/java/locale/LocaleInformation_en_IE.java \
+gnu/java/locale/LocaleInformation_en_IN.java \
+gnu/java/locale/LocaleInformation_en_NZ.java \
+gnu/java/locale/LocaleInformation_en_PH.java \
+gnu/java/locale/LocaleInformation_en_SG.java \
gnu/java/locale/LocaleInformation_en_US.java \
+gnu/java/locale/LocaleInformation_en_ZA.java \
+gnu/java/locale/LocaleInformation_en_ZW.java \
+gnu/java/locale/LocaleInformation_es_AR.java \
+gnu/java/locale/LocaleInformation_es_BO.java \
+gnu/java/locale/LocaleInformation_es_CL.java \
+gnu/java/locale/LocaleInformation_es_CO.java \
+gnu/java/locale/LocaleInformation_es_CR.java \
+gnu/java/locale/LocaleInformation_es_DO.java \
+gnu/java/locale/LocaleInformation_es_EC.java \
+gnu/java/locale/LocaleInformation_es_ES.java \
+gnu/java/locale/LocaleInformation_es_GT.java \
+gnu/java/locale/LocaleInformation_es_HN.java \
+gnu/java/locale/LocaleInformation_es_MX.java \
+gnu/java/locale/LocaleInformation_es_NI.java \
+gnu/java/locale/LocaleInformation_es_PA.java \
+gnu/java/locale/LocaleInformation_es_PE.java \
+gnu/java/locale/LocaleInformation_es_PR.java \
+gnu/java/locale/LocaleInformation_es_PY.java \
+gnu/java/locale/LocaleInformation_es_SV.java \
+gnu/java/locale/LocaleInformation_es_US.java \
+gnu/java/locale/LocaleInformation_es_UY.java \
+gnu/java/locale/LocaleInformation_es_VE.java \
+gnu/java/locale/LocaleInformation_et_EE.java \
+gnu/java/locale/LocaleInformation_eu_ES.java \
+gnu/java/locale/LocaleInformation_fa_IR.java \
+gnu/java/locale/LocaleInformation_fi_FI.java \
+gnu/java/locale/LocaleInformation_fo_FO.java \
+gnu/java/locale/LocaleInformation_fr_BE.java \
+gnu/java/locale/LocaleInformation_fr_CA.java \
+gnu/java/locale/LocaleInformation_fr_CH.java \
+gnu/java/locale/LocaleInformation_fr_FR.java \
+gnu/java/locale/LocaleInformation_fr_LU.java \
+gnu/java/locale/LocaleInformation_ga_IE.java \
+gnu/java/locale/LocaleInformation_gd_GB.java \
+gnu/java/locale/LocaleInformation_gl_ES.java \
+gnu/java/locale/LocaleInformation_gv_GB.java \
+gnu/java/locale/LocaleInformation_he_IL.java \
+gnu/java/locale/LocaleInformation_hi_IN.java \
+gnu/java/locale/LocaleInformation_hr_HR.java \
+gnu/java/locale/LocaleInformation_hu_HU.java \
+gnu/java/locale/LocaleInformation_id_ID.java \
+gnu/java/locale/LocaleInformation_it_CH.java \
+gnu/java/locale/LocaleInformation_it_IT.java \
+gnu/java/locale/LocaleInformation_iw_IL.java \
+gnu/java/locale/LocaleInformation_ja_JP.java \
+gnu/java/locale/LocaleInformation_ka_GE.java \
+gnu/java/locale/LocaleInformation_kl_GL.java \
+gnu/java/locale/LocaleInformation_ko_KR.java \
+gnu/java/locale/LocaleInformation_kw_GB.java \
+gnu/java/locale/LocaleInformation_lt_LT.java \
+gnu/java/locale/LocaleInformation_lv_LV.java \
+gnu/java/locale/LocaleInformation_mi_NZ.java \
+gnu/java/locale/LocaleInformation_mk_MK.java \
+gnu/java/locale/LocaleInformation_mr_IN.java \
+gnu/java/locale/LocaleInformation_mt_MT.java \
gnu/java/locale/LocaleInformation_nl.java \
+gnu/java/locale/LocaleInformation_nl_BE.java \
+gnu/java/locale/LocaleInformation_nl_NL.java \
+gnu/java/locale/LocaleInformation_nn_NO.java \
+gnu/java/locale/LocaleInformation_no_NO.java \
+gnu/java/locale/LocaleInformation_oc_FR.java \
+gnu/java/locale/LocaleInformation_pl_PL.java \
+gnu/java/locale/LocaleInformation_pt_BR.java \
+gnu/java/locale/LocaleInformation_pt_PT.java \
+gnu/java/locale/LocaleInformation_ro_RO.java \
+gnu/java/locale/LocaleInformation_ru_RU.java \
+gnu/java/locale/LocaleInformation_ru_UA.java \
+gnu/java/locale/LocaleInformation_se_NO.java \
+gnu/java/locale/LocaleInformation_sk_SK.java \
+gnu/java/locale/LocaleInformation_sl_SI.java \
+gnu/java/locale/LocaleInformation_sq_AL.java \
+gnu/java/locale/LocaleInformation_sr_YU.java \
+gnu/java/locale/LocaleInformation_sv_FI.java \
+gnu/java/locale/LocaleInformation_sv_SE.java \
+gnu/java/locale/LocaleInformation_ta_IN.java \
+gnu/java/locale/LocaleInformation_te_IN.java \
+gnu/java/locale/LocaleInformation_tg_TJ.java \
+gnu/java/locale/LocaleInformation_tl_PH.java \
+gnu/java/locale/LocaleInformation_tr_TR.java \
+gnu/java/locale/LocaleInformation_uk_UA.java \
+gnu/java/locale/LocaleInformation_ur_PK.java \
+gnu/java/locale/LocaleInformation_uz_UZ.java \
+gnu/java/locale/LocaleInformation_vi_VN.java \
+gnu/java/locale/LocaleInformation_yi_US.java \
+gnu/java/locale/LocaleInformation_zh_CN.java \
+gnu/java/locale/LocaleInformation_zh_HK.java \
+gnu/java/locale/LocaleInformation_zh_SG.java \
+gnu/java/locale/LocaleInformation_zh_TW.java \
+gnu/java/math/MPN.java \
gnu/java/security/provider/DefaultPolicy.java \
gnu/java/security/provider/Gnu.java \
gnu/java/security/provider/SHA.java \
gnu/gcj/runtime/natFinalizerThread.cc \
gnu/gcj/runtime/natFirstThread.cc \
gnu/gcj/runtime/natSharedLibLoader.cc \
+gnu/gcj/runtime/natStringBuffer.cc \
java/io/natFile.cc \
java/io/natFileDescriptor.cc \
java/io/natObjectInputStream.cc \
java/net/natPlainDatagramSocketImpl.cc \
java/net/natPlainSocketImpl.cc \
java/text/natCollator.cc \
-java/util/natResourceBundle.cc \
java/util/zip/natDeflater.cc \
java/util/zip/natInflater.cc
-include deps.mk
## This is an evil hack to work around an automake limitation. We
-## need to ensure that the built headers are built before we try to
-## compile the C++ sources, but we can't make the .o files depend on
-## the headers, because in that case we'll force a complete rebuild of
+## need to ensure that all CNI headers are built, not just the ones used
+## internally by libgcj. We can't make the .o files depend on nat_headers,
+## because in that case we'll force a complete rebuild of
## the C++ code whenever any .java file is touched.
all-recursive: $(nat_headers) $(x_nat_headers)