Index: configure.ac =================================================================== RCS file: /cvs/kaffe/kaffe/configure.ac,v retrieving revision 1.37 diff -u -r1.37 configure.ac --- configure.ac 23 Jun 2004 15:36:42 -0000 1.37 +++ configure.ac 27 Jun 2004 17:02:36 -0000 @@ -1727,8 +1727,11 @@ AC_MSG_ERROR([unable to locate libxml.])) AM_PATH_XSLT([1.0.24],[CFLAGS="${XSLT_CFLAGS} ${CFLAGS}"] [CPPFLAGS="${XSLT_CFLAGS} ${CPPFLAGS}"] [LIBS="${XSLT_LIBS} ${LIBS}"] , AC_MSG_ERROR([unable to locate libxslt.])) + LIBXMLJ_LIB="\$(top_builddir)/libraries/clib/libxmlj/libxmlj.la" else AC_MSG_ERROR([Not building libxmlj - only available with pthreads.]) + enable_libxmlj="no" + LIBXMLJ_LIB="" fi fi @@ -1771,12 +1774,8 @@ \$(top_builddir)/libraries/clib/io/libio.la \ \$(top_builddir)/libraries/clib/nio/libnio.la \ \$(top_builddir)/libraries/clib/zip/libzip.la \ -$MATH_LIB \ -$ALSA_LIB \ -$ESD_LIB \ \$(top_builddir)/libraries/clib/management/libmanagement.la \ \$(top_builddir)/libraries/clib/security/libsecurity.la \ -$AWT_LIB \ $JAVA_LIBS \ " @@ -1785,6 +1784,21 @@ DLOPEN_JAVA_LIBS="$DLOPEN_JAVA_LIBS -dlopen $lib" done AC_SUBST(DLOPEN_JAVA_LIBS) + + +OPT_JAVA_LIBS=" \ +$ALSA_LIB \ +$ESD_LIB \ +$LIBXMLJ_LIB \ +$AWT_LIB \ +" + +OPT_DLOPEN_JAVA_LIBS= +for lib in $OPT_JAVA_LIBS; do + OPT_DLOPEN_JAVA_LIBS="$OPT_DLOPEN_JAVA_LIBS -dlopen $lib" +done +AC_SUBST(OPT_DLOPEN_JAVA_LIBS) + if test x"$dynamic_libraries" = x"no"; then KLIBFLAGS=-static Index: Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/Makefile.am,v retrieving revision 1.68 diff -u -r1.68 Makefile.am --- Makefile.am 22 Jun 2004 12:21:27 -0000 1.68 +++ Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -14,8 +14,7 @@ AUTOMAKE_OPTIONS = foreign 1.3e -SUBDIRS = . config include replace libltdl kaffe/kaffevm libraries/clib libraries/extensions kaffe libraries/javalib tools test po - +SUBDIRS = DIST_SUBDIRS = . config include replace libltdl kaffe libraries tools test po EXTRA_DIST = \ @@ -171,3 +170,77 @@ # Regenerate HTML docs and copy them to source tree docs-regen: docs-docbook-html cp -f target/docs/docbook/*.html $(srcdir)/docs/html + + +# +# things we need to compile before we can compile rt.jar +# +DIRECTORIES_BEFORE_RTJAR = \ + config \ + include \ + replace \ + libltdl \ + kaffe/kaffevm \ + libraries/clib \ + kaffe + +# +# things we need to compile after we have compiled rt.jar +# +DIRECTORIES_AFTER_RTJAR = \ + tools \ + test \ + po \ + libraries/clib/awt + +if COND_LIBXMLJ +DIRECTORIES_AFTER_RTJAR += libraries/clib/libxmlj +endif + +if COND_SOUND_ALSA +DIRECTORIES_AFTER_RTJAR += libraries/clib/sound +else +if COND_SOUND_ESD +DIRECTORIES_AFTER_RTJAR += libraries/clib/sound +endif +endif + +all-local: + @list="$(DIRECTORIES_BEFORE_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir all || exit $$? ; \ + done; \ + $(MAKE) -C libraries/javalib all || exit $$? ; \ + list="$(DIRECTORIES_AFTER_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir all || exit $$? ; \ + done ; \ + $(MAKE) -C kaffe/kaffe final-executable + +install-exec-hook: + @list="$(DIRECTORIES_BEFORE_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir install-exec || exit $$? ; \ + done; \ + $(MAKE) -C libraries/javalib install-exec || exit $$? ; \ + list="$(DIRECTORIES_AFTER_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir install-exec || exit $$? ; \ + done + +install-data-hook: + @list="$(DIRECTORIES_BEFORE_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir install-data || exit $$? ; \ + done; \ + $(MAKE) -C libraries/javalib install-data || exit $$? ; \ + list="$(DIRECTORIES_AFTER_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir install-data || exit $$? ; \ + done + +uninstall-hook: + @list="$(DIRECTORIES_BEFORE_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir uninstall || exit $$? ; \ + done; \ + $(MAKE) -C libraries/javalib uninstall || exit $$? ; \ + list="$(DIRECTORIES_AFTER_RTJAR)"; for subdir in $$list; do \ + $(MAKE) -C $$subdir uninstall || exit $$? ; \ + done + +check-local: + $(MAKE) -C test check Index: include/Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/include/Makefile.am,v retrieving revision 1.62 diff -u -r1.62 Makefile.am --- include/Makefile.am 23 Jun 2004 09:11:41 -0000 1.62 +++ include/Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -106,23 +106,6 @@ INSTALL_JNI_DERIVED_HDRS = NOINSTALL_JNI_DERIVED_HDRS = \ - gnu_xml_libxmlj_dom_GnomeAttr.h \ - gnu_xml_libxmlj_dom_GnomeDocument.h \ - gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \ - gnu_xml_libxmlj_dom_GnomeDocumentType.h \ - gnu_xml_libxmlj_dom_GnomeElement.h \ - gnu_xml_libxmlj_dom_GnomeEntity.h \ - gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \ - gnu_xml_libxmlj_dom_GnomeNode.h \ - gnu_xml_libxmlj_dom_GnomeNodeList.h \ - gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \ - gnu_xml_libxmlj_dom_MatchingNodeList.h \ - gnu_xml_libxmlj_sax_GnomeLocator.h \ - gnu_xml_libxmlj_sax_GnomeXMLReader.h \ - gnu_xml_libxmlj_transform_LibxsltStylesheet.h \ - gnu_xml_libxmlj_transform_TransformerFactoryImpl.h \ - gnu_xml_libxmlj_transform_JavaContext.h \ - gnu_xml_libxmlj_transform_LibxmlDocument.h \ java_math_BigInteger.h \ gnu_java_nio_channels_FileChannelImpl.h \ gnu_java_nio_NIOServerSocket.h \ @@ -141,11 +124,13 @@ kaffe_security_provider_MD2.h \ kaffe_security_provider_MD4.h \ kaffe_security_provider_MD5.h \ - kaffe_security_provider_SHA.h \ - org_tritonus_lowlevel_esd_Esd.h \ - org_tritonus_lowlevel_esd_EsdRecordingStream.h \ - org_tritonus_lowlevel_esd_EsdSample.h \ - org_tritonus_lowlevel_esd_EsdStream.h \ + kaffe_security_provider_SHA.h + + +JNI_DERIVED_HDRS = $(INSTALL_JNI_DERIVED_HDRS) $(NOINSTALL_JNI_DERIVED_HDRS) + + +LIBTRITONUSALSA_JNI_HDRS = \ org_tritonus_lowlevel_alsa_AlsaCtlCardInfo.h \ org_tritonus_lowlevel_alsa_AlsaCtl.h \ org_tritonus_lowlevel_alsa_Alsa.h \ @@ -167,7 +152,37 @@ org_tritonus_lowlevel_alsa_AlsaSeqRemoveEvents.h \ org_tritonus_lowlevel_alsa_AlsaSeqSystemInfo.h -JNI_DERIVED_HDRS = $(INSTALL_JNI_DERIVED_HDRS) $(NOINSTALL_JNI_DERIVED_HDRS) + +LIBTRITONUSESD_JNI_HDRS = \ + org_tritonus_lowlevel_esd_Esd.h \ + org_tritonus_lowlevel_esd_EsdRecordingStream.h \ + org_tritonus_lowlevel_esd_EsdSample.h \ + org_tritonus_lowlevel_esd_EsdStream.h \ + org_tritonus_lowlevel_esd_Esd.h \ + org_tritonus_lowlevel_esd_EsdRecordingStream.h \ + org_tritonus_lowlevel_esd_EsdSample.h \ + org_tritonus_lowlevel_esd_EsdStream.h + + +LIBXMLJ_JNI_HDRS = \ + gnu_xml_libxmlj_dom_GnomeAttr.h \ + gnu_xml_libxmlj_dom_GnomeDocument.h \ + gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \ + gnu_xml_libxmlj_dom_GnomeDocumentType.h \ + gnu_xml_libxmlj_dom_GnomeElement.h \ + gnu_xml_libxmlj_dom_GnomeEntity.h \ + gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \ + gnu_xml_libxmlj_dom_GnomeNode.h \ + gnu_xml_libxmlj_dom_GnomeNodeList.h \ + gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \ + gnu_xml_libxmlj_dom_MatchingNodeList.h \ + gnu_xml_libxmlj_sax_GnomeLocator.h \ + gnu_xml_libxmlj_sax_GnomeXMLReader.h \ + gnu_xml_libxmlj_transform_LibxsltStylesheet.h \ + gnu_xml_libxmlj_transform_TransformerFactoryImpl.h \ + gnu_xml_libxmlj_transform_JavaContext.h \ + gnu_xml_libxmlj_transform_LibxmlDocument.h + if USE_COMPAT_IFADDRS ifaddrs_compat = ifaddrs.h @@ -246,19 +261,15 @@ done @echo timestamp > $@ -$(JNI_DERIVED_HDRS): stamp-h1all - @if test -f $@; then :; else \ -## If this file is removed after stamp-h1all is built, force its rebuild. - rm -f stamp-h1all; $(MAKE) JNI_DERIVED_HDRS=$@ stamp-h1all; \ - fi -stamp-h1all: stamp-kaffeh $(KLASSES_JAR) +.PHONY: rebuild-jni-hdrs +rebuild-jni-hdrs: stamp-kaffeh $(KLASSES_JAR) ## Then, generate each header file, ## but if it does not change, do not touch it - @set -e; for f in $(JNI_DERIVED_HDRS); do \ + @set -e; for f in $(HDRS); do \ class=`echo $$f | sed -e 's%.*/%%g' -e 's%\.h$$%%' -e 's%_%/%g'`; \ - echo "$(KAFFEH) -jni -classpath $(KLASSES_JAR) -o $$f $$class"; \ - $(KAFFEH) -jni -classpath $(KLASSES_JAR) -o stamp-h1$$f $$class; \ + echo "$(KAFFEH) -jni -classpath $(KLASSES_JAR):$(top_builddir)/libraries/javalib/lib -o $$f $$class"; \ + $(KAFFEH) -jni -classpath $(KLASSES_JAR):$(top_builddir)/libraries/javalib/lib -o stamp-h1$$f $$class; \ if test -f $$f && cmp $$f stamp-h1$$f >/dev/null; then \ echo "$$f is already up-to-date"; \ rm -f stamp-h1$$f; \ @@ -268,14 +279,70 @@ done @echo timestamp > $@ -CLEANFILES = $(DERIVED_HDRS) $(JNI_DERIVED_HDRS) stamp-kaffeh + +# +# jni headers of the core libraries +# +$(JNI_DERIVED_HDRS): stamp-h1all + @if test -f $@; then :; else \ + rm -f stamp-h1all; $(MAKE) JNI_DERIVED_HDRS=$@ stamp-h1all; \ + fi + +stamp-h1all: HDRS = $(JNI_DERIVED_HDRS) +stamp-h1all: rebuild-jni-hdrs + +# +# header files for alsa backend of tritonus +# +libtritonusalsa_headers: stamp-libtritonusalsa + @if test -f $@; then :; else \ + rm -f stamp-libtritonusalsa; $(MAKE) JNI_DERIVED_HDRS=$@ stamp-libtritonusalsa; \ + fi + +stamp-libtritonusalsa: HDRS = $(LIBTRITONUSALSA_JNI_HDRS) +stamp-libtritonusalsa: rebuild-jni-hdrs + +# +# header files for esd backend of tritonus +# +libtritonusesd_headers: stamp-libtritonusesd + @if test -f $@; then :; else \ + rm -f stamp-libtritonusesd; $(MAKE) JNI_DERIVED_HDRS=$@ stamp-libtritonusesd; \ + fi + +stamp-libtritonusesd: HDRS = $(LIBTRITONUSESD_JNI_HDRS) +stamp-libtritonusesd: rebuild-jni-hdrs + +# +# header files for libxmlj +# +libxmlj_headers: stamp-libxmlj + @if test -f $@; then :; else \ + rm -f stamp-libxmlj; $(MAKE) JNI_DERIVED_HDRS=$@ stamp-libxmlj; \ + fi + +stamp-libxmlj: HDRS = $(LIBXMLJ_JNI_HDRS) +stamp-libxmlj: rebuild-jni-hdrs + + + +CLEANFILES = \ + $(DERIVED_HDRS) \ + $(JNI_DERIVED_HDRS) \ + $(LIBTRITONUSALSA_JNI_HDRS) \ + $(LIBTRITONUSESD_JNI_HDRS) \ + $(LIBXMLJ_JNI_HDRS) \ + stamp-kaffeh DISTCLEANFILES = \ $(DERIVED_HDRS) \ $(JNI_DERIVED_HDRS) \ kaffe/jtypes.h \ stamp-h0all \ - stamp-h1all + stamp-h1all \ + stamp-libtritonusalsa \ + stamp-libtritonusesd \ + stamp-libxmlj dist-hook: @for file in $(DISTCLEANFILES); do \ Index: libraries/clib/Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/libraries/clib/Makefile.am,v retrieving revision 1.7 diff -u -r1.7 Makefile.am --- libraries/clib/Makefile.am 28 Apr 2004 20:42:57 -0000 1.7 +++ libraries/clib/Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -20,4 +20,6 @@ MAYBE_LIBXMLJ = endif -SUBDIRS = native io nio net zip $(MAYBE_NATIVE_MATH) $(MAYBE_LIBXMLJ) security management awt sound +DIST_SUBDIRS = native io nio net zip math libxmlj security management awt sound + +SUBDIRS = native io nio net zip $(MAYBE_NATIVE_MATH) security management Index: libraries/clib/libxmlj/Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/libraries/clib/libxmlj/Makefile.am,v retrieving revision 1.3 diff -u -r1.3 Makefile.am --- libraries/clib/libxmlj/Makefile.am 3 Jun 2004 18:56:06 -0000 1.3 +++ libraries/clib/libxmlj/Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -51,3 +51,8 @@ -Wall \ -fbounds-check + +$(libxmlj_la_SOURCES): libxmlj_headers +.PHONY:libxmlj_headers +libxmlj_headers: + @$(MAKE) -C $(top_builddir)/include libxmlj_headers \ No newline at end of file Index: libraries/clib/sound/alsa/Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/libraries/clib/sound/alsa/Makefile.am,v retrieving revision 1.1 diff -u -r1.1 Makefile.am --- libraries/clib/sound/alsa/Makefile.am 28 Apr 2004 20:42:58 -0000 1.1 +++ libraries/clib/sound/alsa/Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -46,3 +46,8 @@ constants_check.h CLEANFILES = so_locations + +$(libtritonusalsa_la_SOURCES): libtritonusalsa_headers +.PHONY: libtritonusalsa_headers +libtritonusalsa_headers: + @$(MAKE) -C $(top_builddir)/include libtritonusalsa_headers \ No newline at end of file Index: libraries/clib/sound/esd/Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/libraries/clib/sound/esd/Makefile.am,v retrieving revision 1.1 diff -u -r1.1 Makefile.am --- libraries/clib/sound/esd/Makefile.am 28 Apr 2004 20:43:00 -0000 1.1 +++ libraries/clib/sound/esd/Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -27,3 +27,8 @@ common.h CLEANFILES = so_locations + +$(libtritonusesd_la_SOURCES): libtritonusesd_headers +.PHONY: libtritonusesd_headers +libtritonusesd_headers: + @$(MAKE) -C $(top_builddir)/include libtritonusesd_headers \ No newline at end of file Index: kaffe/kaffe/Makefile.am =================================================================== RCS file: /cvs/kaffe/kaffe/kaffe/kaffe/Makefile.am,v retrieving revision 1.24 diff -u -r1.24 Makefile.am --- kaffe/kaffe/Makefile.am 22 Jun 2004 15:35:42 -0000 1.24 +++ kaffe/kaffe/Makefile.am 27 Jun 2004 17:02:37 -0000 @@ -78,6 +78,14 @@ DISTCLEANFILES = version-info.h +# +# relink the kaffe binary including the optinal java libs +# +final-executable: + @rm -f kaffe-bin$(EXEEXT) + @$(MAKE) kaffe-bin$(EXEEXT) kaffe_bin_LDADD="$(OPT_DLOPEN_JAVA_LIBS) $(kaffe_bin_LDADD)" + + dist-hook: @for file in $(DISTCLEANFILES); do \ rm -f $(distdir)/$$file; \